MIPS arkitektur

Innen elektronikk og informatikk er MIPS-arkitekturen ( akronym av den engelske mikroprosessoren uten i nterlocked p ipeline - trinn ) en datamaskinarkitektur for RISC - mikroprosessorer utviklet av MIPS Computer Systems Inc. (nå MIPS Technologies Inc. ). Utformingen av arkitekturen og settet med instruksjoner er enkel og grei, ofte brukt som casestudie i universitetskurs rettet mot studiet av prosessorarkitekturer; denne arkitekturen har påvirket arkitekturen til mange andre RISC-prosessorer, inkludert DEC Alpha -familien : den brukes for eksempel. innen SGI -datamaskiner , og har funnet utbredt spredning innen innebygde systemer , Windows CE - enheter og Cisco - rutere , og til og med Nintendo 64 , Sony PlayStation , PlayStation 2 og PlayStation Portable-konsoller bruker MIPS-prosessorer.

Historie

I 1981 startet professor John L. Hennessy ved Stanford University en forskningsgruppe om RISC-arkitekturer. Forskning fra utviklingsteamet førte til utviklingen av den første generasjonen MIPS-prosessorer. På den tiden var det kjent at pipelining kunne brukes til å øke prosessorytelsen . Selv om denne teknikken var enkel å utvikle, var den ikke lett å implementere. For å fungere riktig krever rørledningene at de ulike enhetene er synkronisert og at dataene til de ulike instruksjonene ikke overlapper hverandre, derfor plasseres blokker ( forrigling ) inne i rørledningene som overvåker fullføringen av de ulike instruksjonene og får rørledningen til å fortsette først når alle stadier er klare. Denne mekanismen garanterer riktig kjøring av programmet, men introduserer ofte stall i CPU-en som reduserer ytelsen.

Det som kjennetegner MIPS-prosjektet er at alle instruksjoner måtte fullføres av rørledningstrinnene i en enkelt klokkesyklus for ikke å introdusere forsinkelser og stopp i rørledningen. Dette tillot også å fjerne mye av elektronikken knyttet til synkroniseringen av stadiene, og forenklet prosjektet. Dette valget førte til å forenkle og fremskynde prosjektet, men medførte også svært åpenbare ulemper som eliminering av nyttige instruksjoner som multiplikasjon og divisjon. Noen observatører påpekte at MIPS-prosjektet (og mer generelt RISC-filosofien) krevde at programmereren erstattet multiplikasjoner og divisjoner med en rekke enklere operasjoner, og at ytelsesforbedringen derfor ble eliminert eller betydelig redusert. Disse observatørene innså ikke at forbedringen avledet fra den stallløse rørledningsstrukturen i stor grad kompenserte for den langsomme multiplikasjonen og divisjonene.

I 1984 ble Hennessy overbevist om det kommersielle potensialet til prosjektet og forlot universitetet midlertidig for å grunnlegge MIPS Computer Systems. Selskapet introduserte R2000 i 1985 og etterfølgeren R3000 i 1988. Disse prosessorene, basert på en 32-bits arkitektur, var grunnlaget for mange kommersielle systemer, blant de største brukerne av CPUer skilte Silicon Graphics som brukte CPUer arbeidsstasjoner . Den kommersielle utformingen av MIPS CPUer skilte seg fra den akademiske utformingen for tilstedeværelsen av multiplikasjons- og divisjonsinstruksjonene og følgelig for tilstedeværelsen av Interlock-enheter mellom stadiene, noe som motsier selve navnet på mikroarkitekturen . I 1991 introduserte MIPS sin første 64-bits prosessor, R4000 . MIPS sto overfor en alvorlig finanskrise på den tiden, og derfor bestemte SGI seg for å kjøpe opp selskapet for å sikre kommersialiseringen av 64-bits prosessoren da den var essensiell for arbeidsstasjonene. Som et datterselskap av SGI skiftet selskapet navn til MIPS Technologies .

På begynnelsen av 1990-tallet begynte MIPS å lisensiere sine prosessorer til tredjepartsleverandører. Dette valget var rimelig med tanke på enkelheten og kraften i designet. MIPS-prosessorer begynte å erstatte CISC-prosessorer i mange innebygde applikasjoner , det bør huskes at prisen på en prosessor er relatert til antall transistorer og antall prosessorpinner, så MIPS-prosessorer var fordelaktige for deres lave bruk av transistorer. Sun Microsystems forsøkte å gjenskape suksessen til MIPS-prosessorer ved å lisensiere SPARC-prosessorene . Suns prosjekt var mislykket og SPARC-prosessorer spredte seg ikke inn i den innebygde industrien. MIPS-prosessorer i løpet av 1990-tallet fikk høye markedsandeler i det innebygde segmentet, og i 1997 feiret selskapet sin 48. million solgte, noe som gjorde MIPS til den første RISC-prosessoren som overgikk den populære Motorola 68000 -familien . I 1998 skilte SGI seg fra MIPS Technologies og i dag er mer enn halvparten av selskapets inntjening avhengig av solgte lisenser mens den resterende inntekten kommer fra utvikling av prosessorer for eksterne kjøpere som skal produseres av eksterne leverandører.

