Information Technology Reference
In-Depth Information
4
Prozessorbau im Hardware-Software-Codesign
In den vorangegangenen Kapiteln wurden Prozessoren beschrieben, die vollständig
in Hardware realisiert sind. Zwar zeichnen sie sich durch eine hohe Arbeitsge-
schwindigkeit aus, verursachen jedoch auch hohe Kosten. Hinzu kommt, dass sie
eine geringe Flexibilität besitzen, weshalb es z.B. nicht möglich ist, die Struktur
eines bereits gefertigten Prozessors zu verändern, um Fehler zu beheben oder Leis-
tungsmerkmale hinzuzufügen. Auch erschwert die starre Bindung des Programmier-
modells an die jeweilige Hardware die Implementierung kompatibler Nachfolgepro-
zessoren. So sind in kompatiblen Prozessoren oft mehrere Programmiermodelle ver-
wirklicht, nämlich zumindest Eins, um die Kompatibilität zu den Vorgängern zu
gewährleisten und Eins, um die Erweiterungen der neuen Prozessorarchitektur
zugänglich zu machen. Der Pentium 4 ist ein gutes Beispiel hierfür. Das darin imp-
lementierte Programmiermodell IA-32 vereint die Merkmale aller Vorgänger bis hin
zu dem bereits im Jahre 1978 erschienenen 16-Bit-Prozessor 8086 bzw. dem 16-/8-
Bit-Gegenstück 8088 [80].
Die genannten Nachteile sind vermeidbar, wenn Anwendungen und Hardware durch
eine in Software implementierte Abstraktionsschicht, im folgenden als Laufzeitum-
gebung bezeichnet, getrennt werden. Auf diese Weise sind Modifikationen des nun
als virtuell zu bezeichnenden Programmiermodells (es ist ja zum Teil programmiert
realisiert) sogar dann noch durchführbar, wenn der Prozessor bereits in einem Rech-
ner eingebaut ist. Zwar lassen sich Fehler der Hardware weiterhin nicht beheben,
innerhalb gewisser Grenzen sind sie jedoch umgehbar ( work around ). Ein weiterer
Vorteil der hier angedeuteten Technik ist, dass das virtuelle Programmiermodell
jederzeit erweitert werden kann. So lässt sich Kompatibilität z.B. erreichen, indem
man die Laufzeitumgebung entsprechend der jeweiligen Anforderungen anpasst. Im
Extremfall ist es sogar möglich, Programmiermodelle verschiedener realer Prozes-
sorarchitekturen nachzubilden, und zwar allein durch Bereitstellung unterschiedli-
cher Laufzeitumgebungen.
Selbstverständlich erfordert es Zeit, die Laufzeitumgebung auszuführen, weshalb
ein in dieser Weise realisiertes Programmiermodell i.Allg. eine geringere Verarbei-
tungsgeschwindigkeit besitzt als ein vollständig in Hardware realisiertes Program-
miermodell. Diese „Reibungsverluste“ sind jedoch aus zwei Gründen weit geringer,
als zunächst zu vermuten ist. (1.) wird durch die Laufzeitumgebung ein Teil der nor-
malerweise in Hardware implementierten Merkmale nun in Software verwirklicht,
wodurch sich der reale Prozessor vereinfachen und die Taktfrequenz erhöhen lässt.
(2.) wird der reale Prozessor oft um Merkmale erweitert, die ein schnelles Ausfüh-
ren der Laufzeitumgebung ermöglichen. Wegen der aufeinander abgestimmten Ent-
 
Search WWH ::




Custom Search