Pentium Pro

Allikas: Vikipeedia

Pentium Pro on Inteli kuuenda põlvkonna x86-mikroprotsessor, mida tutvustati avalikkusele 1. novembril 1995 aastal. 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.[1]

Kui eelkäijad Pentium ning 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.[2][3]

Pentium Pro peamised kasutusalad olid serverid ning superarvutid (näiteks ASCI Red).[4] 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.

Pentium Pro Black Edition eestvaade

Mikroarhitektuur[muuda | muuda lähteteksti]

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.[5]

Protsessori peamist töökulgu võib kirjeldada järgmiselt.

  1. BTB (ingl Branch Target Buffer) aitab IFU-l (ingl Instruction Fetch Unit) valida järgmise käsu käskude vahemälust.
  2. Igal taktil teisendavad kolm paralleelset käsudekoodrit x86 käske mitmeteks µopideks. Enam kui neljaks µopiks muundatavad käsud saadetakse µopide järjestajasse, mis genereerib vajalikud µopid mitme takti vältel.
  3. Igal taktil nimetab RAT (ingl Register Alias Table) ümber kuni kolme µopi lähte- ning sihtaadressid. See leevendab registrite taaskasutamisest tekkivaid probleeme ning pärast ümbernimetamist saadetakse µopid RS-i (ingl Reservation Station) ning ROB-i (ingl Re-Order Buffer).
  4. Ümbernimetatud µopid järjestatakse RS-i, kus käsud jäävad ootama neile vajalike andmete saabumist. Andmeteks võivad olla eelmise µopi täitmise tulemused, konstandid, tulemused ROB-is.
  5. Järjestatud µope täidetakse vastavalt nende sõltuvusele sisendandmetest ning täiturüksuste saadavusele. µopide täitmise järjekorral ei ole mingit seost käskude järjekorraga täidetava programmi lähtekoodis.
  6. Mälµoperatsioonid saadetakse RS-ist AGU-sse (ingl Address Generation Unit) ning MOB-i (ingl Memory Ordering Buffer). MOB vastutab mälµoperatsioonide korrektses järjekorras täitmise eest.
  7. Peale µopi täitmist ning edastatakse selle µopi tulemus eelnevatele µopidele, mille töö sõltub täidetud operatsiooni tulemusest. Pärast tulemuse edastamist muutub µopi salvestamine võimalikuks.
  8. µopide salvestamisel taasluuakse käskude esialgne täitmisjärjekord, kasutades µopi ajatempleid. Lisaks täitmisjärjekorra taasloomisele tuleb salvestamise käigus tegeleda kõikide katkestuste ning vigadega. Pärast µopi salvestamist kirjutab ROB tulemuse RRF-i (ingl Retirement Register File) ning teavitab RAT-i salvestamisest. Ühe takti jooksul on võimalik salvestada kuni 3 µopi.[5]

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.

;1-taktiline seisak käsukonveieril, järjekord 1-2 uopi
add eax, ecx ; 1 uop käsk (dekooder 0)

add edx, [ebx] ; 2 uop käsk (1-taktiline seisak, kuniks dekooder 0 vabaneb)

;1-taktiline seisak käsukonveieril, järjekord 2-2-1 uopi 

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)

;seisakut pole, järjekord 2-1-1 uopi

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.[6]

Võrreldes oma eelkäijaga on Pentium Prol:

  • pikem käsukonveier (14-etapiline 5-etapilise asemel),
  • laiem, 36-bitine aadressisiin, mis võimaldab adresseerida kuni 64 GiB muutmälu,
  • ülimalt 4 protsessorit ühel emaplaadil 2 asemel,
  • integreeritud L2 vahemälu.[7]

Pentium Pro oli esimene Inteli protsessor, mis toetas füüsilise aadressi laiendust (ingl physical address extension) ning integreeris L2 vahemälu protsessoriga samasse korpusesse.[8]

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.[9] 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.[9]

Jõudlus[muuda | muuda lähteteksti]

Pentium Pro tootmise algusaastatel olid personaalarvutite kasutajate seas populaarsed operatsioonisüsteemid 16-bitine MS-DOS, 16/32-bitine Windows 3.1x ning 32/16-bitine Windows 95. Kuna Pentium Pro jõudlus 16-bitise koodi jooksutamisel polnud võrdne vanemate Pentiumitega[10] 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 jooksutada 32-bitist operatsioonisüsteemi nagu Windows NT 3.51, Linux, Unix või OS/2.[8]

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 jooksutamisel.

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.[11] 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) ning 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.[12]

Innovatsioon vahemälus[muuda | muuda lähteteksti]

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).[7] Tollal ei võimaldanud protsessorite tootmistehnoloogia hõlpsalt suurt L2 vahemälu protsessori tuuma sisse integreerida. Intel paigaldas L2 vahemälu otse protsessori korpusesse selle kõrvale, mis võimaldas vahemälul töötada samal taktsagedusel nagu protsessor ise.[8] Erinevalt laialtlevinud emaplaadil asuvatest vahemäludest, mis jagasid süsteemisiini protsessoriga, oli Pentium Pro vahemälul eraldi tagasiin, mis võimaldas keskprotsessoril lugeda muutmälu ning vahemälu samaaegselt . Lisaks oli L2 vahemälu "mitte-blokeeriv", mis tähendas, et protsessor võis vahemällu saata korraga kuni 4 päringut.[5] 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. Mitmeprotsessorilistes 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 ning 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.[2] 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.

200MHz 256KiB L2 vahemäluga Pentium Pro. Protsessorikivi on nähtaval vasakul, vahemälukivi paremal.

Saadaolevad mudelid[muuda | muuda lähteteksti]

