SPARCV7 mikroprosessor

Fra Wikipedia, den frie encyklopedi
(Omdirigert fra SPARC (mikroprosessor))
Gå til: navigasjon, søk
SPARC
Mikroprosessor
Ic-photo-Fujitsu--MB86901A--(SPARCstation-CPU)-.JPG
Fujitsu SPARC MB86901A
Produsert 8. juli 1987
Utviklet av Sun Microsystems
Produsent Fujitsu
Atmel Corporation
LSI Logic
Weitek
Texas Instruments
BIT Inc.
Cypress Semiconductor
Klokkefrekvens 14.28 – 40 MHz
Prosess CMOS, ECL
Databuss 32 biter
Adressebuss 32 biter
Hurtigminne
Nivå I, D&I
0–64 Kb (eksternt)
Socket Pin grid array
Kjerne Enkjerners RISC
Instruksjonsett SPARC versjon 7

SPARC er en tidligere 32-biter RISC mikroprosessor med èn enkelt kjerne. Mikroprosessoren var konstruert for symmetrisk flerprosessering, og ble brukt i datamaskiner med en, to, fire eller flere mikroprosessorer. SPARC var en implementasjon av spesifikasjonen SPARC versjon 7, og var den første mikroprosessoren i SPARC-familien.

Versjon 7 av spesifikasjonen til SPARC ble publisert av Sun Microsystems i 1986. Den definerte en 32 biter RISC mikroprosessor med 32 stk generelle 32-biter prosessorregistre.

SPARC ble satt i produksjon av det japanske IT-selskapet Fujitsu i 1987, og ble første gang tatt i bruk på datamaskinene Sun-4/260 og Sun-4/280, som også ble markedsført under kodenavnet «Sunrise» («soloppgangen»). Disse datamaskinene ble lansert av Sun Microsystems 8. juli 1987, og var de første modellene av arbeidsstasjonene Sun-4. Den 12. april 1989 lanserte selskapet SPARCstation 1 (Sun/460) og 5. november 1990 fulgte SPARCstation 2 (Sun/475). Arbeidsstasjonene var avarter av Sun-4c, og begge benyttet SPARC.

Arkitekturen er åpen og uten opphavsrett, og ble en industristandard med flere aktører i markedet. Ulike avarter av SPARC ble produsert av Fujitsu, LSI Logic, Weitek, Texas Instruments, BIT Inc. og Cypress Semiconductor. Arbeidsstasjoner med SPARC ble også lansert av flere enn Sun Microsystems. I oktober 1990 lanserte det Taiwan-baserte selskapet Tatung Company de tre arbeidsstasjonene TWS 3000, TWS 5000 og TWS 7000, forsynt med operativsystemet SPARC OS. I 1991 ble de etterfulgt av CompStation 40. I 1992 lanserte Compuadd Corporation arbeidsstasjonen SS2 med en 40 MHz SPARC. Samme år lanserte Themis Computer to hovedkort for SPARC: 2LC og 2SE hadde en koprosessor for flyttall, 32 Kb hurtigminne og VME-buss.

SPARC ble også brukt i arbeidsstasjoner fra Solarix, Mars Microsystems, RDI, Soulbourne Computer Inc. og Opus Systems.

I 1990 ble versjon 8 av spesifikasjonen til SPARC publisert. Den banet veien for SPARCLite og microSPARC for minimaskiner såvel som en ny generasjon med superskalære mikroprosessorer i form av SuperSPARC og hyperSPARC. Sun Microsystems erstattet SPARC med SuperSPARC, da selskapet lanserte SPARCstation 10 i 1992.

Arkitektur[rediger | rediger kilde]

RISC[rediger | rediger kilde]

Utdypende artikkel: Reduced instruction set computer

Denne artikkelen handler om en mikroprosessor av typen RISC (Reduced instruction set computer). RISC ble lansert som følge av en iboende og voksende begrensning i tidligere mikroprosessorer av typen CISC (Complex instruction set computer). CISC-arkitekturene ble gradvis stadig mer komplekse, inntil kompleksiteten ble en hindring for deres ytelse. Filosofien bak RISC var å flytte denne kompleksiteten fra maskinvaren til programvaren. En rekke oppgaver som var påført mikroprosessorene under kjøring, ble nå overlatt til kompilatorene å utføre.

Bakgrunnsarbeidet for SPARC ble lagt ved University of California, Berkeley.

De tre første RISC-arkitekturene kom noenlunde samtidig:

