Information Technology Reference
In-Depth Information
Prädikation. Die soeben beschriebene Technik findet auch Verwendung, um eine
bedingte Befehlsausführung zu erreichen. Statt in jedem Befehl eine Bedingung zu
codieren, wie z.B. bei Prozessoren mit ARM-Architektur üblich, werden hier ein
bedingter Sprungbefehl und der nachfolgende Befehl bzw. die beiden nachfolgen-
den Befehle als Einheit decodiert. Verzweigt der Sprungbefehl, d.h. ist die Bedin-
gung erfüllt, wird nicht der Befehlsstrom neu aufgesetzt, sondern es werden bei nor-
malerweise in Fließbandtechnik arbeitenden Prozessoren die auf den Sprungbefehl
folgenden ein oder zwei Befehle inklusive der zugehörigen Präfixbefehle annulliert
(in der Version 1.0 des Programmiermodells wurde nur ein Befehl berücksichtigt).
Um die Implementierung dieses Merkmals zu vereinfachen, codiert man im Sprung-
befehl nicht die tatsächliche Sprungdistanz, sondern eine 0, wenn der nachfolgende
Befehl übersprungen werden soll oder eine 1, wenn die beiden nachfolgenden
Befehle übersprungen werden sollen. Als Nachteil ist in Kauf zu nehmen, dass die
entsprechenden Sprungdistanzen ohne Präfix vor dem Sprungbefehl sich nicht
codieren lässt. Dies ist aber tolerierbar, da ein Sprungbefehl mit Sprungdistanz 0
einer Endlosschleife und ein Sprungbefehl mit Sprungdistanz 1 einem nop ent-
spricht, was selten benötigt wird bzw. auf andere Weise codiertbar ist.
Spekulation. Einige Merkmale der Prozessorarchitektur Nemesis wurden aus-
schließlich vorgesehen, um in zukünftigen Implementierungen Sprünge- oder Daten
vorherzusagen. Der Befehl loop vereinfacht z.B. die Vorhersage des Endes einer
Schleife. Geeignet implementiert ist es möglich, den Befehl in Null Takten zu bear-
beiten. Weiter ermöglicht der Befehl ldp das vorausschauende Laden von Daten,
z.B. beim Durchlaufen einer verketteten Liste (siehe Abschnitt 2.2.6).
Nemesis S
Die Nemesis-Architektur, und zwar in der Version 1.1, ist die Basis mehrerer an der
TU Berlin laufender bzw. abgeschlossener Projekte. Nemesis S ist eine aufwandsop-
timierte Prozessorarchitektur. Die Befehle werden hier inklusive der Präfixbefehle
streng zeitsequentiell bearbeitet, wobei Präfixbefehle typischerweise einen Takt, alle
anderen Befehle zwei Takte zu ihrer Ausführung benötigen. Letzteres ist vor allem
deshalb notwendig, weil der Registerspeicher aufgrund technologischer Begrenzun-
gen mit nur zwei Ports realisiert ist und die Bearbeitung eines 3-Adressbefehls zwei
sequentielle Zugriffe auf den Registerspeicher erfordert.
Komplexe Befehle, wie z.B. die Multiplikation werden durch eine Ausnahmebe-
handlung emuliert. Dies gilt insbesondere auch für Lade- und Speicherebefehle,
wenn eine der komplexeren Adressierungsarten benutzt wird. Eine schnelle Emula-
tion erreicht man dabei, indem bei Erkennen eines zu emulierenden Befehls nicht
das mit der Nemesis-Architektur definierte Ausnahmemodell verwendet wird, son-
dern eines, das einen Kontextwechsel in nur einem Takt ermöglicht. Außerdem ste-
hen Spezialregister zur Verfügung, die z.B. einen Zugriff auf die zu verknüpfenden
Operanden ermöglichen.
Search WWH ::




Custom Search