OpenRISC

OpenRISC
Udvikler åbne kerner
Lidt dybde 32, 64
Arkitektur RISC
SK kodning fast (32 bit)
åben? Ja, LPL
Registre
i alt 16 eller 32 GPR

OpenRISC  er en åben kildekode RISC arkitektur mikroprocessor i Verilog hardware beskrivelse sprog . Projektet blev skabt af OpenCores -fællesskabet og distribueret under GNU LGPL -licensen . OpenRISC er implementeret i hardware og produceres med succes i form af integrerede kredsløb og FPGA'er .

En enkelt version af arkitekturen, OpenRISC 1000 (eller 1k), beskriver en familie af 32- og 64-bit processorer med valgfri udvidelser: understøttelse af beregninger på flydende kommatal og understøttelse af vektoroperationer. [en]

OpenCores-udviklingsteamet udgav den første implementering, OpenRISC 1200 , skrevet på Verilog-sproget . Hardwaredelen af ​​projektet er licenseret under LGPL, modeller og firmware er under GPL. System-on-chip-implementeringen med OpenRISC 1200 kaldes ORPSoC ( OpenRISC Reference Platform System-on-Chip ). Ydeevnen af ​​ORPSoC og andre varianter af OR1200 er blevet demonstreret på FPGA'er . [2] [3]

GNU-værktøjskæden er overført til OpenRISC , der understøtter flere programmeringssprog , såvel som Linux og μClinux .

OpenRISC er blevet understøttet af linux-kernen siden version 3.1.

Kommandosystem

Instruktionssættet (ORBIS32) er en simpel variant af RISC, der ligner MIPS , og bruger tre-operand-instruktioner med fast længde (32-bit). Arbejde med hukommelse er kun muligt ved hjælp af indlæsnings- og lageroperationer. 16 eller 32 generelle registre er tilgængelige. 64-bit og 32-bit versionerne af instruktioner er ens i mange henseender, de vigtigste forskelle er: øgning af registerstørrelsen til 64 bit og ændring af sidetabelformatet.

OpenRISC-specifikationerne inkluderer også moderne funktioner: supervisortilstand, virtuel hukommelse, muligheden for at indstille læse/ændre/udføre rettigheder for hver side i hukommelsen, atominstruktioner, interprocessor-undtagelseshåndtering.

ORFP32X - Floating Point Extension (IEEE-754)

Fra oktober 2011 er der nogle uklarheder i 64-bit-tilstandsspecifikationen.

Valgfri support til SIMD- operationer kan implementeres.

Implementeringer

