Pentium Pro

Fra Wikipedia, den frie encyklopedi
Gå til: navigasjon, søk
Intel Pentium Pro
Mikroprosessor
Ppro256K.jpg
Pentium Pro med 256 Kb L-2 hurtigminne
Produsert 1. november 1995
Produsent Intel
Klokkefrekvens 150, 166, 180 og 200 MHz
Socket Socket 8 (387 pinner)
Kjerne x86-32

Intel® Pentium Pro™ (kodenavn: P6 og A80521) var den første sjette-generasjons x86 mikroprosessoren, og ble lansert den 1. november 1995.

Navnet «Pentium Pro(fessional)» er misvisende, fordi Pentium Pro ikke var en «profesjonell» Intel® Pentium™, men en ny arkitektur. Navnet «Hexium» (6) er mer presist, men ble ikke brukt ettersom navnet «Pentium» (5) var blitt innarbeidet i markedet.

Egenskaper ved Pentium Pro[rediger | rediger kilde]

Socket 8 for Pentium Pro
  • 350 nanometers BiCMOS transistorer
  • Nivå-1 hurtigminne: 8 Kb for data + 8 Kb for instruksjoner
  • Nivå-2 hurtigminne: 256 Kb, 512 Kb eller 1 Mb
  • Optimalisert for å kjøre 32-bit kode
  • Hyperskalær arkitektur
  • 14-trinns pipe (5 trinn i Intel Pentium)
  • RISC kjerne som emulerer x86 CISC-instruksjoner
  • Register renaming og 48 generelle registre
  • Ikke-blokkerende nivå-2 hurtigminne
  • Out-of-order execution
  • Spekulativ utførelse
  • Integrert multiprosessor-kontroller for opptil 4 prosessorer
  • 36-bit adressebuss (maksimum 64 Gigabyte RAM)
  • 387 pinner (benyttet socket 8)
  • Elektrisk spenning: 3,1 Volt internt og 3,3 Volt eksternt

Optimalisert for 32-bit programmer[rediger | rediger kilde]

I likhet med Intel 80386, Intel 80486 og Pentium, var Pentium Pro bakoverkompatibel med 16-bit x86 programmer.

Pentium Pro var imidlertid konstruert for å kjøre 32-bit programmer raskere enn 16-bit programvare. 32-bit programmer ble utført 25−35% raskere enn på Intel® Pentium™, mens ytelsesforbedringen på 16-bit programvare bare var 20%.

Selv om dette var et teknologisk fremskritt, ble Pentium Pro ingen suksess i hjemme-PC'er. Markedet var fortsatt dominert av 16-bit operativsystemene MS-DOS og MS Windows 3.1. MS Windows 95 var en hybrid mellom 16-bit og 32-bit kode, og var i tillegg en DOS-utvider til 16-bit MS-DOS.

For å få fullt utbytte av Pentium Pro, behøvde man et 32-bit operativsystem. Microsofts eneste 32-bit operativsystem på denne tiden var MS Windows NT 3.51. 32-bit operativsystemer som f.eks. OS/2 3.0, Solaris, UnixWare og Linux distribusjoner var ikke markedsdominerende.

Hyperskalær arkitektur[rediger | rediger kilde]

I likhet med Intel® Pentium™, var Intel® Pentium Pro™ en hyperskalær mikroprosessor, og kan utføre mer enn én instruksjon samtidig.

Begge prosessorene hadde to heltalls-enheter og en desimaltalls-enhet integrert i kjernen. Intel® Pentium™ kunne utføre to heltalls-instruksjoner samtidig, men var ikke istand til å utføre heltalls- og desimaltallsberegninger samtidig.

Intel® Pentium Pro™ var istand til å utføre tre instruksjoner samtidig: To heltalls-instruksjoner og en desimaltalls-instruksjon

RISC-kjerne som emulerer x86 CISC-instruksjoner[rediger | rediger kilde]

Pentium Pro var en RISC-prosessor som emulerte x86 CISC-instruksjoner. x86-instruksjoner ble dekodet til «mikro-operasjoner» («micro-ops» eller µ-ops) under kjøring, og sendt videre til de utførende enhetene. Opptil 5 «mikro-operasjoner» kunne utføres og opptil 3 avsluttes, for hver klokkepuls.

«Mikro-operasjonene» forenklet utførelsen, ved å oppdele x86-instruksjoner med varierende størrelse (i bits) i like store instruksjoner.

RISC-instruksjonene var ikke tilgjengelige for programmerere, men ble brukt internt av prosessoren. Før lanseringen av Pentium Pro, ble det samme prinsippet benyttet i NexGen Nx586 som hadde sitt eget proprietære RISC86™ instruksjons-sett.

