Groesste Huerde ist die Objektcodekompatibilitaet (Teil 2 und Schluss) Die HP-Intel-Allianz: Chips fuer das naechste Jahrtausend

28.07.1995

Arndt Bode*

Im zweiten Teil seiner Betrachtung der Hewlett-Packard/Intel- Allianz diskutiert Arndt Bode*, welchen architektonischen Limitierungen heutige Prozessoren unterliegen und wo die Schwierigkeiten und Chancen fuer das HP-Intel-Gespann liegen.

Tatsaechlich sind die steuernden Komponenten moderner superskalarer Mikroprozessoren ausserordentlich komplex, obwohl die RISC- Architekturen ja einfach sein sollen. Der Wunsch nach Befehlsparallelisierung zur Laufzeit und die Eigenschaften sequentieller Maschinenbefehle machen jedoch fuer die heutigen Architekturen eine Vielzahl von Komponenten notwendig, die der normale Programmierer allenfalls im Zeitverhalten seines Programms bemerkt.

So existiert neben dem Befehlscache im allgemeinen ein Befehlspuffer, dessen Fuellungsgrad durch eine spezielle Befehlsholeinheit gesteuert wird. Eine Freigabe- und Verteilungseinheit entnimmt Befehle aus dem Befehlspuffer, fuehrt aus Gruenden des Pipelinings eine zumindest teilweise Decodierung durch und legt diese in einem weiteren Puffer, dem Decodierungs- und Startpuffer, ab.

Die Freigabe- und Verteilungseinheit steuert dann die Uebergabe der vordecodierten Befehle aus dem Decodierungs- und Start- in die Reservierungspuffer, die unmittelbar den superskalaren Rechenwerken vorgeordnet sind. Eine Befehlsbeendigungseinheit ueberwacht die eigentliche Ausfuehrung der einzelnen Maschinenbefehle auf den Rechenwerken und die zeitlich korrekte Rueckfuehrung der Ergebnisse ueber den Reihenfolgenpuffer. Alle diese Steuereinheiten muessen darueber hinaus mit der globalen Befehlssteuerung kooperieren, die insbesondere die Sprung- und Aufrufsverarbeitung gesondert zu behandeln hat. Fuer die spekulative Ausfuehrung von Befehlen im Fall von Verzweigungen fungieren neben den Registern weitere Schattenregister, aus denen die errechneten Werte erst dann uebernommen werden koennen, wenn der Kontrollfluss festliegt.

Auch die Kooperation mit dem Datencache und die Parallelisierung von Schreib- und Leseoperationen erfordert spezielle Auftragspuffer und die Ueberwachung durch eine Abwicklungseinheit, die insbesondere in Spezialfaellen eine streng synchrone Arbeit ermoeglichen muss. Schliesslich verlangen die tiefen Pipelines in der Ausfuehrung nach sehr komplexen Datenpfaden mit teilweise ueber 30 "Abkuerzungen", damit die Datenabhaengigkeiten des Programms sich nicht zu sehr zu Lasten der Leistung auswirken.

Daraus ergibt sich: Die dynamische Parallelisierung von Maschinenbefehlen hat zu einer erheblichen Komplexitaet in den Mikroprozessoren gefuehrt, die den Prinzipien der Einfachheit und Angemessenheit widerspricht. Das macht sich fuer den Entwickler spaetestens beim Debugging von optimiertem Code bemerkbar. Diese Tatsache legt den zukuenftig verstaerkten Einsatz von VLIW-Techniken anstatt oder in Ergaenzung zu den Superskalartechniken nahe. Denn potentiell sind so wesentlich hoehere Parallelitaetsgrade erzielbar als bisher.