Oftest implementeret på FPGA (FPGA, der indeholder mere end 40 tusind 4-LUT'er anbefales).

Medlemmerne af OpenCores-projektet skulle frigive en OpenRISC 1000-kompatibel brugerdefineret chip (ASIC) for at få mere ydeevne. [4] I 2011 begyndte fundraising. [5]

Kommercielle muligheder

ORSoC tilbyder muligheder ORC32-1208, Beyond Semiconductor  - BA12, BA14, BA22.

Flextronics International og Jennic Limited brugte OpenRISC-kernen som en del af deres egne ASIC'er. Samsung bruger OpenRISC 1000 i DTV SoC'er (SDP83 B-Series, SDP92 C-Series, SDP1001/SDP1002 D-Series, SDP1103/SDP1106 E-Series). [6]

Allwinner Technology brugte OpenRISC i AR100 controlleren, som er en del af A31 SoC (hovedprocessoren i systemet er ARM). [7]

Cadence Design Systems bruger OpenRISC som referencearkitektur i dokumentation (for eksempel til UVM-referenceflowet . [8] )

TechEdSat- nanosatellit-eksperimentcomputeren , skabt på NASA ved hjælp af OpenRISC, blev lanceret på ISS i juli 2012. [9] [10]

Videnskabelige og ikke-kommercielle applikationer

Tekniske Universitet München bruger OpenRISC i multi-core forskning (leder - Stefan Wallentowitz ). [elleve]

I 2013 blev jor1k-projektet introduceret, en OpenRISC 1000-emulator skrevet i JavaScript, der er i stand til at køre Linux og X Window System eller Wayland . [12]

Udviklingsværktøjer

Understøttet af GCC til C og C++ er libc newlib eller uClibc . Dynalit leverer OpenIDEA, et udviklingsmiljø . I 2012 blev et projekt startet med at portere LLVM til OpenRISC 1000 [13] .

OR1K-projektet leverer or1ksim- simulatoren . Hovedimplementeringen, OR1200, kan bruges som en RTL-model. Der er en SystemC ORPSoC-model med ur-nøjagtighed.

Højhastigheds OpenRISC 1200-modellen sælges som Open Virtual Platforms af Imperas .

Operativsystemer

Linux

Linux-kerne siden version 3.1. [14] (32-bit processorer OpenRISC 1000 - eller 1k). [femten]

RTOS

RTEMS , FreeRTOS , eCos .

QEMU

QEMU har understøttet arkitekturen siden version 1.2 [16] .

Se også

Noter

  1. Damjan Lampret et al., "OpenRISC 1000 Architecture Manual", Rev 1.3, 15. nov 2007. Tekst arkiveret 18. december 2016 på Wayback Machine
  2. Patrick Pelgrims, Tom Tierens og 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. Tilgængelig onlineーカイゃさ . Hentet 3. marts 2009. Arkiveret fra originalen 27. november 2006. 
  3. Xiang Li og Lin Zuo, "Open source indlejret platform baseret på OpenRISC og DE2-70", kandidatafhandling, SoC-program, KTH , Sverige. Tilgængelig online [1] Arkiveret 6. oktober 2011 på Wayback Machine
  4. OpenCores - Call for OpenRISC ASIC-donationer Arkiveret 1. maj 2011.
  5. OpenCores donation FAQ (downlink) . Hentet 20. oktober 2013. Arkiveret fra originalen 26. april 2012. 
  6. Samsung Open Source Release Center Arkiveret 24. september 2013 på Wayback Machine , følg linkene → TV & VIDEO → TV → DTV → ETC → OR1200.zip
  7. Linux-sunxi-projektfællesskabets wiki-side på AR100-controlleren Arkiveret 28. april 2021 på Wayback Machine . Hentet den 20. juli 2013.
  8. UVM Reference Flow Arkiveret 26. november 2011 på Wayback Machine , Accelleras websted (udateret).
  9. Skriv til openrisc-mailinglisterne på lists.opencores.org og lists.openrisc.net den 8. april 2012 af Fredrick Bruhn, CEO for ÅAC Microtec
  10. Pressemeddelelse 11. oktober 2012, ÅAC Microtec AB.
  11. Multicore Architecture and Programming Model Co-Optimization (MAPCO)  (utilgængeligt link) , Stefan Wallentowitz, Thomas Wild og Andreas Herkersdorf. Forskningsplakat ved den sjette internationale sommerskole om avanceret computerarkitektur og kompilering for højtydende og indlejrede systemer (ACACES), Terrassa (Barcelona), Spanien, 11.-17. juli 2010.
  12. OpenRISC Emulator i JavaScript kan køre Wayland . Hentet 20. oktober 2013. Arkiveret fra originalen 19. oktober 2013.
  13. projektwiki-side Arkiveret 14. oktober 2013.
  14. git.kernel.org - linux/kernel/git/torvalds/linux-2.6.git/tree - arch/openrisc/ . git.kernel.org. Hentet: 17. oktober 2011.  (ikke tilgængeligt link)
  15. Linux 3.1 . Kernel-nybegyndere. Hentet 17. oktober 2011. Arkiveret fra originalen 18. oktober 2011.
  16. QEMU Changelog 1.2 . Hentet 20. oktober 2013. Arkiveret fra originalen 21. oktober 2013.

Links