OpenRISC - OpenRISC

OpenRISC
Suunnittelija Alun perin Damjan Lampret, nyt OpenRISC -yhteisö (Stafford Horne jne.)
Bittiä 32-bittinen , 64-bittinen
Otettu käyttöön 2000 ; 21 vuotta sitten ( 2000 )
Versio 1.3
Design RISC
Koodaus Kiinteä
Endianismi Iso; toteuttamaton tynkä Pikku
Sivun koko 8 KiB
Laajennukset ORFPX32/64, ORVDX64
Avata Kyllä (LGPL / GPL), joten rojaltivapaa
Rekisterit
Yleinen tarkoitus 16 tai 32
Liukuluku Valinnainen

OpenRISC on projekti kehittää joukko avoin laitteisto pohjainen keskusyksikön (CPU) on perustettu RISC (RISC) periaatteita. Se sisältää ohjejoukkoarkkitehtuurin (ISA), joka käyttää avoimen lähdekoodin lisenssiä . Se on OpenCores -yhteisön alkuperäinen lippulaivahanke .

Ensimmäinen (ja vain vuodesta 2019 lähtien) arkkitehtoninen kuvaus on OpenRISC 1000: lle ("OR1k"), joka kuvaa 32- ja 64-bittisten prosessorien perhettä, joissa on valinnainen liukulukuaritmeettinen ja vektorinkäsittelytuki . OpenRISC 1200 toteuttamista tämän selityksen sen suunnitteli Damjan Lampret vuonna 2000, kirjoitettu Verilog laitteiston kuvauskieli (HDL).
Myöhemmän mor1kx -toteutuksen , jolla on joitain etuja verrattuna OR 1200: een, on suunnitellut Julius Baxter ja se on myös kirjoitettu Verilogissa.
Lisäksi on olemassa ohjelmistosimulaattoreita, jotka toteuttavat OR1k -määrityksen.

Laitteistosuunnitelma julkaistiin GNU Lesser General Public License (LGPL) tai Open Hardware Design License (OHDL) -lisenssillä , kun taas mallit ja laiteohjelmisto julkaistiin GNU General Public License (GPL) -lisenssillä.

Kehitettiin OpenRISC 1200 -järjestelmään perustuva viitejärjestelmä sirun (SoC) toteutuksessa, nimeltään OpenRISC Reference Platform System-on-Chip (ORPSoC). Useat ryhmät ovat osoittaneet ORPSoC: tä ja muita OR1200-pohjaisia ​​malleja, jotka toimivat kenttäohjelmoitavilla porttijärjestelmillä (FPGA), ja on tuotettu useita kaupallisia johdannaisia.

Myöhemmät SoC -mallit, jotka perustuvat myös OpenRisc 1000 -suorittimen toteutukseen, ovat FuseSoC, minSoC, OpTiMSoC ja MiSoC.

Käyttöohjeet

Käskyjoukko on kohtuullisen yksinkertainen MIPS-arkkitehtuurin kaltainen perinteinen RISC, joka käyttää 3-operandin latausvarastoarkkitehtuuria, jossa on 16 tai 32 yleistä rekisteriä ja kiinteä 32-bittinen käskypituus. Käskyjoukko on enimmäkseen identtinen eritelmän 32- ja 64-bittisten versioiden välillä, tärkein ero on rekisterin leveys (32 tai 64 bittiä) ja sivutaulukon asettelu. OpenRISC -määritys sisältää kaikki nykyaikaisille pöytä- ja palvelinprosessoreille yhteiset ominaisuudet: valvojatilan ja virtuaalimuistijärjestelmän, valinnaisen muistisivujen luku-, kirjoitus- ja suoritusohjauksen sekä ohjeet useiden prosessorien välisen synkronoinnin ja keskeytyksen käsittelemiseksi.

Toinen merkittävä ominaisuus on runsas joukko yksittäisiä käskyjä, useita tietoja ( SIMD ), jotka on tarkoitettu digitaaliseen signaalinkäsittelyyn .

Toteutukset

Image
OpenRISC -prototyyppi Flextronics (Flex) FPGA -kehityskortilla, jossa on uClinux

Useimmat toteutukset ovat kenttäohjelmoitavissa porttijärjestelmissä (FPGA), jotka antavat mahdollisuuden toistaa suunnittelua suorituskyvyn hinnalla.

Mukaan 2018 OpenRISC 1000 pidettiin vakaa, joten ORSoC (omistaja Opencoresin) alkoi Crowdfunding hanke rakentaa kustannustehokkaasti ASIC (ASIC) saada paremman suorituskyvyn. ORSoC kritisoi tätä yhteisöltä. Hanke ei saavuttanut tavoitetta.