I 1999 kunngjorde MIPS muligheten for å lisensiere to basisprosessorer. 32-bits MIPS32 -prosessoren og 64-biters MIPS64 - prosessoren. NEC , Toshiba og SiByte (senere kjøpt opp av Broadcom ) fikk MIPS64-lisensen så snart den ble kunngjort. Philips , LSI Logic og IDT kjøpte lisensen senere. Suksess etter suksess for øyeblikket er MIPS-prosessorer blant de mest brukte prosessorene for applikasjoner med høy datakraft, men som krever lavt spredning som PDA , Set-top-boks etc. En klar indikator på prosjektets godhet kommer fra valget av Freescale (et spin-off- selskap av Motorola ) til å bruke MIPS-kjernen for sine prosessorer i stedet for PowerPC -kjernen den eier.

Muligheten til å lisensiere MIPS-kjernen har fått mange mennesker til å starte selskaper som produserer tilpassede versjoner av prosessoren. Et av de første selskapene var Quantum Effect Devices . Noen MIPS-designere som designet R4300- prosessoren forlot MIPS for å grunnlegge SandCraft- selskapet og utvikle R5432 for NEC som senere utviklet R7100 , en av de første innebygde applikasjonsprosessorene som var i stand til å utføre instruksjoner som ikke er i orden . Designerne av den første StrongARM delte seg i to grupper og grunnla to selskaper som utviklet prosessorer basert på MIPS-kjerner. Den første gruppen grunnla SiByte og utviklet SB-1250 en av de første høyytelses system-on-a-chip (SOC)-prosessorer på MIPS-arkitektur. Den andre gruppen grunnla Alchemy Semiconductor (senere kjøpt opp av AMD ) som produserte Au-1000 , en SOC -prosessor ) for lavstrømsapplikasjoner. Lexra brukte en kjerne av MIPS-typen og la til DSP -utvidelser for behandling av lyddata og multithreading -utvidelser for å administrere lokale nettverk. MIPS anla to søksmål mot Lexra for brudd på hennes immaterielle rettigheter. Den første ble raskt løst da Lexra lovet å ikke annonsere sine prosessorer som MIPS-kompatible. Den andre rettssaken var mye lengre og skadet virksomheten til begge selskapene; konkluderte med at MIPS Technologies ga Lextra en gratis lisens og betydelig økonomisk kompensasjon.

MIPS Families

Den første kommersielle MIPS var R2000 som ble introdusert i 1985 . Denne prosessoren sammenlignet med versjonen utviklet ved universitetet la til instruksjoner for multiplikasjon og divisjon som ble behandlet uavhengig av prosessoren. Nye instruksjoner ble lagt til for å hente resultatene produsert ved multiplikasjoner og divisjoner. Ironisk nok var disse instruksjonene blokkerende (de brukte interlock) og motsier derfor selve prosessornavnet mens de forbedret kodetettheten.

R2000 kan bruke big-endian- eller little-endian- koding . Den var utstyrt med 32 generelle 32-bits registre, men brukte ikke registervindusteknikken da den ble ansett som en potensiell flaskehals. Registervinduet ble derimot brukt av prosessorer som AMD 29000 og DEC Alpha . Programtelleren var dessuten ikke direkte tilgjengelig. R2000 kunne håndtere opptil fire koprosessorer, hvorav en var integrert i prosessoren og ble brukt til å håndtere unntak og feller mens de tre andre var tilgjengelig for annen bruk. En kan være den valgfrie R2010- prosessoren, en koprosessor som implementerer en FPU med trettito 32-bits registre, som kan brukes som 16 64-bits registre for dobbel presisjon.

