Zum Inhalt springen
L

Wikipedia · einfach zusammengefasst · Stand

Arithmetisch-logische Einheit

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

Inhalt6 Abschnitte
  1. 1. Was ist eine ALU?
  2. 2. Funktionen einer ALU
  3. 3. Steuertabelle einer n-Bit-ALU
  4. 4. Aufbau und Funktionsweise
  5. 5. Das Statusregister
  6. 6. Verwandte Systeme

Was ist eine ALU?

Eine arithmetisch-logische Einheit (englisch arithmetic logic unit, kurz ALU) ist ein elektronisches Rechenwerk, das in Prozessoren zum Einsatz kommt. Sie berechnet arithmetische und logische Funktionen und ist damit ein zentraler Bausteil jedes Prozessors. Eine ALU kann zwei Binärwerte mit gleicher Stellenzahl n miteinander verknüpfen; man spricht daher von n-Bit-ALUs. Typische Werte für n sind 8, 16, 32 und 64. Begriffe wie 32-Bit- oder 64-Bit-CPU entstammen der Breite der Arbeitsregister der Prozessorarchitektur, die meist der ALU-Breite entspricht. Eine Ausnahme ist der Z80, der mit einer 4-Bit-ALU arbeitet.

Funktionen einer ALU

Jede ALU beherrscht mindestens folgende Minimaloperationen: arithmetisch die Addition (ADD) und logisch die Negation (NOT), die Konjunktion (AND, Und-Verknüpfung) sowie die Rechtsverschiebung oder -rotation (im Gegensatz zur Linksverschiebung extrem aufwendig nachzubilden). Üblich sind darüber hinaus viele weitere Operationen, die sich aber auch durch die Minimaloperationen auf Kosten der Rechenzeit (in mehreren Takten) nachbilden lassen: Inkrement und Dekrement, Addition mit Übertrag (ADC), Subtraktion (SUB), Subtraktion mit Übertrag (SBB), Vergleich (CMP), Multiplikation (MUL), Division, Decimal adjust after addition (Dezimal-Angleichung nach Addition), Disjunktion (OR), Kontravalenz (XOR bzw. EOR), Test-Befehl, Rechts- und Linksverschiebung (ASR, ASL, LSR, LSL), Links- und Rechtsrotation (ROL, ROR), Register- und Bit-Manipulationen (Bits setzen, löschen, testen) sowie Umsortieren von Bits und Bytes, AES-Befehle und CRC-Befehle. In älteren Prozessoren (bis etwa zum 8086) war die ALU zusätzlich für das Inkrementieren des Programmzählers, Berechnen relativer Sprünge (JR), die Manipulation des Stackpointers (CALL, RET, PUSH, POP) und Adressberechnungen ([IX+n]) verantwortlich. Alle ALUs verarbeiten Festkommazahlen; Gleitkommabefehle sind in vielen aktuellen CPUs Standard, außer in kleineren Mikrocontrollern mit geringer Stromaufnahme oder geringen Herstellkosten. Der Trend der letzten 15 Jahre (Stand 2015) ist die Umstellung von ALUs auf Vektor-Verarbeitung.

Steuertabelle einer n-Bit-ALU

Welche Operation die ALU ausführt, wird über die Steuerbits F3 bis F0 (einen Steuervektor) ausgewählt. Ein Auszug aus einer Steuertabelle für eine n-Bit-ALU mit Ergebnis R, wobei A und B die beiden Operanden sind: 0000 → 0, 0001 → A, 1001 → NOT A, 0100 → A AND B, 0101 → A OR B, 0110 → A XOR B, 0111 → A + B, 1111 → B − A. (Die 1 steht hier jeweils für logisch wahr, 0 für logisch falsch.)

Aufbau und Funktionsweise