Videreutviklingen av IBM 801 førte til nye mikroprosessorer og familier i form av ROMP i 1981, IBM POWER i 1990 og PowerPC i 1991. SPARC er en videreutvikling av Berkeley RISC, og mikroprosessorene RISC I og RISC II. MIPS førte til etableringen av selskapet MIPS Computer Systems, som lanserte sin egen familie med mikroprosessorer.

En nyvinning ved Berkeley RISC var såkalte «registervinduer». En stor flaskehals for ytelsen i CISC mikroprosessorer, var knyttet til dataoverføringene mellom mikroprosessoren og hovedminnet under prosedyrekall. Registervinduene opphevet effektivt de fleste av slike dataoverføringer. SPARC «arvet» registervinduene fra Berkeley RISC, men realiserte dem på en litt anderledes måte.

SPARC[rediger | rediger kilde]

Utdypende artikkel: SPARC

SPARC er først og fremst navnet på en datamaskinarkitektur, som omfatter en familie med mange ulike mikroprosessorer.[1] Navnet blir tidvis også brukt om de første mikroprosessorene i denne familien. Disse er beskrevet lenger ned i denne artikkelen.

SPARC er en forkortelse for Scalable Processor ARChitecture – «skalerbar mikroprosessorarkitektur».[2] «Skalerbar» betyr at den er konstruert for symmetrisk flerprosessering i stormaskiner og superdatamaskiner.[2] Datamaskiner med SPARC kan skaleres fra å inneholde èn enkelt mikroprosessor (SISD), til å bestå av to, fire eller flere mikroprosessorer som deler et felles dataminne (SIMD).[2]

Arkitekturen beskrives av en manual. Tre versjoner av manualen er blitt brukt til produksjon av mikroprosessorer:

  • Versjon 7, mars 1986 (32-biter)[3]
  • Versjon 8, desember 1990 (32-biter)[4]
  • Versjon 9, 1992 (64-biter)[5]

Denne artikkelen beskriver versjon 7 av manualen, og mikroprosessorer som bygger på den.

Flere separate enheter[rediger | rediger kilde]

Versjon 7 av spesifikasjonen til SPARC ble publisert av Sun Microsystems i mars 1986.[3] Manualen beskriver en 32-biter RISC mikroprosessor med en enkelt kjerne.[1][6] Arkitekturen består av tre separate deler:[1][6]

Eksempel på en arkitektur med flere brikker. Hovedkort for arbeidstasjonen HP 9000 med mikroprosessoren PA-RISC NS-2, syv andre utførende enheter og to Weitek koprosessorer for flyttall.

Benevnelsen «mikroprosessor» brukes kun om heltallsenheten. I tillegg kom to andre eksterne enheter:

Spesifikasjonen la ingen føringer på størrelsen av hurtigminnet[1] eller implementasjonen av minnehåndtereren.[1] Det naturlige for en slik mikroprosessor vil være en 32-biter databuss og en 32-biter adressebuss, som aksesserer en 32-biter virtuell hukommelse på 232 eller 4 gigabyte.[6] Men heller ikke bredden på disse bussene er definert av spesifikasjonen.[1] Valg av bussenes bredde, hurtigminnets størrelse (eller hurtigminne overhodet) og utformingen av minnehåndtereren ble i praksis overlatt til maskinvarefabrikantene.[a]

Oppdelingen i mange separate enheter var vanlig på denne tiden; transistorene var ennå ikke kommet ned i størrelser som tillot integrasjon i en enkelt brikke. Oppe til høyre ser vi utsnitt av et hovedkort for arbeidsstasjonen HP 9000 med en enkelt 32-biter PA-RISC NS-2 mikroprosessor. Det består av mikroprosessoren, syv separate tilleggsenheter, og to koprosessorer for flyttall i form av Weitek 2264 og Weitek 2265.

Laste-lagre-arkitektur[rediger | rediger kilde]

Utdypende artikkel: Laste-lagre arkitektur

Mikroprosessoren kommuniserer med hovedminnet i datamaskinen på en enkel måte. Den benytter de to operasjonene Laste (Load) og Lagre (Store). Data overføres fra hovedminnet (Laste) eller til hovedminnet (Lagre).[7]

SPARC hadde fire adresseringsmodi: Summen av to prosessor-registere, indeksert modus, register indirekte og register absolutt. De to sistnevnte er varianter av indeksert modus.

Denne enkle minnehåndteringen er et særpreg ved alle RISC-arkitekturer, og skiller dem fra CISC-arkitekturer.[8]

Ingen mikrokode[rediger | rediger kilde]

Utdypende artikkel: Mikrokode

