DEC Alpha
von Manuel de Melo & Stefan Semmelroggen
Der 21164 besitzt eine 64-Bit Lade/Speicher RISC-Architektur mit Mehrprozessorunterstützung.
Er ist 4-fach superscalar, d. h. es können pro Takt 4 Befehle gleichzeitig geladen werden. Ein Befehl ist 32 Bit breit.
Der Prozessor besteht aus folgenden funktionalen Einheiten:
instruction fetch / decode / branch unit
Hier werden die Befehle geladen, decodiert und verteilt an die integer execution-, floating point- und memory
translation unit.
Sie enthält auch einen instruction translation buffer, welcher vollassoziativ ist und 48 Einträge faßt. Er enthält
Verknüpfungen virtueller -> physikalischer Speicher zur schnelleren Zuordnung.
Die Sprungvorhersage verwendet folgende Methoden:
Integer execution unit
Sie enthält zwei 7-stufige pipelines mit zwei Addierern, einem Multiplizierer und einem Registersatz.
Sie führt auch die Adressberechnungen für den Speicherzugriff durch.
Floating point unit
Sie enthält einen Registersatz, eine add- und eine multiply-pipeline. Die pipelines sind jeweils 9-stufig.
Divisionen werden mit Hilfe der add-pipeline durchgeführt, sind aber nicht pipelined.
Mit Ausnahme der Division können 2 Befehle pro Taktzyklus gleichzeitig ausgeführt werden.
Die Verzögerung für add / multiply beträgt vier Taktzyklen.
Es werden folgende Fließkommaformate unterstützt:
IEEE: single, double (32/64 Bit) mit allen Rundungsmodi
Memory address translation unit
Sie erhält bis zu zwei virtuelle Adressen (43 Bit) von der integer execution unit.
Mit Hilfe des vollassoziativen, 64 Einträge fassenden data translation buffers wird die physikalische
Adresse (40 Bit) ermittelt.
Zudem gibt es ein miss address file, mit welchem data cache misses, die den gleichen Block im data
cache betreffen zusammengeführt. Damit ist es möglich, mehrere misses mit einem "load block" zu bedienen.
Caches
1st level
Befehlscache: 8k - direct mapped mit 32 byte Blöcken
Datencache: 8k - dual read ported, single write ported und direct mapped mit write-through Strategie
und 32 byte Blöcken.
2nd level
On chip, 96k, 3-Wege mengenassoziativ mit write-back - write-allocate Strategien und möglichen
Blockgrößen von 32 oder 64 byte.
3rd level
Optional, extern, direct-mapped, write-back, write-allocate, 32 oder 64 byte Blöcke.
DieGröße kann 1, 2, 4, 8, 16, 32 oder 64 MB betragen.
Privileged architecture library code
PALcode ist eine Art Macrosprache, mit der der Prozessor in seinem Verhalten an das
jeweilige Betriebssystem angepaßt werden kann.
So kann zum Beispiel das Verhalten der Caches und Interrupts manipuliert werden.
Blockdiagramm
Leistungsaufnahme
Der 366MHz Alpha 21164 hat eine Leistungsaufnahme von 28W bei 3,3V.
Für jede Taktratenerhöhung um 66MHz steigt die Leistungsaufnahme um ca. 5W.
Weitere Informationen