Vor dem Erfolg integrierter Mikroprozessoren waren ALUs als eigene Bausteine mit geringerem Integrationsgrad verbreitet, zum Beispiel die 4-Bit-ALU SN74S181 aus der 74xx-Reihe von Texas Instruments; auch der 1-Bit-Prozessor MC14500B von Motorola ist historisch erwähnenswert (dessen Einheit nennt sich allerdings nur LU, Logic Unit). Eine n-Bit-ALU ist meist aus einzelnen 1-Bit-ALUs zusammengesetzt. Jede dieser 1-Bit-ALUs reicht an die höherwertige ALU ein Carry-Bit weiter, mit dem ein Übertrag an der jeweiligen Stelle gekennzeichnet wird. Zur Beschleunigung werden häufig andere Verfahren wie Carry-Look-Ahead eingesetzt (siehe Carry-Ripple-Addierer). Jede 1-Bit-ALU hat außer den Eingängen für die zu verknüpfenden Werte und das Carry-Bit einen Eingang für einen Steuervektor (Op.-Code), der die Verknüpfungsart festlegt. In einem Prozessor werden diese Steuereingä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, der ihren Zustand signalisiert. In einem Prozessor wird dieser Bedingungsvektor im Statusregister (englisch condition code register) abgelegt. Maschinensprachebefehle können diese Werte abfragen und so den Programmverlauf beeinflussen, zum Beispiel durch bedingte Sprünge. Das Statusregister enthält meistens vier Statusbits: das Übertragsbit (C, carry bit) zeigt den Übertrag bei Addition der höchsten Stelle an und dient als Kennzeichen für Bereichsüberschreitung bei vorzeichenlosen Zahlen; bei Rechnung im 2er-Komplement spielt es für die Bereichsüberschreitung keine direkte Rolle. Das Überlaufbit (V, overflow bit, auch OF oder O) zeigt eine Zahlenbereichsüberschreitung bei 2er-Komplement-Rechnung an (Übertrag der zweithöchsten Stelle). Das Nullbit (Z, zero bit) wird 1, wenn das Ergebnis der Operation bzw. der Inhalt des Akkumulatorregisters 0 ist. Das Negativbit (N) wird gesetzt, wenn das Ergebnis als negative Zahl interpretierbar ist (oberstes Bit des Akkumulatorregisters = 1). Je nach ALU-Typ gibt es weitere Flags, zum Beispiel das Half carry bit (H), das einen Übertrag zwischen nieder- und höherwertigem Halbbyte anzeigt und für die Dezimalkorrektur bei der Umwandlung in BCD-Darstellung wichtig ist, sowie das Paritätsbit (P), das je nach Prozessor eine gerade oder ungerade Parität des Akkumulatorregisters anzeigt (gerade bzw. ungerade Anzahl der Bits mit dem Wert 1).

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.

Weiterlesen

Elektronik Die Elektronik verwendet vorrangig Transistoren, Dioden sowie passive Bauelemente wie Kondensatoren und Widerstände. Elektronische Schaltungen werden meist auf … Prozessor Aufbau und Funktionale Einheiten · Hauptprozessor (CPU) und Mehrprozessorkerne · Steuer- bzw. Leitwerk · Rechenwerk und Register · Datenleitungen · Caches und MMU. Funktion (Mathematik) In der Mathematik ist eine Funktion (lateinisch functio) oder Abbildung eine Beziehung (Relation) zwischen zwei Mengen, die jedem Element der einen Menge … Arithmetik Sie umfasst das Rechnen mit den Zahlen, vor allem den natürlichen Zahlen. Sie beschäftigt sich mit den Grundrechenarten, also mit der Addition (Zusammenzählen), … Addition Die Addition basiert auf dem Vorgang des Zählens. Deshalb verwendet man für den Vorgang, eine Addition auszuführen, neben Addieren auch den Ausdruck … Boolesche Algebra Die boolesche Algebra ist die Grundlage bei der Entwicklung von digitaler Elektronik und wird dort als Schaltalgebra, etwa bei der Erstellung von Schaltnetzen, … Negation Negation (von lateinisch negare ‚verneinen') ist Ablehnung, Verneinung oder Aufhebung; verneint werden können zum Beispiel Aussagen, abgelehnt werden können … Konjunktion (Logik) Gelesen wird die Konjunktion zweier Aussagen A, B meist als „A und B“. In der klassischen Logik ist die Konjunktion zweier Aussagen „A und B“ genau dann wahr, … Subtraktion Die Subtraktion (von lat. subtrahere „wegziehen“, „entfernen“), umgangssprachlich auch Minusrechnen genannt, ist eine der vier Grundrechenarten der … Vergleichsoperator größer als, kleiner als, größer oder gleich, kleiner oder gleich, gleich, ungleich, identisch, nicht identisch. mathematisches. Zeichen, >, <, ≥, ≤, = ≠, ≡ … Multiplikation Obwohl die Multiplikation eine Grundrechenart ist, lässt sie sich durch Addition nachbilden, für die sie eine Verkürzung darstellt. Inhaltsverzeichnis. 1 … Multiplizierer (Digitaltechnik) Ein Multiplizierer ist in der Digitaltechnik eine elektrische Schaltung, die aus zwei oder mehr digitalen Zahlen mit der mathematischen Operation der …