Pentium Pro
Fra Wikipedia, den frie encyklopedi
Intel ® Pentium Pro™ (kodenavn: P6 og A80521), populært kalt Pentium Pro, var den første sjette-generasjons x86 mikroprosessor. Pentium Pro ble lansert den 1. november 1995.
Navnet «Pentium Pro[fessional]» er egentlig misvisende. Pentium Pro var ikke en «profesjonell» utgave av Intel ® Pentium™, men en helt ny og grunnleggende forskjellig arkitektur. Navnet «Hexium» (6) ville være mer presist, men ble ikke brukt ettersom navnet «Pentium» (5) var blitt innarbeidet i markedet.
[rediger] Egenskaper ved Pentium Pro
- 8 Kb Data-Cache + 8 Kb Instruksjons-Cache
- 256 Kb, 512 Kb eller 1 Mb nivå-2 Cache
- Optimalisert for å kjøre 32-bit kode
- Hyperskalær arkitektur
- 14-trinns pipe (mot 5 trinn på Intel ® Pentium™)
- RISC kjerne som emulerer x86 CISC-instruksjoner
- Register renaming og 48 generelle registre
- Ikke-blokkerende nivå-2 Cache-RAM
- 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
[rediger] Optimalisert for å kjøre 32-bit kode
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, som nettopp var lansert, var en hybrid mellom 16-bit og 32-bit kode, og var i tillegg en DOS-Extender 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. Andre 32-bit operativsystemer var f.eks. OS/2 3.0, Solaris, UnixWare og Linux distribusjoner, men de var ikke markedsdominerende.
[rediger] Hyperskalær arkitektur
I likhet med Intel ® Pentium™, var Intel ® Pentium Pro™ en hyperskalær mikroprosessor. Dette betyr at den er istand til å 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
[rediger] RISC-kjerne som emulerer x86 CISC-instruksjoner
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.
[rediger] Register renaming og 40 generelle registre
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.
[rediger] Ikke-blokkerende nivå-2 Cache-RAM
Intel ® Pentium™ (med kodenavnet P5) benyttet en ekstern nivå-2 Cache-RAM, som ble plassert på hovedkortet utenfor prosessoren. En slik ekstra nivå-2 Cache-RAM var påkrevet, ettersom ordinær RAM fortsatt var svært treg i forhold til prosessoren.
Forskjellige hovedkort for Intel ® Pentium™ benyttet imidlertid nivå-2 Cache-RAM 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 Cache-RAM for Intel ® Pentium™ blokkerende: Prosessoren kunne ikke kommunisere med nivå-2 Cache-RAM og hovedminnet samtidig.
For det tredje kunne ikke denne eksterne nivå-2 Cache RAM kjøre med samme hastighet som selve prosessoren.
På denne tiden var det for kostbart å integrere nivå-2 Cache RAM i prosessor-kjernen. Intel ® Pentium Pro™' ble derfor levert med prosessoren og nivå-2 Cache RAM separat under samme kapsel.
For det første medførte dette en standardisering av hvilken type nivå-2 Cache-RAM prosessoren benyttet. For det andre kommuniserte prosessoren med nivå-2 Cache-RAM 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 Cache RAM og det eksterne minnet samtidig gjennom to separate busser.
Totalt sett fjernet dette en tradisjonell flaskehals. Istedenfor kun én enkelt Cache-forespørsel 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 en felles nivå-2 Cache RAM.
[rediger] Out of order execution
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 potensiale.
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, istedetfor at A og B utføres sekvensielt etter hverandre (én instruksjon av gangen).
[rediger] Spekulativ utførelse
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), istedetfor å 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 kommer til å fortsette 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. Dette innebærer at 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.
[rediger] 14-trinns pipelining
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
[rediger] Modeller
Lansert | Klokke- frekvens |
Fronside Bus |
Størrelse | Transistor- størrelse |
Antall transistorer |
Nivå-2 Cache |
---|---|---|---|---|---|---|
− | 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 Cache |
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 |
[rediger] Intel Pentium® II OverDrive® for Pentium Pro™
Produksjonen av Pentium Pro opphørte i fjerde kvartal 1998, og ble erstattet av etterfølgeren 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:
- 16 Kb Data-Cache + 16 Kb Instruksjons-Cache
- 300 MHz klokkefrekvens (for Pentium Pro 150 og 180)
- 333 MHz klokkefrekvens (for Pentium Pro 166 og 200)
- 512 Kb nivå-2 Cache, som kjørte med prosessorens hastighet
- Multimedia-instruksjonene MMX™
[rediger] Litteratur
- 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
4004* | 4040* | 8008* | 8080* | 8085* | 8086 | 8088 | iAPX 432* | 80186 | 80188 | 80286 | 80386 | 80486 | i860* | i960* | Pentium | Pentium Pro | Pentium II | Celeron | Pentium III | XScale* | Pentium 4 | Pentium M | Pentium D | Pentium Extreme Edition | Xeon | Core | Itanium*
(*) - Prosessorer som ikke er basert på x86-arkitekturen