SPARC mangler mikrokode. Også dette er et generelt kjennetegn ved RISC.[8] En mikrokode er en kommandotolk som oversetter maskinkode til eksekverbar kode under kjøring. Dette er selvsagt tregere enn å utføre programmer direkte, som på forhånd er oversatt til eksekverbar kode. Et gjennombrudd som gjorde dette mulig, var fremveksten av optimaliserende kompilatorer. I RISC-maskiner er oppgavene til mikrokoden overført til kompilatorene; man kan også si at kompleksiteten ved mange CISC-maskiner (se f.eks. forrige avsnitt om adresseringsmodi) er flyttet fra maskinvaren til kompilatorene.

Fast størrelse på instruksjoner[rediger | rediger kilde]

SPARC hadde en fast størrelse på instruksjonene, og de var alle 32-biter.[1][7]

Denne faste størrelsen er også en egenskap ved RISC generelt, som kontrast til CISC.[8]

4-trinns pipelining[rediger | rediger kilde]

SPARC benyttet en 4-trinns pipeline for instruksjoner som behandlet heltall, og arbeidet med fire instruksjoner samtidig. Mens èn instruksjon ble hentet fra minnet, ble en annen dekodet, en tredje utført, og resultatet av en fjerde skrevet til minnet:

Syklus 1 2 3 4 5 6 7
Instruksjon 1 HENT DEKOD UTFØR SKRIV
Instruksjon 2 HENT DEKOD UTFØR SKRIV
Instruksjon 3 HENT DEKOD UTFØR SKRIV
Instruksjon 4 HENT DEKOD UTFØR SKRIV

En instruksjon per klokkepuls[rediger | rediger kilde]

Den faste størrelsen på instruksjonene er noe som gjør pipelining lettere. Og sluttresultatet er at SPARC alltid utfører en instruksjon per klokkesyklus.[1] En SPARC som kjører i 10 MHz vil derfor alltid ha en ytelse på 10 MIPS.

Også dette er et særpreg ved RISC generelt, i kontrast til CISC.[8] På CISC mikroprosessorer tar instruksjoner et varierende antall klokkepulser å gjennomføre.

Formatene på instruksjonene[rediger | rediger kilde]

SPARC versjon 7 spesifiserte fem ulike formater på instruksjonene – tre hovedformater og to underformater.[9] Disse er avbildet under.

Format 2 bit 5 bit 6 bit 5 bit 1 bit 8 bit 5 bit
1 DEST OPCODE SRC 1 0 FP-OP SRC 2
2 DEST OPCODE SRC1 1 IMMEDIATE CONSTANT

I det første formatet overføres innholdet fra et register til et annet. I det andre formatet overføres en konstant i størrelsesorden -4096 til +4096 til et register. Bit 13 skiller mellom positive og negative tall.

Format 2 bit 1 bit 4 bit 3 bit 22 bit
3 A COND OP PC-RELATIVE DISPLACEMENT
4 DEST OP IMMEDIATE CONSTANT
5 PC-RELATIVE DISPLACEMENT

Det tredje formatet er knyttet til betingede hopp ved subrutiner. Feltet COND spesifiserer typen branch (BLT, BLE eller BEQ). 22-bit feltet DISPLACEMENT gir den relative 32-biter adressen til målet, slik at betingede hopp kan bevege seg fremover og bakover i størresesordenen 8 Mb. A-bitet (ANNUL) er et triks som brukes til å eliminere noen delay slots ved betingede hopp. Hvis det er 1, blir en delay slot bare utført når betingelsen oppfylles. Hvis betingelsen ikke oppfylles sløyfes subrutinehoppet.

Det fjerde formatet gir den absolutte adressen til målet, uten delay slots og uten å oppgi typen branch. Heller ikke det femte formatet oppgir typen branch eller angir delay slots, men kun den relative 32-biter adressen til målet.

Stort antall generelle registere[rediger | rediger kilde]

SPARC versjon 7 speifiserer et stort antall generelle registere. Dette er ikke nødvendigvis en egenskap ved RISC i motsetning til CISC,[10] men var implementert i Berkeley RISC I og Berkeley RISC II til bruk for registervinduer.[11] SPARC spesifiserer totalt 520 slike generelle registere.

Registervinduer[rediger | rediger kilde]

I CISC-prosessorer er en stor del av dataoverføringene mellom mikroprosessoren og hovedminnet knyttet til prosedyrekall: Parametrene overføres, innholdet i registrene lagres, returadressen legges på stakken og hentes tilbake igjen når prosedyren er avsluttet. Datamaskinens minne har tradisjonelt vært, og er fortsatt, mye tregere enn både mikroprosessorens interne registre og hurtigminne. Derfor er prosedyrekall en stor flaskehals for den totale ytelsen.

