Pentium Pro

Pentium Pro on Inteli kuuenda põlvkonna x86-mikroprotsessor, mida tutvustati avalikkusele 1. novembril 1995.
Protsessor põhines uuel mikroarhitektuuril P6 (tuntud kui i686). Kuigi P6 mikroarhitektuuri järeltulijaks oli 2000. aastal tutvustatud NetBurst, kasutati P6 arhitektuuri muudetud kujul nii Pentium M protsessorites kui ka Core mikroarhitektuuriga protsessorites.
Kui eelkäijad Pentium ja Pentium MMX mahutasid vastavalt 3,1 ja 4,5 miljonit transistorit, siis Pentium Pro mahutas 21 miljonit transistorit, millest 15,5 miljonit kulus L2-vahemälu peale.
Pentium Pro peamised kasutusalad olid serverid ja superarvutid (näiteks ASCI Red).
Pentium Pro kasutab protsessoripesa Socket 8 ning on võimeline töötama kahe- ja neljaprotsessorilistes konfiguratsioonides.
Selle järeltulijaks sai 1998. aastast Pentium II Xeon.
Mikroarhitektuur.
Kui Pentium MMX laiendas P5 mikroarhitektuuri uute käskude ja suuremate vahemäludega, siis P6 oli täiesti uus arhitektuur.
Pentium Pro võimaldas dünaamilist täitmist, mis seob terviklikuks süsteemiks käskude järjekorravälist täitmist, spekulatiivset täitmist, registrite ümbernimetamist ning rangelt kontrollitud mälupöörduste ümberjärjestamist.
IA-32 käsud dekodeeritakse µopideks (mikrooperatsioonideks) ning nende täitmise järjekorda proovitakse ennustada.
Võimalusel nimetatakse µopide kasutatavad registrid ümber, et eemaldada näilised sõltuvused µopide vahel. Pärast ümbernimetamist on võimalik µope täita selles järjekorras, mis järjekorras vajalikud andmed protsessorisse jõuavad (nt saab µopi, mis kasutab kahte mäluaadressi, täita juhul, kui mõlemas mäluaadressis sisalduv info on jõudnud protsessori registritesse). 
Pärast täitmist salvestatakse µopide tulemused vastavalt täidetava programmi lähtekoodi järjekorras.
See on võimalik tänu ühele üldisele mehhanismile, mis tegeleb ootamatute asünkroonsete sündmustega nagu valesti ennustatud harud, käskude täitmisest tekkinud vead ja katkestused ning välised katkestused.
Dünaamiline täitmine on Pentium Pro suure jõudluse peamine põhjus.
Protsessori peamist töökulgu võib kirjeldada järgmiselt.
Uudsel dünaamilist ning spekulatiivset täitmist võimaldaval arhitektuuril olid omad miinused. x86 käskude muundamine väiksemateks µopideks võtab aega. Lisaks mõjutab käsukonveierile sattunud käskude järjekord µopideks muundamise kiirust. Esimene dekooder dekodeerib ülimalt 4 µopiks, järgnevad kaks dekoodrit ülimalt üheks µopiks dekodeeritavad käsud.
add eax, ecx ; 1 uop käsk (dekooder 0)
add edx, [ebx] ; 2 uop käsk (1-taktiline seisak, kuniks dekooder 0 vabaneb)
add eax, [ebx] ; 2 uop käsk (dekooder 0)
mov ecx, [eax] ; 2 uop käsk (1-taktiline seisak, kuniks dekooder 0 vabaneb)
add ebx, 8 ; 1 uop käsk (dekooder 1)
add eax, [ebx] ; 2 uop käsk (dekooder 0)
add ecx, eax ; 1 uop käsk (dekooder 1)
add eax, 8; 1 uop käsk (dekooder 2)
See tähendab, et parima jõudluse saavutamiseks tuleks võimalusel kasutada lihtsaid, vähesteks µopideks muundatavaid käske keerulisemate käskude asemel, et vältida seisakuid käsukonveieril.
Võrreldes oma eelkäijaga on Pentium Prol:
Pentium Pro oli esimene Inteli protsessor, mis toetas füüsilise aadressi laiendust (ingl "physical address extension") ning integreeris L2-vahemälu protsessoriga samasse korpusse.
Pärast mikroprotsessori väljalaset avastati programmiviga ujukomaarvude täiturüksuses,
mida tuntakse üldiselt "Pentium Pro and Pentium II FPU bug" nime all ning millele Intel andis nime "flag erratum".
Viga tekib teatud tingimustel, kui 80-bitist ujukomaarvu teisendatakse 16-bitisteks või 32-bitisteks täisarvuks.
See programmiviga muudab ujukomaarvude täiturüksuse käitumise ettearvamatuks.
Kuid sellest olenemata on vea esinemise tõenäosus väga väike (üks 8,6 miljardist, kui teisendatakse 16-bitiseks täisarvuks, ning üks 562 950 miljardist, kui teisendatakse 32-bitiseks täisarvuks).
Lisaks kinnitasid tuntud tehnikahiiud (Microsoft, Oracle, IBM, Netscape jne), et nende tarkvara pole veast siiani tõsiselt häiritud olnud.
Jõudlus.
Pentium Pro tootmise algusaastatel olid personaalarvutite kasutajate seas populaarsed operatsioonisüsteemid 16-bitine MS-DOS, 16/32-bitine Windows 3.1x ja 32/16-bitine Windows 95. Kuna Pentium Pro jõudlus 16-bitise koodi käitamisel polnud võrdne vanemate Pentiumitega ja protsessori hind oli kõrge, siis oli Pentium Pro tavakasutajate seas ebapopulaarne. Selleks, et kasutada uue P6 mikroarhitektuuri kõiki eeliseid, oli kasutajal vaja täielikult käitada 32-bitist operatsioonisüsteemi nagu Windows NT 3.51, Linux, Unix või OS/2.
Mitte ükski Pentium Pro mudel ei rakendanud ühe käsuvoo ja mitme andmevooga (ingl "SIMD") käsukomplekti, mis pani märgatava piiri protsessori jõudlusele multimeediarakenduste käitamisel.
Tolleaegsete kiireimate kärbitud käsustikuga (ingl "RISC") protsessoritega võrreldes oli Pentium Pro täisarvudega opereerimises natuke kiirem (mõõtmiseks kasutati SPECint95 reeperit).
Ujukomaarvudega opereerimine oli märkimisväärselt aeglasem, osadest "RISC" protsessoritest kaks korda aeglasem.
Pentium Pro oli täisarvudega opereerimises kiireim lühikest aega: esimesena ületas selle kiiruse MIPS Technologies protsessor R10000 1996. aasta jaanuaris ning hiljem Digital Equipment Corporationi Alpha 21164 EV56 variant.
Pentium Prod kasutades leidsid arvustajad, et arhitektuuri üks nõrkusi oli aeglane videomällu kirjutamine. Selle kitsaskoha parendamiseks soovitati VESA joonistamisi teha süsteemimälus (mängus "Quake"); hiljem loodi utiliit "FASTVID", mis lülitas protsessoris sisse kombineeritud kirjutamise (ingl "combined writing") kasutamise ning mille tagajärjel paranes jõudlus teatud mängudes märgatavalt.
Innovatsioon vahemälus.
Tõenäoliselt märkimisväärseim lisa Pentium Pro protsessorile oli protsessori korpusesesisene L2-vahemälu, mis protsessori esmaväljalaskel oli 256 KiB suurune (hiljem kuni 1 MiB).
Tollal ei võimaldanud protsessorite tootmistehnoloogia hõlpsalt suurt L2-vahemälu protsessori tuuma sisse integreerida.
Intel paigaldas L2-vahemälu otse protsessori korpusse selle kõrvale, mis võimaldas vahemälul töötada samal taktsagedusel nagu protsessor ise.
Erinevalt laialtlevinud emaplaadil asuvatest vahemäludest, mis jagasid süsteemisiini protsessoriga, oli Pentium Pro vahemälul eraldi tagasiin, mis võimaldas keskprotsessoril lugeda korraga muutmälu ja vahemälu.
Lisaks oli L2-vahemälu "mitte-blokeeriv", mis tähendas, et protsessor võis vahemällu saata korraga kuni 4 päringut.
Nende omaduste tõttu oligi uus L2-mälu ülikiire võrreldes vanemate protsessorite vahemäludega, mis asusid emaplaadil.
Ainuüksi uus ning kiirem vahemälu andis Pentium Prole võrreldes vanemate x86 protsessoritega sisend-väljundoperatsioonide täitmise kiiruses eelise.
Mitme protsessoriga konfiguratsioonides andis Pentium Pro uus korpusesisene vahemälu ületamatu eelise jõudluses võrreldes konfiguratsioonidega, kus kõigil protsessoritel oli jagatud, keskne vahemälu.
Kuid uus L2-vahemälu polnud puudusteta.
Vahemälu eripäraks oli tema ehitus: protsessor ja vahemälu olid küll samas korpuses, kuid nad asusid eraldi kividel.
Protsessor ja vahemälu tuli ühendada tootmisprotsessis enne, kui neid oli võimalik testida.
See tähendas, et väiksemagi vea korral kummaski kivis tuli kogu protsessor maha kanda.
See oli ka üks põhjustest, miks Pentium Pro protsessorid olid madala saagise ning kõrge hinnaga.
Kõik Pentium Pro mudelid olid kallid, eriti 1024 KiB vahemäluga protsessorid, kuna need vajasid kaht 512 KiB vahemälukivi ning lisaks veel protsessorikivi.
Mudelid.
Pentium Pro mudelite taktsagedused olid 150, 166, 180 või 200 MHz ning esisiinide taktsagedused olid 60 või 66 MHz.
Mõned Pentium Pro kasutajad otsustasid oma protsessorid ülekiirendada, käitades 200 MHz protsessorit kiirusel 233 MHz, 180 MHz protsessorit kiirusel 200 MHz ja 150 MHz protsessorit kiirusel 166 MHz.
Protsessor oli populaarne valik sümmeetrilise multitöötlusega (SMP-töötlusega) konfiguratsioonides.
Tootmisprotsesside areng.
Aja möödudes muutusid Pentium Pro protsessorikivi ja vahemälukivi tootmisprotsessid, mis kulmineerus paljude tootmisprotsesside kasutamisega ühes protsessoris.
Protsessori korpus.
Pentium Pro (kuni 512 KiB vahemäluga) asub keraamilises mitmekiibilises moodulis. Mitmekiibilises moodulis on kaks alumist õõnsust, milles asuvad protsessorikivi ja vahemälukivi. Kivid on ühendatud soojusehajutajaga, mille katmata pealispind aitab kivide töötamisel tekkinud kuumust paremini jahutisse juhtida (näiteks radiaatorisse). Kivid on korpusega ühendatud traatidega. Õõnsused on kaetud keraamilise plaadiga.
Pentium Pro, millel on 1 MiB vahemälu, asub plastikust mitmekiibilises moodulis. Kahe õõnsuse asemel on selles ainult üks õõnsus, milles asuvad kõik kolm kivi. Soojusehajutaja asemel on need kivid ühendatud protsessori korpusega.
Õõnsused on täidetud epoksüliimiga.
Mitmekiibilises moodulis on 387 jalga, millest ligikaudu pooled on PGA (ingl "pin grid array") paigutusega ning ülejäänud IPGA (ingl "interstitial pin grid array") paigutusega. Protsessori kest kujundati Socket 8 jaoks.
Uuendamisvõimalused.
1998. aastal anti välja 300/333 MHz Pentium II Overdrive'i protsessor, mis
kasutas pesa Socket 8. Protsessori, millel oli 512 KiB täiskiirusel töötavat
vahemälu, tegi Intel selle jaoks, et anda Pentium Prod kasutavatele
arvutitele uuendamisvõimalus. Kuna uus protsessor toetas ainult kahesuunalist
vahetut (ingl "glueless") multitöötlust, mitte nelja- või enamasuunalist, polnud see uuendusena kasutatav
neljaprotsessorilistes süsteemides.
Kui Slot 1 pesaga emaplaadid muutusid populaarsemaks, andsid mitmed
tootjad välja pesaadaptereid (ingl "slocket"), nagu näiteks Tyan M2020, Asus C-P6S1, Tekram
P6SL1 ja Abit KP6. Nende adapterite abiga oli võimalik kasutada Pentium Pro
protsessoreid Slot 1 pesaga emaplaatidel. Intel 440FX kiibistik toetas
täielikult Pentium Pro ja Pentium II protsessoreid, kuid Intel 440BX
kiibistik ja hilisemad Slot 1 kiibistikud neid protsessoreid enam ei
toetanud, mis oluliselt vähendas Socket 8 pesaadapterite kasutust. Hiljem, pärast pesa Socket 370 kasutavate protsessorite Celeron ja Pentium III
väljalaskmist, muutusid pesaadapterid (Socket 370-to-Slot 1) uuesti
populaarseks.