OpenRISC

A Wikipédiából, a szabad enciklopédiából

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ú 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 | forrásszöveg szerkesztése]

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 | forrásszöveg szerkesztése]

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 | forrásszöveg szerkesztése]

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épének fellövését 2012 júniusára tervezik az ISS űrállomásra. 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].

Szoftvertámogatás[szerkesztés | forrásszöveg szerkesztése]

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 | forrásszöveg szerkesztése]

Linux támogatás[szerkesztés | forrásszöveg szerkesztése]

A Linux kernel a 3.1. verziótól kezdve támogatja az OpenRISC platformot[10]. Az ehhez kapcsolódó implementáció a 32 bites OpenRISC 1000 család (or1k).[11] 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 | forrásszöveg szerkesztése]

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

Lásd még[szerkesztés | forrásszöveg szerkesztése]

Jegyzetek[szerkesztés | forrásszöveg szerkesztése]

  1. Damjan Lampret et al., "OpenRISC 1000 Architecture Manual", Rev 1.3, 15 Nov 2007. Available from the OpenCores website [1]
  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]
  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]
  4. OpenRISC 1000 Architecture Manual, Architecture Overview, p.14
  5. OpenCores - Call for OpenRISC ASIC donations
  6. OpenCores donation FAQ
  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.opencores.org and lists.openrisc.net on 8 April 2012 by Fredrick Bruhn, CEO of ÅAC Microtec
  10. 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.)
  11. Linux 3.1. Kernel Newbies. (Hozzáférés: 2011. október 17.)

Fordítás[szerkesztés | forrásszöveg szerkesztése]

  • 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.

További információk[szerkesztés | forrásszöveg szerkesztése]

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