R3000 -etterfølgeren til R2000 ble introdusert i 1988 , la til en 32KB cache for instruksjoner og data (senere utvidet til 64KB) som støttet cachekoherens for å lette utviklingen av multiprosessorsystemer. Selv om støtte for flere prosesser delvis mislyktes, ble R3000 brukt av mange multiprosessorsystemer. R3000 inkluderte en MMU , en vanlig funksjon for prosessorer fra den tiden. R3000 var den første MIPS-prosessoren som solgte mer enn en million prosessorer. R3000A-prosessoren ble brukt i Sonys PlayStation - konsoll og var en 40 Megahertz-versjon. I likhet med R2000, kan R3000 også få selskap av en matematisk koprosessor, R3010 . Pacemips produserte R3400 og IDT produserte R3500 , som ikke var noe mer enn en R3000 og R3010 i én brikke. Toshiba R3900 er praktisk talt den første SoC for de første Windows CE - baserte håndholdte enhetene .

R4000 ble introdusert i 1991 og utvidet MIPS-instruksjonssettet til 64-bit. FPU-en ble integrert i prosessoren for å lage en veldig rask enkeltbrikke (den ble presentert med en frekvens på 100 MHz). For å oppnå en høy frekvens reduserte imidlertid designerne cachen til 8 KB og hver tilgang krevde fortsatt 3 sykluser. Den høye frekvensen ble oppnådd ved å lage en dyp rørledning (kalt superrørledningen av selskapet). Etter presentasjonen av R4000 ble mange andre versjoner presentert. Blant de ulike versjonene er R4400 som ble presentert i 1993. Prosessoren var utstyrt med 16 KB cache, en 64-bits arkitektur og en kontroller for en ekstern andre nivå cache på 1 megabyte.

Etter å ha blitt en avdeling av SGI, utviklet MIPS den rimelige R4200-prosessoren og senere R4300 , en 32-bits ekstern buss R4200. Nintendo 64 brukte VR4300-prosessoren produsert av NEC som var en lavprisversjon av MIPS R4300i [ 1]

Quantum Effect Devices (QED) var et selskap som ble født fra oppgivelsen av MIPS av noen designere som utviklet R4600- , R4700- , R4650- og R5000-prosessorene . QED-designerne var skuffet over R4000-familiens valg om å ofre cache for høye driftsfrekvenser. I stedet la designerne vekt på tilstedeværelsen av en stor hurtigbuffer (to klokkesykluser for å få tilgang til den) og gjorde effektiv bruk av silisium. R4600 og R4700 ble brukt av SGI for sine lavpris SGI Indy -maskiner . De var de første MIPS-prosessorene som ble brukt av Cisco for ruterne. R4650 ble brukt til WebTV set-top-boksen. R5000 FPU var mer effektiv enn R4000 FPU, faktisk ga de R5000-baserte SGI Indy-maskinene betydelig bedre grafikkytelse enn de R4000-baserte SGI Indy-maskinene. QED introduserte senere RM7000- og RM9000-prosessorene for innebygde applikasjoner som nettverksenheter og laserskrivere. QED ble kjøpt opp av PMC-Sierra i august 2000 .

I 1994 ble R8000 introdusert, den første superskalare MIPS . Prosessoren var utstyrt med to ALUer og var i stand til å utføre to operasjoner per klokkesyklus. Prosessordesignet ble delt over seks brikker. En integrert inneholdt utførelsesenhetene for heltallene (med en 16KB cache for data og 16KB for instruksjoner). En andre IC inneholdt FPU, to ICer inneholdt en cache på andre nivå, og en IC arbitrerte cachebussen. Den siste integrerte var en ASIC cache-kontroller. Prosjektet var basert på to komplette rørledninger med dobbel presisjonsmultiplikasjon og sumenheter. Rørledninger ble matet fra 4 MB andre-nivå cache. R8000 ble brukt av SGI Power Challenge-serverne til å begynne med og av Power Indigo2-serverne deretter. Den lave ytelsen i heltallsberegning og dens høye kostnad frarådet mange kjøpere, selv om ytelsen i flytepunktberegning ble verdsatt av vitenskapelige organer. R8000 var bare på markedet i et år, så det er en ganske sjelden MIPS-prosessor.

I 1995 ble R10000 introdusert . Prosessoren var basert på en enkelt integrert design og ble designet for å være mye raskere enn R8000. Den var utstyrt med en 32KB primær cache for data og instruksjoner. Prosessoren var superskalær og håndterte utførelse av instruksjoner i uorden. Selv om den var utstyrt med en enkelt FPU og en enkelt buss til minne, gjorde dens høye heltallsytelse, lave kostnader og høye tetthet R10000 til det foretrukne valget for de fleste kunder. Påfølgende prosjekter var basert på arkitekturen til R10000. R12000 var en miniatyrisert versjon av R10000 for å øke driftsfrekvensen. R14000 - prosessoren var en versjon med høyere frekvens med ekstra støtte for DDR SDRAM -minne for cache på andre nivå. I tillegg var prosessoren utstyrt med en ekstern 200 MHz-buss for å øke ytelsen. Den senere versjonen kalt R16000 og R16000A hadde en høyere driftsfrekvens, en høyere cache på første nivå og en mindre størrelse på grunn av den nye produksjonsteknologien.