Register renaming og 40 generelle registre[rediger | rediger kilde]

Intel® Pentium™ hadde 8 generelle registre. Intel® Pentium Pro™ hadde i tillegg 40 generelle registre som ble brukt av RISC «mikro-operasjonene».

Dette innebar bruken av register renaming, der 1-3 «mikro-operasjoner» skiftet registernavn i løpet av en klokkepuls.

Pentium Pro prosessoren og nivå-2 hurtigminne under samme kapsel
Mer detaljert bilde

Ikke-blokkerende nivå-2 hurtigminne[rediger | rediger kilde]

Intel® Pentium™ (med kodenavnet P5) benyttet et eksternt nivå-2 hurtigminne, som ble plassert på hovedkortet utenfor prosessoren. Nivå-2 hurtigminne var påkrevet, ettersom ordinær RAM fortsatt var svært treg i forhold til prosessoren.

Forskjellige hovedkort for Intel® Pentium™ benyttet nivå-2 hurtigminne av forskjellig størrelse og forskjellig type, og denne mangelen på standardisering kunne tidvis gi et uoversiktlig helhetsbilde av ulike Pentium-konfigurasjoner.

For det andre var nivå-2 hurtigminne for Intel® Pentium™ blokkerende: Prosessoren kunne ikke kommunisere med nivå-2 hurtigminne og hovedminnet samtidig.

For det tredje kunne ikke dette eksterne hurtigminnet kjøre med samme hastighet som selve prosessoren.

På denne tiden var det for kostbart å integrere nivå-2 hurtigminne i prosessor-kjernen. Intel® Pentium Pro™ ble derfor levert med prosessoren og nivå-2 hurtigminne separat under samme kapsel.

For det første medførte dette en standardisering av hvilken type nivå-2 hurtigminne prosessoren benyttet. For det andre kommuniserte prosessoren med nivå-2 hurtigminnet med samme klokkefrekvens som prosessoren selv, og ikke med en redusert hastighet. For det tredje var denne kommunikasjonen ikke-blokkerende: Pentium Pro kommuniserte med nivå-2 hurtigminnet og det eksterne minnet samtidig gjennom to separate busser.

Totalt sett fjernet dette en tradisjonell flaskehals. Istedenfor kun én enkelt forespørsel til hurtigminnet om gangen, kunne Pentium Pro foreta inntil 4 samtidig, og dermed redusere svekket ytelse ved såkalte cache-miss.

Denne implementasjonen av Memory Level Parallelism (MLP) førte også til at Pentium Pro hadde en ekstrem ytelse i SIMD-maskiner, sammenlignet med alternativer der prosessorer delte et felles nivå-2 hurtigminne.

Out of order execution[rediger | rediger kilde]

Instruksjoner kan utføres samtidig, når de ikke er innbyrdes avhengige av hverandre.

 Avhengighet           Ingen avhengighet
 A = 1 + 1             A = 1 + 1
 B = 1 + A             B = 1 + 2

I det første eksempel kan ikke begge beregningene utføres samtidig. Man må beregne A, før man kan beregne B. Intel® Pentium™ kunne ikke utføre to avhengige instruksjoner samtidig.

Programvare for Intel 8086/Intel 8088, Intel 80186/Intel 80188, Intel 80286, Intel 80386 og Intel 80486 var ikke skrevet for denne type samtidig utførelse. Da Intel Pentium ble lansert i 1993 var det kun et fåtall programmer som utnyttet dens potensial.

Intel® Pentium Pro™ kunne «se fremover» i programmene, oppdage avhengigheter før de oppstod, og utføre instruksjonene i en annen rekkefølge enn programmet tilsa (out of order execution):

 Avhengighet           Utførelse i en
                       annen rekkefølge
 A = 1 + 1             A = 1 + 1
 B = 1 + A             C = 1 + 2
 C = 1 + 1             B = 1 + A

A og C (to instruksjoner) kunne utføres samtidig, istedenfor at A og B utføres sekvensielt etter hverandre (én instruksjon av gangen).

Spekulativ utførelse[rediger | rediger kilde]

Betingede hopp kan hemme parallell utførelse. I programmerings-språket C kan dette illustreres slik:

 if (x == 2)                Hvis x = 2
   subrutine1();               så hopp til subrutinen "subrutine1"
 else                       I motsatt fall
   ....                        fortsett med neste instruksjon

I dette tilfelle vet man ikke på forhånd om betingelsen for et hopp til en annen del av programmet er tilstede.