Arkitektene bak RISC-prosessorene Berkeley RISC I og RISC II benyttet en genial metode for å oppheve nesten alle slike dataoverføringer. De innførte «overlappende registervinduer»,[12] som også benyttes i SPARC.[13] RISC I og RISC II var inspirasjonskilden til SPARC, men SPARC benytter en noe avvikende implementasjon.

RISC I hadde 78 registere; 18 var globale, mens 6 vinduer inneholdt 14 registere hver. RISC II hadde 138 registere; 10 var globale, mens 8 vinduer inneholdt 16 registere hver.

SPARC-spesifikasjonen opererer med 32 stk virtuelle 32-biter registre i hvert vindu, nummerert fra R0 til R31. Registrene er delt inn i fire grupper:

# 32 bit lange registre
R0–R7 Globale variabler
R8–R15 Inngående parametre
R16–R23 Lokale variable
R24–R31 Utgående parametre
  • R0–R7 er nedenfor nummererte fra G0 til G7. G0 er alltid null. Registrene G1–G7 er globale, og kan inneholde heltall, pekere til tabeller eller andre data-elementer.
  • R8–R15 er nedenfor nummererte fra I0 til I7, og inneholder de inngående parametrene til en kallende prosedyre. I tradisjonelle CISC-maskiner legges disse på stakken én etter én, like før prosedyrekall.
  • R16–R23 er nedenfor nummererte fra L0 til L7. De er avsatt til åtte lokale variabler inne i den kalte prosedyren. Også her unngår man bruk av stakken.
  • R24–R31 er nedenfor nummererte fra O0 til O7. De er avsatt til åtte utgående parametre fra prosedyren som er avsluttet. Også her unngår man stakken.

SPARC tillater flere sett («registervinduer») med 32 stk 32-bit registre. Dette er antallet registere som enhver prosedyre på et gitt tidspunkt «ser». 5-bit variabelen CWP (Current Window Pointer) peker på R8. 25= 32, og gir opptil (32 x 16) + 8 globale registre, eller 520 registre.

Istedenfor å flytte data mellom registrene og hovedminnet, flyttes CWP innenfor registrene, og gir programmet den illusjon at det opererer med et annet register.

 
# Register-innhold
R0–R7 Globale
# Register-innhold
R8–
R15
Inn
R16–R23 Lokale
R24–R31 Ut Fairytale right red.png
(R32–R38)
(R39–R45)
(R46–R52)
(R53–R59)
 
# Register-innhold
R0–R7 Globale
# Register-innhold
(R8–R15)
(R16–R23)
R8–
R15
Fairytale right red.png Inn
R16–R23 Lokale
R24–R31 Ut Fairytale right red.png
(R46–R52)
(R53–R59)
 
# Register-innhold
R0–R7 Globale
# Register-innhold
(R8–R15)
(R16–R23)
(R24–R31)
(R32–R38)
R8–
R15
Fairytale right red.png Inn
R16–R23 Lokale
R24–R31 Ut Fairytale right red.png

Ovenfor illustreres tre registervinduer for tre prosedyrer. I det første registervinduet (og prosedyren) ligger utgående variabler i R24–R31. Ved å flytte CWP nedover 16 registre i registervinduet til det andre registeret (og prosedyren), blir samme register omdefinert til å inneholde inngående variabler. Det samme gjentar seg i tredje registervindu (og prosedyre).

I SPARC blir CWP dekrementert ved prosedyrekall. Den kallende prosedyren legger parametrene i R8–R15, og disse blir R24–R31 i prosedyren som kalles opp. Ved prosedyrekall «glir» «vinduet» oppover istedenfor nedover.

Instruksjonssettet[rediger | rediger kilde]

Instruksjon Forklaring
LDSB Hent byte (8 bit) med fortegn
LDSH Hent halvt ord (16 bit) med fortegn
LDUB Hent byte (8 bit) uten fortegn
LDUH Hent halvt ord (16 bit) uten fortegn
LD Hent ord (32 bit)
LDD Hent dobbelt ord (64 bit)
Instruksjon Forklaring
STB Lagre byte (8 bit)
STH Lagre halvt ord (16 bit)
ST Lagre ord (32 bit)
STD Lagre dobbelt ord (64 bit)
Instruksjon Forklaring
LDSTUB Hent og lagre byte (8 bit) uten fortegn
SWAP Swap ord (32 bit) i minnet med innhold i register
Instruksjon Forklaring
ADD Adder
ADDCC Adder, sett icc
ADDX Adder med mente
ADDXCC Adder med mente, sett icc
SUB Subtraher
SUBCC Subtraher, sett icc
SUBX Subtraher med mente
SUBXCC Subtraher med mente, sett icc
MULSCC Multipliser, sett icc
Instruksjon Forklaring
TADDCC
TSUBCC
TADDCCTV
TSUBCCTV
 
