ÖppnaRISC | |
---|---|
Utvecklaren | öppna kärnor |
Lite djup | 32, 64 |
Arkitektur | RISC |
SK-kodning | fast (32 bitar) |
öppna? | Ja, LPL |
Register | |
Total | 16 eller 32 GPR |
OpenRISC är en RISC- arkitekturmikroprocessor med öppen källkod i hårdvarubeskrivningsspråket Verilog . Projektet skapades av OpenCores -gemenskapen och distribuerades under GNU LGPL -licensen . OpenRISC är implementerat i hårdvara och produceras framgångsrikt i form av integrerade kretsar och FPGA :er .
En enda version av arkitekturen, OpenRISC 1000 (eller1k), beskriver en familj av 32- och 64-bitars processorer med valfria tillägg: stöd för beräkningar av flyttal och stöd för vektoroperationer. [ett]
OpenCores-utvecklingsteamet publicerade den första implementeringen, OpenRISC 1200 , skriven på Verilog-språket . Hårdvarudelen av projektet är licensierad under LGPL, modeller och firmware är under GPL. System-on-chip-implementeringen med OpenRISC 1200 kallas ORPSoC ( OpenRISC Reference Platform System-on-Chip ). Prestandan hos ORPSoC och andra varianter av OR1200 har visats på FPGA :er . [2] [3]
GNU-verktygskedjan är portad till OpenRISC och stöder flera programmeringsspråk , såväl som Linux och μClinux .
OpenRISC har stöds av linux-kärnan sedan version 3.1.
Instruktionsuppsättningen (ORBIS32) är en enkel variant av RISC, liknande MIPS , och använder treoperandinstruktioner med fast längd (32-bitars). Att arbeta med minne är endast möjligt med hjälp av laddnings- och lagringsoperationer. 16 eller 32 allmänna register finns tillgängliga. 64-bitars och 32-bitarsversionerna av instruktioner är likartade i många avseenden, de viktigaste skillnaderna är: att öka registerstorleken till 64 bitar och ändra sidtabellformatet.
OpenRISC-specifikationerna inkluderar även moderna funktioner: supervisor-läge, virtuellt minne, möjligheten att ställa in läs/modifiera/exekvera rättigheter för varje sida i minnet, atominstruktioner, hantering av interprocessorundantag.
ORFP32X - Floating Point Extension (IEEE-754)
Från och med oktober 2011 finns det vissa oklarheter i specifikationen för 64-bitarsläge.
Valfritt stöd för SIMD- operationer kan implementeras.
Oftast implementerad på FPGA (FPGA som innehåller mer än 40 tusen 4-LUT rekommenderas).
Medlemmarna i OpenCores-projektet skulle släppa ett OpenRISC 1000-kompatibelt anpassat chip (ASIC) för att få mer prestanda. [4] 2011 började insamlingar. [5]
ORSoC erbjuder alternativen ORC32-1208, Beyond Semiconductor - BA12, BA14, BA22.
Flextronics International och Jennic Limited använde OpenRISC-kärnan som en del av sina egna ASIC:er. Samsung använder OpenRISC 1000 i DTV SoCs (SDP83 B-Series, SDP92 C-Series, SDP1001/SDP1002 D-Series, SDP1103/SDP1106 E-Series). [6]
Allwinner Technology använde OpenRISC i AR100-kontrollern, som är en del av A31 SoC (huvudprocessorn i systemet är ARM). [7]
Cadence Design Systems använder OpenRISC som referensarkitektur i dokumentation (till exempel för UVM-referensflödet . [8] )
Den experimentella nanosatellitdatorn TechEdSat , skapad på NASA med OpenRISC, lanserades på ISS i juli 2012. [9] [10]
Technical University München använder OpenRISC i multi-core forskning (chef - Stefan Wallentowitz ). [elva]
2013 introducerades jor1k-projektet, en OpenRISC 1000-emulator skriven i JavaScript som kan köra Linux och X Window System eller Wayland . [12]
Stöds av GCC för C och C++, libc är newlib eller uClibc . Dynalit tillhandahåller OpenIDEA, en utvecklingsmiljö . 2012 startades ett projekt för att porta LLVM till OpenRISC 1000 [13] .
OR1K-projektet tillhandahåller or1ksim- simulatorn . Huvudimplementationen, OR1200, kan användas som en RTL-modell. Det finns en SystemC ORPSoC-modell med klocknoggrannhet.
Höghastighetsmodellen OpenRISC 1200 säljs som Open Virtual Platforms av Imperas .
Linux-kärna sedan version 3.1. [14] (32-bitars processorer OpenRISC 1000 - eller 1k). [femton]
QEMU har stött arkitekturen sedan version 1.2 [16] .
Processorarkitekturer baserade på RISC -teknologier | |
---|---|