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. 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. 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. Van rá példa, hogy több tucat vagy akár több száz szoft mikroprocesszort helyeznek el egyetlen FPGA-n. 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.
Magok összehasonlítása
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 Wishbone ARMv2a 3 fokozatú vagy 5 fokozatú futószalag Projektoldal az Opencores-on Verilog Cortex-M1 Arm , 32 bites RISC Verilog AVR utasításkészlet-architektúra alapú Navré Sébastien Bourdeauducq Közvetlen SRAM Atmel AVR-kompatibilis 8 bites RISC Projektoldal az Opencores-on Verilog pAVR Doru Cuturela Atmel AVR-kompatibilis 8 bites RISC Projektoldal az Opencores-on VHDL softavrcore Andras Pal 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 Wishbone MicroBlaze EDK 3.2 kompatibilis AEMB Verilog MicroBlaze Xilinx PLB, OPB, FSL, LMB, AXI4 Xilinx MicroBlaze OpenFire Virginia Tech CCM Lab OPB, FSL Binárisan kompatibilis a MicroBlaze-zel Verilog SecretBlaze LIRMM, University of Montpellier / CNRS Wishbone MicroBlaze ISA, VHDL SecretBlaze VHDL MCS-51 utasításkészlet-architektúra alapú MCL51 MicroCore Labs 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 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 MIPS Projektoldal Bluespec Dossmatik René Doss Futószalagos sín MIPS I utasításkészlet futószalagfokozatok Dossmatik VHDL TSK3000A Altium 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 Kompatibilis a PicoBlaze processzorokkal PacoBlaze Verilog PicoBlaze Xilinx Xilinx PicoBlaze VHDL, Verilog RISC-V utasításkészlet-architektúra alapú f32c Zágrábi Egyetem 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 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 AXI4 / Avalon 32 bites RISC-V, max. órajele , Artix 7 FPGA-n; teljesítmény max. Github, SpinalHDL / VexRiscv VHDLVerilog (SpinalHDL) SPARC utasításkészlet-architektúra alapú LEON2(-FT) ESA AMBA2 SPARC V8 ESA VHDL LEON3/4 Aeroflex Gaisler AMBA2 SPARC V8 Aeroflex Gaisler VHDL OpenPiton Princeton Parallel Group Sokmagos SPARC V9 OpenPiton Verilog OpenSPARC T1 Sun 64 bites OpenSPARC.net Verilog Tacus/PIPE5 TemLib Futószalagos sín SPARC V8 TEMLIB VHDL x86 utasításkészlet-architektúra alapú CPU86 HT-Lab 8088-kompatibilis CPU VHDL-ben cpu86 VHDL MCL86 MicroCore Labs 8088 BIU 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 Egyedi 80186-kompatibilis GPLv3 mag s80x86 SystemVerilog Zet Zeus Gómez Marmolejo Wishbone x86 PC klón Zet Verilog ao486 Aleksander Osman Avalon i486 SX kompatibilis mag ao486 Verilog PowerPC/Power utasításkészlet-architektúra alapú PowerPC 405S IBM CoreConnect 32 bites PowerPC v.2.03 „Book E” IBM Verilog PowerPC 440S IBM CoreConnect 32 bites PowerPC v.2.03 „Book E” IBM Verilog PowerPC 470S IBM CoreConnect 32 bites PowerPC v.2.05 „Book E” IBM Verilog Microwatt IBM/OpenPOWER Wishbone 64 bites PowerISA 3.0 megvalósíthatósági tanulmány Microwatt @ Github VHDL Chiselwatt IBM/OpenPOWER Wishbone 64 bites PowerISA 3.0 Chiselwatt @ Github Chisel Libre-SOC Libre-SoC.org Wishbone 64 bites PowerISA 3.0. CPU/GPU/VPU implementáció és egyedi vektorutasítások Libre-SoC.org python/nMigen A2I IBM/OpenPOWER Egyedi PBus 64 bites PowerPC 2.6 „Book E”, sorrendi végrehajtású mag A2I @ Github VHDL A2O IBM/OpenPOWER 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 16/32/64 bites RISC ISA DesignWare ARC Verilog ERIC5 Entner Electronics 9 bites RISC, nagyon kis méret, C-ben programozható ERIC5 VHDL H2 CPU Richard James Howe Egyedi 16 bites veremgép, Forth közvetlen végrehajtására tervezve, kicsi H2 CPU VHDL Instant SoC FPGA Cores Egyedi 32 bites RISC-V M kiterjesztés, a SoC C++-ban definiálva Instant SoC VHDL JOP Martin Schoeberl 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 Wishbone LatticeMico8 Verilog LatticeMico32 Lattice Wishbone LatticeMico32 Verilog LXP32 Alex Kuznetsov Wishbone 32 bites, 3 fokozatú futószalag, blokk RAM-on alapuló regisztertár lxp32 VHDL MCL65 MicroCore Labs Nagyon kis méretű mikroszekvenszer-alapú 6502 mag 252 Spartan-7 LUT, pontos órajelciklusok MCL65 mag MRISC32-A1 Marcus Geelnard Wishbone, B4/futószalagos 32 bites RISC / Vektor CPU, MRISC32 ISA-t implementál MRISC32 VHDL NEO430 Stephan Nolting 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 Avalon Altera Nios II Verilog OpenRISC OpenCores Wishbone 32 bites; ASIC-ben megvalósítva, Actel, Altera, Xilinx FPGA. Verilog SpartanMC TU Darmstadt / TU Dresden 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 PIC12F kompatibilis, kapukkal szintetizált program (kapumátrixban megvalósított programok) nbee.es VHDL xr16 Jan Gray 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 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 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 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 VHDLRISC5 Niklaus Wirth 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
Egyes fejlesztők megvalósításai IBM 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.
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.
Jegyzetek
Fordítás
Források További információk 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 – egyes fogalmak magyarázata
Kapcsolódó szócikkek 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
* Kategória:Mikroprocesszorok