MIPS mikroprosessor spesifikasjoner
Mal Frekvens [MHz] År Prosess [µm] Transistorer [millioner] Dysestørrelse [mm²] IO Pin Strøm [W] Spenning Dcache [k] Icache [k] Scache [k]
R2000 8-16.7 1985 2.0 0,11 - - - - 32 64 det er ikke
R3000 20-40 1988 1.2 0,11 66,12 145 4 - 64 64 det er ikke
R4000 100 1991 0,8 1,35 213 179 15 5 8 8 1024
R4400 100-250 1992 0,6 2.3 186 179 15 5 16 16 1024
R4600 100-133 1994 0,64 2.2 77 179 4.6 5 16 16 512
R5000 150-200 1996 0,35 3.7 84 223 10 3.3 32 32 1024
R8000 75-90 1994 0,5 2.6 299 591 30 3.3 16 16 1024
R10 000 150-250 1995 0,35 6.8 299 599 30 3.3 32 32 512
R12000 270-400 1998 0,18–0,25 6.9 204 600 20 4 32 32 1024
R14000 500-600 2001 0,13 7.2 204 527 17 - 32 32 2048
R16000 700-800 2002 0,11 - - - 20 - 64 64 4096

Merk: Spesifikasjonene som er angitt er de vanligste, men det er variasjoner spesielt for cache på andre nivå.

Beskrivelse

Tidlige MIPS-arkitekturer ble bygget i 32-bit (vanligvis 32-bit for registre og databaner), mens de nyeste versjonene er 64-bit. Det er fem revisjoner av MIPS - instruksjonssettetMIPS I , kalt MIPS II,,,, og . Den siste av disse, utgivelse 2, definerer et sett med kontrollregistre som instruksjonssettet. Mange tilleggsutvidelser er også tilgjengelige, inkludert at det er et enkelt sett med dedikerte floating-point SIMD -instruksjoner for 3D-applikasjoner, som er en veldig kostbar heltalls SIMD -instruksjon som bruker 64-bit floating-point registre, som legger til komprimering til instruksjoner som oppretter et program ved å redusere plassen okkupert (en teknologi som ligner på Thumb-teknologien implementert av ARM-arkitekturen ), og den nyeste , et nytt multithreading -tillegg for systemer som ligner på HyperThreading implementert av Intel i Pentium 4-prosessorene . MIPS IIIMIPS IVMIPS 32/64MIPS 32/64MIPS-3DMDMXMIPS16MIPS MT

Applikasjoner

Mange arbeidsstasjonsprodusenter har brukt MIPS-prosessorer. Blant de andre nevner vi SGI , MIPS Computer Systems Inc. , Olivetti , Siemens-Nixdorf , Acer , Digital Equipment Corporation , NEC og DeskStation . Mange operativsystemer har blitt overført til MIPS-prosessorbaserte arkitekturer. De mest kjente er IRIX produsert av SGI, Microsoft Windows NT (selv om støtte for MIPS-prosessorer er avsluttet med Windows NT 4.0), Windows CE , Linux , BSD , Unix System V , SINIX , MIPS Computer Systems RISC / OS og andre .

Bruken av MIPS-prosessorer i datamaskiner og arbeidsstasjoner er imidlertid i stadig nedgang. SGI har annonsert avhending av MIPS-arkitekturbaserte maskiner og foretrekker å fokusere på Intel IA-64 -prosessorbaserte maskiner . Imidlertid er bruk av MIPS-prosessorer i innebygde maskiner fortsatt vanlig. Prosessorene har lav effekt og gir god ytelse, så de blir ofte valgt for bærbare maskiner. I tillegg er MIPS-arkitekturen utbredt, så det er mange utviklingsverktøy og ekspertprogrammerere av plattformen.

Nesten alle rutere er nå basert på MIPS på Linux- operativsystem , ofte i OpenWrt- eller DD-WRT- versjon , med unntak av sjeldne ARM - er, for eksempel Alice Gate Enterprise som monterer en ARM940. Romsonden New Horizons , utviklet av NASA for utforskning av Pluto og dens satellitt Charon lansert i 2006, er utstyrt med en MIPS R3000-prosessor.

Kjerne

