Az EV5 kódnevén is ismert Alpha 21164 mikroprocesszort a Digital Equipment Corporation (DEC) fejlesztette ki és gyártotta az 1990-es évek második felében. Ez a processzor az Alpha utasításkészlet-architektúrát (ISA) valósítja meg; RISC típusú 64 bites architektúra, négyszeres kibocsájtású, sorrendi végrehajtású szuperskalár mikroprocesszor. A cég 1995 januárjában vezette be, az Alpha 21064A processzorok utódjaként, a Digital vezető csúcsmodelljének szerepére szánva. Utódja az Alpha 21264 lett 1998-ban.
Történet Az Alpha 21164 első szilíciumcsipjei 1994 februárjában készültek el, és sikeresen indultak rajtuk az OpenVMS, Digital UNIX és Windows NT operációs rendszerek. Mérnöki mintáik 1994 vége felé készültek el, ezután 1995 januárjában mutatták be a -es induló változatot, amit 1995 márciusában a -es változat követett. A végső -es Alpha 21164-es modellt 1995. október 2-án jelentették meg, ez csak mintákban, kis példányszámban volt elérhető. Az Alpha 21164 processzort az Alpha 21164A jelű váltotta fel és ez a modell vált a Digital zászlóshajójává 1996-ban, mikor -es változata nagy mennyiségben is beszerezhetővé vált. Felhasználása A Digital az Alpha 21164 különböző órajelű változatait saját gépeiben: AlphaServer szerverekben, AlphaStation munkaállomásokban alkalmazta. A cég hasonlóan Alpha 21164 processzorokkal szerelte fel az Alpha VME 5/352 és Alpha VME 5/480 egykártyás számítógépeit valamint AlphaPC 164 és AlphaPC 164LX típusú alaplapjait. Az Alpha felhasználói partnere volt a Cray Research cég is, amely -es Alpha 21164 processzorokat alkalmazott a T3E-600 szuperszámítógép-modelljében. Független gyártók, mint pl. a DeskStation, szintén gyártottak Alpha 21164-processzoros munkaállomásokat. Teljesítmény Az Alpha processzorok folyamatosan tartották elsőbbségüket a mikroprocesszorok teljesítménye terén folyó versenyben; ezt az elsőséget a -es Alpha 21064A processzor vívta ki és a 21164-es vitte tovább, egészen az Intel Pentium Pro 1995 novemberi színrelépéséig, mikor egy -es Pentium Pro a SPECint95_base benchmark-csomagban felülmúlta a -es 21164 processzor teljesítményét. A rákövetkező évben megjelent -es 21164-es modell visszaszerezte az elsőséget a Pentium Pro-tól, ám később felülmúlta először a MIPS Technologies R10000-es processzora, majd ezután a Hewlett-Packard PA-8000 modellje, ugyanebben az évben.Gwennap 1996
Leírás Az Alpha 21164 négyszeres kibocsátású (four-issue) szuperskalár mikroprocesszor, amely legfeljebb négy utasítást képes átadni órajelciklusonként négy végrehajtó egységének: a két egészértékű (integer) és két lebegőpontos részegységnek. Az integer futószalag hét fokozatból áll, a lebegőpontos futószalagja tíz fokozatú. A 21164-es 43 bites virtuális címeket alkalmaz és 40 bites fizikai címet képes használni; ezáltal 8 TB virtuális memória és 1 TB méretű fizikai memória címzésére képes. Fixpontos egység (integer unit) A fixpontos (egészértékű) számító egység két fixpontos (egészértékű) futószalagot tartalmaz, valamint az egész regisztertárat (register file). A két futószalag nem egyenértékű – az egyik az összeadások, a másik a szorzások, tehát eltérő típusú utasítások végzésére szolgál, mégis mindkettő képes az általános összeadási, logikai, betöltő, összehasonlító és feltételes mozgató utasítások végrehajtására. Kizárólag a szorzó futószalag hajt végre biteltoló (shift), tároló (store) és szorzó utasításokat, a szorzást egy nem futószalagos szorzóegység végzi. Az összeadó futószalag kizárólagosan hajtja végre az ugró/elágazási utasításokat.
Az elágaztató, feltételes mozgató és szorzó utasítások kivételével az összes egyéb utasítás végrehajtása az ötödik futószalag-fokozatban kezdődik, egyciklusos latenciával. Az elágazási és feltételes mozgató utasítások végrehajtása a hatodik fokozatban kezdődik, hogy kibocsáthatók legyenek azzal az összehasonlító utasítással együtt, amelynek eredményétől függenek.
Az egész regisztertár negyven 64 bites regisztert tartalmaz, amelyből harminckettőt az Alpha Architektúra definiál, nyolc pedig a PALcode (Privileged Architecture Library code, hardver gyorsítási réteg a rendszerhívások céljaira) számára fenntartott gyors átmeneti tár (scratchpad memory) céljaira szolgál. A regisztertárnak négy olvasási portja és két írási portja van, amelyeket a két fixpontos futószalag egyenlően használ.Bowhill et al., "Circuit implementation of a 300-MHz 64-bit second-generation CMOS Alpha CPU", p. 124. Lebegőpontos egység A lebegőpontos egység a két lebegőpontos futószalagból és a lebegőpontos regisztertárból áll. A két futószalag nem egyforma, az egyik a lebegőpontos utasításokat hajtja végre a szorzást kivéve, a másik pedig csak a szorzásokat végzi. Mindkét futószalagnak négy fokozata van. Az összeadó-futószalaghoz csatlakozik a nem-futószalagos működésű lebegőpontos osztó egység Az osztást kivéve minden lebegőpontos utasítás négy órajelciklusos latenciával rendelkezik. Az osztások latenciája változó, attól függően, hogy az éppen végrehajtott utasítás egyszeres vagy kétszeres pontosságú lebegőpontos adatokon történik éppen (ld.: IEEE lebegőpontos számformátum). A járulékos késleltetésekkel együtt az egyszeres pontosságú osztások latenciája 15–31 órajelciklus, míg a kétszeres pontosságú osztások 22–60 ciklusú latenciával bírnak. Gyorsítótár A 21164-es három szintű CPU-gyorsítótárral rendelkezik, két lapkára integrált és egy külső gyorsítótárral, amely opcionális. A gyorsítótárak és a hozzájuk tartozó logika 7,2 millió tranzisztorból áll.Bowhill et al., "Circuit implementation of a 300-MHz 64-bit second-generation CMOS Alpha CPU", p. 111.
Az elsődleges gyorsítótár két külön tárra van bontva, külön az utasítások és az adatok számára: az utasítás-gyorsítótárra az I-cache, az adat-gyorsítótárra pedig a D-cache elnevezéssel hivatkoznak. Mindkettő mérete 8 KiB, direkt leképezésű tárak, sorhosszuk 32 bájt. A D-cache kétportos, a teljesítmény növelése érdekében, és a gyorsítótár megkettőzésével készült. Közvetlen átírás (write-through) visszaírási rendszert használ és on-read allokációt.
Az S-cache-ként is ismert másodlagos gyorsítótár szintén lapkára integrált, mérete 96 KiB. A 21164-esnek szüksége volt egy belső, integrált másodlagos gyorsítótárra, mert a processzor megnövekedett sávszélessége miatt egy külső másodlagos gyorsítótár nem tudta volna megfelelő gyorsasággal ellátni az adatok és utasítások beolvasását.Gwennap, "Digital Leads the Pack with 21164", p. 1. Ez a tár az eléréshez két órajelciklust igényel, a nagy méret miatt. A teljesítményt egy gyorsítótár-futószalag javítja. A belső másodlagos gyorsítótár egy másik előnye, hogy könnyen megvalósítható a többutas szervezés, és végeredményben ez a tár háromutas asszociatív szervezésű, amely nagyobb találati arányt biztosít, mint a közvetlen leképzésű gyorsítótárak.Gwennap, "Digital Leads the Pack with 21164", pp. 1–2. Az S-cache, éppen nagy méretei miatt, két félben lett megvalósítva, amelyek oldalaikkal az I-box, E-box, F-box és M-box egységekkel érintkeznek, hogy a gyorsítótár két ciklus alatt biztosíthassa az adatokat.
A harmadik szintű gyorsítótár – a B-cache – egy külső egység, eleve külső SRAM memóriák használatára tervezték. A B-cache opcionális, és több Alpha 21164-et használó rendszerben nincs is meg. A B-cache mérete 1-től 64 MiB-ig terjedhet, kisebb méreteket nem támogat, mivel azokat fölöslegessé tette a lapkára integrált S-cache.Gwennap, "Digital Leads the Pack with 21164". Ez a gyorsítótár közvetlen leképezésű, write-back visszaírási rendszert használ és on-write allokációt. A B-cache vezérlését egy lapkára integrált külső interfész egység végzi, nem úgy, mint a 21064-esnél, amely a feladathoz egy külső gyorsítótár-vezérlőt igényelt. A B-cache felépíthető szinkron és aszinkron SRAM-okból is, és rendszersínen keresztül érhető el.
Külső interfész A külső interfész egy 128 bites rendszersín, amely a belső órajelfrekvenciának 3–15-tel való osztásából adódó órajelfrekvencián működik, azaz pl. 20-tól 100 MHz-ig terjedő órajelen -es belső (processzor-) órajelfrekvencia esetén. A rendszersín órajelét a processzor állítja elő. Órajel A belső órajel egy külső órajel-forrás kettővel való osztásával áll elő. Egy -es Alpha 21164-nek tehát egy -es órajelforrásra van szüksége. Gyártás Az Alpha 21164 processzor szilíciumlapkáján 9,3 millió tranzisztort tartalmaz, () felületen, és ez közel járt a gyártási folyamat fizikai határaihoz. A lapkát a Digital ötödik generációs CMOS (CMOS-5 jelű) folyamatával gyártották amely egy 0.50 µm-es folyamat, négy alumínium vezetőréteggel.Bowhill, et al., "Circuit implementation of a 300-MHz 64-bit second-generation CMOS Alpha CPU", pp. 100–101. A 21164-es processzor 3,3-voltos tápfeszültséget igényel; disszipációja 46 W 266 MHz-es, 51 W 300 MHz-en, és 56 W 333 MHz-es órajelen. Tokozás Az Alpha 21164 499 tűs keramikus, rácspontok közti (tűelrendezésű) pin grid array (IPGA) tokozásban jelent meg, mérete 57,40 × 57,40 mm. A tokhoz egy hőterelő is tartozik, amely a tokozásból kiálló két csapra erősíthető fel.
Származékai Alpha 21164 (EV56)
Az Alpha 21164 további fejlesztés alapjául szolgált, amely az EV56 kódnevet kapta. Az új processzort szintén Alpha 21164 néven hozták forgalomba, de eredetileg ez az Alpha 21164A jelű verzió volt. Ennek 366, 433, 500, 533, 600 és 666 MHz-es órajelű változatai vannak.Alpha 21164 Microprocessor Data Sheet, August 1998, p. 113.Digital Semiconductor 21164 Alpha Microprocessor Product Brief, 31 March 1997, p. 2. Történet Első leírása 1995 októberéből származik, amikor ismertették a Mikroprocesszor Fórumon. 1995. november 13-án a Digital bejelentette, hogy a minták még ugyanabban a hónapban elkészülnek. Az első, -en működő változatot 1996-ban mutatták be. 1966. július 8-án a Digital bejelentette, hogy a -es változat készen áll és egy -es változat is nagy tételben rendelkezésre áll 1996 szeptemberére. A 433 MHz-es változat egységára 1492 dollár volt, 1000-es tételben. A -es változatot 1997. március 31-én mutatták be és dobták piacra. A Samsung Electronics 1996 júniusában megállapodott a Digital-lal az Alpha 21164A másodlagos forrásként való gyártásában, így ez lett az egyetlen cég, amely a Digitalon kívül Alpha processzorokat gyártott (konkrétan a 666 MHz-es modellt). További 366 és 500 MHz közötti mintákat mutattak be 1996. november 11-én, amelyek nagy tételben 1997-ben voltak rendelhetők. Az Alpha 21164A processzorok a Digital Massachusetts-beli Hudson-ban lévő gyárában készültek, valamint a Samsung Kihueng-i gyárában, Dél-Koreában.
Az Alpha 21164A processzor felhasználói között megtalálható a Cray Research, a Digital, a Network Appliance (később NetApp), és a DeskStation. A Cray Research a 450, 600 és 675 MHz-es Alpha 21164A modelleket használta fel a késői T3E szuperszámítógépeiben. A Digital a különböző órajelű Alpha 21164A modelleket saját AlphaServer, AlphaStation, Celebris XL munkaállomásaiban és a Digital Personal Workstation-okba szerelte. A NetApp 400, 500 és 600 MHz-es Alpha 21164A-kat használt a NetApp filer tárolókban. A DeskStation az Alpha 21164A processzorokat a cég Raptor Reflex munkaállomásaiban alkalmazta. Leírás