OpenRISC 1200

Blockschema över OR1200-processorarkitekturen

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

Blockschema över OR1200 CPU/DSP

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.

externa länkar