Instruksjon Forklaring
AND Boolsk AND
ANDCC Boolsk AND, sett icc
ANDN Boolsk NAND
ANDNCC Boolsk NAND, sett icc
OR Boolsk OR
ORCC Boolsk OR, sett icc
ORN Boolsk NOR
ORNCC Boolsk NOR, sett icc
XOR Boolsk XOR
XORCC Boolsk XOR, sett icc
XNOR Boolsk XNOR
XNORCC Boolsk XNOR, sett icc
Instruksjon Forklaring
SLL Logisk venstre-skift
SRL Logisk høyre-skift
SRA Aritmetisk høyre-skift
Instruksjon Forklaring
Bxx Betinget branch
Txx Betinget avbrudd
CALL Prosedyrekall
JMPL
SAVE Flytt registervindu fremover
RESTORE Flytt registervindu bakover
RETT Returner fra avbrudd
Instruksjon Forklaring
SETHI Sett de øverste 22 bit
UNIMP Ikke implementert (avbrudd)
RD Les et register
WR Skriv til et register
IFLUSH Tøm instruksjons-cache

Eksempel-algoritme: «Tårnene i Hanoi»[rediger | rediger kilde]

Utdypende artikkel: Tårnet i Hanoi

Det såkalte «Tårnet i Hanoi» er et yndet og populært eksempel på rekursjon innenfor programmering. Algoritmen nedenfor gir en rekursiv løsning på dette puslespillet, skrevet i assemblerspråket til SPARC. Den viser også bruken av registrene og registervinduer, som er forklart ovenfor.

 .proc 4                    ! start rutinen
 .globl _towers             ! definer "towers" som et globalt symbol
_towers: save %sp,-112%sp   ! flytt register-vinduet og stakkpeker
! if n = 1 then;            ! I0 = n, l1 = i, l2 = j
  cmp %IO,1                 ! hvis n = 1
  bne ELSE                  ! ellers gå til ELSE
! writeln("move", i, 'to', j);
     sethi %HI(AI), %00     ! 0o = de øverste 22 bit av adressen A1
     call .writestr         ! skriv ut teksten "Flytt"
     or %00,%L0(AI),%00     ! 00 = adressen til A1
     call .writenum         ! skriv ut i til skjerm
     mov %Il,%00            ! 0o = i
     sethi %HI(A2),%00      ! 0o = de øverste 22 bit til adressen A2
     call .writenum         ! skriv ut teksten 'til'
     or %00,%L0(A2),%00     ! 0o = adressen til A2
     call .writenum         ! skriv ut j til skjerm
     mov %12,%00            ! I0 = j
     call .writecr          ! Linjeskift
     nop                    ! Ingen utførelse
     b DONE                 ! hopp til rutinen DONE
     mov 0,%00              ! Returner 0 (OK)
 ! k = 6 - i - j;           ! Beregn k i det lokale registeret L0
 ELSE: mov 6,%LO            ! Lokalt register L0 = 6
       sub %L0,%Il,%LO      ! Lokalt register L0 = 6 - i
       sub %L0,%I2,%LO      ! Lokalt register L0 = 6 - i - j
 ! towers(n – 1, i, k);
       sub %I0,1,%00        ! parameter 0: 0o = n - 1
       mov %Il,%01          ! parameter 1: 01 = i
       call _towers,3       ! towers(n – 1, i, k)
       mov %L0,%02          ! parameter 2: 02 = k
 ! towers(l, i, j);
       mov 1,%00            ! parameter 0: 0o = 1
       mov %Il,%01          ! parameter 1: 01 = i
       call _towers,3       ! towers (l, i, j)
       mov %I2,%02          ! parameter 2: 02 = j
 ! towers(n – l, k, j)
       sub %I0, l, %00      ! parameter 0: 0o = n - 1
       mov %L0,%01          ! parameter 1: 01 = k
       call _towers,3       ! towers(n – 1, k, j)
       mov%I2, %02          ! parameter 2: 02 = j
       mov 0,%00            ! returnerer 0 (OK)
 DONE: ret                  ! avslutter algoritmen
       restore %g0,%00,%00  ! nullstiller register-vinduet
       .seg "data"          ! bruker data-segmentet
 A1:   .ascii "Flytt \0"    ! allokerer en tekst
 A2:   .ascii "til \0"      ! allokerer en tekst

