Information Technology Reference
In-Depth Information
Im Prinzip kann das dargestellte Verfahren auch mit zwei Registerbänken realisiert werden. Die
dritte Registerbank wird jedoch benötigt, um die von der Prozessorarchitektur Nemesis X vorgese-
henen Schattenregisterinhalte r0' bis r15' zu speichern. So befindet sich z.B. r4' in Bild 4.16 aktuell
in Bank 0. Ob sich ein Lesezugriff in diesem Fall tatsächlich auf Bank 0 oder auf eine andere Regis-
terbank bezieht, ist zusätzlich noch davon abhängig, ob der Inhalt des Schattenregisters definiert
oder nicht definiert ist, also ob seit der letzten Sprungoperation ein Schreibzugriff darauf durchge-
führt wurde oder nicht. Der Inhalt von r4' wird bei einem Lesezugriff nämlich ausschließlich ver-
wendet, wenn er definiert ist. Ansonsten bezieht sich ein Lesezugriffe grundsätzlich auf das korres-
pondierende Arbeitsregister r4 in Bank 1 bzw. Bank 2 (vgl. Abschnitt 4.2.3).
Abschließend bleibt die Arbeitsweise der set-Operation zu klären. Soll der Inhalt eines Schattenre-
gisters in das assoziierte Arbeitsregister kopieren werden, reicht es aus, die Nummer der das Schat-
tenregister haltenden Registerbank nach CBS zu kopieren. Um z.B. r4' nach r4 zu übertragen, muss
das mit a markierte Feld nur gleich 0 gesetzt werden, da r4' bis zu diesem Zeitpunkt in Bank 0
gespeichert war.
4.2.8 Prozessorabstraktionsschicht (PAL)
Mit dem im vorangehenden Abschnitt beschriebenen Verfahren ist es möglich, für
ein skalares Programmiermodell codierte virtuelle Programme operationsparallel
auszuführen. Im Vergleich zu den superskalaren, ebenfalls operationsparallel arbei-
tenden Prozessoren sind vor allem die geringeren Implementierungskosten als Vor-
teil zu nennen. Es gibt jedoch noch einen weiteren Grund dafür, weshalb von den
realen Gegebenheiten innerhalb eines Prozessors abstrahiert werden sollte, nämlich
die Hardware von den darauf laufenden Programmen, speziell dem Betriebssystem ,
zu entkoppeln.
Dies ermöglicht es, einen realen Prozessor über mehrere Generationen hinweg wei-
terzuentwickeln, ohne dass die notwendigen Modifikationen des Programmiermo-
dells auf die auszuführenden Programme wirken und dort ebenfalls Änderungen
erforderlich machen. Da sich die Programmiermodelle unterschiedlicher Generatio-
nen eines Prozessors in vielen Details einander entsprechen, muss zur Entkopplung
von Hardware und Software jedoch nicht von der gesamten Prozessorarchitektur
abstrahiert werden, sondern nur von einigen wenigen Merkmalen, die meist den Sta-
tus eines Prozessors betreffen und meist in einem privilegierten Modus ablaufen.
Genau hier liegt die Aufgabe der sog. Prozessorabstraktionsschicht (processor abs-
traction layer, PAL). Anstatt auf Ressourcen direkt zuzugreifen, die sich von Prozes-
sorgeneration zu Prozessorgeneration ändern können, sind sog. PAL-Funktionen zu
verwenden, um mit deren Hilfe die gewünschte Wirkung programmiert zu erzielen.
Ändert sich die Hardware, muss nur die Prozessorabstraktionsschicht modifiziert
werden. Die Schnittstelle zu den darauf aufbauenden Programmen, insbesondere
dem Betriebssystem, bleibt jedoch unverändert erhalten. Natürlich lassen sich
Merkmale eines in seinen Funktionen erweiterten Nachfolgeprozessors, die bei
Festlegung der ursprünglichen Schnittstelle zur Prozessorabstraktionsschicht nicht
berücksichtigt wurden, auch nicht verwenden. Trotzdem sind die für eine Prozes-
sorarchitektur übersetzten Programme weiterhin unverändert lauffähig.
Die Aufgaben einer Prozessorabstraktionsschicht variieren in den Umsetzungen
unterschiedlicher Anbieter. Zum Alpha von Compaq werden z.B. die Initialisierung
 
Search WWH ::




Custom Search