Prozessorgrundlagen: Von-Neumann-Architektur, Teil 2

Rechenwerk

Das Rechenwerk (Arithmetical Logical Unit, ALU) in einem Von-Neumann-Prozessor ist im eigentlichen Sinn kein Rechenwerk, sondern ein Rechennetz, wenn man es mit den Begriffen Schaltwerk und Schaltnetz [4] vergleicht. Es beinhaltet mehrere Komponenten zur Durchführung aller benötigten Berechnungen. Hierzu zählen mindestens das oder die Datenregister, das eigentliche Berechnungsschaltnetz (die ALU) und die verbindenden (internen) Datenbusse.

Oft kommen weitere Komponenten zum Rechenwerk hinzu. So sind beispielsweise Adressrechnungen für berechnete Sprungadressen durchzuführen. Dies lässt sich innerhalb der zentralen ALU, jedoch auch im Rahmen eigenständiger Einheiten, integrieren. Wir beschränken uns auf die minimalen Komponenten im Rechenwerk. Weiter führende Darstellungen sind etwa in [5] zu finden.

Das Rechenwerk im engeren Sinn integriert alle Berechnungskapazitäten für neue Datenwerte innerhalb des Prozessors. Bei speziellen Einheiten wie Multiplizierern, Multiply-Accumulate-Einheiten (MAC) oder Barrel-Shiftern gibt es Ausnahmen von dieser Regel, diese sind häufig separat angeordnet.

Die ALU besteht aus einem von außen steuerbaren Schaltnetz mit zwei Datenbussen am Eingang und zwei am Ausgang. Das Bild "ALU" gibt einen Überblick. Die Steuereingänge werden von dem Leitwerk mit Signalen belegt, die aus dem Befehlswort extrahiert sind. Sie konfigurieren das Schaltnetz für den Zeitraum der Berechnung auf die gewünschte Verknüpfung. Die Operation zwischen den Daten ist dabei in Zusammenhang mit der Interpretation der jeweiligen Darstellung zu sehen. Folgende Klassen von Verknüpfungen sind in der ALU integriert:

  • Arithmetische Verknüpfungen, wie Addition, Subtraktion, Vergleiche, Mul-tiplikation und Division: Für die meisten Prozessoren sind diese Verknüpfungen auf Integerwerte der Daten beschränkt, während die Interpretation der Floating-Point-Darstellungen (siehe [3]) entweder durch eine Software-Emulation oder innerhalb spezieller Coprozessoren erfolgt. Wie erwähnt können sehr aufwendige Verknüpfungen in speziellen Einheiten integriert sein.

  • Logische Verknüpfungen, wie Disjunktion (ODER), Konjunktion (UND), Negation (NOT), Einer-Komplement (XOR): Diese logischen Verknüpfungen sind auf eine binärwertige Interpretation der Daten fixiert.

  • Verschiebeoperationen, wie Rotation, arithmetischer und logischer Shift: Auch in diesem Fall werden die Daten als Binärwerte interpretiert, obwohl einzelne Operationen auch einen Zusammenhang mit Arithmetik zeigen.