Pentium Pro mudelite taktsagedused olid 150, 166, 180 või 200 MHz ning esisiinide taktsagedused olid 60 või 66 MHz.[13] Mõned Pentium Pro kasutajad otsustasid oma protsessorid ülekiirendada, jooksutades 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.

Tuuma taktsagedus Siini taktsagedus Taktsageduse kordistaja Andmesiin Aadressisiin Transistorite arv L1 vahemälu L2 vahemälu
150 MHz 60 MHz 2,5 64 bitti 36 bitti 21 000 000 8+8 KiB 256 KiB
166 MHz 60 MHz 2,5 64 bitti 36 bitti 36 500 000 8+8 KiB 256 KiB
180 MHz 60 MHz 3,0 64 bitti 36 bitti 21 000 000 8+8 KiB 256 KiB
200 MHz 66 MHz 3,0 64 bitti 36 bitti 21 000 000 8+8 KiB 256 KiB
200 MHz 66 MHz 3,0 64 bitti 36 bitti 36 500 000 8+8 KiB 512 KiB
200 MHz 66 MHz 3,0 64 bitti 36 bitti 67 500 000 8+8 KiB 1024 KiB

Tootmisprotsesside areng[muuda | muuda lähteteksti]

Aja möödudes muutusid Pentium Pro protsessorikivi ning vahemälukivi tootmisprotsessid, mis kulmineerus paljude erinevate tootmisprotsesside kasutamisega ühes protsessoris.

  • 133 MHz Pentium Pro prototüübi protsessorikivi valmistati 0,6 µm BiCMOS protsessi kasutades.[14][15]
  • 150 MHz Pentium Pro protsessorikivi valmistati 0,5 µm BiCMOS protsessi kasutades.[15][11]
  • 166, 180, ja 200 MHz Pentium Pro protsessorikivid valmistati 0,35 µm BiCMOS protsessi kasutades.[15][11]
  • 256 KiB L2 vahemälukivi valmistati 0,5 µm BiCMOS protsessi kasutades.[15][11]
  • 512 ja 1024 KiB L2 vahemälukivi valmistati 0,35 µm BiCMOS protsessi kasutades.[15][11]

Protsessori korpus[muuda | muuda lähteteksti]

Pentium Pro (kuni 512 KiB vahemäluga) asub keraamilises mitmekiibilises moodulis. Mitmekiibilises moodulis on kaks alumist õõnsust, milles asuvad protsessorikivi ning 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.[13]

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.[16]

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[muuda | muuda lähteteksti]

1998. aastal anti välja 300/333 MHz Pentium II Overdrive 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 ning Pentium II protsessoreid, kuid Intel 440BX kiibistik ning 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.

Pentium Pro/6. põlvkonna konkurendid[muuda | muuda lähteteksti]

Vaata ka[muuda | muuda lähteteksti]

Viited[muuda | muuda lähteteksti]

  1. Jon Stokes. "Into the Core: Intel's next generation microarchitecture". (lk 1). Kasutatud 29. oktoober 2017. Inglise keeles.
  2. 2,0 2,1 cpu-collection.de. "Intel Pentium Pro". Kasutatud 4. detsember 2013. Inglise keeles.
  3. pctechguide.com. "Pentium Pro". Kasutatud 23. oktoober 2017. Inglise keeles.
  4. top500.org. "ASCI Red: Sandia National Laboratory". TOP500 Supercomputer Site". Kasutatud 4. detsember. Inglise keeles.
  5. 5,0 5,1 5,2 Dileep Bhandarkar, Jason Ding. "Performance Characterization of the Pentium Pro Processor". (lk 1–2). Failitüüp: PDF. Kasutatud 29. oktoober 2017. Inglise keeles.
  6. Intel. "Intel Architecture Optimization Manual". (lk 26–27). Failitüüp: PDF. Kasutatud 4. detsember 2013. Inglise keeles.
  7. 7,0 7,1 Charles M. Kozierok. "Intel Pentium Pro ("P6")". Kasutatud 12. detsember 2017. Inglise keeles.
  8. 8,0 8,1 8,2 Bestofmedia Team. "Intel's 15 Most Unforgettable x86 CPUs". Kasutatud 12. detsember 2017. Inglise keeles.
  9. 9,0 9,1 Dusko Koncaliev. "Pentium Pro and Pentium Pro FPU bug". Kasutatud 29. oktoober 2017. Inglise keeles.
  10. "Partial Register Stall". Kasutatud 29. oktoober 2017. Inglise keeles.
  11. 11,0 11,1 11,2 11,3 11,4 Michael Slater. "Intel Boosts Pentium Pro to 200 MHz". (lk 1, 3). MicroDesign Resources, 13. november 1995. Failitüüp: PDF. Kasutatud 12. detsember 2017. Inglise keeles.
  12. "Quake Technical Information file!". (Video Subsystem Documentation, Pentium Pro Performance). Kasutatud 23. oktoober 2017. Inglise keeles.
  13. 13,0 13,1 Intel. "PENTIUM® PRO PROCESSOR AT 150 MHz, 166 MHz, 180 MHz and 200 MHz". (lk 1, 65–66). Failitüüp: PDF. Kasutatud 12. detsember 2017. Inglise keeles.
  14. David B. Papworth. "Tuning the Pentium Pro Microarchitecture.". Failitüüp: PDF. Kasutatud 6. november 2017. Inglise keeles.
  15. 15,0 15,1 15,2 15,3 15,4 "Intel® Pentium® Pro Processors – Fact Sheet". Kasutatud 4. detsember 2013. Inglise keeles.
  16. Intel. "PENTIUM® PRO PROCESSOR WITH 1 MB L2 CACHE AT 200 MHZ". (lk 1, 40). Failitüüp: PDF. Kasutatud 12. detsember 2017. Inglise keeles.