Die ReAl Computerarchitektur

 

 

 

Entwicklungsgeschichte

 

 

 

 

 

 

 

 

 

  

 1982 ... 1986

Entwurf von Spezialprozessoren. Schaltungen ausdenken, die irgendwelche vorgegebene Algorithmen ausführen -- das ist eigentlich nichts Besonderes. Was aber kennzeichnet eine wirklich überlegene -- optimale -- Spezialmaschine? Der Grundgedanke: Am besten wäre es, alles auf einen Schlag zu erledigen (also durch unmittelbare Zuordnung). So dicke Funktionszuordner kann man aber nicht bauen. Es muß also in mehreren Schritten getan werden. Natürlich sollten es so wenige wie möglich sein. Maschinenbefehle, abzuspeichernde und wieder zu holende Zwischenergebnisse usw. stören eigentlich nur. Wichtig sind allein die Daten des Anwendungsproblems. Am besten wäre es doch, wenn alle Bits der Anwendungsaufgabe (Operanden und Ergebnisse) nur jeweils einmal durch die Maschine laufen müßten. Dann würde jeder Maschinenzyklus gemäß der jeweiligen Verarbeitungsbreite zum Ergebnis beitragen. ABER: gelingt das überhaupt? -- Es ist offensichtlich nicht in erster Line eine Eigenschaft der Hardware. Denn diese kann man ja -- als Spezialmaschine -- so auslegen, wie es jeweils zweckmäßig ist. Es ist vielmehr vor allem eine Eigenschaft des Algorithmus: erfordert er es, auf Bits, die bereits verarbeitet worden sind, nochmals zuzugreifen oder nicht? Diese Eigenschaft wird in einer Kennzahl ausgedrückt: in der Implementierungseffizienz.

Auszug aus der Dissertationsschrift Spezielle Hardware zur Verarbeitung von Ternärvektorlisten (1987).

Die vollständige Dissertationsschrift.

System .008. Vorläufige Architekturbeschreibung.

  

1988 bis 1990

Jetzt geht es um die Universalmaschine. Aber möglichst nicht so eine Art ewiger Wiederkunft des Gleichen (CISC, RISC usw.). Also vollkommen von Frischem anfangen. Wie sollte ein wirklich optimaler Einzelprozessor aussehen? -- Er sollte nicht um jedem Preis mit irgend etwas Vorhandenem bis aufs letzte Bit kompatibel sein -- und schon gar nicht irgendwelchen Schlagworten entsprechen. Vielmehr sollte er -- im Sinne eines Erwartungswertes -- für jeden beliebige Algorithmus dem Leistungsvermögen einer genau für den jeweiligen Algorithmus entworfenen Spezialmaschine so nahe wie möglich kommen. Die gefundenen Ansätze im Überblick:

  • Leistungsmessung anhand der verarbeiteten Anwendungsdaten (Nutzbits) je Zeiteinheit.
  • Auswahl der schaltunsgtechnisch zu implementierenden Grundfunktionen ("Maschinenbefehle") gemäß ihrer Implementierungseffizienz.
  • Der Wirkungsgrad als Verhältnis der Verarbeitungsleistung der Universalmaschine zur Leistung einer für den jeweiligen Algorithmus entworfenen Einzweckmaschine.
  • Die jeweils vorhandenen Ressourcen bestimmen das Leistungsvermögen. Es gehört zu den wichtigsten Zielen der Architekturentwicklung, diese Ressourcen so gut wie möglich auszunutzen. Hierzu sind sie in jedem Maschinenzyklus mit nützlicher (= zum angestrebten Endergebnis beitragender) Arbeit zu beschäftigen.
  • Ressourcen-Algebra: Die Menge der Ressourcen und die Menge der zu verarbeitenden Datenstrukturen (Datentypen) konstituieren im Grunde eine algebraische Struktur. Die Ressourcen-Algebra ist aber (noch) keine API, sondern lediglich eine Formalisierung, die zum abstrakten Modellieren von Architekturkonzepten verwendet werden soll.
  • Ressourcenvektor: Auf der RTL-Ebene können die mit den kombinatorischen Schaltnetzen direkt verbundenen Speicherrmittel (Flipflops) als ein einziger Binärvektor angesehen werden. Mit diesem Ansatz können sowohl v.Neumann- als auch Datenflußmaschinen beschrieben werden (und auch die bekannten Auslegungen der Befehlssteuerung -- RISC, CISC, VLIW, Mikroprogrammierung usw.).
  • Ressourcenvektormaschine. Der zur Ausführung der Adressierungs- und Verarbeitungsabläufe vorgesehene Ressourcenvektor ist gegeben. Die Maschinenbefehle dienen dazu, Abschnitte des Ressourcenvektors zu beeinflussen.
  • Die API im Sinne einer herkömmlichen Befehlsliste ist zweitranging. Sie wird je nach Zweckmäßigkeit festgelegt. Die untersten Ebenen sind im Grunde Steuerworte zum  Beeinflussen des Ressourcenvektors. Die eigentliche Hardware-Software-Schnittstelle ist objektorientiert (mit anderen Worten: es wurde etwas ähnliches angestrebt wie das AS/400, aber vor allem als Hochleistungsrechner (weniger bescheiden: als Supercomputer)).

Auszug aus der Habilitationsschrift Leistungsoptimierte Einzelprozessorarchitekturen digitaler Universalrechner (1989).

Die vollständige Habilitationsschrift.

Technische Lösungsansätze für Rechnerarchitekturen auf Grundlage vergegenständlichter Abstraktionen. Ein  Arbeitsbericht (1989).

A Next Generation Superscalar Architecture (1990).

System .015 Grundsätze der Architekturgestaltung (1990).

System.015: eine Universalrechnerarchitekur für komplexe industrielle Steuerungssysteme (1990).

System.016: Manuskriptausschnitte (1988...90).

1995 bis 1999

Der Mikrocontroller als Meterware. Grundsatzuntersuchungen zu Mikrocontrollern  mit variabler Architektur, die für beliebige Verarbeitungsbreiten generiert werden können.

Hardware oder Software? Eine Entscheidung beim Entwerfen von Embedded Systems. 1997 als Vortrag gehalten -- aber auch heute noch aktuell ... Im Fokus: die Implementierungseffizienz -- ein Ansatz, um solche Entscheidungen auf möglichst exakter, objektiver Grundlage treffen zu können.

 

Ab 1999/2000

Die Ressourcen-Algebra  wird zur unmittelbaren Grundlage der API  -- ein Gedanke, der einige Zeit gebraucht hat (und eine Vielzahl von Versuchen) ...