Az OpenRISC az OpenCores közösség vezető projektje. A projekt célja, hogy elősegítse általános célú, nyílt forrású hardverként megvalósítható RISC CPU architektúrák kifejlesztését. Az első és eddig az egyetlen leírás az OpenRISC 1000 architektúráé, amely egy 32 és 64 bites processzorcsalád specifikációja, DSP lehetőségekkel, opcionális lebegőpontos és vektorprocesszálási támogatással.[1]

Az OpenCores közösség egy csoportja megalkotta az első implementációt is, az OpenRISC 1200 processzor Verilog hardverleíró nyelven készült leírását. A hardverleírás LGPL, míg a modellek és a firmware GPL alatt kerültek közreadásra. Ennek egy referencia-megvalósítása az ORPSoC (OpenRISC Reference Platform System-on-Chip) nevű OpenRISC 1200 alapú egylapkás rendszer (SoC). Több csoport is készített FPGA-n futó ORPSoC és egyéb OR1200-alapú konstrukciókat.[2][3]

Utasításkészlet szerkesztés

Az utasításkészlet a modern RISC háromoperandusos load-store architektúrák egy egyszerű és átgondolt példája. 16 vagy 32 általános célú regisztert használhat, az utasítások hossza rögzített 32 bit. A regiszterek 32 vagy 64 bitesek lehetnek. Az utasításkészlet majdnem azonos mind 32 bites, mind 64 bites regiszterspecifikáció esetén, az eltérés csak a regiszterhosszban és a laptábla kialakításban van. Az OpenRISC specifikáció tartalmazza a modern asztali és szerverprocesszorok összes jellemzőjét: szupervizor-mód, virtuális memóriarendszer, választható írás-olvasás-végrehajtás ellenőrzés a memórialapokon, processzorok közötti szinkronizációs és megszakításkezelő utasítások multiprocesszoros rendszerekhez. A processzor támogatja mind a Harvard-architektúra (külön adat- és utasítás cache/MMU), mind a Stanford-architektúra (egyesített adat- és utasítás cache/MMU) szerinti kialakítást.[4]

A 64 bites specifikáció még nem kész: a 2011 októberi állapotában még vannak befejezetlen vagy bizonytalan részek.

Az utasításkészlet digitális jelfeldolgozásra szolgáló SIMD utasítások gazdag készletét tartalmazza.

Megvalósításai szerkesztés

A legtöbb megvalósítás FPGA-n készül, ez ui. lehetővé teszi a kívánt teljesítmény függvényében a kialakítás fokozatos megközelítését. Az OpenRISC 1000 jelenleg stabil OpenCores projektnek számít és lehetővé teszi költséghatékony, javított teljesítményű ASIC-ek készítését.[5] A közösség 2011-ben egy adakozásra felszólító felhívást tett közzé azzal a céllal, hogy 2012 első negyedévében elkészülhessen az első ASIC.[6]

Üzleti célú felhasználás szerkesztés

Több kereskedelmi szervezet fejlesztett OpenRISC 1000 architektúrán alapuló eszközöket, ilyenek pl. az ORSoC (ez a cég tartja fenn a opencores.org webhelyet) ORC32-1208 jelű multifunkciós chipje, vagy a Beyond Semiconductor BA12, BA14 és BA22 chipjei. A Dynalith Systems terméke az iNCITE FPGA prototípuskártya, amely OpenRISC 1000 és BA12 futtatására képes. A Flextronics International és a Jennic Limited gyártmánya ASIC alkotóelemként tartalmaz OpenRISC processzort. A Samsung OpenRISC 1000 chipet használ DTV SoC rendszereiben (SDP83 B-Series, SDP92 C-Series, SDP1001/SDP1002 D-Series, SDP1103/SDP1106 E-Series).[7] A Cadence Design Systems újabban OpenRISC-et használ referencia-architektúraként a tervezési folyamatleírások dokumentációjában (ld.pl. az Accellera számára készített UVM reference flow[8]).

A TechEdSat, a NASA első OpenRISC architektúrájú Linux alapú számítógépe 2012 júliusában készült el és 2012 októberében telepítették a Nemzetközi Űrállomásra (ISS). Ennek hardverét az ÅAC Microtec és az ÅAC Microtec North America svéd cégek tervezték, készítették, tesztelték és szállították.[9][10][11]

