Theorie
Die Register-Transfer-Struktur (Register Transfer Level RTL)Jede
digitale informationsverarbeitende Einrichtung läßt sich auf
Speichermittel (Flipflops, Register,
Speicherzellen) und kombinatorische Schaltungen (Funktionszuordner)
zurückführen (Abb. 1); sie ist
durch die Speichermittel und durch die Booleschen Gleichungen, die die
Wirkungsweise der Funktionszuordner beschreiben, in funktioneller
Hinsicht vollständig bestimmt. Die Ressourcen können deshalb
ohne Beschränkung der Allgemeinheit durch einfache
Register-Transfer-Darstellungen veranschaulicht
werden. Die Booleschen Gleichungen, die die in der Informatik üblichen
grundlegenden Informationswandlungen beschreiben, gehören zum
allgemeinen Fachwissen. Es gibt eigens formale Entwurfssprachen, um
entsprechende Register-Transfer-Strukturen zu erfassen.
Abb. 1
Die Register-Transfer-Struktur. RG = Register; FZ = Funktionszuordner (kombinatorische
Schaltungen).
Ressourcen als Register-Transfer-Strukturen Einfache Ressourcen bestehen aus Registern, die die Operanden und die Ergebnisse aufnehmen, sowie
aus zwischengeordneten kombinatorischen Schaltungen (Funktionszuordnern).
Elementare Ressourcen (Abb. 2a) bilden beispielsweise aus zwei Operanden (A, B) ein einziges
Ergebnis (X):
X := A OP B bzw. X := OP (A, B)
Die
meisten Verarbeitungsbefehle der typischen Universalrechner entsprechen
diesem Schema (die
Unterschiede liegen vor allem in der Art und Weise der Bereitstellung
der Operanden und der Zuweisung des Ergebnisses). Die üblichen
Rechenwerke und Arithmetik-Logik-Einheiten (ALUs) können
als Beispiele solcher elementaren Ressourcen angesehen werden.
Die üblichen Universalrechner kennen nur wenige elementare Datentypen, z. B. ganze Binärzahlen,
Gleitkommazahlen, Zeichen usw., wobei zumeist jeweils mehrere Formate unterstützt werden (z. B. 16,
32 und 64 Bits). Ein Rechenwerk verarbeitet meist nur Daten eines bestimmten Typs (z. B. ganze
Binärzahlen oder Gleitkommazahlen). Bei elementaren Verknüpfungen haben Operanden und Ergebnis
das jeweils gleiche Format.
Im allgemeinen Sinne gibt es keine solchen Einschränkungen. Eine Ressource kann aus beliebig vielen
Operanden beliebig viele Ergebnisse bilden, wobei Operanden und Ergebnisse beliebigen Datentypen
und -formaten entsprechen dürfen (Abb. 2b und 3). Es gibt auch keine Beschränkung auf elementare
Datentypen. Die Datentypen dürfen vielmehr beliebig komplex sein (Bit- und Zeichenketten, Felder
(Arrays), heterogene Strukturen (Records) usw.).
Abb. 2
Einfachste Modelle einer Ressource. a) aus zwei Operanden entsteht ein Ergebnis; b) aus
drei Operanden werden zwei Ergebnisse gebildet.
Abb. 3 Ressourcen können beliebig kompliziert sein (beliebig viele Operanden und Ergebnissse
beliebiger Art).
Der
typische herkömmliche Universalrechner führt einen Befehl zu einer Zeit
aus (Einzelprozessor).
Hierzu genügt eine einzige Verarbeitungsressource. Es liegt nahe, durch
Anordnung mehrerer Verarbeitungsressourcen die Verarbeitungsleistung zu
steigern. Mehrere Ressourcen, die voneineinander
unabhängig sind (Abb. 4), versprechen größtmögliche Vielseitigkeit.
Es bleibt aber das Problem, sie
mit Operanden (Parametern) zu versorgen und die Ergebnisse
abzutransportieren.
Eine Lösung besteht darin, die Ressourcen gemäß den am häufigsten vorkommenden Datenflüssen so
miteinander zu verbinden, daß ein bestimmtes Ergebnis der einen Ressource unmittelbar zum Operanden
anderer Ressourcen werden kann (Verkettung; Abb. 5).
Eine alternative Lösung sieht den Anschluß der Ressourcen an einen Speicher mit wahlfreiem Zugriff
(RAM) vor (Abb. 1.6). Der einzelne Verarbeitungsablauf unterteilt sich dann in drei Zeitabschnitte:
1. Transport der Operanden zu den Ressourcen,
2. Verarbeitung innerhalb der Ressourcen (in allen gleichzeitig),
3. Transport der Ergebnisse in den Speicher.
Ressourcen als Hard- oder Software
Den
Operanden- und Ergebnisregistern der Hardware entspricht ein
Speicherbereich mit Speicherzellen
für die Parameter und Ergebnisse, den kombinatorischen Netwerken
(Funktionszuordnern) entsprechen
Programmabläufe, die die jeweiligen Informationswandlungen ausführen
(Abb. 7). Um die Operationen der Ressourcen softwareseitig
nachzubilden (Emulation), sind oft zusätzliche Arbeitsbereiche
erforderlich.
Abb. 4
Mehrere unabhängige Ressourcen.
Abb. 5
Miteinander verbundene (verkettete) Ressourcen.
Abb. 6
Mehrere
uanbhängige Ressourcen werden von einem Speicher aus mit Operanden
versorgt. Die Ergebnisse werden in den Speicher zurückgeschrieben.
Abb. 7 Wechselseitiger Austausch von Hard- und Software (anhand von zwei Beispielen).
|