Information Technology Reference
In-Depth Information
dann, wenn dies bei einer gegebenen Aufgabenstellung nicht sinnvoll ist. Gegebe-
nenfalls müssen in den Befehlen nops codiert werden, die jedoch Platz im Befehls-
speicher bzw. -cache belegen. Daher realisiert man in nahezu allen modernen
VLIW-Prozessoren Prinzipien, die eine komprimierte Speicherung von Befehlen
erlauben. Dies wird im nächsten Abschnitt genauer erläutert.
Bemerkung. An die Registerspeicher von Prozessoren, die mehrere Operationen parallel bearbei-
ten können, werden hohe Anforderungen gestellt. Zum Beispiel muss mit der Anzahl der parallel
verarbeitbaren Operationen einerseits die Anzahl der Register vergrößert werden, damit die einzel-
nen gleichzeitig auszuführenden Operationen auf unterschiedlichen Registern arbeiten können und
andererseits muss die Anzahl der Registerports erhöht werden, um Parallelverarbeitung überhaupt
erst zu ermöglichen. Zusammengenommen steigt also mit dem Parallelitätsgrad der Realisierungs-
aufwand, was wiederum bewirkt, dass die Zugriffsgeschwindigkeit auf den Registerspeicher sinkt
und sich dadurch möglicherweise der kritische Pfad durch den Prozessor verlängert.
In realen VLIW-Prozessoren wird der Registerspeicher deshalb oft in Bänken realisiert, auf die par-
allele Zugriffe möglich sind. Zum Beispiel kann der TMS320C62x bis zu acht Operationen gleich-
zeitig ausführen und benötigt daher wenigstens 24 Ports, um auf Operanden- und Ergebnisregister
zuzugreifen (nicht mitgerechnet sind die für Speicherzugriffe oft zusätzlich vorhandenen Ports).
Tatsächlich unterteilt sich der Prozessor jedoch in zwei sog. Datenpfade, die jeweils vier Operatio-
nen parallel bearbeiten können und getrennte 16-Port-Registerspeicher ansprechen. Zur Kommuni-
kation zwischen den Datenpfaden, ist es außerdem möglich, pro Takt einen Operanden aus dem
jeweils gegenüberliegenden Registerspeicher zu lesen. Wie für VLIW-Prozessoren typisch,
geschieht dies natürlich explizit und ist somit für den Benutzer sichtbar [185].
Nachteilig an einer solchen Aufteilung des Reisterspeichers ist, dass sie bei der Programmierung
explizit berücksichtigt werden muss, was vor allem den Aufwand bei Realisierung eines Hochspra-
chenübersetzers vergrößert. Außerdem ist die Kommunikation zwischen den Datenpfaden ein
potentieller Engpass, da sich im Prinzip alle benötigten Operanden im jeweils gegenüberliegenden
Registerspeicher befinden können. Aus diesem Grund werden Registeraufteilungen, wie im
TMS320C62x, möglichst vermieden, und zwar entweder, indem man das Maß an Parallelität, mit
dem der Prozessor arbeitet, vermindert, oder indem die Unterteilung in mehrere Registerspeicher
für den Benutzer unsichtbar geschieht, wie z.B. beim Nemesis X der TU Berlin [108] bzw. beim
nicht nach dem VLIW-Prinzip arbeitenden Alpha 21264 von Compaq [27].
Der Nemesis X führt pro Takt maximal drei Operationen aus und greift dabei auf einen Register-
speicher mit vier Lese- und drei Schreibports zu. Für eine Realisierung sind in dem verwendeten
FPGA (field programmable gate array) hingegen nur Registerspeicher mit maximal zwei Ports ver-
fügbar, deren Zugriffszeit jedoch ausreichend kurz ist, um innerhalb eines Fließbandtakts zwei
Zugriffe zeitsequentiell bearbeiten zu können. Auf diese Weise ist es möglich, einen 4-Port-Regis-
terspeicher aufzubauen. Der 7-Port-Registerspeicher (tatsächlich sind es acht Ports, von denen einer
jedoch unbenutzt bleibt) lässt sich schließlich davon ableiten, indem man drei identische 4-Port-
Registerspeicher so miteinander verschaltet, dass Schreibzugriffe auf den Registerspeichern gleich-
zeitig durchgeführt und die Inhalte der Registerbänke auf diese Weise jeweils synchron zueinander
gehalten werden. Die Struktur ist in Bild 3.14a dargestellt.
Der Alpha 21264 ist ähnlich aufgebaut, wobei hier zwei Registerspeicher gespiegelt verwendet
werden, die sechs Schreibports und vier Leseports besitzen (Bild 3.14b). Jeweils zwei Schreibports
sind für die Bearbeitung ausstehender Ladebefehle vorgesehen (a). Ihre genaue Verschaltung wird
im Handbuch nicht erläutert, ebenso wenig wie die zur Synchronisation der beiden Registerspeicher
abzuwartende Latenzzeit von einem Takt. Die Bedeutung der durch b und c markierten Register ist
dem Autor daher nicht bekannt. Eine mögliche Erklärung könnte sein, dass ohne diese Register die
Last an den die Schreibports treibenden Verarbeitungseinheiten verdoppelt werden würde. Da
außerdem die Registerbänke mit einer räumlichen Distanz aufgebaut sein müssen, könnte dies
zusammengenommen den kritischen Pfad verlängern.
 
Search WWH ::




Custom Search