|
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) ...
|