OpenRISC

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.

Příkazový systém

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 .

Implementace

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]

Komerční opce

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]

Vědecké a nekomerční aplikace

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]

Vývojové nástroje

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 .

Operační systémy

Linux

Linuxové jádro od verze 3.1. [14] (32bitové procesory OpenRISC 1000 - or1k). [patnáct]

RTOS

RTEMS , FreeRTOS , eCos .

QEMU

QEMU podporuje architekturu od verze 1.2 [16] .

Viz také

Poznámky

  1. Damjan Lampret et al., "OpenRISC 1000 Architecture Manual", Rev 1.3, 15. listopadu 2007. Text archivován 18. prosince 2016 na Wayback Machine
  2. ↑ Patrick Pelgrims, Tom Tierens a Dries Driessens, „Základní hardwarový výukový program vlastního OpenRISC systému: Návrh vestavěného systému založený na soft- a hardcore FPGA“, De Nayer Instituut, Hogeschool voor Wetenschap & Kunst, 2004. Dostupné online. ) . Získáno 3. března 2009. Archivováno z originálu 27. listopadu 2006. 
  3. Xiang Li a Lin Zuo, "Open source embedded platforma založená na OpenRISC a DE2-70", magisterská disertační práce, program SoC, KTH , Švédsko. Dostupné online [1] Archivováno 6. října 2011 na Wayback Machine
  4. OpenCores – výzva k darům OpenRISC ASIC Archivováno 1. května 2011.
  5. Nejčastější dotazy k dárcovství OpenCores (odkaz dolů) . Získáno 20. října 2013. Archivováno z originálu dne 26. dubna 2012. 
  6. Samsung Open Source Release Center Archivováno 24. září 2013 na Wayback Machine , přejděte na odkazy → TV & VIDEO → TV → DTV → ETC → OR1200.zip
  7. Wiki stránka komunity projektu Linux-sunxi na ovladači AR100 Archivováno 28. dubna 2021 na Wayback Machine . Načteno 20. července 2013.
  8. Referenční tok UVM Archivováno 26. listopadu 2011 na webu Wayback Machine , Accellera (nedatováno).
  9. Zveřejněte na openrisc mailing listech na listech.opencores.org a listech.openrisc.net dne 8. dubna 2012 Fredrickem Bruhnem, CEO společnosti ÅAC Microtec
  10. Tisková zpráva z 11. října 2012, ÅAC Microtec AB.
  11. Multicore Architecture and Programming Model Co-Optimization (MAPCO)  (nedostupný odkaz) , Stefan Wallentowitz, Thomas Wild a Andreas Herkersdorf. Výzkumný plakát na šesté mezinárodní letní škole pokročilé počítačové architektury a kompilace pro vysoce výkonné a vestavěné systémy (ACACES), Terrassa (Barcelona), Španělsko, 11.–17. července 2010.
  12. Emulátor OpenRISC v JavaScriptu může spouštět Wayland . Získáno 20. října 2013. Archivováno z originálu 19. října 2013.
  13. wiki stránka projektu Archivováno 14. října 2013.
  14. git.kernel.org - linux/kernel/git/torvalds/linux-2.6.git/tree - arch/openrisc/ . git.kernel.org. Staženo: 17. října 2011.  (nedostupný odkaz)
  15. Linux 3.1 . Nováčci jádra. Získáno 17. října 2011. Archivováno z originálu 18. října 2011.
  16. Protokol změn QEMU 1.2 . Získáno 20. října 2013. Archivováno z originálu 21. října 2013.

Odkazy