Szoftvertámogatás szerkesztés

Az OpenCores közösség átültette a GNU toolchain-t az OpenRISC platformra, C és C++ nyelveken történő programfejlesztés támogatásához. A fejlesztőeszközöket használva elkészült a newlib és uClibc könyvtárak portja is. Rendelkezésre áll az OpenIDEA grafikus fejlesztőkörnyezet a Dynalith-tól, ami szintén a fenti eszköztáron alapul.

Az OR1K projectben rendelkezésre áll egy utasításkészlet-szimulátor, az or1ksim. A vezető megvalósítás, az OR1200 egy Verilog HDL-ben meglévő RTL modell, amelyből SystemC-alapú ciklushelyes modell fordítható az ORPSoC-on (ORPSoC chipen). Az OpenRISC 1200 nagy sebességű modellje is elérhető az Imperas által kezdeményezett Open Virtual Platforms, OVP platformon.

Operációs rendszerek szerkesztés

Linux támogatás szerkesztés

A Linux kernel a 3.1. verziótól kezdve támogatja az OpenRISC platformot.[12] Az ehhez kapcsolódó implementáció a 32 bites OpenRISC 1000 család (or1k).[13] A µClinux portja az OpenRISC 1000 architektúrára már előbb elkészült, de ezt feleslegessé tette a hivatalos port.

RTOS támogatás szerkesztés

Több valós idejű operációs rendszerRTOS – portja is elkészült az OpenRISC platformhoz, mint pl. a RTEMS, a FreeRTOS és a eCos.

Kapcsolódó szócikkek szerkesztés

Jegyzetek szerkesztés

  1. Damjan Lampret et al., "OpenRISC 1000 Architecture Manual", Rev 1.3, 15 Nov 2007. Available from the OpenCores website [1] Archiválva 2016. december 18-i dátummal a Wayback Machine-ben
  2. Patrick Pelgrims, Tom Tierens and Dries Driessens, "Basic Custom OpenRISC System Hardware Tutorial: Embedded system design based upon Soft- and Hardcore FPGA’s", De Nayer Instituut, Hogeschool voor Wetenschap & Kunst, 2004. Elérhető online [2] Archiválva 2006. november 27-i dátummal a Wayback Machine-ben
  3. Xiang Li and Lin Zuo, "Open source embedded platform based on OpenRISC and DE2-70", Masters dissertation, SoC program, KTH, Sweden. Elérhető online [3] Archiválva 2011. október 6-i dátummal a Wayback Machine-ben
  4. OpenRISC 1000 Architecture Manual, Architecture Overview, p.14
  5. OpenCores - Call for OpenRISC ASIC donations. [2011. május 1-i dátummal az eredetiből archiválva]. (Hozzáférés: 2012. április 30.)
  6. OpenCores donation FAQ. [2012. április 26-i dátummal az eredetiből archiválva]. (Hozzáférés: 2012. április 30.)
  7. Samsung Open Source Release Center, a következő linkeket követve: → TV & VIDEO → TV → DTV → ETC → OR1200.zip
  8. UVM Reference Flow, Accellera website (undated).
  9. Post to the openrisc mailing lists at lists.openrisc.net on 8 April 2012 by Fredrick Bruhn, CEO of ÅAC Microtec (levelezőlistán megjelent hír)
  10. (2012-10-11). "Swedish breakthrough in space on NASA satellite with electronics from ÅAC Microtec". Sajtóközlemény. Archiválva 2014. január 18-i dátummal a Wayback Machine-ben Archivált másolat. [2014. január 18-i dátummal az eredetiből archiválva]. (Hozzáférés: 2022. július 4.)
  11. (2012-10-11). "Svenskt genombrott i rymden på NASA-satellit med elektronik från ÅAC Microtec" (in sv). Sajtóközlemény.[halott link] Alt URL
  12. git.kernel.org - linux/kernel/git/torvalds/linux-2.6.git/tree - arch/openrisc/. git.kernel.org. (Hozzáférés: 2011. október 17.)[halott link]
  13. Linux 3.1. Kernel Newbies. (Hozzáférés: 2011. október 17.)

Fordítás szerkesztés

  • Ez a szócikk részben vagy egészben az OpenRISC című angol Wikipédia-szócikk 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.

További információk szerkesztés

(A hivatkozások mind angol nyelvűek.)