Az Alpha 21264 a Digital Equipment Corporation 1996 októberében megjelentetett RISC típusú, változatlanul 64 bites mikroprocesszora, az Alpha 21164-es utódja. A 21264-es, elődeihez hasonlóan, az Alpha utasításkészlet-architektúrát (ISA) valósítja meg.
Az Alpha 21264 egy négyszeres kibocsájtású, sorrenden kívüli (out-of-order execution) spekulatív végrehajtású szuperskalár mikroprocesszor. Legmagasabb végrehajtási aránya hat utasítás órajelciklusonként, és képes az órajelciklusonkénti négy utasítás folyamatos végrehajtását fenntartani. Utasítás-futószalagja hét fokozatú.
Működése során tetszőleges megfigyelt állapotában a processzor legfeljebb 80 utasítást tartalmazhat a végrehajtás különböző stádiumában, és ezzel túltesz minden korabeli rivális mikroprocesszoron.
A dekódolt utasítások az utasítássorokban állnak sorban és várják, hogy végrehajtásra kerüljenek, amint az operandusaik rendelkezésre állnak. Az egész(értékű)/fixpontos utasítássor 20 bejegyzést tartalmazhat, a lebegőpontos utasítássor 15-öt. Mindegyik sor annyi utasítást tud kibocsájtani, ahány utasítás-futószalag áll rendelkezésre.
Az Ebox, eredeti nevén integer execution unit, egészértékű végrehajtó egység – végzi az egész- (integer), betöltő és tároló utasításokat. Két fixpontos egység, két betöltő-tároló egység és két egész / fixpontos regisztertár alkotja. A regisztertárak 80 eleműek, a 80 regiszterből 32 architekturális regiszter, 40 általános átnevezőregiszter és 8 a PALshadow regiszter. Az R31-es különleges regiszterhez nem tartozik fizikai regiszter, ez ugyanis az Alpha architektúrában a hardveresen megvalósított nulla érték; csak olvasható, az abba való írás nem változtatja meg az értékét.
Mindkét regiszterfájl kiszolgál egy fixpontos és egy betöltő-tároló egységet, a regisztertárat és a hozzá tartozó két egységet klaszternek nevezik. A klasztereket U0- és U1-gyel jelölték. Ez az elrendezés, mint az Alpha processzorokban minden egyéb, a sebesség növelését szolgálta: az operandusok kezeléséhez szükséges írási és olvasási portok számának csökkentésével a regisztertár fizikai mérete is lecsökkent, ami lehetővé tette a processzor magasabb órajelen történő működését. A regisztertömbökbe való írás ezáltal megkövetelte a szinkronizációt, ami két órajelciklust vesz igénybe, így negatív hatása van: egy százalékkal csökkenti a teljesítményt. A szinkronizációból adódó teljesítménycsökkenést két módon kompenzálták. Először is a magasabb elérhető órajel kárpótolt a veszteségét, másodszor, az utasításkibocsájtásért felelős logika igyekezett elkerülni azokat a helyzeteket amelyek során a regisztertömböt szinkronizálni kell, mégpedig úgy, hogy a logika elsősorban azokat az utasításokat igyekszik kibocsájtani, amelyek nem függnek a másik regisztertárban található adatoktól, amennyire csak ez lehetséges.
A klaszterek majdnem azonosak, csak két kisebb eltérés van közöttük: az U1-ben van egy hétciklusos futószalagos szorzó egység, míg az U0 ehelyett egy háromciklusos futószalagot tartalmaz, amely az MVI (Motion Video Instructions) SIMD multimédiás kiterjesztés utasításait végzi.
A betöltő-tároló egységek egyszerű ALU-k, amelyek a virtuális memóriahozzáféréshez szükséges címek számításában vesznek részt. Ezek egyszerű számtani és logikai műveleteket is képesek elvégezni. Az Alpha 21264 utasításkibocsájtási logikája ezt a lehetőséget is kihasználja, mivel ha az egységek éppen szabadok (azaz nem címszámítással foglalkoznak), akkor a fő végrehajtási sorban álló utasításokat is ezek felé irányít.
Az Ebox tehát négy 64 bites összeadót, négy logikai egységet, két állítható lépésméretű léptetőregisztert (barrel shifter), bájtkezelő logikát és két garnitúra feltételes elágazási logikát tartalmaz, egyenlően elosztva ezeket az U0 és az U1 (klaszterek) között.
Az Fbox felelős a lebegőpontos utasítások végrehajtásáért. Két lebegőpontos futószalagot és egy lebegőpontos regisztertömböt tartalmaz. A futószalagok nem egyformák, az egyik a fő utasításokat, a másik pedig a szorzási utasításokat hajtja végre. Az összeadó futószalaghoz két nem futószalagos egység, egy osztó és egy négyzetgyökvonó egység csatlakozik. Az összeadó, szorzó és egyéb utasítások 4 ciklusos latenciával, a duplapontos osztás 16-, a duplapontos négyzetgyökvonás pedig 33 ciklusos latenciával rendelkezik. A lebegőpontos regisztertár 72 elemű, amelyekből 32 architekturális regiszter, 40 pedig átnevezőregiszter.
Az Alpha 21264-nek két szintű CPU gyorsítótára van, egy elsődleges és egy másodlagos. Az Alpha 21164-ben kialakított háromszintű szervezést nem alkalmazták, a sávszélességgel kapcsolatos problémák miatt. Az elsődleges gyorsítótár lapkára integrált, a másodlagos gyorsítótár viszont egy külső egységbe került.
Az elsődleges gyorsítótár két részre van osztva, a két részt az utasítások gyorsítótárára – ennek jelölése az I-cache – és az adatok gyorsítótára – a D-cache – alkotja. Mindkettő mérete 64 KiB. A D-cache kétportos, az adatátvitel felhasználja az órajel felszálló és leszálló élét is az adattovábbításra. Ez a kétportos megoldás lehetővé teszi a gyorsítótár olvasási és írási műveleteinek tetszőleges kombinációját minden egyes processzor-cikluson belül. Ezzel elkerülték a gyorsítótárak megduplázását, amely sok előnnyel járt, a tranzisztorszám, lapkaterület kihasználása és a fogyasztás tekintetében, és a tárak mérete is megnövekedett.
A B-cache-nek is nevezett másodlagos gyorsítótár egy külső gyorsítótár-egység, amelynek mérete 1 és 16 MiB között lehet. Ezt a mikroprocesszor vezérli, szinkron statikus RAM (SSRAM) csipekkel épül fel, amik a belső órajel kétharmad, fél, egyharmad vagy egynegyed órajelfrekvenciáján működnek, azaz pl. 133-tól 333 MHz-ig 500 MHz-es órejelnél. A B-cache elérése egy dedikált 128 bites sínen keresztül történik, amely a SSRAM órajelfrekvenciájának megfelelő frekvencián üzemel, vagy kettős pumpálású (double data rate, DDR) SSRAM memória esetén a RAM órajelfrekvenciájának kétszeresén. A B-cache közvetlen leképzésű.[1]
A 21264-es egy kifinomult bajnokság (tournament) elágazásbecslő eljárást alkalmaz, amely dinamikusan választ a helyi és globális elágazástörténet között egy adott elágazás irányának megbecslése céljából. Ennek az elágazásbecslő logikának a pontossága eléri a 90–100%-ot a legtöbb szimulált alkalmazásban és teljesítménytesztben.[2] A tournament elágazásbecslő algoritmust Scott McFarling fejlesztette ki a Digital Western Research Laboratory (WRL) kutató-fejlesztő laboratóriumában és azt egy 1993-as cikkében publikálta.[3] Az Alpha 21264 processzor tehát ezt az elágazásbecslő mechanizmust alkalmazza, amelyben a hibás elágazásbecslés büntetése hét órajelciklus. Az utasítás-gyorsítótár két ciklusos latenciája és az utasításfeldolgozó sorok miatt a hibás becslés átlagos büntetése 11 ciklus. Az algoritmus két elágazástörténet-táblát tart fenn, egyet-egyet a lokális és a globális elágazásoknak, és a választásképző ezeknek a tartalmát használja fel az elágazások eljövendő irányának megjövendölésére.
A helyi (lokális) előrejelző egy kétszintű táblázat, amely feljegyzi az egyedi elágazások történetét. Ez 1024 bejegyzésből áll, minden bejegyzés 10 biten tárolja a történetet. Azért választották az alkalmazott kétszintű táblaelrendezést, mert ennek a pontossága megegyezik a hasonló célú, de sokkal nagyobb egyszintű tábláéval, csak kevesebb bittel ábrázolható.
A választásképző v. jósló egység (choice predictor) feljegyzi a lokális és globális jósló egységek döntéseit, és eldönti, hogy melyiknek az eredménye adja a legjobb eredményt egy adott elágazáshoz. Ennek 4096 bejegyzést tartalmazó elágazástörténet-táblája van, bejegyzései 2 bites telített számlálók. A számláló értékei határozzák meg, hogy a lokális vagy globális jósló eredménye legyen felhasználva.
A külvilággal kapcsolatot tartó interfészt a kétirányú 64 bites kétszeres adatsebességű (double data rate, DDR) adatsín és két 15 bites egyirányú idő-multiplexelt címsín és vezérlősín alkotja; a vezérlősínek egyike az Alpha 21264 processzorból kiinduló jelzések, a másik a rendszerből a processzor felé érkező jelzések továbbítására szolgál. A Digital átadta a sín használati jogát az AMD-nek, amely ezt követően az Athlon mikroprocesszoraiban használta fel, és ott az elnevezése is „EV6 bus” avagy EV6-os sín volt.
Az Alpha 21264 15,2 millió tranzisztort tartalmaz. Ebből a logika közelítőleg hatmillió tranzisztort foglal, a maradékot a gyorsítótárak és az elágazástörténeti tárak foglalják le. A lapka mérete 16,7 mm × 18,8 mm (313,96 mm²).[4] Gyártása 0,35 µm-es CMOS technológiával történt, hat összekapcsoló réteggel.
Az Alpha 21264 587 kivezetéses iterszticiális PGA (IPGA) tokozásban jelent meg (az interszticiális csatlakozóelrendezésben a csatlakozások egy négyzethálóban helyezkednek el, és a négyzetek középpontjában is van egy csatlakozó; ez tkp. két négyzetháló, amelyek egymáshoz képest a fél átlóval eltolva állnak).
Később az Alpha Processor, Inc. cég „Slot B” jelölésű csomagban is árulta az Alpha 21264-est, ami gyakorlatilag egy kis nyomtatott áramköri lap, amelyre a processzor, a B-cache és a feszültségszabályzó áramkörök vannak szerelve. A kialakítás az Intel és AMD slot kialakítású processzorfoglaltok sikerét igyekezett kihasználni. A Slot B kiszerelést úgy tervezték, hogy az AMD Athlon processzoraival is használható legyen, ráadásul a gyártásához nagykereskedelmi forgalomban kapható anyagokat használtak, ami csökkentette az Alpha 21264 processzorok árát, és elősegítette (volna) a nagyobb piaci részesedés elérését. Ez a gyakorlatban nem valósult meg, mivel az AMD a Slot A kialakítást választotta a slot-alapú Athlon processzorokhoz.
Az Alpha 21264A, vagy kódnevén az EV67 az Alpha 21264 technológiai kicsinyítése volt, amelyet 1999 második felében vezettek be. Hat verziója volt: 600, 667, 700, 733, 750, 833 MHz órajelűek. Az EV67 volt az első Alpha modell, amelybe beépítették a számláló utasításkészlet-kiterjesztést (count extension, CIX), amely három új utasítást tartalmaz: a CTLZ
, CTTZ
és CTPOP
utasításokat, amelyek az adatokban lévő 0 és 1 bitek számlálását végzik a gépi utasítások sebességén. Gyártása a Samsung Electronics 0,25 µm CMOS folyamatával történt, amelyben a tranzisztorok csíkszélessége 0,25 µm, ám a fémezés csíkszélessége 0,35 µm. A lapka felülete 210 mm². Az EV68 2,0 V-os tápfeszültséget igényel, maximális disszipációja 600 MHz-en 73 W, 667 MHz-en 80 W, 700 MHz-en 85 W, 733 MHz-en 88 W és 750 MHz-en 90 W.
Az Alpha 21264B egy további fejlesztés, amelyben megnövelték az alkalmazható órajelet. Ebben a sorozatban két modell volt, az egyik az IBM által gyártott EV68C, a másik a Samsung által gyártott EV68A kódnevű modell.
Az EV68A 0,18 µm-es CMOS folyamattal készült, alumínium fémezéssel. A lapka felülete 125 mm², 60%-a az Alpha 21264A lapkafelületének. Tápfeszültsége 1,7 V. 2001-ben került kereskedelmi forgalomba, 750, 833, 875 és 940 MHz-es órajelű változatokban. Az EV68A maximális disszipációja 750 MHz-en 60 W , 833 MHz-en 67 W , 875 MHz-en 70 W és 940 MHz-en 75 W.[5]
Az EV68C szintén 0,18 µm-es CMOS folyamattal készült, azonban réz összekötőrétegeket tartalmaz. Mintái már 2000 elején készen álltak, legmagasabb órajele elérte az 1,25 GHz-et.
1998 szeptemberében a Samsung bejelentette, hogy gyártani fogja az Alpha 21264B egy változatát 0,18 µm-es teljes kiürítésű silicon-on-insulator (SOI) folyamattal, réz fémezéssel, és ez a modell el fogja érni az 1,5 GHz-es órajelet, ám ez a változat soha nem készült el.
Az EV68CB kódnevű Alpha 21264C sorozat az Alpha 21264 egyik származtatott változata. 1,0 GHz 1,25 GHz és 1,33 GHz órajelű változatokban készült, 15,5 millió tranzisztort tartalmaz, lapkafelülete mm². Az IBM gyártotta 0,18 µm-es CMOS folyamattal, hét szintű réz összekötő réteggel és low-k dielektrikum felhasználásával. Tokozása 675 csatlakozós flip-chip ceramic land grid array (CLGA), melynek mérete 49,53 × 49,53 mm. Az EV68A tápfeszültsége 1,7 V, maximális disszipációja 1,0 GHz-en 64 W, 1,25 GHz-en 75 W, 1,33 GHz-en pedig 80 W.[6]
Az EV68CD kódnevű Alpha 21264D modell egy gyorsabb órajelű származék, az IBM gyártásában.
Az Alpha 21264E, kódnevén EV68E, egy leállított fejlesztés volt a Samsungnál. 2000. október 10-én jelentették be a Microprocessor Forum rendezvényen, azzal az ígérettel, hogy 2001 közepén fog megjelenni. A típussal az 1,25 GHz órajelet célozták meg, 1,85 MiB másodlagos gyorsítótárat lapkára integrált kapott volna, 1,18 mikronos réz összekötő rétegű CMOS technológiával tervezték gyártani.
Mind a Digital, mind az AMD fejlesztett csipkészleteket az Alpha 21264 processzorhoz.
A Digital 21272, más néven Tsunami és Typhoon volt az első csipkészlet az Alpha 21264-eshez. A 21272 csipkészlet támogatta a két, három vagy négyutas multiprocesszinget és egy vagy két 33 MHz-es PCI sínt. Lehetővé teszi 128, 256 vagy 512 bites memóriasín használatát, 83 MHz-es sebességen, amivel az elérhető legnagyobb sávszélesség 5312 MB/s. A csipkészlet 100 MHz-es regiszteres ECC SDRAM-ot is támogat (amelyben regiszterek vannak a DRAM és a rendszer memóriavezérlő modulja között).
A csipkészlet három eszközből áll, egy C-csip, D-csip és P-csip elnevezésű egységből. A csipkészletet realizáló csipek széma változó, a kialakítani kívánt konfigurációtól függ. A C-csip a memóriavezérlőt tartalmazó vezérlőcsip; ebből minden processzorhoz egyre van szükség.
A P-chip a PCI vezérlő, amely egy 33 MHz-es PCI sínt implementál. A 21272-ben egy vagy két P-csip lehet.
A 21272 csipkészletet a Digital, Compaq és Hewlett Packard használta a belépő szintűtől a középkategóriásig terjedő AlphaServer modellekben és az AlphaStation összes modelljében. A külső gyártók közül az Alpha Processor, Inc. (később API NetWorks néven ismert) termékeiben fordult elő, mint pl. az UP2000+ alaplapjukban.
Az AMD is kifejlesztett két Alpha 21264-kompatibilis csipkészletet, az első ezek közül az Irongate, másként AMD-751-es, és utódja, az Irongate-2, amelyet AMD-761 jelöléssel is elláttak. Ezek a csipkészletek az AMD Athlon processzoraihoz lettek kifejlesztve, de mivel az AMD licencelte az Alpha processzorokban is használt EV6 sínt, az Athlon és az Alpha 21264 kompatibilis volt az sín-protokoll tekintetében. Az Irongate-et a Samsung is felhasználta az UP1000 és UP1100 alaplapjaiban. Az Irongate-2-t a Samsung az UP1500 alaplapban alkalmazta.
Ez a szócikk részben vagy egészben az Alpha 21264 című angol Wikipédia-szócikk ezen változatának fordításán alapul. Az eredeti cikk szerkesztőit annak laptörténete sorolja fel. Ez a jelzés csupán a megfogalmazás eredetét és a szerzői jogokat jelzi, nem szolgál a cikkben szereplő információk forrásmegjelöléseként.