軟核微處理器
外觀
軟核微處理器(英文:Soft microprocessor),也稱為軟微處理器、軟核處理器或軟核,是可以完全使用邏輯綜合實現的微處理器核心。軟核處理器可以通過含有可程式化邏輯裝置(如ASIC、FPGA、CPLD)的不同半導體元件來實做。[1]
對於大多數系統,如果使用了軟核處理器,那它們往往僅使用單個軟處理器。但是,仍有一些設計人員將儘可能多的軟核平鋪到 FPGA 上。[2]在多核系統中,較少使用的資源可以在多個核心間共用。
儘管許多人在 FPGA 中只放置了一個軟核處理器,但 FPGA 在資源足夠多的情況下可以容納更多的軟核處理器,從而構成多核處理器。單個 FPGA 上的軟核處理器的數量僅受 FPGA 資源數量的限制。[3]有的人在單個 FPGA 上放置了數十或數百個軟核處理器。[4][5][6][7][8]這是一種實現大規模平行計算的方法,並且同樣可以應用於主記憶體內計算。
與分立處理器相比,由於 FPGA 的可重新編程的特點,FPGA 中實現的軟核處理器及其外圍裝置不容易過時。[9][10][11]
核心比較
[編輯]處理器 | 開發者 | 是否開源 | 匯流排支援 | 備註 | 專案名稱 | 描述語言 |
---|---|---|---|---|---|---|
基於 ARM 指令集架構 | ||||||
Amber | Conor Santifort | LGPLv2.1 | Wishbone | ARMv2a 三級或五級管線化 | Opencores 上的專案首頁 (頁面存檔備份,存於互聯網檔案館) | Verilog |
Cortex-M1 | ARM | 否 | [1] | 70–200 MHz, 32位元 RISC | [2] (頁面存檔備份,存於互聯網檔案館) | Verilog |
基於 AVR 指令集架構 | ||||||
Navré | Sébastien Bourdeauducq | 是 | Direct SRAM | 相容 Atmel AVR 的8位元 RISC | Opencores 上的專案首頁 (頁面存檔備份,存於互聯網檔案館) | Verilog |
pAVR | Doru Cuturela | 是 | 相容 Atmel AVR 的8位元 RISC | Opencores 上的專案首頁 (頁面存檔備份,存於互聯網檔案館) | VHDL | |
基於 MicroBlaze 指令集架構 | ||||||
AEMB | Shawn Tan | 是 | Wishbone | 相容 MicroBlaze EDK 3.2 | AEMB | Verilog |
MicroBlaze | Xilinx | 否 | PLB, OPB, FSL, LMB, AXI4 | Xilinx MicroBlaze | ||
OpenFire | Virginia Tech CCM Lab | 是 | OPB, FSL | 與 MicroBlaze 二進制相容 | [3][12] | Verilog |
SecretBlaze | LIRMM, 蒙彼利埃大學 / CNRS | 是 | Wishbone | MicroBlaze 指令集架構, VHDL | SecretBlaze | VHDL |
基於 MCS-51 指令集架構 | ||||||
MCL51 | MicroCore Labs | 是 | 基於 Ultra-small-footprint 微定序器的 8051 核心 | 312 個 Artix-7 尋找表. 四核的 8051 版本則有 1227 個 | MCL51 Core | |
TSK51/52 | Altium | 免版稅 | Wishbone / 英特爾 8051 | 相容8位元 英特爾 8051 指令集,更低時鐘週期的替代 | Altium Wiki 上的 Embedded Design | |
基於 MIPS 指令集架構 | ||||||
BERI (頁面存檔備份,存於互聯網檔案館) | 劍橋大學 | BSD | MIPS | 專案首頁 (頁面存檔備份,存於互聯網檔案館) | Bluespec | |
Dossmatik | René Doss | CC BY-NC 3.0 授權, 但商業使用需要付授權費 | 管線化匯流排 | MIPS I 指令集,多級管線化 | Dossmatik | VHDL |
TSK3000A | Altium | 免版稅 | Wishbone | 32位元 R3000 風格的 RISC 修正哈佛架構 CPU | Altium Wiki 上的 Embedded Design | |
基於 PicoBlaze 指令集架構 | ||||||
PacoBlaze | Pablo Bleyer | 是 | 與 PicoBlaze 處理器相容 | PacoBlaze (頁面存檔備份,存於互聯網檔案館) | Verilog | |
PicoBlaze | Xilinx | 否 | Xilinx PicoBlaze | VHDL, Verilog | ||
基於 RISC-V 指令集架構 | ||||||
f32c (頁面存檔備份,存於互聯網檔案館) | 薩格勒布大學 | BSD | AXI, SDRAM, SRAM | 32位元, RISC-V / MIPS 指令集架構自己 (可重新導向), GCC 工具鏈 | f32c (頁面存檔備份,存於互聯網檔案館) | VHDL |
VexRiscv | SpinalHDL | 是 | AXI4 / Avalon | 32位元, RISC-V, 在 Artix 7 上最高 340 MHz. 最高 1.44 DMIPS/MHz. | GitHub (頁面存檔備份,存於互聯網檔案館) | VHDLVerilog (SpinalHDL) |
基於 SPARC 指令集架構 | ||||||
LEON2(-FT) | ESA | 是 | AMBA2 | SPARC V8 | ESA (頁面存檔備份,存於互聯網檔案館) | VHDL |
LEON3/4 | Aeroflex Gaisler | 是 | AMBA2 | SPARC V8 | Aeroflex Gaisler (頁面存檔備份,存於互聯網檔案館) | VHDL |
OpenPiton | 普林斯頓並列研究組 | 是 | Manycore SPARC V9 | OpenPiton | Verilog | |
OpenSPARC T1 | Sun | 是 | 64位元 | OpenSPARC.net (頁面存檔備份,存於互聯網檔案館) | Verilog | |
Tacus/PIPE5 | TemLib | 是 | 管線化匯流排 | SPARC V8 | TEMLIB | VHDL |
基於 x86 指令集架構 | ||||||
CPU86 | HT-Lab | 是 | 相容 8088 CPU | cpu86 | VHDL | |
MCL86 | MicroCore Labs | 是 | 提供了8088的匯流排介面單元,其他易於建立 | 帶有微定序器的精準週期8088/8086,在 Kintex-7 上資源利用率小於2% | MCL86 Core | |
s80x86 | Jamie Iles | GPLv3 | 自訂 | 相容 80186 內核 | s80x86 | SystemVerilog |
Zet | Zeus Gómez Marmolejo | 是 | Wishbone | x86 PC 的複製 | Zet | Verilog |
ao486 | Aleksander Osman | 3-Clause BSD | Avalon | 相容 i486 SX 核心 | ao486 (頁面存檔備份,存於互聯網檔案館) | Verilog |
其他架構 | ||||||
ARC | ARC International, Synopsys | 否 | 16/32位元指令集架構 RISC | DesignWare ARC | Verilog | |
ERIC5 | Entner Electronics | 否 | 9位 RISC, 非常小型, 與C語言相容 | ERIC5 (頁面存檔備份,存於互聯網檔案館) | VHDL | |
H2 CPU (頁面存檔備份,存於互聯網檔案館) | Richard James Howe | MIT | 自訂 | 16位元堆疊結構機器,為直接執行 Forth 語言而設計,較小 | H2 CPU (頁面存檔備份,存於互聯網檔案館) | VHDL |
Instant SoC (頁面存檔備份,存於互聯網檔案館) | FPGA Cores (頁面存檔備份,存於互聯網檔案館) | 否 | 自訂 | 32位元 RISC-V M 拓展,C++定義的 SoC | Instant SoC (頁面存檔備份,存於互聯網檔案館) | VHDL |
JOP | Martin Schoeberl | 是 | SimpCon / Wishbone (拓展) | 堆疊導向,硬即時支援,能直接執行 Java 位元組碼 | Jop | VHDL |
LatticeMico8 | Lattice | 是 | Wishbone | LatticeMico8 (頁面存檔備份,存於互聯網檔案館) | Verilog | |
LatticeMico32 | Lattice | 是 | Wishbone | LatticeMico32 (頁面存檔備份,存於互聯網檔案館) | Verilog | |
LXP32 (頁面存檔備份,存於互聯網檔案館) | Alex Kuznetsov | MIT | Wishbone | 32位元,三級管線化,基於塊狀 RAM 的暫存器堆 | lxp32 (頁面存檔備份,存於互聯網檔案館) | VHDL |
MCL65 (頁面存檔備份,存於互聯網檔案館) | MicroCore Labs | 是 | 基於 Ultra-small-footprint 微定序器的 6502 核心 | 252 個 Spartan-7 尋找表,精確的時鐘週期 | MCL65 Core (頁面存檔備份,存於互聯網檔案館) | |
MRISC32-A1 (頁面存檔備份,存於互聯網檔案館) | Marcus Geelnard | 是 | Wishbone, B4/管線化 | 32位元 RISC/Vector CPU,自訂指令集架構 | MRISC32 (頁面存檔備份,存於互聯網檔案館) | VHDL |
NEO430 (頁面存檔備份,存於互聯網檔案館) | Stephan Nolting | 是 | Wishbone (Avalon, AXI4-Lite) | 相容 16位元 MSP430 指令集架構,非常小型,多外設,高自訂性 | NEO430 (頁面存檔備份,存於互聯網檔案館) | VHDL |
Nios, Nios II | Altera | 否 | Avalon | Altera Nios II | Verilog | |
OpenRISC | OpenCores | 是 | Wishbone | 32位元,在 ASIC、Actel、Altera、Xilinx FPGA 上實現 | [4] (頁面存檔備份,存於互聯網檔案館) | Verilog |
SpartanMC | TU Darmstadt / TU Dresden | 是 | 自訂 (AXI 支援正處於開發中) | 18位元 ISA (GNU Binutils / GCC 的支援正在開發中) | SpartanMC (頁面存檔備份,存於互聯網檔案館) | Verilog |
SYNPIC12 | Miguel Angel Ajo Pelayo | MIT | 相容 PIC12F,程式用邏輯門合成 | nbee.es | VHDL | |
xr16 | Jan Gray | 否 | XSOC 抽象匯流排 | 在 Circuit Cellar 雜誌的116-118期中提供了16位元的 RISC CPU 和 SoC | XSOC/xr16 | Schematic |
YASEP | Yann Guidon | AGPLv3 | Direct SRAM | 16位元或32位元, RTL 使用 VHDL & 組譯 使用 JavaScript | yasep.org (需要 火狐 (頁面存檔備份,存於互聯網檔案館) 瀏覽器) | VHDL |
ZipCPU | Gisselquist Technology | GPLv3 | Wishbone, B4/管線化 | 32位元 CPU,目標是最少的 FPGA 資源利用 | zipcpu.com | Verilog |
ZPU | Zylin AS | 是 | Wishbone | 基於棧的 CPU,可組態的 16/32位元數據路徑, 支援 eCos | Zylin CPU | VHDL |
參見
[編輯]參考資料
[編輯]- ^ http://www.dailycircuitry.com/2011/10/zet-soft-core-running-windows-30.html互聯網檔案館的存檔,存檔日期2018-10-13. "Zet soft core running Windows 3.0" by Andrew Felch 2011
- ^ Archived copy. [2012-08-18]. (原始內容存檔於2007-10-08).
- ^ MicroBlaze Soft Processor: Frequently Asked Questions 互聯網檔案館的存檔,存檔日期2011-10-27.
- ^ István Vassányi. "Implementing processor arrays on FPGAs". 1998.
- ^ Zhoukun WANG and Omar HAMMAMI. "A 24 Processors System on Chip FPGA Design with Network on Chip".
- ^ John Kent. "Micro16 Array - A Simple CPU Array"
- ^ Kit Eaton. "1,000 Core CPU Achieved: Your Future Desktop Will Be a Supercomputer". 2011.
- ^ "Scientists Squeeze Over 1,000 Cores onto One Chip". 2011. 存档副本. [2020-07-17]. (原始內容存檔於2012-03-05).
- ^ Joe DeLaere. "Top 7 Reasons to Replace Your Microcontroller with a MAX 10 FPGA" (頁面存檔備份,存於互聯網檔案館).
- ^ John Swan; Tomek Krzyzak. "Using FPGAs to avoid microprocessor obsolescence" (頁面存檔備份,存於互聯網檔案館). 2008
- ^ Staff. FPGA processor IP needs to be supported. Electronics Weekly. 2010-02-03 [2019-04-03]. (原始內容存檔於2020-08-07) (英國英語).
- ^ 存档副本. [2020-07-17]. (原始內容存檔於2017-07-05).
外部連結
[編輯]- FPGA 的軟 CPU 內核
- 12 種軟微處理器的詳細比較
- FPGA CPU 新聞 (頁面存檔備份,存於互聯網檔案館)
- 自由 CPU 網站 (頁面存檔備份,存於互聯網檔案館)
- Opencores.org 上的微處理器核心 (頁面存檔備份,存於互聯網檔案館)(該頁面的「Processor」索引標籤中)
- NikTech (頁面存檔備份,存於互聯網檔案館) 32 位 RISC 微處理器 MANIK