OpenRISC - OpenRISC

OpenRISC
Návrhář Původně Damjan Lampret, nyní OpenRISC Společenství (Stafford Horne atd.)
Bity 32bitová , 64bitová
Představeno 2000 ; Před 21 lety ( 2000 )
Verze 1.3
Design RISC
Kódování Pevný
Endianness Velký; neimplementovaný útržek pro Little
Velikost stránky 8 KiB
Rozšíření ORFPX32/64, ORVDX64
Otevřeno Ano (LGPL / GPL), proto bez licenčních poplatků
Registry
Obecný účel 16 nebo 32
Plovoucí bod Volitelný

OpenRISC je projekt na vývoj řady open-source hardwarově založených centrálních procesorových jednotek (CPU) na zavedených principech RISC (Reduced Instruction Set Computer ). Obsahuje architekturu sady instrukcí (ISA) využívající licenci open-source . Jedná se o původní vlajkový projekt komunity OpenCores .

První (a pouze od roku 2019) architektonický popis je pro OpenRISC 1000 („OR1k“), popisující rodinu 32bitových a 64bitových procesorů s volitelnou podporou aritmetiky a vektorového zpracování s pohyblivou řádovou čárkou . OpenRISC 1200 implementace této specifikace byla navržena Damjan Lampret v roce 2000, zapsáno v Verilog programovacího jazyka (HDL).
Pozdější implementaci mor1kx , která má oproti OR 1200 určité výhody, navrhl Julius Baxter a je také napsána ve Verilogu.
Kromě toho existují softwarové simulátory, které implementují specifikaci OR1k.

Hardwarový design byl vydán pod GNU Lesser General Public License (LGPL), respektive Open Hardware Design License (OHDL), zatímco modely a firmware byly vydány pod GNU General Public License (GPL).

Byl vyvinut implementace referenčního systému na čipu (SoC) na základě OpenRISC 1200 s názvem OpenRISC Reference Platform System-on-Chip (ORPSoC). Několik skupin prokázalo ORPSoC a další návrhy založené na OR1200 běžící na polních programovatelných hradlových polích (FPGA) a bylo vyrobeno několik komerčních derivátů.

Pozdější návrhy SoC, také založené na implementaci CPU OpenRisc 1000, jsou FuseSoC, minSoC, OpTiMSoC a MiSoC.

Instrukční sada

Instrukční sada je poměrně jednoduchý MIPS architekturou podobný tradiční RISC využívající 3-operandovou architekturu load-store, se 16 nebo 32 obecnými registry a pevnou 32bitovou délkou instrukcí. Sada instrukcí je mezi 32- a 64bitovými verzemi specifikace většinou identická, přičemž hlavním rozdílem je šířka registru (32 nebo 64 bitů) a rozložení tabulky stránek. Specifikace OpenRISC obsahuje všechny funkce běžné pro moderní procesory pro stolní počítače a servery: režim supervizora a virtuální paměťový systém, volitelné ovládání čtení, zápisu a spouštění paměťových stránek a pokyny pro synchronizaci a zpracování přerušení mezi více procesory.

Další pozoruhodnou funkcí je bohatá sada instrukcí s jednou instrukcí a více dat ( SIMD ), určená pro zpracování digitálního signálu .

Implementace

Image
Protokol OpenRISC prototypoval na vývojové desce Flextronics (Flex) FPGA se systémem uClinux

Většina implementací je na poli programovatelných hradlových polích (FPGA), která dávají možnost iterovat design za cenu výkonu.

Do roku 2018 byl OpenRISC 1000 považován za stabilní, takže ORSoC (vlastník OpenCores) zahájil crowdfundingový projekt na vybudování nákladově efektivního integrovaného obvodu specifického pro aplikaci (ASIC), aby získal lepší výkon. ORSoC za to čelí kritice ze strany komunity. Projekt nedosáhl cíle.

