OpenRISC | |
---|---|
Vývojář | opencores |
Bitová hloubka | 32, 64 |
Architektura | RISC |
SK kódování | pevné (32 bitů) |
OTEVŘENO? | Ano, LPL |
Registry | |
Celkový | 16 nebo 32 GPR |
OpenRISC je mikroprocesor architektury RISC s otevřeným zdrojovým kódem v jazyce popisu hardwaru Verilog . Projekt byl vytvořen komunitou OpenCores a distribuován pod licencí GNU LGPL . OpenRISC je implementován v hardwaru a je úspěšně vyráběn ve formě integrovaných obvodů a FPGA .
Jediná verze architektury, OpenRISC 1000 (nebo 1k), popisuje rodinu 32- a 64bitových procesorů s volitelnými rozšířeními: podpora výpočtů na číslech s pohyblivou řádovou čárkou a podpora vektorových operací. [jeden]
Vývojový tým OpenCores zveřejnil první implementaci, OpenRISC 1200 , napsanou v jazyce Verilog . Hardwarová část projektu je licencována pod licencí LGPL, modely a firmware jsou pod licencí GPL. Implementace system-on-chip s OpenRISC 1200 se nazývá ORPSoC (OpenRISC Reference Platform System-on-Chip ). Výkon ORPSoC a dalších variant OR1200 byl demonstrován na FPGA . [2] [3]
GNU toolchain je portován na OpenRISC , podporuje několik programovacích jazyků , stejně jako Linux a μClinux .
OpenRISC je podporováno linuxovým jádrem od verze 3.1.
Instrukční sada (ORBIS32) je jednoduchou variantou RISC, podobně jako MIPS , a používá instrukce se třemi operandy s pevnou délkou (32 bitů). Práce s pamětí je možná pouze pomocí operací načítání a ukládání. K dispozici je 16 nebo 32 univerzálních registrů. 64bitové a 32bitové verze instrukcí jsou si v mnoha ohledech podobné, hlavní rozdíly jsou: zvětšení velikosti registru na 64 bitů a změna formátu tabulky stránek.
Specifikace OpenRISC také zahrnují moderní funkce: režim dohledu, virtuální paměť, možnost nastavit práva ke čtení/úpravě/spouštění pro každou stránku paměti, atomické instrukce, zpracování výjimek mezi procesory.
ORFP32X – rozšíření s pohyblivou řádovou čárkou (IEEE-754)
Od října 2011 existují určité nejasnosti ve specifikaci 64bitového režimu.
Volitelně lze implementovat podporu operací SIMD .
Nejčastěji implementováno na FPGA (doporučuje se FPGA obsahující více než 40 tisíc 4-LUT).
Členové projektu OpenCores se chystali vydat vlastní čip (ASIC) kompatibilní s OpenRISC 1000, aby získali vyšší výkon. [4] V roce 2011 se začalo s fundraisingem. [5]
ORSoC nabízí možnosti ORC32-1208, Beyond Semiconductor - BA12, BA14, BA22.
Společnosti Flextronics International a Jennic Limited používaly jádro OpenRISC jako součást svých vlastních ASIC. Samsung používá OpenRISC 1000 v DTV SoC (SDP83 B-Series, SDP92 C-Series, SDP1001/SDP1002 D-Series, SDP1103/SDP1106 E-Series). [6]
Allwinner Technology použil OpenRISC v řadiči AR100, který je součástí A31 SoC (hlavním procesorem v systému je ARM). [7]
Cadence Design Systems používá OpenRISC jako referenční architekturu v dokumentaci (například pro referenční tok UVM . [8] )
Nanosatelitní experimentální počítač TechEdSat , vytvořený v NASA pomocí OpenRISC, byl vypuštěn na ISS v červenci 2012. [9] [10]
Technická univerzita v Mnichově využívá OpenRISC ve vícejádrovém výzkumu (vedoucí - Stefan Wallentowitz ). [jedenáct]
V roce 2013 byl představen projekt jor1k, emulátor OpenRISC 1000 napsaný v JavaScriptu schopný provozovat Linux a X Window System nebo Wayland . [12]
Podporováno GCC pro C a C++, libc je newlib nebo uClibc . Dynalith poskytuje OpenIDEA, vývojové prostředí . V roce 2012 byl zahájen projekt portování LLVM na OpenRISC 1000 [13] .
Projekt OR1K poskytuje simulátor or1ksim . Hlavní implementace, OR1200, může být použita jako RTL model. Existuje model SystemC ORPSoC s přesností hodin.
Vysokorychlostní model OpenRISC 1200 prodává Imperas jako Open Virtual Platforms .
Linuxové jádro od verze 3.1. [14] (32bitové procesory OpenRISC 1000 - or1k). [patnáct]
QEMU podporuje architekturu od verze 1.2 [16] .
Architektury procesorů založené na technologiích RISC | |
---|---|