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