OpenRISC 1200
OpenRISC 1200 (OR1200) är en implementering av OpenRISC 1000 RISC -arkitekturen med öppen källkod [1] Arkiverad 2017-01-15 på Wayback Machine .
En syntetiserbar CPU-kärna , den upprätthölls i många år av utvecklare på OpenCores.org , även om den aktiviteten sedan 2015 nu har tagits över av Free and Open Source Silicon Foundation på webbplatsen librecores.org . Verilog RTL-beskrivningen släpps under GNU Lesser General Public License (LGPL).
Arkitektur
IP -kärnan i OR1200 är implementerad i Verilog HDL . Som en kärna med öppen källkod är designen helt offentlig och kan laddas ner och modifieras av vem som helst. Den officiella implementeringen underhålls av utvecklare på OpenCores.org. Implementeringen specificerar en strömhanteringsenhet, felsökningsenhet, tick-timer, programmerbar avbrottskontroller (PIC), central processing unit (CPU) och hårdvara för minneshantering. Perifera system och ett minnesundersystem kan läggas till med användning av processorns implementering av ett standardiserat 32-bitars Wishbone -bussgränssnitt. OR1200 är tänkt att ha en prestanda som är jämförbar med en ARM10 -processorarkitektur.
CPU/DSP
OR1200 CPU är en implementering av 32-bitars ORBIS32 instruktionsuppsättningsarkitektur (ISA) och (valfritt) ORFP32X ISA som implementerar IEEE-754- kompatibelt enkelprecisionsflyttalsstöd. ISA har fem instruktionsformat och stöder två adresseringslägen: register indirekt med förskjutning och program-räknare relativ. Implementeringen har en 5-stegs pipeline med en enda fråga och kan utföras i en cykel enligt de flesta instruktioner. CPU:n innehåller också en MAC- enhet för att bättre stödja digital signalbehandling ( DSP) applikationer.
Minneshantering
OR1200-designen använder en Harvard-minnesarkitektur och har därför separata minneshanteringsenheter (MMU) för data- och instruktionsminnen. Dessa MMUs består var och en av en hash-baserad 1-vägs direktmappad översättningsbuffert (TLB) med sidstorlek på 8 KiB och en standardstorlek på 64 poster. TLB:erna är individuellt skalbara från 16 till 256 poster. Det finns också en envägs direktmappad cache för både instruktionsminnet och för dataminnet. Varje cache har en standardstorlek på 8 KiB, men båda är individuellt skalbara mellan 1 och 64 KiB. MMU inkluderar stöd för virtuellt minne.
Prestanda
Kärnan uppnår 1,34 CoreMarks per MHz vid 50 MHz på Xilinx FPGA-teknik.
I värsta fall är klockfrekvensen för OR1200 250 MHz vid en 0,18 μm 6LM tillverkningsprocess. Med hjälp av Dhrystone benchmark utför en 250 MHz OR1200-processor 250 Dhrystone miljoner instruktioner per sekund (DMIPS) i värsta fall. Uppskattad effektförbrukning för en 250 MHz-processor vid en 0,18 μm-process är mindre än 1 W vid full gas och mindre än 5 mW vid halvgas. [ citat behövs ]
Ansökningar
Generellt är OR1200 avsedd att användas i en mängd olika inbyggda applikationer, inklusive telekommunikation, bärbara media, hemunderhållning och bilapplikationer. GNU-verktygskedjan ( inklusive GCC ) har också framgångsrikt porterats till arkitekturen, även om den inte är felfri. Det finns en port för Linux-kärnan för OR1K som körs på OR1200. Nya portar för de inbäddade C-biblioteken newlib och uClibc är också tillgängliga för plattformen.
Genomföranden
OR1200 har framgångsrikt implementerats med hjälp av FPGA- och ASIC -teknologier.
Historia
Den första offentliga registreringen av OpenRISC 1000-arkitekturen är år 2000.
- ORSoC.se "OpenRISC 1200 development board" . mars 2009
- Cragie, Robert. "OpenRISC Resurssida." Asisi . 19 mars 2008.
externa länkar
- OR1200-sida på OpenCores.org Arkiverad 2010-02-10 på Wayback Machine
- OR1200-specifikation på OpenCores.org (varning: URL serverar kontexttyp text/vanlig för PDF-data) Arkiverad 2012-03-11 på Wayback Machine