Ein weiteres Problem ergibt sich durch die Eigenschaften der klassischen Maschinenbefehlssaetze von Mikroprozessoren. Sie enthalten im allgemeinen keine Befehle fuer die bedingte Ausfuehrung ("predicated execution"). Dabei koennen einzelne Befehle wahlweise uebersprungen oder auf Basis von Bedingungen ausgefuehrt werden, die in der vorangegangenen Befehlsstruktur errechnet wurden - und dies ohne explizite Verzweigungsbefehle. Damit ermoeglichen sie die Reduktion der ansonsten notwendigen Verzweigungsbefehle, die die Parallelisierung bei superskalaren beziehungsweise VLIW- Implementationen erschweren - ein weiterer Grund fuer das Abgehen von den klassischen Befehlssaetzen.

Worin liegen nun fuer Intel und HP zusaetzliche Vorteile fuer eine Allianz? Intel bringt aus seiner PC-Vergangenheit viele Kunden in die Ehe ein. HP mit seiner Workstation-Ausrichtung hat in der Vergangenheit diesbezueglich wesentlich weniger zu bieten, steuert aber seine Compiler-Gruppe um Josef Fisher bei. Der gilt als einer der Urvaeter der VLIW-Architekturen, die vor nahezu 20 Jahren bei der Arbeit an der Optimierung horizontaler Mikroprogramme geboren wurde.

Natuerlich muessen HP und Intel noch grosse Probleme ueberwinden. Am schwierigsten herzustellen ist die von Intel und HP angekuendigte volle Objektcodekompatibilitaet zur x86- beziehungsweise PA- Befehls-Schnittstelle.

Der neue "native" Befehlssatz des gemeinsam entwickelten Mikroprozessors wird nicht mit den alten Befehlen kompatibel sein. Also muss er emuliert (nachgebildet) werden. Dies ist prinzipiell in Hard- oder in Software moeglich. Eine reine Softwaresimulation duerfte aber wegen der zu erwartenden geringen Leistungsfaehigkeit ausscheiden, wie man bei anderen Herstellern sieht (vergleiche etwa DEC).

Eine volle Hardware-Emulation benoetigt zuviel Transistoren und kostet damit Leistung. Intel und HP koennten aber die beiden strategischen Maschinenbefehle in den Befehlssatz aufnehmen, die die softwaremaessige Emulation der beiden Befehlssaetze unterstuetzt.

Ein zweites Problem stellt die mangelnde "Familienfreundlichkeit" von VLIW-Architekturen dar. Mit der Weiterentwicklung der Halbleitertechnologie werden Hersteller in Zukunft sicher innerhalb einer Mikroprozessorfamilie CPUs mit einer unterschiedlichen Anzahl paralleler Rechenwerke anbieten wollen. Der von einem Compiler mit Optimierer generierte VLIW-Code fuer acht Rechenwerke ist aber natuerlich nicht kompatibel zum gleichen Prozessortyp mit zehn Rechenwerken. Hier muessen zusaetzliche dynamische Elemente angeboten werden. Das ist prinzipiell machbar, aber bisher kommerziell noch nicht realisiert.

Pragmatisch kann man einerseits davon ausgehen, dass die HP-Intel- Architektur wesentliche Fortschritte bringt, geht es um die Parallelisierung bei der Ausfuehrung einzelner Maschinenbefehle eines Befehlsstroms durch statische Verfahren nach dem VLIW- Prinzip. Andererseits muessen aber wegen der geforderten Kompatibilitaet auch Komponenten der dynamischen Parallelisierung integriert werden.

Die enorm hohe Komplexitaet der Leitwerke heutiger RISC-Prozessoren nach dem superskalaren Prinzip wird aber verschwinden, um Transistorfunktionen fuer zusaetzliche Speicherfunktionen zu gewinnen. Logische Folge wird eine Verlagerung der Parallelisierungsaufgabe aus der steuernden Hardware des Mikroprozessors in den Compiler beziehungsweise den Optimierer sein.

*Arndt Bode ist Professor am Institut fuer Informatik, Lehrstuhl fuer Rechnertechnik und Rechnerorganisation, an der Technischen Universitaet Muenchen.