Syyskuuhun 2021 mennessä avoimen lähdekoodin ASIC: tä ei ollut tuotettu.

Kaupalliset toteutukset

Useat kaupalliset organisaatiot ovat kehittäneet OpenRISC 1000 -arkkitehtuurin johdannaisia, mukaan lukien ORC32-1208 ORSoC: lta ja BA12, BA14 ja BA22 Beyond Semiconductorilta. Dynalith Systems tarjoaa iNCITE FPGA -prototyyppikortin, jolla voidaan ajaa sekä OpenRISC 1000 että BA12. Flextronics (Flex) ja Jennic Limited valmistivat OpenRISC: n osana sovelluskohtaista integroitua piiriä (ASIC). Samsung käyttää OpenRISC 1000 -järjestelmää siruissaan DTV-järjestelmässä (SDP83 B-sarja, SDP92 C-sarja, SDP1001/SDP1002 D-sarja, SDP1103/SDP1106 E-sarja). Allwinner Technologyn on raportoitu käyttävän OpenRISC-ydintä AR100-tehonsäätimessään, joka on osa A31 ARM -pohjaista SoC: ta.

Poljinnopeussuunnittelujärjestelmät ovat alkaneet käyttää OpenRISC: tä viitearkkitehtuurina työkaluketjujen dokumentoinnissa (esimerkiksi UVM -vertailuvirta, joka on nyt mukana Accellerassa ).

TechEdSat , ensimmäinen NASAn OpenRISC -arkkitehtuuriin perustuva Linux -tietokone, julkaistiin heinäkuussa 2012, ja se otettiin käyttöön lokakuussa 2012 kansainväliselle avaruusasemalle ÅAC Microtecin ja Pohjois -Amerikan ÅAC Microtecin toimittamien, rakentamien ja testaamien laitteistojen kanssa.

Akateeminen ja ei-kaupallinen käyttö

Avoimen lähdekoodin ansiosta OpenRISC on osoittautunut suosituksi akateemisissa ja harrastajapiireissä. Esimerkiksi Stefan Wallentowitz ja hänen tiiminsä Münchenin Technische-yliopiston integroitujen järjestelmien instituutissa ovat käyttäneet OpenRISC: tä moniydinprosessori- arkkitehtuurien tutkimuksessa. Ison- Britannian Open Source Hardware User Group ( OSHUG ) on järjestänyt kaksi kertaa istuntoja OpenRISC: ssä, kun taas harrastaja Sven-Åke Andersson on kirjoittanut kattavan blogin OpenRISC: stä aloittelijoille, mikä herätti Electronic Engineering Timesin ( EE Times ) kiinnostuksen. Sebastian Macke on toteuttanut jor1k, An OpenRISC 1000 emulaattori JavaScript , käynnissä Linux kanssa X Window System ja Wayland tukea.

Toolchain -tuki

OpenRISC -yhteisö on siirtänyt GNU -työkaluketjun OpenRISC: ään tukemaan ohjelmointikielien C ja C ++ kehittämistä . Tämän työkaluketjun avulla newlib- , uClibc- , musl- (julkaisu 1.1.4) ja glibc -kirjastot on siirretty prosessoriin. Dynalith tarjoaa OpenIDEAn, graafisen integroidun kehitysympäristön (IDE), joka perustuu tähän työkaluketjuun. Hanke LLVM: n liittämiseksi OpenRISC 1000 -arkkitehtuuriin alkoi vuoden 2012 alussa.

GCC 9 julkaistiin OpenRISC -tuella. [1]

OR1K Projekti tarjoaa käskykannan simulaattori , or1ksim. Lippulaivojen toteutus, OR1200, on Verilog HDL: n rekisterinsiirtotason (RTL) malli, josta voidaan rakentaa SystemC- pohjainen syklitarkka malli ORPSoC: hen. OpenRISC 1200: n nopea malli on saatavana myös Imperasin luoman Open Virtual Platforms (OVP) -aloitteen (katso OVPsim ) kautta.

Käyttöjärjestelmän tuki

Linux -tuki

Päälinjan Linux -ydin sai tuen OpenRISC: lle versiossa 3.1. Tässä julkaisussa yhdistetty toteutus on 32-bittinen OpenRISC 1000 -perhe (or1k). Aiemmin OpenRISC 1000 -arkkitehtuuri on korvattu päälinjaportilla.

RTOS -tuki

OpenRISCiin on siirretty useita reaaliaikaisia ​​käyttöjärjestelmiä (RTOS), mukaan lukien RTEMS , FreeRTOS ja eCos .

QEMU -tuki

Versiosta 1.2 lähtien QEMU tukee OpenRISC -alustojen emulointia.

Katso myös

Viitteet

Ulkoiset linkit