Alternative Rechnerarchitekuren (Teil 2)

Teileinheiten der Functional Unit I

Die Teileinheiten der Functional Unit und das Register File (Bild 3) sind durch eine Vielzahl von Datenverbindungen und Multiplexern verbunden.

Die Datenverbindungen sind dabei als Busse mit der jeweiligen internen Datenbusbreite ausgeführt (zum Beispiel mit 32 Bit). Eine Ausnahme bilden die Condition Codes, die als Bitleitungen implementiert sind. Innerhalb der Functional Unit existieren fünf Typen von Teileinheiten:

  • Arithmetic Unit (AU, Type A): Diese Einheit darf man nicht mit der herkömmlichen Arithmetical-Logical-Unit (ALU) verwechseln. Die AU enthält eine oder wenige, dann konfigurierbare Verknüpfungen, beispielsweise um zwei Integerzahlen zu addieren. Sie liefert ein Ergebnis an ihrem Ausgang, wenn die Eingänge entsprechend beschaltet sind. Dieses Ergebnis kann innerhalb des Schaltnetzes weiterverwendet werden. Die AU ist gekennzeichnet durch zwei Eingangsbusse und einen Ausgangsbus, gegebenenfalls durch eine Konfigurationsmöglichkeit (Auswahl der Verknüpfung, im Extremfall entsprechend einer ALU) und durch Konditionalbits. In einigen Fällen, beispielsweise bei der Multiplikation, kann die Breite des Ausgangsbusses abweichen, um die Berechnungen zu ermöglichen.

  • Compare Unit (CoU, Type B): Für die bedingte Ausführung einer Verknüpfung werden Condition-Code-Bits durch einen konfigurierbaren Vergleich in der Compare Unit erzeugt. Der Vergleich lässt sich bei Verwendung von drei Konfigurationsbits auf >, >=, <, <=, !=, ==, TRUE oder FALSE einstellen. Kennzeichen der Compare Unit sind zwei Eingangsbusse und ein Ausgangsbit sowie die Konfigurierbarkeit.

  • Multiplexer (Mul_C, Type C): Multiplexer vom Typ C belegen die Eingänge der AUs und der CoUs mit jeweils zwei Eingangswerten (in der vollen Verarbeitungsbreite). Hierfür benötigen sie eine Anzahl von Konfigurierungsbits, die sich aus der Anzahl von Eingängen und den zwei Ausgängen ergeben. Kennzeichen für Mul_C-Einheiten sind zwei Ausgangsbusse.

  • Multiplexer (Mul_D, Type D): Für die Belegung der Register mit den Ergebniswerten wird lediglich ein Ausgangsbus und damit auch nur die Hälfte der Konfigurationsbits benötigt. Ein Mul_D unterscheidet sich daher vom Mul_C durch die Anzahl seiner Ausgangsleitungen.

  • Demultiplexer (Demul, Type E): Die Ergebnisse der Vergleiche (CoU) müssen an entsprechende AUs weitergeleitet werden. Im Gegensatz zu den Multiplexern, die eine Quellenauswahl vornehmen, liegt hier eine Zielauswahl vor.

Die Verbindungen zwischen den Teileinheiten können komplett oder teilweise ausgeführt sein, abhängig von der Anzahl der zur Verfügung stehenden Konfigurationsbits in der Gesamtheit. In einer Beispielarchitektur auf den nächsten Seiten wird eine vollständige Verbindbarkeit gezeigt und die Zahl der notwendigen Bits daraus berechnet.