SPARC versjon 7 versus andre arkitekturer[rediger | rediger kilde]

I tabellen nedenfor er SPARC versjon 7 sammenlignet med andre datamaskinarkitekturer. Dette er gjort for å sette mikroprosessoren inn i et større perspektiv.

Til sammenligning har vi valgt ut mikroprosessoren R2000, som ble lansert av MIPS Computer Systems i januar 1986. Dette var også en 32-bit RISC mikroprosessor, og den ble lansert noenlunde samtidig. Den var bygd opp etter versjon I av arkitekturen MIPS (MIPS I) fra Stanford University, som ble nevnt innledningsvis.

CISC mikroprosessorene Intel 80386 og Motorola 68030 er også brukt som sammenligning på grunn av deres store utbredelse, og fordi de begge ble lansert nesten samtidig.

Element SPARC v7 MIPS R2000 Intel 80386 Motorola 68030
Arkitektur RISC RISC CISC CISC
Biter 32-biter 32-biter 32-biter 32-biter
Koprosessor
for flyttall
Ekstern
(flere
produsenter)
Ekstern[14]
(flere
produsenter)
Ekstern
(Intel 80387)
Ekstern
(Motorola 68881 eller
Motorola 68882)
Andre koprosessorer 1 2 0 1
Minnehåndtereren Ekstern Intern Intern Intern
Mikrokontroller
for hurtigminne
Ekstern Intern Intern Intern
Hurtigminne Eksternt Eksternt Eksternt Internt
Delt hurtigminne Nei Ja Nei 256 byte for data
256 byte for instruksjoner
Databuss 32-biter 32-biter 32-biter 32-biter
Adressbuss 32-biter 31-biter 32-biter 32-biter
Adresseringsmodi 4 3 8 18
Mikrokode Nei Nei Ja Ja
Lengde på instruksjoner 32-biter 32-biter.[14] 8–68 biter 16–104 biter
Instruksjonsformater 5 3[14] Mange Mange

De tre adresseringmodi i MIPS R2000 var indeksert modus, register indirekte og register absolutt. Den manglet summen av to prosessor-registere, som var den fjerde i SPARC.

MIPS R2000 benyttet en 5-trinns pipe: 1) hent instruksjon, 2) dekod instruksjon, 3) utfør instruksjon, 4) lagre data i hovedminne/hurtigminne, 5) overfør resultat fra den aritmetisk logiske enheten til register.[15]

Andre derivater av Berkeley RISC[rediger | rediger kilde]

SPARC er den direkte etterfølgeren av Berkeley RISC og de to mikroprosessorene RISC I og RISC II. Flere andre RISC-arkitekturer er også direkte derivater av Berkeley RISC, og de viktigste er nevnt nedenfor.

  • Arkitekturen PA-RISC ble utviklet av Hewlett Packard. Selskapet produserte og solgte sine egne RISC-prosessorer basert på denne arkitekturen fra 1986 til 2008.
  • Arkitekturen DEC Alpha ble utviklet av Digital Equipment Corporation. Den ble innledet med RISC-prosessoren Alpha 21064 i 1992. Alpha 21364 ble lansert i april 2001 og var den siste i denne familien.
  • Motorola 88000 var en familie med RISC-prosessorer som ble utviklet av Motorola, og som ble benyttet som mikrokontrollere i innebygde systemer. I 1988 lanserte selskapet mikroprosessoren MC88100. Den ble i 1992 ble etterfulgt av MC88110.
  • Intel i960 var en RISC-prosessor som ble lansert av Intel i 1985. Den ble etterhvert en av markedets mest populære mikrokontrollere i skrivere og harddisker, men hadde også andre bruksområder.
  • Intel i860 ble lansert av Intel i 1989. Det var en superskalær mikroprosessor og en hybrid mellom 32-biter og 64-biter. Intel hadde planer om å utbre denne i personlige datamaskiner, og operativsystemet Windows NT var opprinnelig tiltenkt denne. Den mislyktes imidlertid i å erobre markedet.
  • AMD Am29000 ble lansert av AMD i 1989, og innledet en ny familie med RISC mikroprosessorer. Den var en konkurrent til Intel i960, og på 1990-tallet dominerte disse to markedet for mikrokontrollere. Begge to ble til slutt faset ut til fordel for arkitekturen ARM.
  • RISC-arkitekturen ARM ble introdusert i 1985 og overtok etterhvert markedet for mikrokontrollere. Den benyttes idag i de fleste mobiltelefoner.

SPARC versjon 7 mikroprosessorer[rediger | rediger kilde]

