August 30, 2012

MPRC 的 UniCore32 架構

其實不是什麼新聞,只是台灣較少這方面的訊息,我只是稍微紀錄。若說位於台灣新竹的 [晶心科技] 開發出的 Andes CPU/ISA 是「台灣芯」,那麼設址於北京的 [北大眾志微系統科技] 開發出的 UniCore32 (32-bit 定點 CPU) 與 Unicore-F64 (64-bit 浮點 co-processor) 就是「中國芯」。儘管兩者在設計理念有所不同,但「堅持自行設計、自主開發,擁有自主知識產權的發展思路」這樣的指導原則卻是相同的。

MPRC 的全名為 [Microprocessor Research and Development Center ] (北京大學微處理器研究開發中心; 後三個字母恰好是偉大祖國的縮寫),而北京北大眾志微系統科技有限責任公司則是 MPRC 商業化公司,成立於 2002 年 11 月,是中國專業從事自主 CPU 及系統設計的高新技術企業。在中國國家科技部、信息產業部、教育部等主管部門的重點支持下,北大眾志與 MPRC 提出了自己的 ISA (參考了 ARM 等 RISC),研製出北大眾志 CPU 系統晶片。日前 Unicore32 架構的支援已經在 Linux Kernel, GNU Toolchain, QEMU 等主流 open source 系統中良好整合。

依據 [網頁的資訊],PKUNITY-3-130 SoC 的規格如下:
  • 基於 32-bit UniCore-Ⅱ ISA
  • 採用 TSMC 0.18 um 製程
  • CPU 主頻為 600 MHz 到 1 GHz
  • SoC 整合 USB 2.0 OTG, IDE 控制器, 10M/100M/1000M Ethernet MAC, DDR-II 控制器, AC'97 控制器
  • 具備 MPEG1/2/4 和 H.264 codec 加速器

UniCore32 ISA 的編碼方式頗類似 ARM,但移除了 conditional execution 的部份。在 Unicore32 中,register specifiers 擴展為 5 bits,而直接表示式為 9 bit / rotated by 5 bit。在 load/store 方面,offset size 對 byte/word 為 14 bit、對 signed byte / half-word 為 10 bit。定義了 32 個通用暫存器,其中兩個被挪用作以下用途:
  • r30: Link Register
  • r31: Program Counter
而在不同的執行模式,會有不同的 shadow register (這點根本就是 ARM 的翻版)。詳情可參閱 [Unicore32 指令系統手冊]。
由 jserv 發表於 8:08 PM | 迴響 (0)