Microprocesor moale - Soft microprocessor
Un microprocesor soft (numit și microprocesor softcore sau procesor soft ) este un nucleu de microprocesor care poate fi implementat în totalitate utilizând sinteza logică . Poate fi implementat prin diferite dispozitive semiconductoare care conțin logică programabilă (de exemplu, ASIC , FPGA , CPLD ), incluzând atât variații high-end, cât și variații ale mărfurilor.
Majoritatea sistemelor, dacă utilizează un procesor soft, folosesc doar un singur procesor soft. Cu toate acestea, câțiva designeri acoperă pe un FPGA cât mai multe nuclee moi pe măsură. În aceste sisteme multi-core , resursele utilizate rar pot fi partajate între toate nucleele dintr-un cluster.
În timp ce mulți oameni pun exact un microprocesor soft pe un FPGA, un FPGA suficient de mare poate conține două sau mai multe microprocesoare soft, rezultând un procesor multi-core . Numărul de procesoare soft pe un singur FPGA este limitat doar de dimensiunea FPGA. Unii oameni au pus zeci sau sute de microprocesoare moi pe un singur FPGA. Aceasta este o modalitate de a implementa paralelism masiv în calcul și poate fi aplicată, de asemenea, la calculul în memorie .
Un microprocesor moale și perifericele sale înconjurătoare implementate într-un FPGA este mai puțin vulnerabil la învechire decât un procesor discret.
Comparație de bază
| Procesor | Dezvoltator | Sursa deschisa | Suport autobuz | Note | Proiect acasă | Limbajul descrierii |
|---|---|---|---|---|---|---|
| bazat pe arhitectura setului de instrucțiuni ARM | ||||||
| Chihlimbar | Conor Santifort | LGPLv2.1 | Osă | ARMv2a conductă în 3 sau 5 etape | Pagina proiectului la Opencores | Verilog |
| Cortex-M1 | BRAŢ | Nu | [6] | 70–200 MHz, RISC pe 32 de biți | [7] | Verilog |
| bazat pe arhitectura setului de instrucțiuni AVR | ||||||
| Navré | Sébastien Bourdeauducq | da | SRAM direct | Atmel AVR - RISC pe 8 biți compatibil | Pagina proiectului la Opencores | Verilog |
| pAVR | Doru Cuturela | da | Atmel AVR - RISC pe 8 biți compatibil | Pagina proiectului la Opencores | VHDL | |
| bazat pe arhitectura setului de instrucțiuni MicroBlaze | ||||||
| AEMB | Shawn Tan | da | Osă | Compatibil cu MicroBlaze EDK 3.2 | AEMB | Verilog |
| MicroBlaze | Xilinx | Nu | PLB, OPB, FSL, LMB, AXI4 | Xilinx MicroBlaze | ||
| Foc deschis | Virginia Tech CCM Lab | da | OPB, FSL | Binar compatibil cu MicroBlaze | [8] | Verilog |
| SecretBlaze | LIRMM, Universitatea din Montpellier / CNRS | da | Osă | MicroBlaze ISA, VHDL | SecretBlaze | VHDL |
| bazat pe arhitectura setului de instrucțiuni MCS-51 | ||||||
| MCL51 | Laboratoare MicroCore | da | Nucleu 8051 bazat pe microsequencer cu amprentă foarte mică | 312 Artix-7 LUT-uri. Versiunea quad-core 8051 este de 1227 LUT. | MCL51 Core | |
| TSK51 / 52 | Altium | Fără drepturi de autor | Wishbone / Intel 8051 | Set de instrucțiuni Intel 8051 pe 8 biți compatibil, alternativ cu ciclu de ceas mai mic | Design încorporat pe Altium Wiki | |
| bazat pe arhitectura setului de instrucțiuni MIPS | ||||||
| BERI | Universitatea Cambridge | BSD | MIPS | Pagina proiectului | Bluespec | |
| Dossmatik | René Doss | CC BY-NC 3.0, cu excepția solicitanților comerciali, trebuie să plătească o taxă de licență . | Autobuz cu conducte | Instrucțiunile MIPS I stabilesc etapele conductelor | Dossmatik | VHDL |
| TSK3000A | Altium | Fără drepturi de autor | Osă | 32-bit R3000 stil RISC modificat la Harvard arhitectura CPU | Design încorporat pe Altium Wiki | |
| bazat pe arhitectura setului de instrucțiuni PicoBlaze | ||||||
| PacoBlaze | Pablo Bleyer | da | Compatibil cu procesoarele PicoBlaze | PacoBlaze | Verilog | |
| PicoBlaze | Xilinx | Nu | Xilinx PicoBlaze | VHDL, Verilog | ||
| bazat pe arhitectura setului de instrucțiuni RISC-V | ||||||
| f32c | Universitatea din Zagreb | BSD | AXI, SDRAM, SRAM | Subseturi ISA RISC-V / MIPS pe 32 de biți (retargetable), lanț de instrumente GCC | f32c | VHDL |
| NEORV32 | Stephan Nolting | BSD | Wishbone b4, AXI4 | rv32 [i / e] [m] [a] [c] [b] [u] [Zfinx] [Zicsr] [Zifencei], compatibil RISC-V, CPU și SoC disponibile, foarte personalizabile, lanț de instrumente GCC | GitHub OpenCores | VHDL |
| VexRiscv | SpinalHDL | da | AXI4 / Avalon | 32 de biți, RISC-V, până la 340 MHz pe Artix 7. Până la 1,44 DMIPS / MHz. | https://github.com/SpinalHDL/VexRiscv | VHDLVerilog (SpinalHDL) |
| bazat pe arhitectura setului de instrucțiuni SPARC | ||||||
| LEON2 (-FT) | ESA | da | AMBA2 | SPARC V8 | ESA | VHDL |
| LEON3 / 4 | Aeroflex Gaisler | da | AMBA2 | SPARC V8 | Aeroflex Gaisler | VHDL |
| OpenPiton | Princeton Parallel Group | da | Manycore SPARC V9 | OpenPiton | Verilog | |
| OpenSPARC T1 | Soare | da | Pe 64 de biți | OpenSPARC.net | Verilog | |
| Tacus / PIPE5 | TemLib | da | Autobuz cu conducte | SPARC V8 | TEMLIB | VHDL |
| bazat pe arhitectura setului de instrucțiuni x86 | ||||||
| CPU86 | HT-Lab | da | CPU compatibil 8088 în VHDL | cpu86 | VHDL | |
| MCL86 | Laboratoare MicroCore | da | 8088 BIU furnizat. Alții ușor de creat. | Ciclu precis 8088/8086 implementat cu un microsequencer. Utilizarea mai puțin de 2% a Kintex-7. | MCL86 Core | |
| s80x86 | Jamie Iles | GPLv3 | Personalizat | Miez GPLv3 compatibil 80186 | s80x86 | SystemVerilog |
| Zet | Zeus Gómez Marmolejo | da | Osă | clonare PC x86 | Zet | Verilog |
| ao486 | Aleksander Osman | 3-Clauză BSD | Avalon | Nucleu compatibil i486 SX | ao486 | Verilog |
| bazat pe arhitectura setului de instrucțiuni PowerPC / Power | ||||||
| PowerPC 405S | IBM | Nu | CoreConnect | PowerPC pe 32 de biți v.2.03 Cartea E | IBM | Verilog |
| PowerPC 440S | IBM | Nu | CoreConnect | PowerPC pe 32 de biți v.2.03 Cartea E | IBM | Verilog |
| PowerPC 470S | IBM | Nu | CoreConnect | PowerPC pe 32 de biți v.2.05 Cartea E | IBM | Verilog |
| Microwatt | IBM / OpenPOWER | CC-BY 4.0 | Osă | Dovada conceptului PowerISA 3.0 pe 64 de biți | Microwatt @ Github | VHDL |
| Chiselwatt | IBM / OpenPOWER | CC-BY 4.0 | Osă | PowerISA 3.0 pe 64 de biți | Chiselwatt @ Github | Daltă |
| Libre-SOC | Libre-SoC.org | BSD / LGPLv2 + | Osă | PowerISA 3.0 pe 64 de biți. Implementare CPU / GPU / VPU și instrucțiuni vectoriale personalizate | Libre-SoC.org | python / nMigen |
| A2I | IBM / OpenPOWER | CC-BY 4.0 | PBus personalizat | 64-bit PowerPC 2.6 Cartea E. În bază de comandă | A2I @ Github | VHDL |
| A2O | IBM / OpenPOWER | CC-BY 4.0 | PBus personalizat | PowerPC 2.7 pe 64 de biți Cartea E. Mie în afara comenzii | A2O @ Github | Verilog |
| Alte arhitecturi | ||||||
| ARC | ARC International , Synopsys | Nu | 16/32/64-bit ISA RISC | DesignWare ARC | Verilog | |
| ERIC5 | Entner Electronics | Nu | RISC pe 9 biți, de dimensiuni foarte mici, programabil C | ERIC5 | VHDL | |
| Procesor H2 | Richard James Howe | MIT | Personalizat | Mașină Stack de 16 biți, concepută pentru a executa Forth direct, mic | Procesor H2 | VHDL |
| SoC instantaneu | FPGA Cores | Nu | Personalizat | Extensie RISC-V M pe 32 de biți, SoC definită de C ++ | SoC instantaneu | VHDL |
| JOP | Martin Schoeberl | da | SimpCon / Wishbone (extensie) | Suport în timp real, orientat spre stivă, executând direct codul secundar Java | Jop | VHDL |
| LatticeMico8 | Zăbrele | da | Osă | LatticeMico8 | Verilog | |
| LatticeMico32 | Zăbrele | da | Osă | LatticeMico32 | Verilog | |
| LXP32 | Alex Kuznetsov | MIT | Osă | 32-bit, 3-etapă conductă, fișier de înregistrare bazat pe bloc RAM | lxp32 | VHDL |
| MCL65 | Laboratoare MicroCore | da | Nucleu 6502 bazat pe microsequencer cu amprentă foarte mică | 252 LUT-uri Spartan-7. Ciclul exact al ciclului. | MCL65 Core | |
| MRISC32-A1 | Marcus Geelnard | da | Wishbone , B4 / conductat | CPU RISC / Vector pe 32 de biți cu un ISA personalizat | MRISC32 | VHDL |
| NEO430 | Stephan Nolting | da | Wishbone (Avalon, AXI4-Lite) | Compatibil cu 16 biți MSP430 ISA, dimensiuni foarte mici, multe periferice, foarte personalizabile | NEO430 | VHDL |
| Nios , Nios II | Altera | Nu | Avalon | Altera Nios II | Verilog | |
| OpenRISC | OpenCores | da | Osă | Pe 32 de biți; realizat în ASIC, Actel, Altera, Xilinx FPGA. | [9] | Verilog |
| SpartanMC | TU Darmstadt / TU Dresda | da | Personalizat ( suport AXI în dezvoltare) | ISA pe 18 biți (suport GNU Binutils / GCC în dezvoltare) | SpartanMC | Verilog |
| SYNPIC12 | Miguel Angel Ajo Pelayo | MIT | Compatibil PIC12F, program sintetizat în porți | nbee.es | VHDL | |
| xr16 | Jan Grey | Nu | Autobuz abstract XSOC | CPU RISC pe 16 biți și SoC prezentate în revista Circuit Cellar # 116-118 | XSOC / xr16 | Schematic |
| YASEP | Yann Guidon | AGPLv3 | SRAM direct | 16 sau 32 de biți, RTL în VHDL și asm în JS , subset microcontroler: gata | yasep.org ( este necesar Firefox ) | VHDL |
| ZipCPU | Tehnologie Gisselquist | GPLv3 | Wishbone, B4 / conductat | CPU pe 32 de biți vizat pentru utilizarea minimă a resurselor FPGA | zipcpu.com | Verilog |
| ZPU | Zylin AS | da | Osă | CPU bazat pe stivă, cale de date 16/32 biți configurabilă, suport eCos | CPU Zylin | VHDL |
| RISC5 | Niklaus Wirth | da | Personalizat | Rularea unui sistem grafic complet Oberon, care include un editor și un compilator. Software-ul poate fi dezvoltat și rulat pe aceeași placă FPGA. | www.projectoberon.com/ | Verilog |
Vezi si
Referințe
linkuri externe
- Nucleuri de CPU moi pentru FPGA
- Comparație detaliată a 12 microprocesoare moi
- Știri CPU FPGA
- Site-ul web Freedom CPU
- Miezuri de microprocesor pe Opencores.org (Extindeți fila „Procesor”)
- NikTech Microprocesor RISC pe 32 de biți MANIK.