Szoft mikroprocesszor
A szoft mikroprocesszor (másként szoft processzor, vagy lágy / lágymagos / softcore mikroprocesszor) teljes egészében logikai szintézissel megvalósítható mikroprocesszor-mag. Különböző programozható logikát tartalmazó félvezető eszközökkel valósítható meg (például ASIC, FPGA, CPLD), mind a csúcskategóriás, mind a hétköznapi, általános felhasználású változatok körében.[1] A processzorokat gyakran a hozzájuk tartozó perifériás eszközökkel együtt valósítják meg, ekkor az ilyen rendszert „programozható egylapkás rendszernek” (System on Programmable Chip, SoPC) nevezik.
A lágy mag, „softcore” egy processzor-implementáció, amely alacsony szintű leírásként érhető el valamely hardverleíró nyelven, például VHDL-ben vagy Verilogban, egyes gyártóktól közvetlenül konfigurációs fájlként, amivel elkerülhető a forráskód terjesztése. A lágymagos processzorok természetüknél fogva nagyon rugalmas architektúrák, és elsősorban FPGA-kban használják őket. Egy ilyen processzor átkonfigurálható, az adott felhasználás korlátaihoz való alkalmazkodás érdekében (perifériák, teljesítmény, erőforrások, energiafogyasztás, funkciók stb.).
A szoft processzorok előnye, hogy optimálisan konfigurálhatók, a felesleges funkciók kiküszöbölhetők vagy egyszerűen elhagyhatók a kialakításból, és a nyílt forrású rendszerekben a lefordítandó kód is gyakran változtatható. A lágymagos processzor könnyebben karbantartható, mint a fizikai magok, és ASIC-re portolható.
A legtöbb rendszer csak egyetlen szoftveres processzort alkalmaz, léteznek azonban olyan tervek, amelyek teljesen kihasználják a rendelkezésre álló helyet, azaz annyi lágy magot tartalmaznak egy FPGA-n, amennyit az eszköz kapacitása megenged.[2] Ezekben a többmagos rendszerekben a ritkán használt erőforrásokat a klaszterben lévő összes mag általában közösen, megosztva használja.
Míg legtöbb esetben pontosan egy szoft mikroprocesszort helyeznek el egy FPGA-n, egy megfelelően nagy FPGA két vagy több szoft mikroprocesszort is képes befogadni, ami így többmagos processzort eredményez. Az egy FPGA-n elhelyezhető szoft processzorok számát a processzorterv és az FPGA mérete korlátozza.[3] Van rá példa, hogy több tucat vagy akár több száz szoft mikroprocesszort helyeznek el egyetlen FPGA-n.[4][5][6][7][8] Ez a masszív párhuzamosság megvalósításának egyik módja a számítástechnikában, és hasonló módon alkalmazható a memórián belüli számítástechnikában is.
Az FPGA-n megvalósított szoft mikroprocesszor és kapcsolódó perifériái kevésbé hajlamosak az elavulásra, mint egy diszkrét processzor.[9][10][11]
Magok összehasonlítása
[szerkesztés | forrásszöveg szerkesztése]| Processzor | fejlesztő | nyílt forrású? | busztámogatás | megjegyzés | projektoldal | leíró nyelv |
|---|---|---|---|---|---|---|
| ARM utasításkészlet-architektúra alapú | ||||||
| Amber | Conor Santifort | LGPLv2.1 | Wishbone | ARMv2a 3 fokozatú vagy 5 fokozatú futószalag | Projektoldal az Opencores-on | Verilog |
| Cortex-M1 | Arm | Nem | 70 – 200 MHz, 32 bites RISC | Verilog | ||
| AVR utasításkészlet-architektúra alapú | ||||||
| Navré | Sébastien Bourdeauducq | Igen | Közvetlen SRAM | Atmel AVR-kompatibilis 8 bites RISC | Projektoldal az Opencores-on | Verilog |
| pAVR | Doru Cuturela | Igen | Atmel AVR-kompatibilis 8 bites RISC | Projektoldal az Opencores-on | VHDL | |
| softavrcore | Andras Pal | Igen | Standard AVR buszok (maghoz kapcsolt I/O, szinkron SRAM, szinkron program-ROM) | Atmel AVR-kompatibilis 8 bites RISC (max. AVR5), perifériákkal és egylapkás rendszer (SoC) jellemzőkkel együtt | Projektoldal az Opencores-on | Verilog |
| MicroBlaze utasításkészlet-architektúra alapú | ||||||
| AEMB | Shawn Tan | Igen | Wishbone | MicroBlaze EDK 3.2 kompatibilis | AEMB | Verilog |
| MicroBlaze | Xilinx | Nem | PLB, OPB, FSL, LMB, AXI4 | Xilinx MicroBlaze | ||
| OpenFire | Virginia Tech CCM Lab | Igen | OPB, FSL | Binárisan kompatibilis a MicroBlaze-zel | [12] | Verilog |
| SecretBlaze | LIRMM, University of Montpellier / CNRS | Igen | Wishbone | MicroBlaze ISA, VHDL | SecretBlaze | VHDL |
| MCS-51 utasításkészlet-architektúra alapú | ||||||
| MCL51 | MicroCore Labs | Igen | Nagyon kis méretű mikroszekvenszer-alapú 8051 mag | 312 Artix-7 LUT; a négymagos 8051-es változat 1227 LUT méretű | MicroCore Labs, MCL51 mag | |
| TSK51/52 | Altium | jogdíjmentes | Wishbone / Intel 8051 | 8 bites Intel 8051 utasításkészlettel kompatibilis, alacsonyabb órajelű alternatíva | ‘Embedded Design’ az Altium Wikin | |
| MIPS utasításkészlet-architektúra alapú | ||||||
| BERI | Cambridge-i Egyetem | BSD | MIPS | Projektoldal | Bluespec | |
| Dossmatik | René Doss | CC BY-NC 3.0, kivétel: a kereskedelmi célú felhasználóknak licencdíjat kell fizetniük | Futószalagos sín | MIPS I utasításkészlet futószalagfokozatok | Dossmatik | VHDL |
| TSK3000A | Altium | jogdíjmentes | Wishbone | 32 bites R3000 stílusú RISC, módosított Harvard-architektúrájú CPU | Beágyazott rendszerek az Altium Wikin | |
| PicoBlaze utasításkészlet-architektúra alapú | ||||||
| PacoBlaze | Pablo Bleyer | Igen | Kompatibilis a PicoBlaze processzorokkal | PacoBlaze | Verilog | |
| PicoBlaze | Xilinx | Nem | Xilinx PicoBlaze | VHDL, Verilog | ||
| RISC-V utasításkészlet-architektúra alapú | ||||||
| f32c | Zágrábi Egyetem | BSD | AXI, SDRAM, SRAM | 32 bites, RISC-V / MIPS ISA részhalmazok (adaptálható más hardverekre, retargetable), GCC eszközkészlet | f32c | VHDL |
| NEORV32 | Stephan Nolting | BSD | Wishbone b4, AXI4 | rv32[i/e] [m] [a] [c] [b] [u] [Zfinx] [Zicsr] [Zifencei], RISC-V-kompatibilis, CPU & egylapkás rendszer (SoC) elérhető, nagyfokú testreszabhatóság, GCC eszközkészlet | GitHub, OpenCores | VHDL |
| VexRiscv | SpinalHDL | Igen | AXI4 / Avalon | 32 bites RISC-V, max. órajele 340 MHz, Artix 7 FPGA-n; teljesítmény max. 1,44 DMIPS/MHz | Github, SpinalHDL / VexRiscv | VHDLVerilog (SpinalHDL) |
| SPARC utasításkészlet-architektúra alapú | ||||||
| LEON2(-FT) | ESA | Igen | AMBA2 | SPARC V8 | ESA | VHDL |
| LEON3/4 | Aeroflex Gaisler | Igen | AMBA2 | SPARC V8 | Aeroflex Gaisler | VHDL |
| OpenPiton | Princeton Parallel Group | Igen | Sokmagos SPARC V9 | OpenPiton | Verilog | |
| OpenSPARC T1 | Sun | Igen | 64 bites | OpenSPARC.net | Verilog | |
| Tacus/PIPE5 | TemLib | Igen | Futószalagos sín | SPARC V8 | TEMLIB | VHDL |
| x86 utasításkészlet-architektúra alapú | ||||||
| CPU86 | HT-Lab | Igen | 8088-kompatibilis CPU VHDL-ben | cpu86 | VHDL | |
| MCL86 | MicroCore Labs | Igen | 8088 BIU[a] rendelkezésre áll, több más könnyen létrehozható | Ciklushelyes, mikroszekvenszerrel megvalósított 8088/8086, Kintex-7 FPGA-n 2%-os kihasználtsággal megvalósítható | MCL86 Core | |
| s80x86 | Jamie Iles | GPLv3 | Egyedi | 80186-kompatibilis GPLv3 mag | s80x86 | SystemVerilog |
| Zet | Zeus Gómez Marmolejo | Igen | Wishbone | x86 PC klón | Zet | Verilog |
| ao486 | Aleksander Osman | 3 záradékos BSD | Avalon | i486 SX kompatibilis mag | ao486 | Verilog |
| PowerPC/Power utasításkészlet-architektúra alapú | ||||||
| PowerPC 405S | IBM | Nem | CoreConnect | 32 bites PowerPC v.2.03 „Book E” | IBM | Verilog |
| PowerPC 440S | IBM | Nem | CoreConnect | 32 bites PowerPC v.2.03 „Book E” | IBM | Verilog |
| PowerPC 470S | IBM | Nem | CoreConnect | 32 bites PowerPC v.2.05 „Book E” | IBM | Verilog |
| Microwatt | IBM/OpenPOWER | CC-BY 4.0 | Wishbone | 64 bites PowerISA 3.0 megvalósíthatósági tanulmány | Microwatt @ Github | VHDL |
| Chiselwatt | IBM/OpenPOWER | CC-BY 4.0 | Wishbone | 64 bites PowerISA 3.0 | Chiselwatt @ Github | Chisel |
| Libre-SOC | Libre-SoC.org | BSD/LGPLv2+ | Wishbone | 64 bites PowerISA 3.0. CPU/GPU/VPU implementáció és egyedi vektorutasítások | Libre-SoC.org | python/nMigen |
| A2I | IBM/OpenPOWER | CC-BY 4.0 | Egyedi PBus | 64 bites PowerPC 2.6 „Book E”, sorrendi végrehajtású mag | A2I @ Github | VHDL |
| A2O | IBM/OpenPOWER | CC-BY 4.0 | Egyedi PBus | 64 bites PowerPC 2.7 „Book E”, nem sorrendi végrehajtású mag (out of order) | A2O @ Github | Verilog |
| Egyéb architektúrák | ||||||
| ARC | ARC International, Synopsys | Nem | 16/32/64 bites RISC ISA | DesignWare ARC | Verilog | |
| ERIC5 | Entner Electronics | Nem | 9 bites RISC, nagyon kis méret, C-ben programozható | ERIC5 Archiválva 2016. március 5-i dátummal a Wayback Machine-ben. | VHDL | |
| H2 CPU | Richard James Howe | MIT | Egyedi | 16 bites veremgép, Forth közvetlen végrehajtására tervezve, kicsi | H2 CPU | VHDL |
| Instant SoC | FPGA Cores | Nem | Egyedi | 32 bites RISC-V M kiterjesztés, a SoC C++-ban definiálva | Instant SoC | VHDL |
| JOP | Martin Schoeberl | Igen | SimpCon / Wishbone (kiterjesztés) | Veremszervezésű, kemény valós idejű támogatás, Java bájtkód közvetlen végrehajtására | Jop | VHDL |
| LatticeMico8 | Lattice | Igen | Wishbone | LatticeMico8 | Verilog | |
| LatticeMico32 | Lattice | Igen | Wishbone | LatticeMico32 | Verilog | |
| LXP32 | Alex Kuznetsov | MIT | Wishbone | 32 bites, 3 fokozatú futószalag, blokk RAM-on alapuló regisztertár | lxp32 | VHDL |
| MCL65 | MicroCore Labs | Igen | Nagyon kis méretű mikroszekvenszer-alapú 6502 mag | 252 Spartan-7 LUT, pontos órajelciklusok | MCL65 mag | |
| MRISC32-A1 | Marcus Geelnard | Igen | Wishbone, B4/futószalagos | 32 bites RISC / Vektor CPU, MRISC32 ISA-t implementál | MRISC32 | VHDL |
| NEO430 | Stephan Nolting | Igen | Wishbone (Avalon, AXI4-Lite) | 16 bites MSP430 ISA-kompatibilis, nagyon kis méret, sok periféria, nagyfokú testreszabhatóság | NEO430 | VHDL |
| Nios, Nios II | Altera | Nem | Avalon | Altera Nios II | Verilog | |
| OpenRISC | OpenCores | Igen | Wishbone | 32 bites; ASIC-ben megvalósítva, Actel, Altera, Xilinx FPGA. | Verilog | |
| SpartanMC | TU Darmstadt / TU Dresden | Igen | Egyedi (AXI támogatás fejlesztés alatt) | 18 bites ISA (GNU binutils / GCC támogatás fejlesztés alatt) | SpartanMC | Verilog |
| SYNPIC12 | Miguel Angel Ajo Pelayo | MIT | PIC12F kompatibilis, kapukkal szintetizált program (kapumátrixban megvalósított programok) | nbee.es | VHDL | |
| xr16 | Jan Gray | Nem | XSOC absztrakt sín | 16 bites RISC CPU és egylapkás rendszer (SoC), megjelent a ‘Circuit Cellar Magazine’ 116.–118. számában | XSOC/xr16 | kapcsolási rajz, Verilog |
| YASEP | Yann Guidon | AGPLv3 | Közvetlen SRAM | 16 vagy 32 bites, RTL VHDL-ben és JavaScript asm, mikrovezérlő-alrendszer: elkészült | yasep.org (Firefox szükséges) | VHDL |
| ZipCPU | Gisselquist Technology | GPLv3 | Wishbone, B4/futószalagos | 32 bites CPU, célja az FPGA-erőforrások minimális kihasználása | zipcpu.com | Verilog |
| ZPU | Zylin AS | Igen | Wishbone | Veremszervezésű CPU, konfigurálható 16/32 bites adatút, eCos (beágyazott valósidejű operációs rendszer) támogatással | Zylin CPU | VHDL |
| RISC5 | Niklaus Wirth | Igen | Egyedi | Képes futtatni egy teljes grafikus Oberon rendszert, amely egy szerkesztőt és egy fordítót is tartalmaz. A szoftverek fejlesztése és futtatása ugyanazon az FPGA-kártyán történik. | Project Oberon weboldal | Verilog |
- ↑ BIU: Bus Interface Unit
Egyes fejlesztők megvalósításai
[szerkesztés | forrásszöveg szerkesztése]A 2000-es években az IBM szorosan együttműködött az FPGA-gyártókkal, főleg a Xilinx-szel. Ebben az időszakban elérhetővé tették a PowerPC architektúra szintetizálható (IP core) változatait, amelyeket be lehetett ágyazni az FPGA-k logikai celláiba. Ezen kívül az IBM fejlesztette ki a CoreConnect lapkára integrált sínrendszert is, ami sokáig a szoft processzoros rendszerek (például a Xilinx MicroBlaze) szabványos buszrendszere volt.[13]
Az IBM 2019-ben teljesen nyílttá tette a Power ISA utasításkészlet-architektúrát. Ez azt jelenti, hogy ha ma egy hardvertervező Power-alapú szoft processzort szeretne FPGA-ra integrálni, azt nem az IBM-től vásárolja meg, hanem az OpenPOWER Alapítvány (korábban: Power.org) és a Linux Alapítvány által kezelt szabadon elérhető, nyílt forráskódú projektekből (pl. Microwatt vagy A2I magok) töltheti le.
Az IBM jelenleg (2024-től) a saját fejlesztésű, fizikai szilícium (hard core) processzoraira koncentrál, mint például a szerverekbe és szuperszámítógépekbe szánt IBM Power10 / Power11, vagy a nagyszámítógépes rendszerekbe épített, mesterséges intelligenciára optimalizált IBM Telum / Telum II processzorok.[14]
Jegyzetek
[szerkesztés | forrásszöveg szerkesztése]- ↑
Andrew Felch (2011. október 7.). "Zet soft core running Windows 3.0". 2018. október 13. dátummal az eredeti címről archiválva.
(a későbbi archivált oldalak eltulajdonítva)
- ↑ "Embedded.com - FPGA Architectures from 'A' to 'Z' : Part 2". 2007. október 8. dátummal az eredeti címről archiválva. Hozzáférés: 2012. augusztus 18. "FPGA architektúrák a-tól Z-ig" by Clive Maxfield 2006
- ↑ MicroBlaze Soft Processor: Frequently Asked Questions Archiválva 2011. október 27-i dátummal a Wayback Machine-ben.
- ↑ István Vassányi. "Processzortömbök megvalósítása FPGA-kon". 1998.
- ↑ Zhoukun WANG és Omar HAMMAMI. "24 processzoros System-on-Chip FPGA terv egylapkás hálózattal".
- ↑ John Kent. "Micro16 Array - Egy Egyszerű CPU-tömb"
- ↑ Kit Eaton. "1000 magos CPU Elérve: A jövőbeli asztali géped szuperszámítógép lesz". 2011.
- ↑ "A tudósok Több mint 1000 magot sűrítettek egy csipre". 2011. Archiválva 2012. március 5-i dátummal a Wayback Machine-ben.
- ↑ Joe DeLaere. ""Top 7 Reasons to Replace Your Microcontroller with a MAX 10 FPGA"" (PDF).
- ↑ John Swan; Tomek Krzyzak. (2008). ""Using FPGAs to avoid microprocessor obsolescence"". 2016. október 13. dátummal az eredeti címről archiválva.
- ↑ Staff (2010. február 3.). "FPGA processor IP needs to be supported". Electronics Weekly (brit angol nyelven). Hozzáférés: 2019. április 3.
- ↑ "Overview :: OpenFire Processor Core :: OpenCores".
- ↑ "New IBM Processor Innovations To Accelerate AI on Next-Generation IBM Z Mainframe Systems". IBM Newsroom (angol nyelven). IBM. 2024. augusztus 6. Hozzáférés: 2026. július 5.
Fordítás
[szerkesztés | forrásszöveg szerkesztése]Ez a szócikk részben vagy egészben a Soft microprocessor című angol Wikipédia-szócikk ezen változatának fordításán alapul. Az eredeti cikk szerkesztőit annak laptörténete sorolja fel. Ez a jelzés csupán a megfogalmazás eredetét és a szerzői jogokat jelzi, nem szolgál a cikkben szereplő információk forrásmegjelöléseként.
Források
[szerkesztés | forrásszöveg szerkesztése]További információk
[szerkesztés | forrásszöveg szerkesztése]- Soft CPU Cores for FPGA
- 12 szoftveres mikroprocesszor részletes összehasonlítása
- FPGA CPU News
- Freedom CPU webhely
- Mikroprocesszor-magok az Opencores.org webhelyen (a „Processzor” fül kinyitásával elérhető)
- NikTech – MANIK 32 bites RISC mikroprocesszor
- Fehér Béla, Szántó Péter, Lazányi János, Raikovich Tamás (2017. május 29.). "Digitális rendszerek tervezése FPGA áramkörökkel
SRAM FPGA Architektúrák" (pdf). BME-MIT FPGA laboratórium oktatási anyag. BME, Mesterséges Intelligencia és Rendszertervezés Tanszék. 169. o. Hozzáférés: 2026. július 5.{{cite web}}: CS1 karbantartás: több név: szerzőfelsorolás (link) – egyes fogalmak magyarázata
Kapcsolódó szócikkek
[szerkesztés | forrásszöveg szerkesztése]- Egylapkás rendszer (system-on-chip, SoC), hálózat-a-lapkán (NoC)
- Újrakonfigurálható számítás
- Field-programmable gate array (FPGA)
- VHDL
- Verilog, SystemVerilog nyelv
- Hardveres gyorsítás