Arithmetisch-logische Einheit

Schema der Arithmetisch-logischen Einheit:
A Akkumulator, B Datenregister, F Funktion, D Statusausgabe, R Ergebnis (Result)

Eine arithmetisch-logische Einheit (englisch arithmetic logic unit, daher oft abgekürzt ALU) ist ein elektronisches Rechenwerk, welches in Prozessoren zum Einsatz kommt.


Funktionen

Steuertabelle für n-Bit ALU
F3 F2 F1 F0   R
0 0 0 0 0
0 0 0 1 A
1 0 0 1 NOT A
0 1 0 0 A AND B
0 1 0 1 A OR B
0 1 1 0 A XOR B
0 1 1 1 A + B
1 1 1 1 B – A
Einfache n-Bit ALU

Die ALU berechnet arithmetische und logische Funktionen. In älteren Prozessoren (bis etwa 8086) war sie außerdem für

Sinnvollerweise kann sie mindestens folgende Minimaloperationen durchführen:

Typischerweise liegen jedoch auch noch zusätzlich folgende Operationen vor, die aber auch mittels der oberen drei auf Kosten der Rechenzeit (in mehreren Takten) nachgebildet werden können:

Alle ALUs verarbeiten Festkommazahlen. Gleitkommabefehle sind in vielen aktuellen CPUs mittlerweile Standard. Ausnahmen sind kleinere Mikrocontroller, die auf geringe Stromaufnahme oder auf geringe Herstellkosten getrimmt sind. Der Trend der letzten 15 Jahre ist es, ALUs auf Vektor-Verarbeitung umzustellen (Stand 2015).


Aufbau und Funktionsweise

Vor dem Erfolg von integrierten Mikroprozessoren waren ALUs als eigene Bausteine (mit geringerem Integrationsgrad) verbreitet, wie diese 4-Bit-ALU SN74S181 aus der 74xx-Reihe von Texas Instruments

Eine ALU kann zwei Binärwerte mit gleicher Stellenzahl (n) miteinander verknüpfen. Man spricht von n-Bit-ALUs. Typische Werte für n sind 8, 16, 32 und 64. Historisch erwähnenswert sind auch beispielsweise die 4-Bit-ALU 74LS181 und der 1-Bit-Prozessor MC14500B von Motorola. (Allerdings nennt sich die entsprechende Einheit darin lediglich LU (Logic Unit)). Begriffe wie 32-Bit- bzw. 64-Bit-CPU entstammen der Breite der Arbeitsregister der Prozessorarchitektur. Meist entspricht diese Breite auch der der ALU; mithin deuten diese Begriffe (32-Bit- bzw. 64-Bit-CPU) an, dass in entsprechenden Prozessoren auch ebensolche ALUs zum Einsatz kommen. Eine Ausnahme bildet hier beispielsweise der Z80, der mit einer 4-Bit-ALU arbeitet.

Die n-Bit ALU ist meist aus einzelnen 1-Bit-ALUs zusammengesetzt, die jeweils an die höherwertige ALU ein Carry-Bit weiterreichen, mit dem ein Übertrag an der jeweiligen Stelle gekennzeichnet wird. (Zur Beschleunigung werden häufig andere Verfahren (z. B. Carry-Look-Ahead) eingesetzt.) Um die zusammengeschalteten 1-Bit-ALUs in die geforderte Funktionsart umzuschalten, hat jede 1-Bit-ALU zusätzlich zu den Eingängen für die zu verknüpfenden Werte und das Carry-Bit noch einen Eingang für einen Steuervektor (Op.-Code); beim Einsatz in einem Prozessor werden diese Eingänge gemeinsam vom Steuerregister (Operationsregister, OR) des Prozessors versorgt.

Das Statusregister

Die gesamte n-Bit ALU hat außer dem Ausgangsvektor für das Ergebnis noch einen Bedingungsvektor, um ihren Zustand zu signalisieren. Beim Einsatz in einem Prozessor wird dieser Bedingungsvektor in dessen Statusregister (auch engl. condition code register) abgelegt.

Dieses Register enthält meistens vier Statusbits. Die einzelnen Werte des Statusregisters können von Maschinensprachebefehlen abgefragt werden und damit den weiteren Programmverlauf beeinflussen (z.B. bedingte Sprünge):

Je nach ALU-Typ gibt es weitere Flags, zum Beispiel:

Verwandte Systeme

Parallel Logic Units (PLUs) sind speziell auf Bitmanipulation zugeschnittene ALUs. Sie können parallel, also gleichzeitig mit anderen Rechenwerken auf die Daten zugreifen und sind deshalb über einen eigenen Datenpfad mit dem Arbeitsspeicher verbunden. PLUs sind Bestandteil einiger Signalprozessor-Typen, die als Hochgeschwindigkeits-Controller eingesetzt werden.

Trenner
Basierend auf einem Artikel in: Wikipedia.de
Seitenende
Seite zurück
© biancahoegel.de
Datum der letzten Änderung: Jena, den: 22.02. 2023