Dersom prosessoren hopper til en annen del av programmet, og påbegynner utførelsen der, samtidig som den sjekker om betingelsen for et hopp er tilstede, vil utførelsen av en rekke instruksjoner påbegynnes, for deretter å forkastes. Dersom prosessoren påbegynner utførelsen av neste instruksjon (i eksempelet ovenfor), istedenfor å utføre et hopp, vil også utførelsen av en rekke instruksjoner påbegynnes, for deretter å forkastes, dersom betingelsen likevel er tilstede. I begge tilfeller oppstår forsinkelser.

Intel® Pentium Pro™ reduserte denne flaskehalsen ved hjelp av «branch prediction» − «forutsigelser» av hvilken «grein» (branch) av programmet som fortsetter under betingede hopp, basert på erfaringer fra programutførelsens historikk.

Prosessoren hadde et Branch Prediction Buffer bestående av 512 «inngangsporter» til forskjellige utfall av betingelser. Instruksjoner fra forskjellige «greiner» hentes, dekodes og utføres, før prosessoren vet hvilken «grein» som er korrekt. Når dette er avgjort, forkastes alle instruksjonene på de feilaktige «greinene», mens den korrekte «greinen» beholdes.

14-trinns pipelining[rediger | rediger kilde]

Pentium Pro hadde en 14-trinns pipe, bestående av tre hovedfaser:

  • 8-trinns in order front end (henting og dekoding)
  • 3-trinns out of order execution, utført av 5 enheter
  • 3 trinns in order avslutning

Modeller[rediger | rediger kilde]

Lansert Klokke-
frekvens
Fronside
Bus
Størrelse Transistor-
størrelse
Antall
transistorer
Nivå-2
hurtigminne
133 MHz 1 66 MHz 306 mm² 0,5 µm 5,5 millioner 256 Kb
1. november 1995 150 MHz 60 MHz 306 mm² 0,5 µm 5,5 millioner 256 Kb
1. november 1995 166 MHz 66 MHz 196 mm² 0,35 µm 5,5 millioner 512 Kb
1. november 1995 180 MHz 60 MHz 306 mm² 0,5 µm 5,5 millioner 256 Kb
180 MHz 60 MHz 196 mm² 0,35 µm 5,5 millioner 512 Kb
1. november 1995 200 MHz 66 MHz 306 mm² 0,5 µm 5,5 millioner 256 Kb
1996 200 MHz 66 MHz 196 mm² 0,35 µm 5,5 millioner 512 Kb
18. august 1997 200 MHz 66 MHz 196 mm² 0,35 µm 5,5 millioner 1024 Kb

1 Eksperimentell versjon. Ikke lansert for salg.

Nivå-2
hurtigminne
Størrelse Transistor-
størrelse
Antall
transistorer
256 Kb 202 mm² 0,5 µm 15,5 millioner
512 Kb 242 mm² 0,35 µm 31 millioner
1024 Kb 2x 242 mm² 0,35 µm 2 x 31 millioner

Intel Pentium® II OverDrive® for Pentium Pro™[rediger | rediger kilde]

Produksjonen av Pentium Pro opphørte i fjerde kvartal 1998, og ble erstattet av Pentium II. I denne forbindelse lanserte Intel en oppgraderings-prosessor, en variant av Pentium II som kunne brukes på socket 8.

Intel Pentium® II Overdrive® for Pentium Pro™ (kodenavn P6T) ble lansert den 10. august 1998, og hadde følgende nye egenskaper:

  • Nivå-1 hurtigminne: 16 Kb for data + 16 Kb for instruksjoner
  • 300 MHz klokkefrekvens (for Pentium Pro 150 og 180)
  • 333 MHz klokkefrekvens (for Pentium Pro 166 og 200)
  • 512 Kb nivå-2 hurtigminne, som kjørte med prosessorens hastighet
  • Multimedia-instruksjonene MMX

Litteratur[rediger | rediger kilde]

  • K. Keeton, D. Patterson, Y. He, R. Raphael, og W. Baker: Performance characterization of a quad Pentium Pro SMP using OLTP workloads, Proceedings of the Twenty-Fifth International Symposium on Computer Architecture, s. 15-26, 1998.
  • Tom Stanley (MindShare Inc.): Pentium Pro Processor System Architecture, PC System Architecture Series, Addison-Wesley Professional, 23. desember, 1996, ISBN 0201479532
  • Robert P. Colwell: The Pentium Chronicles: The People, Passion, and Politics Behind Intel's Landmark Chips, IEEE Computer Society, John Wiley & Sons, Inc., Hoboken, New Jersey, 2006, ISBN 0-471-73617-1