Sun Microsystems SPARC MB86900 / MB86910[rediger | rediger kilde]

Fujitsu SPARC MB86900
Mikroprosessor
Utviklet av Sun Microsystems
Produsent Fujitsu
Klokkefrekvens 16.67 MHz
Prosess 130 nm CMOS
Transistorer 110 000

Utdypende artikkel: MB86900

Implementasjonen fra Sun Microsystems bestod av to adskilte brikker. Heltallsenheten hadde benevnelsen MB86900 (også kalt SF9010), og desimaltallsenheten ble kalt MB86910. Klokkefrekvensen var 16.67 MHz.

Brikkene ble produsert i Japan ved hjelp av Fujitsus CMOS 20K prosss, og bestod av 110,000 transistorer produsert med en 1.30 µ CMOS-prosess. De opererte i sykluser på 60 ns.[16][17] Brikkenes interne elektriske spenning var 5 Volt.

Mikroprosessoren benyttet en PGA med 256 pinner.

Cypress/ROSS SPARC CY7C601[rediger | rediger kilde]

ROSS SPARC CY7C601
Mikroprosessor
Produsert 1987
Produsent Ross Technology
Klokkefrekvens 33 MHz
Kjerne SPARC versjon 7

Den andre SPARC-prosessoren ble lansert i 1987 av Ross Technology, som på denne tiden var et underselskap av Cypress. Implementasjonen bestod av tre brikker – en heltallsenhet, en desimaltallsenhet og en Memory Management Unit. Klokkefrekvensen var 33 MHz.

CY7C601 ble produsert med en 0.8 µ CMOS-prosess, og opererte i sykluser på 30 ns.[17]

Mikroprosessoren benyttet en 64 KB ekstern nivå-1 cache for både data og instruksjoner.

Da Cypress solgte Ross Technology til Fujitsu i 1993, ble implementasjonen omdøpt til ROSS RT601.

Cypress SPARC CY7C601-40 og Cypress SPARC CY7C601-40GC[rediger | rediger kilde]

Disse prosessorene ble produsert med en 0.8 µ CMOS-prosess, og bestod av 1.8 millioner transistorer. Cypress SPARC CY7C601-40GC hadde 207 pinner for en PGA-socket, mens Cypress SPARC CY7C601-40 hadde 208 pinner for en QFP socket. Begge prosessorene kjørte i 40 MHz.

Desimaltallsenheten ble kalt Cypress CY7C602 (40 MHz), mens cache-kontrolleren hadde navnet Cypress CY7C605 (40 Mhz).

LSI Logic SPARC L1A3761 100-1808-1[rediger | rediger kilde]

LSI Logic SPARC S1A0007 100-1808-2[rediger | rediger kilde]

LSI Logic SPARC S1C0010 100-2921-01[rediger | rediger kilde]

LSI Logic SPARC L64811 OS-40S[rediger | rediger kilde]

BIT B-3100[rediger | rediger kilde]

Texas Instruments 8846[rediger | rediger kilde]

ERC32[rediger | rediger kilde]

Utdypende artikkel: ERC32

Fujitsu SPARC MB86901[rediger | rediger kilde]

Fujitsu SPARC MB86902[rediger | rediger kilde]

Fujitsu SPARC MB86902
Mikroprosessor
Produsert 1991
Produsent Fujitsu
Klokkefrekvens 20 og 25 MHz
Socket PQFP med 160 pinner
Kjerne SPARC versjon 7

Arbeidet med Fujitsu SPARC MB86902 startet allerede i 1986, og ble annonsert av Fujitsu i juni 1990 som en mikroprosessor for innebygde systemer. SPARC MB86902 var en avart av SPARC MB86901, som ble brukt i SPARCstation 1. Prosessoren ble lansert i uke 4 i 1991.

Fujitsu SPARC MB86902 var kompatibel med Fujitsu 86920 Memory Management Unit og desimaltallsprosessoren Weitek 3170. Prosessoren hadde ingen integrert cache.

Fujitsu SPARC MB86902 var tilgjengelig i klokkefrekvenser på 20 og 25 MHz og hadde 160 pinner i en PQFP socket.

Mikroprosessoren ble benyttet i Sun SPARCstation IPC.

Fujitsu SPARC MB86903[rediger | rediger kilde]

Fujitsu SPARC MB86903
Mikroprosessor
Ic-photo-fujitsu-MB86903-40.png
40 MHz Fujitsu SPARC MB86903
Produsert 1991
Produsent Fujitsu
Klokkefrekvens 33 og 40 MHz
Socket PGA med 207 pinner
Kjerne SPARC versjon 7

