De Alpha 21264: de grootste RISC voor NT
Redactienota: Dit artikel stond oorspronkelijk gepland voor publicatie in het septembernummer van BYTE Magazine, maar werd geannuleerd toen BYTE in juni 1998 stopte. Het verscheen in plaats daarvan in Windows NT Magazine en in C'T, een Duits computermagazine. Deze tekst is de originele Engelse versie.
Terwijl de wereld wacht op de 64-bit Merced-chip van Intel en de 64-bit versie van Windows NT van Microsoft, biedt Digital Equipment een voorproefje van de volgende generatie in NT-verwerking. De Alpha 21264 is een 64-bit processor die NT draait. Het is een van de snelste chips ter wereld en is vandaag al beschikbaar.
De 21264 is de nieuwste generatie van de Alpha-microprocessorarchitectuur. Digital verwacht dat de 21264 dit jaar kloksnelheden van meer dan 700 MHz zal bereiken, waarmee deze processor de reputatie als "speed demon" behoudt die de 21164 en 21064 voor Alpha-chips hebben gevestigd.
Alpha is de laatste RISC-architectuur waarvoor Microsoft toekomstige versies van NT ontwikkelt. Microsoft bouwt NT voor MIPS Rx000-chips af, en de PowerPC-versie van NT is nooit echt van de grond gekomen. De enige andere CPU-architectuur die NT draait is uiteraard Intel x86. Ondanks de marktdominantie van Intel heeft de Alpha één groot voordeel ten opzichte van de x86: verhoogde prestaties, vooral bij floating-point taken. Alpha-systemen zijn over het algemeen duurder dan hun Intel-tegenhangers, maar ze zijn sneller en blinken uit in wiskundig intensieve technische en wetenschappelijke applicaties.
Om voorbij de prestatiebeperkingen van de nu 20 jaar oude x86 te gaan, is Intel in 1994 een partnerschap aangegaan met HP om een nieuwe CPU-architectuur te ontwikkelen: Intel Architecture-64 (IA-64). Intel verwacht dat systemen die gebruikmaken van de Merced-processor, de eerste processor die IA-64 implementeert, halverwege 2000 worden geleverd. Maar de Merced is mogelijk niet de snelste chip op de NT-markt in het jaar 2000. Digital stelt dat de 21264 tegen de tijd dat de Merced verschijnt, zal draaien op een klokfrequentie van 1000 MHz (1 gigahertz [GHz]). Bij die snelheid zal de 21264 aanzienlijk sneller zijn dan de Merced, volgens geschatte CPU-benchmarks. (Zie Figuur 1 voor een overzicht van de snelheden van de 21264.)
Digital gaf aan dat de eerste 21264-systemen eind 1998 op de markt zouden komen, dus men hoeft niet twee jaar te wachten op 64-bit prestaties. De 21264 zal zijn volledige potentieel echter pas bereiken wanneer Microsoft een 64-bit versie van NT uitbrengt voor zowel IA-64 als Alpha-chips. (Microsoft hoopt de 64-bit NT in 2000 te leveren.)
Waar gaat RISC naartoe?
De race tussen de 21264- en IA-64-processors is niet slechts een onderwerp van luchtspiegelingen. Er staat niets minder op het spel dan de toekomst van RISC — voor NT en elk ander besturingssysteem (OS).
Buiten de zeer gespecialiseerde markt voor embedded applicaties is RISC in trek verloren. Momenteel is de meest populaire RISC-architectuur voor de desktop de PowerPC-chip, die gezamenlijk door IBM en Motorola wordt geproduceerd. De grootste klant voor desktop PowerPC-chips is echter Apple, en de Macintosh heeft volgens International Data Corporation (IDC) slechts ongeveer 4 procent marktaandeel in de pc-markt. In juni kondigden IBM en Motorola aan dat zij hun zevenjarige PowerPC-partnerschap beëindigen en toekomstige PowerPC-chips afzonderlijk zullen ontwikkelen.
IBM's andere RISC-architectuur, de Power-serie, wordt samengevoegd met de PowerPC. IBM bouwt de Power-chip als aparte architectuur af. De nieuwe 64-bit Power3-chip is de eerste processor die Power- en PowerPC-technologieën verenigt.
Silicon Graphics, dat kampt met recente verliezen, stapt af van zijn MIPS Rx000-serie RISC-processors. Het bedrijf annuleerde zijn projecten voor de volgende generatie Rx000 en heeft onlangs het gedeelte van MIPS Technologies dat zich richt op embedded chips afgesplitst als een apart bedrijf. Silicon Graphics ontwikkelt x86-gebaseerde systemen voor NT en poort IRIX naar IA-64.
Sun Microsystems is Solaris aan het porteren naar IA-64. Deze stap heeft sommige industrieanalisten ertoe aangezet te speculeren dat de nieuwe UltraSPARC-III de laatste grote generatie van de SPARC-familie zal zijn, hoewel Sun claimt dat deze geruchten onjuist zijn.
HP poort HP-UX naar IA-64 als onderdeel van zijn strategie om af te stappen van Precision Architecture-RISC (PA-RISC). PA-RISC zal geleidelijk uit de markt verdwijnen na het debuut van IA-64. IA-64 zal achterwaarts compatibel zijn met PA-RISC.
De Alpha is volgens de meeste CPU-benchmarks de snelste RISC-chip en het enige NT-alternatief voor de x86. De toekomst van de Alpha is echter onzeker vanwege recente verschuivingen bij Digital. Het bedrijf verkocht zijn chipfabriek in Hudson, Massachusetts, aan Intel. Ondanks enkele misleidende nieuwsberichten verkocht Digital alleen de fabriek, niet de Alpha zelf. Digital zal onafhankelijk Alpha-processors blijven ontwerpen, maar de productie van de chips uitbesteden aan Intel en andere licentiehouders. De twee huidige licentiehouders voor de productie van Alpha zijn Samsung en Mitsubishi. Digital onderhandelt ook over deals met AMD en IBM Microelectronics.
Mitsubishi heeft momenteel geen plannen om de 21264 te produceren, hoewel het bedrijf technische ondersteuning blijft bieden voor de goedkope 21164PC-chips die zij hebben geproduceerd. Samsung is de meest agressieve Alpha-licentiehouder gebleken. Het bedrijf heeft onlangs een dochteronderneming opgericht om Alpha-chips te vermarkten en zegt dat het de 21264 tegen het jaar 2000 naar 1 GHz zal pushen.
De overname van Digital door Compaq maakt het lot van de Alpha nog onzekerder. Compaq heeft nooit een eigen CPU-architectuur bezeten en is een van Intels grootste klanten voor x86-chips. David Jessel, senior productmanager van de Alpha, claimt dat Alpha-fans zich geen zorgen hoeven te maken. "Compaq is volledig supportive tegenover de Alpha en blijft erin investeren," aldus Jessel. Om dit engagement te onderstrepen, is Compaq van plan de 21264 in de plaats van MIPS-processors te gebruiken in hun high-end Tandem-servers.
Als de Alpha al deze overgangen overleeft, zou hij de IA-64-chips de komende tien jaar serieus kunnen uitdagen voor de suprematie op het gebied van prestaties. Een technische analyse van de 21264 laat zien dat de Alpha nog veel ruimte heeft om krachtiger te worden.
Binnenin de 21264
De 21264 heeft een innovatief ontwerp dat significant afwijkt van het ontwerp van de 21164. De nieuwe chip heeft grotere primaire caches, extra functionele units, nauwkeurigere branch prediction, nieuwe instructies voor motion video (MVI) en een hoge busbandbreedte. Hij voert tot zes instructies per klokcyclus uit en houdt een gemiddelde van vier instructies per klokcyclus vast. Daarnaast is de 21264 de eerste Alpha die out-of-order execution biedt.
Out-of-order execution is een functie die voorkomt in veel microprocessors. Nu de Alpha deze functie biedt, zijn de SPARC-chips van Sun de enige toonaangevende CPU's die instructies niet out-of-order uitvoeren. CPU's die out-of-order werken, herschikken tijdens de runtime dynamisch de instructies van een programma om de resources van de chip efficiënt te gebruiken.
Voorbeeld: als een instructie een integer-unit nodig heeft maar alle integer-units van de CPU bezet zijn, stuurt een out-of-order CPU floating-point instructies naar beschikbare floating-point units (FPU's), terwijl de gestagneerde integer-instructie wordt vastgehouden tot er een unit beschikbaar komt. Zodra dit het geval is, laat de CPU de instructie vrij. In dezelfde situatie zouden conventionele in-order CPU's alle instructies pauzeren totdat de integer-unit vrij is. Out-of-order CPU's leveren resultaten altijd aan in de oorspronkelijke volgorde van het programma.
Out-of-order execution was voorheen een kenmerk van alleen "brainiac"-processors: CPU's die vertrouwen op geavanceerde instructieafhandeling in plaats van hoge kloksnelheden om topprestaties te behalen. De complexe logica die de out-of-order techniek bij oudere chips beheert, sloot hoge kloksnelheden uit. Vorige Alpha-chips draaiden op industrieleidende snelheden omdat ze instructies niet out-of-order verwerkten.
De 21264 breekt met die traditie. Beschikbaar op 500 MHz en 600 MHz is hij absoluut snel, en hij zal sneller worden. Digital zegt dat de 21264 dit jaar 733 MHz zal bereiken en binnen twee jaar 1 GHz. Maar de 21264 is ook een "brainiac": hij voert instructies out-of-order uit, en doet dat behendiger dan enige andere processor.
De beste manier om de out-of-order efficiëntie van de 21264 te evalueren, is door te kijken naar het aantal instructies dat hij tegelijkertijd kan ordenen. Hoe meer instructies een out-of-order CPU tegelijk vasthoudt, hoe efficiënter de verwerking, omdat het jongleren met veel instructies de CPU een breder overzicht geeft van de behoeften van een draaiend programma. Dit jongleerproces vereist echter resources die in-order verwerking niet nodig heeft: reorder-logica, tijdelijke registers voor wachtende instructies, interlock-circuits om afhankelijkheden te controleren en logica om resultaten in programmavolgorde af te leveren.
- Intel P6 chips (Pentium Pro, Pentium II, Celeron, Pentium II Xeon): jongleren met maximaal 40 instructies gelijktijdig.
- HP PA-8000: handelt 56 instructies tegelijk af.
- Alpha 21264: jongleert met 80 instructies, meer dan enige andere processor.
Digital heeft een slim registerschema geïmplementeerd om deze instructieafhandeling mogelijk te maken. Zoals de meeste RISC-chips heeft de 21264 een architecturale set van 32 integer-registers en 32 floating-point registers, allen 64 bits breed. Om de capaciteit voor het herschikken van instructies te vergroten, heeft de 21264 48 extra integer-registers en 40 extra floating-point registers. Elk van deze 152 registers kan tijdelijke waarden bevatten voor wachtende instructies. Wanneer een instructie wordt afgerond (retires), hernoemt de CPU het register dat het tijdelijke resultaat bevat, zodat dit register een van de 32 integer- of 32 floating-point registers uit de architectuurdefinitie van de 21264 vertegenwoordigt. De waarde van het register wordt dan een geldig onderdeel van de status van de CPU en wordt zichtbaar voor programma's.
Dit schema is fairly standaard voor out-of-order processors, maar de 21264 voegt een unieke twist toe: hij heeft een dubbele set van 80 integer-registers die kopieën zijn van de eerste 80 integer-registers, waardoor de 21264 in totaal 160 integer-registers heeft.
Dit grote aantal integer-registers is een reden waarom de chip hoge snelheden bereikt ondanks de extra complexiteit. Als alle vier de integer-units dezelfde 80 registers zouden delen, zou het registerbestand zoveel lees/schrijfpoorten nodig hebben dat de lange bus niet zou kunnen meekomen met de kloksnelheid van de chip. Bij 1 GHz is de cyclustijd 1 nanoseconde; elektriciteit is simpelweg niet snel genoeg om een architectuur te ondersteunen waarin vier integer-units 80 registers gebruiken bij een cyclustijd van 1 nanoseconde.
Digital heeft daarom twee clusters gecreëerd, elk met twee integer-units (waarvan één een integer- en adresunit is) en een set van 80 registers. Wanneer een instructie een registerwaarde verandert, kopieert de CPU de waarde naar een corresponderend register in het andere registerbestand om de bestanden identiek te houden. Dit proces kost één klokcyclus, maar pipelining en reordering kunnen deze latentie verbergen. (Zie Figuur 2 voor een blokdiagram van de architectuur van de 21264.)
Clusters en Caches
De twee integer-units in elk cluster zijn niet identiek. Eén heeft een multiplier, en de andere heeft speciale logica om vijf nieuwe instructies voor motion video-verwerking af te handelen. De meest interessante nieuwe instructie (een PERR-instructie) vervangt negen instructies voor motion estimation, een cruciaal onderdeel van MPEG-compressie en -decompressie. Hierdoor kan de 21264 eenvoudig MPEG-2 videodecodering en AC-3 audiodecodering voor DVD-weergave in realtime afhandelen zonder speciale hardware.
De 21264 heeft twee gepipelined FPU's die de 72 floating-point registers delen. De FPU's voeren tot twee instructies per klokcyclus uit. Een 21264 van 600 MHz kan 1,2 gigaflops volhouden omdat de integer-units twee loads of stores per klokcyclus voor de FPU's kunnen afhandelen.
Digital heeft de cachehiërarchie in de 21264 gereorganiseerd:
- Level 1 (L1): Een instructiecache van 64 KB en een datacache van 64 KB; beide zijn two-way set-associative.
- Level 2 (L2): Bevindt zich buiten de chip; de 21264 heeft hier toegang toe via een 128-bit backside bus.
Ter vergelijking: de 21164 had veel kleinere L1-caches (elk 8 KB) en een geïntegreerde L2-cache van 96 KB. Omdat Digital de L2-cache naar buiten verplaatst, introduceren leveranciers als Intel en AMD juist hun eerste CPU's met geïntegreerde L2-caches. Digital ontdekte dat grote programma's vaak de kleine L1-caches van de 21164 misten, waardoor de oudere CPU vaker dan nodig toegang zocht tot de L2-cache (wat zes klokcycli kostte). De 21164 had daarom een externe L3-cache nodig voor hoge prestaties.
Met de 21264 keert Digital terug naar een meer conventionele aanpak. De grote L1-caches verhogen de hit rate. Toegang tot de caches kost twee klokcycli, wat bijna onvermijdelijk is gezien de grootte van de caches en de hoge snelheid van de processor. Wanneer de CPU de on-chip caches mist, heeft hij toegang tot de L2-cache via de 128-bit backside bus. Deze Alpha heeft geen L3-cache nodig.
De eerste 21264 L2-caches zullen gebruikmaken van 200 MHz late-write Static RAM (SRAM) chips en een piekbusbandbreedte van 3,2 GB per seconde (GBps) bieden. Dit is vergelijkbaar met de 3,6 GBps van de 450 MHz Slot-2 Pentium II (die een 64-bit backside bus heeft). Om Intel's vooruitgang in Xeon-systemen tegen te gaan, zal Digital overstappen op Dual Data Rate SRAM (DDR-SRAM) chips. DDR-SRAM chips draaien op 166 MHz maar transfereren data op beide flanken van een kloksignaal om een datarate van 333 MHz te bereiken voor 5,3 GBps piekbandbreedte. Uiteindelijk zal de cachebus van de 21264 draaien op 250 MHz (effectief 500 MHz met double clocking) voor 8 GBps piekbandbreedte. Bij die snelheden kan de L2-cache waarschijnlijk meekomen met de 1 GHz core.
Bussen en Branches
In plaats van een systeem I/O-bus heeft de 21264 een 64-bit point-to-point kanaal. Dit I/O-kanaal is sneller dan de cachebus en draait tot 333 MHz. Het verbindt direct met een Tsunami custom chipset. De Tsunami-chipset verbindt met één of twee 32-bit PCI-bussen (op 33 MHz) en met twee banken hoofdgeheugen via een paar 256-bit bussen (elk op 83 MHz). In een dual-processor systeem verbindt de Tsunami-chipset met de tweede CPU via een onafhankelijk 64-bit kanaal op 333 MHz. (Zie Figuur 3 voor de systeemarchitectuur.)
Dit busontwerp is identiek aan het ontwerp dat AMD heeft gelicentieerd voor zijn AMD-K7 processor. AMD ontwerpt een nieuwe CPU-interface genaamd Slot A, die dezelfde fysieke connectoren gebruikt als Intel's Slot 1 en Single Edge Contact (SEC) cartridge. In plaats van de propriëtaire P6-busprotocollen van Intel, leent Slot A de busprotocollen van de 21264. Toekomstige AMD-K7 en 21264 processors zullen in SEC-achtige cartridges komen die in Slot A passen; moederborden voor beide zullen alleen verschillen in hun BIOS.
Voor AMD betekent deze gelijkenis dat de businterface van de AMD-K7 sneller zal zijn dan die van Intel. Voor Digital betekent het dat toekomstige 21264-processors op goedkopere moederborden zullen passen, waardoor de prijzen voor Alpha-systemen zullen dalen. Er wordt verwacht dat Digital een 21264PC processor introduceert, vergelijkbaar met de budgetvriendelijke 21164PC. Een systeem met de 21264PC en een Slot A-moederbord zou mogelijk slechts $1500 kosten.
Om bottlenecks te voorkomen, heeft Digital de fetching- en branch-prediction mogelijkheden van de CPU upgraded. De L1-instructiecache heeft een set predictor die raadt welke van de twee registersets voor integer-units de CPU als volgende zal benaderen. Vervolgens raadt een next-line predictor welke cachelijn binnen die set wordt gebruikt (de cache bevat vier instructies per lijn).
De 21264 gebruikt drie branch prediction algoritmen:
- Local predictor: richt zich op lokale branches, zoals loops.
- Global predictor: houdt een globaal record bij van alle recente branches.
- Combinatorische predictor: beslist of de finale voorspelling gebaseerd moet worden op de lokale of globale predictor.
De predictors gebruiken vier geschiedenistabellen van vorige branches, die 3,6 KB aan chipgeheugen innemen. De CPU slaat voorspelde doeladressen op in de instructiecache (6 KB). Hoewel dit veel ruimte inneemt, claimt Digital dat het waardevol is: de 21264 maakt maar half zoveel fouten als de 21164, met een nauwkeurigheidspercentage van ongeveer 95 procent.
De prijs van complexiteit
De 21264 wedijvert met IBM's Power3 om de titel van meest complexe microprocessor ter wereld.
- Alpha 21264: 15,9 miljoen transistoren en een 6-way core.
- IBM Power3: 15 miljoen transistoren en een 8-way core.
De 21264 debuteert met een six-layer metal, 0,35-micron CMOS procestechnologie. De die-grootte is 300 vierkante millimeter en de chip verbruikt 60 watt. Eind dit jaar plannen Digital en Samsung de migratie naar een 0,25-micron proces om kloksnelheden tot 667 MHz en 733 MHz te halen en de die te verkleinen. In 2000 zal Samsung overstappen op een 0,18-micron proces (hetzelfde proces dat Intel gebruikt voor de Merced-chips). De 21264 zal waarschijnlijk de 1 GHz barrière doorbreken op een die van tussen de 125 en 150 vierkante millimeter.
Momenteel betaalt de 21264 voor zijn complexiteit in termen van die-grootte, productiekosten en stroomverbruik, maar niet in terms van kloksnelheid. Dankzij de volwassenheid van Alpha-compilers en het grote aantal native Alpha-applicaties zal de 21264 de Merced waarschijnlijk ver achter zich laten. De vraag is of de Alpha kan overleven tegenover de opmars van IA-64. Compaq-engineers werken al aan volgende generaties: de 21364 (gepland voor 2000) en de 21464 (voor 2001). Als Compaq dit tempo vasthoudt, zou Alpha het NT-platform kunnen worden dat Intel echt uitdaagt.
***
Contactgegevens Digital: Maynard, MA 510-490-4753 http://www.digital.com/semiconductor/alpha/alpha.htm
Bijschriften bij figuren (referenties):
- Figuur 1: Digital voorspelt dat de Alpha 21264 in 2000 de 1 GHz (1000 MHz) zal bereiken.
- Figuur 2: De Alpha 21264 voert tot zes instructies per klokcyclus uit.
- Figuur 3: De Tsunami-chipset is het sleutelcomponent in systemen gebaseerd op de 21264.
***
Brieven / Augustus 1999
"Nu hebben jullie het gedaan! Ik ben al drie jaar geabonneerd op het magazine, maar nu ben ik echt verslaafd. De artikelen en columns van Bob Chronister, Mark Russinovich en Bob Wells zijn altijd bevredigend, maar 'The Alpha 21264' (december 1998) van Tom R. Halfhill heeft me gegrepen.
Het artikel had een duidelijke boodschap: de Alpha is misschien wel de enige RISC-chip die op lange termijn succesvol zal zijn. De strijd tussen RISC- en CISC-architectuur is een belangrijk thema voor de toekomst van computing, en de Alpha 21264 biedt vandaag al 64-bit verwerking in een betaalbaar pakket. Ik hoop meer te horen van Tom Halfhill."
— George Rogers Clark, 6 augustus 1999
De Alpha 21264: de grootste RISC voor NT
Redactienota: Dit artikel stond oorspronkelijk gepland voor publicatie in het septembernummer van BYTE Magazine, maar werd geannuleerd toen BYTE in juni 1998 stopte. Het verscheen in plaats daarvan in Windows NT Magazine en in C'T, een Duits computermagazine. Deze tekst is de originele Engelse versie.
Terwijl de wereld wacht op de 64-bit Merced-chip van Intel en de 64-bit versie van Windows NT van Microsoft, biedt Digital Equipment een voorproefje van de volgende generatie in NT-verwerking. De Alpha 21264 is een 64-bit processor die NT draait. Het is een van de snelste chips ter wereld en is vandaag al beschikbaar.
De 21264 is de nieuwste generatie van de Alpha-microprocessorarchitectuur. Digital verwacht dat de 21264 dit jaar kloksnelheden van meer dan 700 MHz zal bereiken, waarmee deze processor de reputatie als "speed demon" behoudt die de 21164 en 21064 voor Alpha-chips hebben gevestigd.
Alpha is de laatste RISC-architectuur waarvoor Microsoft toekomstige versies van NT ontwikkelt. Microsoft bouwt NT voor MIPS Rx000-chips af, en de PowerPC-versie van NT is nooit echt van de grond gekomen. De enige andere CPU-architectuur die NT draait is uiteraard Intel x86. Ondanks de marktdominantie van Intel heeft de Alpha één groot voordeel ten opzichte van de x86: verhoogde prestaties, vooral bij floating-point taken. Alpha-systemen zijn over het algemeen duurder dan hun Intel-tegenhangers, maar ze zijn sneller en blinken uit in wiskundig intensieve technische en wetenschappelijke applicaties.
Om voorbij de prestatiebeperkingen van de nu 20 jaar oude x86 te gaan, is Intel in 1994 een partnerschap aangegaan met HP om een nieuwe CPU-architectuur te ontwikkelen: Intel Architecture-64 (IA-64). Intel verwacht dat systemen die gebruikmaken van de Merced-processor, de eerste processor die IA-64 implementeert, halverwege 2000 worden geleverd. Maar de Merced is mogelijk niet de snelste chip op de NT-markt in het jaar 2000. Digital stelt dat de 21264 tegen de tijd dat de Merced verschijnt, zal draaien op een klokfrequentie van 1000 MHz (1 gigahertz [GHz]). Bij die snelheid zal de 21264 aanzienlijk sneller zijn dan de Merced, volgens geschatte CPU-benchmarks. (Zie Figuur 1 voor een overzicht van de snelheden van de 21264.)
Digital gaf aan dat de eerste 21264-systemen eind 1998 op de markt zouden komen, dus men hoeft niet twee jaar te wachten op 64-bit prestaties. De 21264 zal zijn volledige potentieel echter pas bereiken wanneer Microsoft een 64-bit versie van NT uitbrengt voor zowel IA-64 als Alpha-chips. (Microsoft hoopt de 64-bit NT in 2000 te leveren.)
Waar gaat RISC naartoe?
De race tussen de 21264- en IA-64-processors is niet slechts een onderwerp van luchtspiegelingen. Er staat niets minder op het spel dan de toekomst van RISC — voor NT en elk ander besturingssysteem (OS).
Buiten de zeer gespecialiseerde markt voor embedded applicaties is RISC in trek verloren. Momenteel is de meest populaire RISC-architectuur voor de desktop de PowerPC-chip, die gezamenlijk door IBM en Motorola wordt geproduceerd. De grootste klant voor desktop PowerPC-chips is echter Apple, en de Macintosh heeft volgens International Data Corporation (IDC) slechts ongeveer 4 procent marktaandeel in de pc-markt. In juni kondigden IBM en Motorola aan dat zij hun zevenjarige PowerPC-partnerschap beëindigen en toekomstige PowerPC-chips afzonderlijk zullen ontwikkelen.
IBM's andere RISC-architectuur, de Power-serie, wordt samengevoegd met de PowerPC. IBM bouwt de Power-chip als aparte architectuur af. De nieuwe 64-bit Power3-chip is de eerste processor die Power- en PowerPC-technologieën verenigt.
Silicon Graphics, dat kampt met recente verliezen, stapt af van zijn MIPS Rx000-serie RISC-processors. Het bedrijf annuleerde zijn projecten voor de volgende generatie Rx000 en heeft onlangs het gedeelte van MIPS Technologies dat zich richt op embedded chips afgesplitst als een apart bedrijf. Silicon Graphics ontwikkelt x86-gebaseerde systemen voor NT en poort IRIX naar IA-64.
Sun Microsystems is Solaris aan het porteren naar IA-64. Deze stap heeft sommige industrieanalisten ertoe aangezet te speculeren dat de nieuwe UltraSPARC-III de laatste grote generatie van de SPARC-familie zal zijn, hoewel Sun claimt dat deze geruchten onjuist zijn.
HP poort HP-UX naar IA-64 als onderdeel van zijn strategie om af te stappen van Precision Architecture-RISC (PA-RISC). PA-RISC zal geleidelijk uit de markt verdwijnen na het debuut van IA-64. IA-64 zal achterwaarts compatibel zijn met PA-RISC.
De Alpha is volgens de meeste CPU-benchmarks de snelste RISC-chip en het enige NT-alternatief voor de x86. De toekomst van de Alpha is echter onzeker vanwege recente verschuivingen bij Digital. Het bedrijf verkocht zijn chipfabriek in Hudson, Massachusetts, aan Intel. Ondanks enkele misleidende nieuwsberichten verkocht Digital alleen de fabriek, niet de Alpha zelf. Digital zal onafhankelijk Alpha-processors blijven ontwerpen, maar de productie van de chips uitbesteden aan Intel en andere licentiehouders. De twee huidige licentiehouders voor de productie van Alpha zijn Samsung en Mitsubishi. Digital onderhandelt ook over deals met AMD en IBM Microelectronics.
Mitsubishi heeft momenteel geen plannen om de 21264 te produceren, hoewel het bedrijf technische ondersteuning blijft bieden voor de goedkope 21164PC-chips die zij hebben geproduceerd. Samsung is de meest agressieve Alpha-licentiehouder gebleken. Het bedrijf heeft onlangs een dochteronderneming opgericht om Alpha-chips te vermarkten en zegt dat het de 21264 tegen het jaar 2000 naar 1 GHz zal pushen.
De overname van Digital door Compaq maakt het lot van de Alpha nog onzekerder. Compaq heeft nooit een eigen CPU-architectuur bezeten en is een van Intels grootste klanten voor x86-chips. David Jessel, senior productmanager van de Alpha, claimt dat Alpha-fans zich geen zorgen hoeven te maken. "Compaq is volledig supportive tegenover de Alpha en blijft erin investeren," aldus Jessel. Om dit engagement te onderstrepen, is Compaq van plan de 21264 in de plaats van MIPS-processors te gebruiken in hun high-end Tandem-servers.
Als de Alpha al deze overgangen overleeft, zou hij de IA-64-chips de komende tien jaar serieus kunnen uitdagen voor de suprematie op het gebied van prestaties. Een technische analyse van de 21264 laat zien dat de Alpha nog veel ruimte heeft om krachtiger te worden.
Binnenin de 21264
De 21264 heeft een innovatief ontwerp dat significant afwijkt van het ontwerp van de 21164. De nieuwe chip heeft grotere primaire caches, extra functionele units, nauwkeurigere branch prediction, nieuwe instructies voor motion video (MVI) en een hoge busbandbreedte. Hij voert tot zes instructies per klokcyclus uit en houdt een gemiddelde van vier instructies per klokcyclus vast. Daarnaast is de 21264 de eerste Alpha die out-of-order execution biedt.
Out-of-order execution is een functie die voorkomt in veel microprocessors. Nu de Alpha deze functie biedt, zijn de SPARC-chips van Sun de enige toonaangevende CPU's die instructies niet out-of-order uitvoeren. CPU's die out-of-order werken, herschikken tijdens de runtime dynamisch de instructies van een programma om de resources van de chip efficiënt te gebruiken.
Voorbeeld: als een instructie een integer-unit nodig heeft maar alle integer-units van de CPU bezet zijn, stuurt een out-of-order CPU floating-point instructies naar beschikbare floating-point units (FPU's), terwijl de gestagneerde integer-instructie wordt vastgehouden tot er een unit beschikbaar komt. Zodra dit het geval is, laat de CPU de instructie vrij. In dezelfde situatie zouden conventionele in-order CPU's alle instructies pauzeren totdat de integer-unit vrij is. Out-of-order CPU's leveren resultaten altijd aan in de oorspronkelijke volgorde van het programma.
Out-of-order execution was voorheen een kenmerk van alleen "brainiac"-processors: CPU's die vertrouwen op geavanceerde instructieafhandeling in plaats van hoge kloksnelheden om topprestaties te behalen. De complexe logica die de out-of-order techniek bij oudere chips beheert, sloot hoge kloksnelheden uit. Vorige Alpha-chips draaiden op industrieleidende snelheden omdat ze instructies niet out-of-order verwerkten.
De 21264 breekt met die traditie. Beschikbaar op 500 MHz en 600 MHz is hij absoluut snel, en hij zal sneller worden. Digital zegt dat de 21264 dit jaar 733 MHz zal bereiken en binnen twee jaar 1 GHz. Maar de 21264 is ook een "brainiac": hij voert instructies out-of-order uit, en doet dat behendiger dan enige andere processor.
De beste manier om de out-of-order efficiëntie van de 21264 te evalueren, is door te kijken naar het aantal instructies dat hij tegelijkertijd kan ordenen. Hoe meer instructies een out-of-order CPU tegelijk vasthoudt, hoe efficiënter de verwerking, omdat het jongleren met veel instructies de CPU een breder overzicht geeft van de behoeften van een draaiend programma. Dit jongleerproces vereist echter resources die in-order verwerking niet nodig heeft: reorder-logica, tijdelijke registers voor wachtende instructies, interlock-circuits om afhankelijkheden te controleren en logica om resultaten in programmavolgorde af te leveren.
- Intel P6 chips (Pentium Pro, Pentium II, Celeron, Pentium II Xeon): jongleren met maximaal 40 instructies gelijktijdig.
- HP PA-8000: handelt 56 instructies tegelijk af.
- Alpha 21264: jongleert met 80 instructies, meer dan enige andere processor.
Digital heeft een slim registerschema geïmplementeerd om deze instructieafhandeling mogelijk te maken. Zoals de meeste RISC-chips heeft de 21264 een architecturale set van 32 integer-registers en 32 floating-point registers, allen 64 bits breed. Om de capaciteit voor het herschikken van instructies te vergroten, heeft de 21264 48 extra integer-registers en 40 extra floating-point registers. Elk van deze 152 registers kan tijdelijke waarden bevatten voor wachtende instructies. Wanneer een instructie wordt afgerond (retires), hernoemt de CPU het register dat het tijdelijke resultaat bevat, zodat dit register een van de 32 integer- of 32 floating-point registers uit de architectuurdefinitie van de 21264 vertegenwoordigt. De waarde van het register wordt dan een geldig onderdeel van de status van de CPU en wordt zichtbaar voor programma's.
Dit schema is fairly standaard voor out-of-order processors, maar de 21264 voegt een unieke twist toe: hij heeft een dubbele set van 80 integer-registers die kopieën zijn van de eerste 80 integer-registers, waardoor de 21264 in totaal 160 integer-registers heeft.
Dit grote aantal integer-registers is een reden waarom de chip hoge snelheden bereikt ondanks de extra complexiteit. Als alle vier de integer-units dezelfde 80 registers zouden delen, zou het registerbestand zoveel lees/schrijfpoorten nodig hebben dat de lange bus niet zou kunnen meekomen met de kloksnelheid van de chip. Bij 1 GHz is de cyclustijd 1 nanoseconde; elektriciteit is simpelweg niet snel genoeg om een architectuur te ondersteunen waarin vier integer-units 80 registers gebruiken bij een cyclustijd van 1 nanoseconde.
Digital heeft daarom twee clusters gecreëerd, elk met twee integer-units (waarvan één een integer- en adresunit is) en een set van 80 registers. Wanneer een instructie een registerwaarde verandert, kopieert de CPU de waarde naar een corresponderend register in het andere registerbestand om de bestanden identiek te houden. Dit proces kost één klokcyclus, maar pipelining en reordering kunnen deze latentie verbergen. (Zie Figuur 2 voor een blokdiagram van de architectuur van de 21264.)
Clusters en Caches
De twee integer-units in elk cluster zijn niet identiek. Eén heeft een multiplier, en de andere heeft speciale logica om vijf nieuwe instructies voor motion video-verwerking af te handelen. De meest interessante nieuwe instructie (een PERR-instructie) vervangt negen instructies voor motion estimation, een cruciaal onderdeel van MPEG-compressie en -decompressie. Hierdoor kan de 21264 eenvoudig MPEG-2 videodecodering en AC-3 audiodecodering voor DVD-weergave in realtime afhandelen zonder speciale hardware.
De 21264 heeft twee gepipelined FPU's die de 72 floating-point registers delen. De FPU's voeren tot twee instructies per klokcyclus uit. Een 21264 van 600 MHz kan 1,2 gigaflops volhouden omdat de integer-units twee loads of stores per klokcyclus voor de FPU's kunnen afhandelen.
Digital heeft de cachehiërarchie in de 21264 gereorganiseerd:
- Level 1 (L1): Een instructiecache van 64 KB en een datacache van 64 KB; beide zijn two-way set-associative.
- Level 2 (L2): Bevindt zich buiten de chip; de 21264 heeft hier toegang toe via een 128-bit backside bus.
Ter vergelijking: de 21164 had veel kleinere L1-caches (elk 8 KB) en een geïntegreerde L2-cache van 96 KB. Omdat Digital de L2-cache naar buiten verplaatst, introduceren leveranciers als Intel en AMD juist hun eerste CPU's met geïntegreerde L2-caches. Digital ontdekte dat grote programma's vaak de kleine L1-caches van de 21164 misten, waardoor de oudere CPU vaker dan nodig toegang zocht tot de L2-cache (wat zes klokcycli kostte). De 21164 had daarom een externe L3-cache nodig voor hoge prestaties.
Met de 21264 keert Digital terug naar een meer conventionele aanpak. De grote L1-caches verhogen de hit rate. Toegang tot de caches kost twee klokcycli, wat bijna onvermijdelijk is gezien de grootte van de caches en de hoge snelheid van de processor. Wanneer de CPU de on-chip caches mist, heeft hij toegang tot de L2-cache via de 128-bit backside bus. Deze Alpha heeft geen L3-cache nodig.
De eerste 21264 L2-caches zullen gebruikmaken van 200 MHz late-write Static RAM (SRAM) chips en een piekbusbandbreedte van 3,2 GB per seconde (GBps) bieden. Dit is vergelijkbaar met de 3,6 GBps van de 450 MHz Slot-2 Pentium II (die een 64-bit backside bus heeft). Om Intel's vooruitgang in Xeon-systemen tegen te gaan, zal Digital overstappen op Dual Data Rate SRAM (DDR-SRAM) chips. DDR-SRAM chips draaien op 166 MHz maar transfereren data op beide flanken van een kloksignaal om een datarate van 333 MHz te bereiken voor 5,3 GBps piekbandbreedte. Uiteindelijk zal de cachebus van de 21264 draaien op 250 MHz (effectief 500 MHz met double clocking) voor 8 GBps piekbandbreedte. Bij die snelheden kan de L2-cache waarschijnlijk meekomen met de 1 GHz core.
Bussen en Branches
In plaats van een systeem I/O-bus heeft de 21264 een 64-bit point-to-point kanaal. Dit I/O-kanaal is sneller dan de cachebus en draait tot 333 MHz. Het verbindt direct met een Tsunami custom chipset. De Tsunami-chipset verbindt met één of twee 32-bit PCI-bussen (op 33 MHz) en met twee banken hoofdgeheugen via een paar 256-bit bussen (elk op 83 MHz). In een dual-processor systeem verbindt de Tsunami-chipset met de tweede CPU via een onafhankelijk 64-bit kanaal op 333 MHz. (Zie Figuur 3 voor de systeemarchitectuur.)
Dit busontwerp is identiek aan het ontwerp dat AMD heeft gelicentieerd voor zijn AMD-K7 processor. AMD ontwerpt een nieuwe CPU-interface genaamd Slot A, die dezelfde fysieke connectoren gebruikt als Intel's Slot 1 en Single Edge Contact (SEC) cartridge. In plaats van de propriëtaire P6-busprotocollen van Intel, leent Slot A de busprotocollen van de 21264. Toekomstige AMD-K7 en 21264 processors zullen in SEC-achtige cartridges komen die in Slot A passen; moederborden voor beide zullen alleen verschillen in hun BIOS.
Voor AMD betekent deze gelijkenis dat de businterface van de AMD-K7 sneller zal zijn dan die van Intel. Voor Digital betekent het dat toekomstige 21264-processors op goedkopere moederborden zullen passen, waardoor de prijzen voor Alpha-systemen zullen dalen. Er wordt verwacht dat Digital een 21264PC processor introduceert, vergelijkbaar met de budgetvriendelijke 21164PC. Een systeem met de 21264PC en een Slot A-moederbord zou mogelijk slechts $1500 kosten.
Om bottlenecks te voorkomen, heeft Digital de fetching- en branch-prediction mogelijkheden van de CPU upgraded. De L1-instructiecache heeft een set predictor die raadt welke van de twee registersets voor integer-units de CPU als volgende zal benaderen. Vervolgens raadt een next-line predictor welke cachelijn binnen die set wordt gebruikt (de cache bevat vier instructies per lijn).
De 21264 gebruikt drie branch prediction algoritmen:
- Local predictor: richt zich op lokale branches, zoals loops.
- Global predictor: houdt een globaal record bij van alle recente branches.
- Combinatorische predictor: beslist of de finale voorspelling gebaseerd moet worden op de lokale of globale predictor.
De predictors gebruiken vier geschiedenistabellen van vorige branches, die 3,6 KB aan chipgeheugen innemen. De CPU slaat voorspelde doeladressen op in de instructiecache (6 KB). Hoewel dit veel ruimte inneemt, claimt Digital dat het waardevol is: de 21264 maakt maar half zoveel fouten als de 21164, met een nauwkeurigheidspercentage van ongeveer 95 procent.
De prijs van complexiteit
De 21264 wedijvert met IBM's Power3 om de titel van meest complexe microprocessor ter wereld.
- Alpha 21264: 15,9 miljoen transistoren en een 6-way core.
- IBM Power3: 15 miljoen transistoren en een 8-way core.
De 21264 debuteert met een six-layer metal, 0,35-micron CMOS procestechnologie. De die-grootte is 300 vierkante millimeter en de chip verbruikt 60 watt. Eind dit jaar plannen Digital en Samsung de migratie naar een 0,25-micron proces om kloksnelheden tot 667 MHz en 733 MHz te halen en de die te verkleinen. In 2000 zal Samsung overstappen op een 0,18-micron proces (hetzelfde proces dat Intel gebruikt voor de Merced-chips). De 21264 zal waarschijnlijk de 1 GHz barrière doorbreken op een die van tussen de 125 en 150 vierkante millimeter.
Momenteel betaalt de 21264 voor zijn complexiteit in termen van die-grootte, productiekosten en stroomverbruik, maar niet in terms van kloksnelheid. Dankzij de volwassenheid van Alpha-compilers en het grote aantal native Alpha-applicaties zal de 21264 de Merced waarschijnlijk ver achter zich laten. De vraag is of de Alpha kan overleven tegenover de opmars van IA-64. Compaq-engineers werken al aan volgende generaties: de 21364 (gepland voor 2000) en de 21464 (voor 2001). Als Compaq dit tempo vasthoudt, zou Alpha het NT-platform kunnen worden dat Intel echt uitdaagt.
***
Contactgegevens Digital: Maynard, MA 510-490-4753 http://www.digital.com/semiconductor/alpha/alpha.htm
Bijschriften bij figuren (referenties):
- Figuur 1: Digital voorspelt dat de Alpha 21264 in 2000 de 1 GHz (1000 MHz) zal bereiken.
- Figuur 2: De Alpha 21264 voert tot zes instructies per klokcyclus uit.
- Figuur 3: De Tsunami-chipset is het sleutelcomponent in systemen gebaseerd op de 21264.
***
Brieven / Augustus 1999
"Nu hebben jullie het gedaan! Ik ben al drie jaar geabonneerd op het magazine, maar nu ben ik echt verslaafd. De artikelen en columns van Bob Chronister, Mark Russinovich en Bob Wells zijn altijd bevredigend, maar 'The Alpha 21264' (december 1998) van Tom R. Halfhill heeft me gegrepen.
Het artikel had een duidelijke boodschap: de Alpha is misschien wel de enige RISC-chip die op lange termijn succesvol zal zijn. De strijd tussen RISC- en CISC-architectuur is een belangrijk thema voor de toekomst van computing, en de Alpha 21264 biedt vandaag al 64-bit verwerking in een betaalbaar pakket. Ik hoop meer te horen van Tom Halfhill."
— George Rogers Clark, 6 augustus 1999