DECs Alpha 21064
DEC entwickelte die Alpha-Architektur ohne großen historischen
Ballast. Abwärtskompatibilität war nur bedingt (VMS/VAX) gefragt.
So konnte DEC das neue CPU-Konzept kompromißlos auf Höchstleistung
trimmen. Die Alpha-Spezifikation geht von einem konsequenten
64-Bit-Design aus. Eine kompatible 32-Bit-Architektur ist nicht
vorgesehen. Dies spiegelt sich auch beim ersten Chip der
Alpha-Familie dem 21064, wider. Alle internen Datenstrukturen sind
64bittig, und der Befehlssatz enthält keine Load- und Store-Befehle
für Byte- und Word-Strukturen. Der externe Datenbus ist 64 Bit breit,
kann optional daher auch 128bittig ausgeführt werden; der Adreßbus
ist derzeit mit 34 Bit auch breiter als bei den meisten anderen
Mikroprozessoren. Dieses geradlinige Design erlaubt es, den Prozessor
mit sehr hohen Taktraten (150 bis 200MHz) zu betreiben. Solche
Frequenzen erforderten allerdings eine 0,5 um-Technologie mit vier
Metal-Layern. Trotz der geringen Versorgungsspannung von 3,3 Volt
verbrät der 21064 bel 200MHz noch eine Verlustleistung von 30 Watt,
die uber einen speziellen Kühlkörper abgeführt werden muß.
Cache
Ein 8-KByte-Daten- und ein gleich großer Befehls-
Cache sollen
gewährleisten, daß externe Komponenten den 21064 nicht ausbremsen.
Beide Zwischenspeicher arbeiten nach dem Write-Through-Prinzip und
sind direct mapped organisiert.
Jeder Cache besitzt einen voll
assoziativen
TLB (Transaction Lookaside Buffer), der die
Adreßtransformation ubernimmt. Der
TLB des Daten-Cache hat 16 Einträge,
die Speicherseiten von 8 KByte, 64 KByte, 256 KByte oder 4 MByte Größe
verwalten können. Der lnstruction-TLB kann dagegen nur acht
Speicherseiten zu 8 KByte und vier zu 4MByte adressieren. Ein 4x32 Byte
tiefer Write-Buffer verhindert, daß die CPU bei Schreibzugriffen auf
den langsamen Hauptspeicher warten muß.
Der 21064 unterstützt externe Caches von 128 KByte bis 8 MByte,
bestehend aus Standard-S RAMs. Er enthält die Steuerlogik. um
den zeitkritischen Hit-Fall beim 2nd-Level-Cache zu handhaben.
Eine externe State-Machine ist erforderlich, um die Cache-Strategie
bei Cache-Miss (Write-Through oder Write-Back) zu implementieren.
Sie ist auch fur die Datenkohärenz zwischen internem
und externem Cache verantwortlich. Eine Hardware-Unterstüttzung für
ein Datenkohärenzprotokoll (zum Beispiel MESI
) bietet der Alpha nicht.
Zugriffe auf den externen Cache erfordem mindestens drei Takte, was
bei 200 MHz einer Transferrate von gut 1 GByte/s entspricht.
Allerdings müßte der externe Cache dazu aus extrem teueren ECL-RAMs
mit maximal 8 ns Zugriffszeit bestehen. High-End-Designs mit dem
21064 dürften deshalb eher mit vier Takten arbeiten (800 MByte/s),
was mit 10-ns-SRAMs gerade noch machbar wäre.
Um die Fehlersuche zu erleichtern, kann der 21064 den internen
Cache (über einen seriellen Port zum Boot-Zeitpunkt aus einem
externen EEPROM laden. Dies erlaubt die Ausfuhrung von Testroutinen,
selbst wenn 2nd-Level-Cache und Hauptspeicher nicht korrekt arbeiten.
Parallelverarbeitung
Den Befehlsdurchsatz erhöht die
superskalare Organisation des
Alpha. Die sogenannte IBOX übernimmt das Laden der Befehle
und verteilt diese auf vier unabhängige Funktionsblöcke. Dies
sind die EBOX (Integer-Unit), die FBOX (Floatingpoint-Unit),
die ABOX (Address translation and Load/Store-Unit) und die
dem Instruction-Cache angegliederte Branch-History-Table. Der
Alpha kann nur dann zwei Befehle parallel ausführen, wenn diese
sich in verschiedenen Boxen befinden; das gilt etwa bei Integer-
Befehlen nicht - Intels Pentium schafft davon zwei in einem Takt.
Bei bedingten Verzweigungen sorgt eine
Branch Prediction Unit
für die beschleunigte Bereitstellung möglicher Verzweigungsziele.
Um die Ausführungszeit von Instruktionen zu verkürzen, ist der
21064 'fully pipelined'.
Im Gegensatz zu anderen Prozessoren
lädt er nicht nur mit jedem Takt einen neuen Befehl in die
Pipeline,
einzelne Befehle können auch die letzten Stufen überspringen;
sie durchlaufen dann die siehenstufige Integer-Pipe (Instruc-
tion Fetch, Swap Predict, Register Read, ALU I und 2. Register
Write) in nur fünf oder sechs Takten. Anders in der Floatingpoint-
Unit: dort muß jeder Befehl alle zehn Stufen der
Pipeline absolvieren.
Ladbarer Mikrocode
Eine Besonderheit des Alpha ist der ladbare Mikrocode, den DEC
PAL-Code nennt (Privileged Architecture Library) Der Prozessor
läßt sich so an verschiedene Betriebssysteme und Hardware-Umgebungen
anpassen. Der PAL-Code benutzt den gleichen Adreßraum und die
gleichen Maschinenbefehle wie die anderen Anweisungen des Prozessors.
Mikrosequenzer und Übersetzungslogik sind nicht erforderlich.
Wie alle RlSC-Prozessoren besitzt der Alpha einen umfangreichen
Registersatz. Für lnteger-Operationen stehen 32 gleichwertige
Rechenregister mit einer Breite von 64 Bit zur Verfügung
(Integer Register File Set, lRF). Gleiches gilt auch fur die
Floating-point-Unit.
krupp@unix-ag.uni-kl.de