Arbeidet med Fujitsu SPARC MB86903 startet i 1987, og prosessoren ble lansert i uke 21 i 1991.

Denne prosessoren hadde en integrert desimaltallsprosessor og opererte i hastigheter på 33 og 40 MHz. Ved beregning av heltall hadde den en ytelse på 20 og 25 MIPS. Ved desimaltallsberegninger var ytelsen 4 og 5 MFLOPS.

Heltallsenheten benyttet 136 registre, organisert i åtte register-vinduer, og en optimalisert håndterer av betingede hopp.

Fujitsu SPARC MB86903 ble benyttet i Sun SPARCstation IPX i 1991.

Noter[rediger | rediger kilde]

  1. ^ De to første arbeidsstasjonene fra Sun Microsystems med SPARC, var modellene 4/260 og 4/280 i serien sun-4. De var begge uten hurtigminne, benyttet Fujitsu SPARC MB86900 og koprosessoren Weitek 1164 eller Weitek 1165 til flyttall. Fjerde generasjon SPARC fra Fujitsu, Fujitsu SPARC MB8603, hadde en integrert koprosessor for flyttall. Den ble benyttet på SPARCstation IPX, som også var forsynt med 64 Kb hurtigminne.

Referanser[rediger | rediger kilde]

  1. ^ a b c d e f g h SPARC V7 1988, Introduction, 1-1
  2. ^ a b c SPARC V9 2003, side XIII
  3. ^ a b SPARC V7 1986
  4. ^ SPARC V8 1990
  5. ^ SPARC V9 1992
  6. ^ a b c SPARC V7 1988, SPARC Architecture overview, 2-1
  7. ^ a b SPARC V7 1988, SPARC Architecture overview, 2-3
  8. ^ a b c d Colwell 1985, side 10
  9. ^ SPARC V7 1988, Instructions, 4-1
  10. ^ Colwell 1985, side 11
  11. ^ Colwell 1985, side 14
  12. ^ Colwell 1985, side 14-15
  13. ^ David. A. Patterson, Carlo. H. Sequin: RISC I: A Reduced Instruction Set VLSI Computer, Proc. 8th International Symposium on Computer Architecture, Association for Computing Machinery, side 443-457, 1981, 2. utgave, International Symposium on Computer Architecture archive, 25 years of the international symposia on Computer architecture, side 216–230, 1998, ISBN 1-58113-058-9
  14. ^ a b c Johansson 1990, side 42
  15. ^ Johansson 1990, side 46
  16. ^ Le Quach og Richard Chueh: CMOS gate array implementation of SPARC, Compcon Spring apos;88, Thirty-Third IEEE Computer Society International Conference, Digest of Papers, 29. februar-3. mars 1988, side 14–17
  17. ^ a b Masood Namjoo: SPARC implementations: ASIC vs. custom design, System Sciences, 1989. Vol.I: Architecture Track, Proceedings of the Twenty-Second Annual Hawaii International Conference on System Sciences, Volume 1, Issue1, 3.-6. januar 1989 side 19–22

Litteratur[rediger | rediger kilde]

  • Colwell, Robert P.; Hitchcock III, Charles Yong, Jensen, E. Douglas, Sprunt, H. M. Brinkley, Kollar, Charles P. (1985). Response to Computers, Complexity, and Controversy (pdf). Carnegie-Mellon University, IEEE Computer Magazine, vol. 18, side 8–19, november 1985. 
  • Johansson, Roger (1990). Detailed Architecural Survey (pdf). Departement of Computer Engineering, Chalmers University of Technology, Göteborg, 13. desember 1990. 
  • Sun Microsystems Inc. (1986). The SPARC Architecture Manual, version 7. 2550 Garcia Avenue, Mountain View, California, mars 1986. 
  • Sun Microsystems Inc. (1988). The SPARC Architecture Manual, version 7. Soulbourne Computer Inc., 2190 Miller Drive, Longmont, Colorado, 80501, 303 772-3400, 7. september 1988. 
  • Sun Microsystems Inc. (1990). The SPARC Architecture Manual, version 8. 2550 Garcia Avenue, Mountain View, California, desember 1990. 
  • Sun Microsystems Inc. (1992). The SPARC Architecture Manual, version 9. 2550 Garcia Avenue, Mountain View, California, 1992. 
  • SPARC International, Inc., Weaver, David L.;Germond, Tom (red) (2003). The SPARC Architecture Manual, version 9, SA-V09-R147. Prentice Hall, Englewood Cliffs, New Jersey, juli 2003. ISBN 0-13-825001-4.