V září 2021 nebyl vyroben žádný open-source ASIC.

Komerční implementace

Několik komerčních organizací vyvinulo deriváty architektury OpenRISC 1000, včetně ORC32-1208 od ORSoC a BA12, BA14 a BA22 od Beyond Semiconductor. Společnost Dynalith Systems poskytuje prototypovací desku iNCITE FPGA, na které lze provozovat OpenRISC 1000 i BA12. Flextronics (Flex) a Jennic Limited vyráběly OpenRISC jako součást integrovaného obvodu specifického pro aplikaci (ASIC). Samsung používá OpenRISC 1000 ve svých DTV systémových čipech (SDP83 B-Series, SDP92 C-Series, SDP1001/SDP1002 D-Series, SDP1103/SDP1106 E-Series). Allwinner Technology údajně používá jádro OpenRISC ve svém řadiči výkonu AR100, který je součástí SoC založeného na A31 ARM.

Cadence Design Systems začaly používat OpenRISC jako referenční architekturu při dokumentaci toků řetězců nástrojů (například referenční tok UVM , nyní přispěl do Accellera ).

TechEdSat , první počítač Linux založený na architektuře NASA OpenRISC , byl spuštěn v červenci 2012 a byl v říjnu 2012 nasazen na Mezinárodní vesmírnou stanici s hardwarem poskytnutým, vyrobeným a testovaným společnostmi ÅAC Microtec a ÅAC Microtec North America.

Akademické a nekomerční využití

OpenRISC, který je open source, se osvědčil v akademických a zájmových kruzích. Například Stefan Wallentowitz a jeho tým z Institutu integrovaných systémů na Technische Universität München použili OpenRISC při výzkumu architektur vícejádrových procesorů . Open Source Hardware User Group ( OSHUG ) ve Velké Británii má dvakrát spustit relací na OpenRISC, zatímco fandy Sven-Åke Andersson napsal komplexní blog na OpenRISC pro začátečníky, který přitahoval zájem elektroniky Times ( EE Times ). Sebastian Macke implementoval jor1k, emulátor OpenRISC 1000 v JavaScriptu , běží Linux s X Window System a podporou Wayland .

Podpora nástrojů

Komunita OpenRISC přenesla řetězec nástrojů GNU do OpenRISC za účelem podpory vývoje v programovacích jazycích C a C ++ . Pomocí tohoto řetězce nástrojů byly do procesoru přeneseny knihovny newlib , uClibc , musl (od verze 1.1.4) a glibc . Dynalith poskytuje OpenIDEA, grafické integrované vývojové prostředí (IDE) založené na tomto řetězci nástrojů. Projekt přenesení LLVM do architektury OpenRISC 1000 byl zahájen počátkem roku 2012.

Vydán GCC 9 s podporou OpenRISC. [1]

Projekt OR1K poskytuje simulátor sady instrukcí or1ksim. Vlajková implementace, OR1200, je model úrovně RTL ( Register -Transfer Level ) ve Verilog HDL, ze kterého lze v ORPSoC postavit model s přesným cyklem založeným na SystemC . Vysokorychlostní model OpenRISC 1200 je také k dispozici prostřednictvím iniciativy Open Virtual Platforms (OVP) (viz OVPsim ), kterou zřídila společnost Imperas.

Podpora operačního systému

Podpora Linuxu

Hlavní jádro Linuxu získalo podporu pro OpenRISC ve verzi 3.1. Implementace sloučená v této verzi je 32bitová rodina OpenRISC 1000 (or1k). Dříve architektura OpenRISC 1000 byla nahrazena portem hlavní řady.

Podpora RTOS

Do OpenRISC bylo přeneseno několik operačních systémů v reálném čase (RTOS), včetně RTEMS , FreeRTOS a eCos .

Podpora QEMU

Od verze 1.2 podporuje QEMU emulaci platforem OpenRISC.

Viz také

Reference

externí odkazy