Content extract
Az Intel Pentium Pro processzor jellemői Az első P6-os architektúrájú processzor az Intel Pentium Pro processzor. Az Intel Pentium Pro processzor képezi a ma is kapható Intel Architektúrájú processzorok, az úgynevezett P6 családba tartozó processzorok alapjait. Az Intel Pentium II és az Intel Pentium III processzorok erre az architektúrára épültek különböző változtatásokkal, melyeket majd a következő fejezetekben mutatok be. Az Intel Pentium Pro processzor az Intel első hatodik generációs processzora, mely hasonlóan a P5-ös architektúrához ugyancsak 64 bites adatsínt használ, de viszont itt már a címsín szélessége 36 (32+4) bit, így a maximális címezhető fizikai memória mérete 64 Gbájt lett. A legelső P6-os processzor, amit Pro néven forgalmaztak 1995 januárjában jelent meg, mely 5,5 millió tranzisztorból épült fel. Kezdetben 133 és 150 MHz-es Pentium Pro processzorokat gyártottak, 0,6 mikrométer vonalszélességű
technológiával, de később áttértek a 0,35 mikrométeres technológiára (180 MHz felett). A processzor 2,9V egyszeres tápfeszültségen működik. Ennél a processzornál egy tokban két lapka van: a CPU és az L2 gyorsítótár (cache). A Pentium Pro processzor tokozása eltér a P5-ös kategóriájú processzor tokozásától. Míg a P-5-ös kategóriájú processzorok foglalata Socket 4, Socket5, és Socket7, addig az Intel Pentium Pro processzor a Socket8 foglalatba illeszthető. A processzormagot teljesen átalakították, melybe RISC elemeket építettek be. A processzor fizikai felépítése is teljesen megváltozott az Intel Pentium P5-ös kategóriájú processzoraihoz képest. Az Intel Pentium Pro processzor mikroarchitektúrájának megvalósítása Az Intel Pentium P5-ös kategóriájú processzorok egyszerű illesztett szuperskalár kibocsátást alkalmaz. (kibocsátás alatt a dekódolt mikro-utasításoknak a várakoztató pufferekbe történő eljuttatását
értjük). A processzor a feloldatlan vezérlésfüggéseket spekulatív elágazás-kezeléssel valósítja meg, az utasítások kibocsátása adat- és erőforrás –függőségek esetén blokkolódik. Az Intel Pentium Pro processzor fejlett szuperskalár kibocsátást alkalmaz. A processzor a feloldatlan vezérlésfüggőségeket spekulatív végrehajtással, a regiszteradatokra vonatkozó álregiszter adatfüggőségeket regiszterátnevezéssel, az adatfüggőségek és foglalt végrehajtó-egységek miatt fellépő kibocsátási blokkolódásokat pedig várakoztatással kezeli le. Utasítások várakoztatása A várakoztatás lényegében leválasztja a függőségek ellenőrzését az utasítások kibocsátásától. A processzor kibocsátáskor mindössze azt vizsgálja, hogy triviális hardvererőforrás-korlátok nem akadályozzák-e meg a kibocsátási ablakban lévő utasítások kibocsátását. A várakoztató pufferben lévő utasítások adatfüggő-mentességét a
processzor az utasítás-kiküldés (kiküldés alatt a függőségmentes mikro-utasításoknak a várakoztató pufferből a végrehajtó egységekbe való továbbítását értjük) során vizsgálja meg, és az adatfüggőségektől mentes utasításokat továbbítja a Végrehajtó-Egysége ( VE) felé. A várakoztatás bevezetése az Intel Pentium Pro processzoroknál jelentős mértékben csökkenti a kibocsátási blokkolódások gyakoriságát. Az Intel Pentium P5 kategóriájú processzorok blokkoló típusú utasítás-kibocsátási módot alkalmaznak, melyben a processzor a függő utasításokat nem bocsátja ki. A függőségek vizsgálatára a kibocsátási ablakban kerül sor. Ha az ablakban lévő összes utasítás mentes a függőségektől a processzor azokat közvetlenül a Végrehajtó-egységekhez továbbítja. Operandus behívási politika A processzor a kiküldéshez kötött operandus-behívás politikát alkalmaz. Ekkor a processzor az utasításokat a
forrásregiszterek azonosítóival együtt tárolja el a várakozó puffer megfelelő mezőjében. A hivatkozott operandusokat a processzor csak később hívja le, a végrehajtó utasításoknak a végrehajtó egységekbe való küldésekor. A fixpontos és lebegőpontos regiszterek a behívott operandusokat a végrehajtóegységekbe továbbítják. A végrehajtandó utasítások kiküldése közben a műveleti kódokat, és a kiküldött utasítások célregiszter azonosítóit a processzor a várakozó pufferből a megfelelő végrehajtóegységbe továbbítja, míg a forrásregiszter azonosítókat az operandus-behívás érdekében a regisztertárba küldi. A regiszterátnevezés nélküli processzor, mint az Intel Pentium P5-ös kategóriájú processzora, a hivatkozott forrásoperandusokat az architekturális regisztertárból hívja le. Viszont átnevezés használatakor a hivatkozott operandusok akár az architekturális regiszterben akár az átnevezésre használt
pufferekben is lehetnek. Utasítás kiküldési módok Az Intel Pentium Pro processzor sorrenden kívüli utasítás-kiküldést alkalmaz. Itt egy nem végrehajtható utasítás nem blokkolja a várakoztató pufferben, sorban következő végrehajtható utasítások kiküldését. A sorrenden kívüli kiküldés teljes megvalósításakor a várakoztató-pufferben lévő minden utasítást meg kell vizsgálni arra nézve, hogy az végrehajtható-e. A várakoztató-pufferben lévő utasítások végrehajthatóságának vizsgálatakor a processzornak ellenőriznie kell, hogy az utasításokban hivatkozott forrásoperandusok rendelkezésre állnak-e. Ezt a regisztertár érvényességbitjének közvetlen vizsgálatával éri el a processzor. Itt a várakoztató-állomás kibocsátott utasításonként a műveleti kódot, a forrásregiszterek azonosítóit, és a célregiszterek azonosítóját tárolja. A regisztertárban lévő adatok rendelkezésre állását ugyanúgy
érvényességbitek jelzik. Kiküldés során, a processzor ciklusonként ismét megvizsgálja, hogy a várakoztató állomás mely utasítása végrehajtható. Ez a vizsgálat a regisztertár (vagy átnevező puffer) azon érvényességbitjeinek ellenőrzésével hajtható végre, amelyek a tekintett utasítás forrásoperandusaihoz tartoznak. Ha mindkét forrásoperandus érvényességbitje 1, az utasítás végrehajtható. Az utasítások kiküldése során a processzor az utasítások műveleti kódját, és célregisztereinek azonosítóját a végrehajtóegységbe továbbítja, míg a forrásregiszterek azonosítóit a regisztertárba (vagy átnevező pufferbe) küldi. A forrásoperandusoknak, a regisztertárba, s majd utána a végrehajtó egységhez való továbbítása után, a végrehajtóegység megkezdi a kijelölt művelet végrehajtását. Amikor a művelet befejeződik, az előállított eredmény értékét és az eredmény azonosítóját a processzor a regisztertárba
(vagy átnevező pufferbe) továbbítja. Ennek alapján történik meg a regisztertárban a célregiszter frissítése és a hozzárendelt érvényességbit beállítása. Az Intel Pentium Pro processzor pipeline-ja E processzor már három utas szuperskalár architektúrájú, az-az három utasítást tud egy órajel alatt végrehajtani. Ezt úgy valósítja meg, hogy még nagyobb párhuzamosítást valósít meg mint elődje a Pentium processzor. Az Intel Pentium Pro processzoroknál az eredeti adatcsatorna tovább van fejlesztve. Az Intel P5 kategóriájú processzornál az utasítás többsége az adatcsatorna öt fokozatán megy keresztül. Az Intel Pentium Pro 12 fokozatból áll és ez 3 szakaszra van osztva: Az első szakasz hét fokozata utasítássorrendben dolgozik. Ez felelős a dekódolás és az utasítás kibocsátásáért (Fetch/Decode Unit) A második szakasz 2 –3 fokozatú szakaszokban hajtja végre a tényleges utasításokat (sorrenden kívüli
végrehajtás)(Dispatch/Execute Unit). A harmadik szakasz kétfokozatú, a mikroutasításokat ismét sorrendbe állítja és megvizsgálja, hogy melyek vonhatóak vissza ( Retire Unit). Utasítás feldolgozás Az utasítás-feldolgozás lényege a Pentium Pro processzornál, hogy a CISC utasításokat dekódolásakor RISC-szerű utasításokká konvertálja, melyeket szuperskalár RISC mag hajt végre. A RISC-műveletek ( RISC-szerű utasítások) végrehajtását követően egy RISC/CISC konverzióval biztosítja a végrehajtás logikai egyenletességét. Számos egyszerű CISC utasítás egyetlen RISC-utasításra konvertálható ( pl. regiszterregiszter, ALU műveletek, adatbehívó és tároló műveletek) Viszont a memóriában tárolt operandusokra hivatkozó ALU műveletek kettő vagy több RISC-műveletet igényelnek. Az utasításokat a processzor 128 bites részletekben hívja le az utasítás-gyorsítótárból az utasítás-pufferbe. Az utasítás-pufferből kikerülő
utasításokat először utasításhatárokra kell illeszteni a CISC-utasítások változó hosszúsága miatt. Ezután a processzor ciklusonként maximálisan három CISC-utasítást dekódol és alakít át RISC-műveletekké. Az átalakítást egy általános dekódoló (D1), két egyszerű dekódoló (D2 és D3), és egy mikrovezérlő (MIS) végzi. A legfeljebb négy RISC-műveletekké alakítható bonyolultabb utasításokat az általános dekódoló (D1) fordítja le, viszont a négynél több RISC –műveletet eredményező utasításokat pedig a MIS. Az egyszerű dekódolók csak egy RISC-műveletté alakítható utasítások fogadására képesek. Minden RISC-műveletnek azonos a formátuma és 128 bites rögzített hossza van. A létrehozott RISC-műveleteket a processzor egy hat bejegyzés hosszú várakozó sorba írja. A kódolás és az átalakítás is sorrendben történik. A végrehajtás következő lépesei a regiszterátnevezés, az operandus-behívás, és az
átnevezett RISC-műveletek kibocsátása a központi VÁ-ba. A regiszterátnevezéseket a processzor egy leképző-táblában tartja nyilván, míg az átnevezett értékeket (átmeneti eredményeket) a ROB-ban tárolja. A regiszterleképző tábla maximálisan három RISC-műveletet képes leképezni ciklusonként. A leképző-tábla használata az architekturális regiszterazonosítók átnevezésére szükségtelenné teszi az asszociatív keresést az operandusok ROB-ból történő behívása során. Az operandusok behívása az utasítások kibocsátása után történik. Az átnevezett forrásregiszter azonosítókat a processzor kiküldi az architekturális regisztertárba, és a ROB-ba is. Ha egy megadott átnevezett regiszterazonosítóhoz tartozik érvényes bejegyzés a ROB-ban a processzor a bejegyzés tartalmát előnyben részesíti a megfelelő architekturális regisztertár (ART) tartalommal szemben, és ezt tekinti a behívott operandus értéknek. Ha a ROB-ban
nem tartozik érvényes bejegyzés a kívánt átnevezett regiszterazonosítóhoz, a processzor az ART tartalmát továbbítja a Várakoztató Állomásba (VÁ). A RISCműveleteket a processzor sorrenden kívül küldi a központi várakozó állomásból a Végrehajtó Egységek (VE) felé, ciklusonként legfeljebb ötöt. Azok a RISC-műveletek küldhetők ki, melyeknek minden operandusa rendelkezésre áll. Cache kezelés Az Intel Pentium Pro processzor teljesítménye részben a továbbfejlesztett cache-ben rejlik. Hasonlóan az egyszerű Intel Pentium processzorhoz ennek is kettő chip-be integrált 8 Kbájtos L1 cache-ja van, és továbbra is rendelkezik egy 256 Kbájtos (ez lehet akár 1 Mbájt is) L2 cache-el is, mely úgyszintén egybe van építve a processzorral. A processzor egy dedikált 64 bites CPU órajelen működő buszt használ ezen L2 cache-el történő kommunikációra. Az L1 cache duál portos, és az L2 cache négy konkurens hozzáférést támogat. A 64 bites
külső adatbusz átvitel orientált, ami azt jelenti, hogy minden hozzáférés külön kérésként és az erre adandó válasz is külön van feldolgozva, tehát számos kérelem fogadható annak ellenére, hogy a válaszra még várakozni kell. Az Intel Pentium II processzor jellemzői A Pentium II Pentium Pro alapokra épülő MMX utasításkészletet is tartalmazó processzor. A Pentium II 7,5 millió tranzisztort tartalmaz és a korszerű P6 architektúrán, 35 mikronos gyártási technológián alapul. A processzor kialakításánál kifejlesztettek egy új technológiát, amit SEC ( egysoros csatlakozó) néven védtek le. Itt a processzor minden komponense egy hordozó lapra van felszerelve és ez egy fémből és műanyagból készült kazettába, van betokozva. Ez a kazetta már nem nyitható fel a belső elemek sérülése nélkül. Az új tokozás egy új alaplap szükségségét vonta maga után, mely már rendelkezik a SEC befogadására alkalmas SLOT1 csatlakozóval.
Az új processzor létrehozásánál több jelentős technológiai fejlesztés eredményeit egyesítették. Ezek közül talán a legfontosabb a Pentium Pro – ban már felhasznált ún két független buszos architektúra (Dual Independent Bus Architecture), amelynek lényege, hogy a korábbi kiépítésekben megszokott rendszerbuszt egy, a processzort közvetlenül a második szintű (L2) gyorsítótárral összekötő, ún. cache-busz egészíti ki, mindkettőt használhatja egyszerre. Az L2 cache - szemben a Pentium Pro-val - nincs összeépítve a processzorral A külső L2 cache sebességcsökkenéssel jár, mivel a másodlagos gyorsítótár a processzorhoz képest fele sebességen üzemel, így bizonyos alkalmazásoknál a Pentium II lassúbb, mint az azonos frekvencián működő Celeron processzorok (lásd következő fejezet). Kompenzálásképpen a Pentium II 32 KB L1 cache-t (16 KB adat, 16 KB utasítás) A Klamath az első generációs Pentium II, mely 0.35 mikronos
technológiával készült, 266, 300 és 333 MHZ – es processzorok 66 MHz – es alap órajelből állítják elő a működéshez szükséges belső órajelet, mag (core) feszültsége 2.8V A Klamath-ba – a processzoron kívülre - 512Kb külső cache került beépítésre. A Deschutes már a második generációs Pentium II. A félvezető-technológia fejlődése lehetővé tette a 0.25 mikronos technológia polgári célú alkalmazását, így aztán a Deschutes processzorok alacsonyabb core-feszültséggel - 2.0V - üzemelnek, kisebb a teljesítményfelvételük, tehát kevésbé melegszenek. Támogatják a 100MHz-es rendszerbuszt (FSB - Front Side Bus) A Deschutes sorozat órajel frekvenciája 333– tól 450Mhz-ig terjed, a Klamath-hoz hasonlóan 512Kb külső cache tartozik hozzá. Az FSB ( Front Side Bus ) alapfrekvencia 100 MHz – re történő emelése a memória műveletek sebességét is növeli, így a processzor órajellel arányos számolási teljesítményén
kívül a rendszer átlagos teljesítménye is növekszik, ezáltal például egy Pentium II/350 processzorral ellátott gép a Pentium II/333 – hoz képest jóval nagyobb teljesítménynövekedést mutat, mint amit a két CPU órajel összehasonlítása alapján várnánk. Az adatsín szélessége ugyancsak 64 bit és a címsín szélessége 36 bit, ami maximálisan 64 Gbájt fizikai memória címzését teheti lehetővé. A Pentium II processzorok ugyanazzal az architektúrával rendelkeznek mint a Pentium Pro processzorok, az egyetlen különbség az MMX technológia alkalmazása.A Pentium II rendelkezik négy új végrehajtó egységgel, ebből kettő az MMX ALU, van továbbá egy szorzó, és egy eltoló (shift) egység. A Celeron processzor jellemzői A Pentium II processzor egyszerűsített változata, nincs benne másodszintű L2 cache és nincs rajta a műanyagtokozás sem. Ezáltal a hűtése és a rögzítése is eltér a Pentium II processzorétól. A Celeron
processzorok lényegében a Deschutes fedőnevű Pentium II processzorokkal megegyező rendszermagból állnak. A korai változatok nem tartalmaznak másodlagos gyorsítótárat, és a Pentium II processzorhoz hasonlóan Slot 1 – es processzorkártyára épülnek és SECC kazettával kompatíbilis SEPP (Single Edge Processor Package) modulon kerültek forgalomba. A processzorcsalád újabb tagjai PPGA (Socket 370) tokozású kivitelben készültek és ezekhez Slot 1 átalakító kártyák is készültek. A 300A típustól kezdődően a Celeron processzorok 128 KB L2 szintű beépített gyorsítótárat is tartalmaznak, amely a Pentium Pro – hoz hasonlóan a CPU – val megegyező órajelen működik. (Ezt az teszi lehetővé, hogy a relatíve kis méretű gyorsítótár a processzormaggal azonos chip-en van, így közelebb került a rendszermaghoz. A gyorsítótár sebességének növelése sok esetben kiegyenlíti a kisebb méretet, és azt a hátrányt, hogy a Celeron
processzorcsalád minden tagja 66 MHz FSB frekvenciáról üzemel. (Így a főmemória műveletei valamivel lassabban zajlanak, mint a 100 MHz–ről üzemelő Pentium II-350, 400, 433, 450, 466 esetében). Az Intel 0,18 mikronos technológiával készült, FC-PGA (flip-chip pin grid array) tokozású Celeron III 566, 600, 633, 667 MHz-es processzorai. Tesztelések alapján a chip 20 százalékkal marad el az Intel Coppermine (következő fejezetet) teljesítményéhez képest. Ez érthető, hisz a gyorsítótárat a felére, 128 KB-ra csökkentették. Az új Celeron processzorok SSE (Streaming SSIMD Extension) utasításkészletet és fejlett mikroprocesszor-instrukciókat tartalmaznak, ami a magasabb órajellel kombinálva jelentős teljesítménytöbbletet nyújt. Ezek a Celeron chip-ek hasonló szilíciumlapkán alapulnak, mint a Pentium III-asok. Az új Celeron chip-ek magasabb órajellel működnek (mint elődeik) és támogatják a grafikus funkciókat. A Pentium III
processzorok támogatják a 133 MHz-es rendszerbuszt, míg a Celeron processzorok, hasonlóan elődeikhez, megmaradtak a 66 MHz-es rendszerbusznál. Az Intel Pentium III processzor jellemzői Az Intel Pentium III processzor a jelenleg forgalomban kapható legfejlettebb processzor mely processzor az Intel Pentium P6 processzor architektúráján alapszik. Az első Pentium III processzor sorozat magja Katmai kódnéven jelent meg, melyet 0,25 mikronos gyártási technológiával állítottak elő. A buszsebesség 100Mhz, és az elsődleges gyorsítótár is 32KB. Ebből 16KB az adatoké, és 16KB az utasításoké A másodlagos cache 512KB méretű. 1999. október 25-én jelentette be az Intel a Pentium III processzorok újabb generációját, a Coppermine nevű chipeket. Ez az első olyan chip, amelyet már kimondottan a 0,18 mikronos technológiához fejlesztettek, nagy teljesítményű PC-kbe, munkaállomásokba és szerverekbe. Valamennyi ezen a napon bejelentett új chip 0,18
mikronos technológiával készül, és tartalmaz minden korábbi Pentium III-jellemzőt A 0,18 mikronos technológia a 0,25 mikronoshoz képest nagy ugrást jelent. Lehetővé teszi kisebb, gyorsabb, kevesebb energiát igénylő chipek gyártását, vagy sokkal több tranzisztor integrálását egy hasonló méretű chipre. - például P6 magot, SIMD utasításkészletet -, valamint egy új Adavanced Transfer Cache-t (ATC), amely 256 bit széles, teljes sebességű buszon keresztül csatlakozik a CPU maghoz. Az új, nagy teljesítményű integrált L2 gyorsítótár a hasonló sebességű Pentium II chipekhez viszonyítva 25%-kal növelte a processzor teljesítményét. Az Intel először a SECC majd a SECC2 tokozással készítette a Pentium III processzorokat. A SECC2 nem jelent mást, mint hogy csak félig van a lapka beburkolva Hátul műanyag tok rejti, míg elöl a processzor közvetlen kapcsolatban, lehet a hűtővel. Az Intel a Pentium III processzorok nagyobb
teljesítmény érdekében bevezetett egy újfajta tokozást az FC-PGA-t. A chip megfordításának egyértelmű előnye a jobb hűtés, mivel az FC-PGA tokozásban a szilíciumlapka közvetlen kapcsolatban áll a hűtőbordákkal. A Coppermine fejlettebb cache-e egyértelmű fejlődés a Katmai L2 gyorsítótárához képest. A cache a független duális buszrendszer egy része, tehát a bemenő adatok 256 bites sávon haladnak, minden második ciklusban 32 byte megy oda vissza (256/8=32). Az alaplapon lévő cache-el szemben gyorsasága növelhető a mag sebességével együtt. Ez azt jelenti, hogy gyorsabb processzor esetén a chip és a cache közötti kommunikáció is gyorsabb lesz, mivel a cache sebessége független az alaplap sebességétől. Tehát, mivel a belső adatút fizikailag el van választva a külső busztól, az nem fogja vissza teljesítményét, és teljes kapacitáson működhet. Az integrált L2 gyorsítótár késése (latency) negyedére csökkent a Pentium
II- höz képest. A következő táblázat az Intel Pentium III processzor típusait és jellemzőit foglalja össze Jellemzők 1.0B GHz, 866, 800EB,733. 850, 800, 850, 800, 750, 700, 750, 700, 866, 800, 600B, 450, 500 733, 667, 533B MHz 550, 650, 600, 667, 600EB, 600EB, 650, 600E, 600 MHz 550E, 533EB MHz 550E MHz 500E MHz 533EB MHz SECC2 tokozat igen igen nem Nem igen Igen FC-PGA 370 tokozat nem nem igen Igen nem Nem 0,18 mikronos tech. igen igen igen Igen nem Nem 0,25 mikronos tech. nem nem nem igen Igen 133 MHz-es rendszerbusz igen nem nem Igen igen Nem 100 MHz-es rendszerbusz nem igen igen Nem nem Igen 256 KB L2 atc igen igen igen Igen nem Nem 512 L2 különálló nem nem nem Nem igen Igen Előrehaladott rendszer- igen igen igen Igen nem Nem igen igen igen Igen igen Igen 4GB cashelhető memória igen igen igen Igen igen Igen SSE igen igen igen Igen igen Igen Kettős független igen
igen igen Igen igen Igen igen igen igen Igen igen Igen igen igen igen Igen igen Igen bufferelés 64 GB címezhető memória buszrendszer Dinamikus végrehajtású felépítés MMX techonlógia Az MMX és az SSE közötti különbségek Az MMX SIMD utasítások integer adatokon végeznek műveletet, míg az SSE ezt kiegészíti az egyszeres-pontosságú lebegőpontos utasítások egyszeres lebegőpontos adatelemeken való műveletvégzésével. Míg az MMX SIMD utasítások kettő 32-bites integer adaton, addig az SSE egyszeres-pontosságú lebegőpontos utasításai négy 32bites egyszeres-pontosságú lebegőpontos adat-elemeken végeznek műveletet. Az SSE regiszterei 128 bit hosszúságúak és az egyszeres-pontosságú lebegőpontos adatelemeknek (mindegyik 32-bit hosszúságú) vannak fenntartva, Az MMX regiszterek az FPU lebegőpontos regiszterek egy 64 bites része. Az FPU regiszter 80 bit széles, melyből az MMX regiszter 64 bitet használhat. Egy MMX és
egy FPU utasítás együtt nem hajtódhat végre. Az SSE-nél nincs ilyen korlátozás, a különálló regiszterek az SSE –nek lettek meghatározva. Itt az alkalmazások képesek egyszerre végrehajtani SIMD lebegőpontos és integer utasításokat is valamint SSE és lebegőpontos utasításokat is