Intel i860

Fra Wikipedia, den frie encyklopedi
Gå til: navigasjon, søk
Intel 80860
Mikroprosessor
Intel i860 XP A80860XP-50 L4190197 top.jpg
i860 XP 50 Mhz mikroprosessor
Produsert 27. februar 1989
Produsent Intel
Klokkefrekvens 20, 33, 40 og 50 MHz
Kjerne RISC

Intel i860, eller mer presist Intel ® 80860™ (kodenavn: N10), var en hyperskalær RISC-prosessor som ble lansert av Intel den 27. februar 1989. Den var verdens første RISC-prosessor med mer enn 1 million transistorer (1 mikrometers CMOS).

Karakteristika[rediger | rediger kilde]

Mikroprosessoren ble lansert som en 64-bit prosessor, men var i virkeligheten en hybrid mellom 32-bit og 64-bit. Den var endog en hybrid mellom RISC og VLIW, og var sammensatt av 9 komponenter:

  • En 32-bit RISC-kjerne (ALU) med 32 stk generelle 32-bit registre
  • En 64-bit desimaltalls-enhet (FPU) med 16 stk generelle 64-bit registre
  • En desimaltall adderer
  • En desimaltall multiplikator
  • En 64-bit heltalls SIMD grafikk-prosessor (VLIW), som benyttet registrene til desimaltalls-enheten
  • Integrert Memory Management Unit (MMU)
  • Integrert minnekontroller
  • 4 Kb integrert Instruksjons-Cache, med 64-bit buss (32 bit til heltallsenheten og 32 bit til desimaltalls-enheten)
  • 8 Kb integrert Data-Cache, med 224-bit buss (32-bit til heltallsenheten, 128 bit til desimaltalls-enheten og 64-bit til minnekontrolleren)

Adressebussen var 32-bit, og kunne håndtere 4 Gigabyte eksternt minne. Databussen var 64-bit.

Prosessoren ble produsert i hastigheter på 20, 33 og 40 MHz.

Intel i860 XP[rediger | rediger kilde]

Tre stk i860 XP-50 mikroprosessorer på et hovedkort fra Intel's Paragon XP/S superdatamaskin.

I 1990 lanserte Intel Intel ® i860™ XP (kodenavn: N11), produsert med 0,8 mikrometers CMOS transistorer.

Instruksjons-settet var det samme som forgjengeren. Det nye var en avbruddshåndterer for multiprosessorer, og en kontroller for Nivå-2 Cache RAM i multiprosessorer, integrert i selve brikken.

Dessuten ble størrelsen på nivå-1 Cache økt til 16 kb for instruksjoner og 16 kb for data.

Intel i860 XP hadde 2,5 millioner transistorer, og kjørte i 40 og 50 MHz.

Produksjonen av Intel i860/i860 XP opphørte i slutten av 1990-årene.

Ytelse[rediger | rediger kilde]

Intel i860 levde ikke opp til sin teoretiske ytelse. Mikroprosessoren var konstruert ut fra den filosofi at kompleksiteten legges i kompilatoren, ikke maskinvaren. Dette ble vanskeligere enn antatt. Selv om prosessoren teoretisk kunne yte 80 MFLOPs ved 40 MHz, hadde de fleste kompilatorer problemer med å generere kode som førte til en ytelse på 10 MFLOPs.

Liksom den første SPARC-prosessoren (1985), hadde Intel i860 og i860 XP en 4-trinns «pipe», der instruksjoner ble utført i 4 etapper:

  • Hent en instruksjon fra minnet
  • Dekod instruksjonenen
  • Utfør instruksjonen
  • Skriv resultatet i minnet

Mens én instruksjon hentes, ble en annen dekodet, en tredje utført, mens resultatet fra en fjerde ble returnert til minnet. Bearbeidelsen av 4 instruksjoner samtidig, gjorde det mulig for i860 å utføre en heltallsinstruksjon per klokkepuls. Ved desimaltallsberegninger kunne prosessoren utføre to instruksjoner per klokkepuls.

Slik kunne Intel i860 yte 40 MIPS og 80 MFLOPS ved 40 MHz.

Dette var imidlertid avhengig av at programmerere skrev god kode. Dårlig programmering kunne forsinkelse utførelsen. Assemblerkoden nedenfor, for i860, illustrerer dårlig programmering.

  ld.l  0(r17), r5  ; last inn et tall fra minnet i register 5      
  addu r5, r6, r7   ; adder innholdet i registrene 5 og 6 
                    ; og flytt resultatet til register 7
  or r8, r9, r10    ; legg resultatet av r8 OR r9 i register 10
1 2 3 4 5 6 7
HENT DEKOD UTFØR SKRIV
HENT DEKOD Red Arrow Down.svg UTFØR SKRIV
HENT Red Arrow Down.svg DEKOD UTFØR SKRIV

I kollonne 4 ovenfor forsinkes utførelsen av to instruksjoner.

  ld.l  0(r17), r5  ; last inn et tall fra minnet i register 5      
  or r8, r9, r10    ; legg resultatet av r8 OR r9 i register 10
  addu r5, r6, r7   ; adder innholdet i registrene 5 og 6 
                    ; og flytt resultatet til register 7

Koden ovenfor medfører ingen forsinkelse.

1 2 3 4 5 6
HENT DEKOD UTFØR LES I CACHE SKRIV
HENT DEKOD UTFØR SKRIV
HENT DEKOD UTFØR SKRIV

Et annet problem med i860 var mangelen på en hurtig håndering av kontekst-skifte. Mikroprosessoren hadde flere parallelle pipes (for heltallsenheten og desimaltalls-enhetene), og et avbrudd kunne medføre at samtlige måtte lastes opp på nytt. Slike avbrudd kunne forsinke utførelsen av instruksjoner med mellom 62 og 2000 klokkepulser.

Bruksområder[rediger | rediger kilde]

I begynnelsen ble i860 brukt av et lite antall svært store datamaskiner, deriblant iPSC/860 ved Los Alamos National Laboratory. Etterhvert som kompilatorene ble forbedret, og kunne generere mer optimal kode for mikroprosessoren, var i860 utkonkurrert ytelsesmessig av andre RISC-prosessorer.

I enkelte arbeidsstasjoner ble i860 brukt som grafikk-akselrator. Et eksempel var NeXTdimension, som kjørte en nedskalert versjon av det distribuerte operativsystemet Mach. Et annet eksempel var SGI Onyx Reality Engine 2.

Microsoft hadde i 1989 som intensjon å basere operativsystemet Windows NT på i860-baserte datamaskiner. «N10-operativsystemet», «N-Ten», «NT» og «Dazzle», var interne navn på et operativsystem for i860. Planen ble senere forkastet, og forkortelsen «NT» ble omdøpt fra å bety N-Ten til å bety New Technology.[1]

I slutten av 1990-årene ble både i860 og i960 erstattet av XScale.

Referanse[rediger | rediger kilde]

  1. ^ Helen Custer: Inside Windows NT, Microsoft Press, 1993, ISBN 1-55615-481-X

Litteratur[rediger | rediger kilde]