ÖppnaRISC

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

Kommandosystem

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.

Implementeringar

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]

Kommersiella alternativ

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]

Vetenskapliga och icke-kommersiella tillämpningar

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]

Utvecklingsverktyg

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 .

Operativsystem

Linux

Linux-kärna sedan version 3.1. [14] (32-bitars processorer OpenRISC 1000 - eller 1k). [femton]

RTOS

RTEMS , FreeRTOS , eCos .

QEMU

QEMU har stött arkitekturen sedan version 1.2 [16] .

Se även

Anteckningar

  1. Damjan Lampret et al., "OpenRISC 1000 Architecture Manual", Rev 1.3, 15 nov 2007. Text Arkiverad 18 december 2016 på Wayback Machine
  2. ↑ Patrick Pelgrims, Tom Tierens och Dries Driessens, "Basic Custom OpenRISC System Hardware Tutorial: Embedded system design based on Soft- and Hardcore FPGA's", De Nayer Instituut, Hogeschool voor Wetenschap & Kunst, 2004. Tillgänglig online. ) . Hämtad 3 mars 2009. Arkiverad från originalet 27 november 2006. 
  3. Xiang Li och Lin Zuo, "Inbäddad plattform med öppen källkod baserad på OpenRISC och DE2-70", magisteravhandling, SoC-programmet, KTH , Sverige. Tillgänglig online [1] Arkiverad 6 oktober 2011 på Wayback Machine
  4. OpenCores - Uppmaning om OpenRISC ASIC-donationer Arkiverad 1 maj 2011.
  5. ↑ Vanliga frågor om OpenCores-donation (nedlänk) . Hämtad 20 oktober 2013. Arkiverad från originalet 26 april 2012. 
  6. Samsung Open Source Release Center Arkiverad 24 september 2013 på Wayback Machine , följ länkarna → TV & VIDEO → TV → DTV → ETC → OR1200.zip
  7. Linux-sunxi-projektgemenskapens wikisida på AR100-kontrollern Arkiverad 28 april 2021 på Wayback Machine . Hämtad 20 juli 2013.
  8. UVM-referensflöde Arkiverad 26 november 2011 på Wayback Machine , Accelleras webbplats (odaterat).
  9. Skriv till openrisc sändlistorna på lists.opencores.org och lists.openrisc.net den 8 april 2012 av Fredrick Bruhn, VD för ÅAC Microtec
  10. Pressmeddelande 11 oktober 2012, ÅAC Microtec AB.
  11. Multicore Architecture and Programming Model Co-Optimization (MAPCO) (ej  tillgänglig länk) , Stefan Wallentowitz, Thomas Wild och Andreas Herkersdorf. Forskningsposter vid den sjätte internationella sommarskolan om avancerad datorarkitektur och kompilering för högpresterande och inbyggda system (ACACES), Terrassa (Barcelona), Spanien, 11–17 juli 2010.
  12. OpenRISC Emulator i JavaScript kan köra Wayland . Hämtad 20 oktober 2013. Arkiverad från originalet 19 oktober 2013.
  13. projektwikisida Arkiverad 14 oktober 2013.
  14. git.kernel.org - linux/kernel/git/torvalds/linux-2.6.git/tree - arch/openrisc/ . git.kernel.org. Hämtad: 17 oktober 2011.  (inte tillgänglig länk)
  15. Linux 3.1 . Nybörjare i kärnan. Hämtad 17 oktober 2011. Arkiverad från originalet 18 oktober 2011.
  16. QEMU Changelog 1.2 . Hämtad 20 oktober 2013. Arkiverad från originalet 21 oktober 2013.

Länkar