De siste årene har mange MIPS-kjerner blitt markedsført med IP-kjerneteknologi for å tillate utforming av skreddersydde innebygde systemer. 32- og 64-bits kjerner ble plassert på markedet under navnene 4K og 5K og ble solgt på lisens, slik det ble gjort år tidligere for MIPS32- og MIPS64- prosjektene . Kjernene kan kobles til andre enheter som FPU-enheter, SIMD-systemer og andre inngangs-/utgangsenheter, etc.

MIPS-kjerner har vært en kommersiell suksess og brukes av mange bransjer for å lage produktene deres. For eksempel bruker Cisco og Linksys kjerner for sine rutere og modemer. Kjernene er inne i mange laserskrivere, smartkortlesere, set-top-bokser, roboter, bærbare datamaskiner, konsoller som Sony PlayStation 2 og PlayStation Portable . I enheter som telefoner og PDAer pleier det å brukes ARM -prosessorer, som er store konkurrenter til MIPS-prosessorer i den innebygde sektoren. I denne sektoren har Microchip Technology , en av verdens største produsenter av mikrokontrollere, brukt MIPS 4K-kjernen for sin flaggskip PIC32-modell.

Programmering og emulatorer

Det er en gratis R2000 / R3000 prosessor emulator kalt SPIM som fungerer på mange operativsystemer (Unix, Linux, Mac OS X, MS Windows 95/98 / NT / 2000 / XP og MS DOS) som gir et godt miljø for å lære MIPS-montering og å venne seg til å programmere RISC-maskiner [2] .

GXemul , på den annen side, er en veldig kraftig emulator (tidligere kjent som mips64emul-prosjektet) som ikke bare emulerer prosessorer (fra R4000 til R10000), men kan emulere komplette maskiner. For eksempel kan du bruke GXemul til å simulere driften av en DECstation- maskin med MIPS R4400 eller en SGI O2 -maskin med MIPS R10000 og en rekke eksterne enheter som SCSI -kontrollere , grafikkort, etc.

Qemu er en velkjent åpen kildekode og multiplattform-emulator. Selv om den hovedsakelig brukes til å emulere en x86-prosessor, lar den også emulere en MIPS-basert virtuell plattform, som simulerer en MIPS32 4Kc-prosessor. Til slutt, MARS er en veldig kraftig emulator og IDE, skrevet i Java og utviklet av en gruppe fra Missouri State University, med forskjellige verktøy og et veldig detaljert hjelpevindu.

Andre modeller og fremtidig utvikling

MIPS-familien inkluderer også R6000 , en ECL - implementering av MIPS-arkitekturen produsert av Bipolar Integrated Technology . R6000 introduserte instruksjonssettet MIPS II. TLB og cache-arkitekturen var forskjellig fra de andre medlemmene av MIPS-familien . R6000 hadde ikke ytelsen som designerne håpet på, og etter en kort bruk av Control Data Corporation ble den forlatt. RM7000 var en versjon av R5000 med 256 KB cache på andre nivå og en kontroller for en valgfri cache på tredje nivå. Dets primære marked var innebygde enheter og nettverksenheter, faktisk ble det mye brukt av Cisco System. Navnet R9000 ble aldri brukt.

På det tidspunktet bestemte SGI seg for å forlate MIPS-plattformen til fordel for Intel Itanium-prosessorer og stoppet derfor utviklingen av prosessorene etter R10000. Omløpstiden til Itanium-plattformen var lengre enn forventet, mens MIPS-baserte maskiner ble forbedret. I 1999 var det imidlertid klart at utviklingen av avanserte prosessorer hadde blitt forlatt for raskt, og derfor ble R14000- og R16000-prosessorene introdusert som til tross for navnet ikke var veldig ulik R10000. SGI prøvde å bringe den kraftige R8000-serien FPU til andre MIPS-prosessorer og å utvikle en dual core versjon, men økonomiske problemer stoppet prosjektet. Videre bestemte SGI seg for å bruke QuickTransit -teknologi for å la Itanium-baserte maskiner bruke programmer kompilert for MIPS og satte derfor en stopper for utviklingen av MIPS-prosessorer for IRIX-plattformen.

En forenklet versjon av pipeline management er DLX pipeline , muliggjort av eksplisitt register omdøping [3] .

Merknader

  1. ^ NEC tilbyr to 64-biters RISC-mikroprosessorer med høy ytelse
  2. ^ SPIM MIPS-simulator
  3. ^ Dynamic Scheduling Techniques , på web.cs.iastate.edu . Hentet 24. januar 2016 .

Bibliografi

Relaterte elementer

Andre prosjekter

Eksterne lenker