74181
# 74181

Der 74181 ist eine 1970 eingeführte 4-Bit-Arithmetisch-logische Einheit (ALU) auf einem integrierten Schaltkreis aus der 74xx-Serie, die erste ALU auf einem Chip. Seine Verwendung als Bit-Slice-Baustein machte in den 1970ern den Bau von Minicomputern einfacher und billiger. Er findet sich in zahlreichen historischen Minicomputern.

## Funktion

Der 74181 ist ein Baustein mit mittlerem Integrationsgrad (MSI), der über 75 äquivalente Logikgatter verfügt. Die ursprüngliche Ausführung war in TTL-Logik. Er wurde typischerweise als 24-Pin-Gehäuse ausgeliefert. Diese ALU kann auf Worten von vier Bit

* alle 16 logischen Operationen mit zwei Variablen
* Addition mit und ohne Übertrag
* Subtraktion mit und ohne Übertrag
* Inkrement und Dekrement
* Vergleich von Werten auf gleich, größer oder kleiner

durchführen. Bei Addition und Subtraktion werden auch die Signale für Carry-Look-Ahead-Addierer erzeugt, so dass sich mehrere 74181 zu einem Addiernetzwerk zusammenschalten lassen. Dies konnte mit dem dazu gehörigen Baustein 74182 geschehen. Alternativ können mehrere 74181 auch durch Verschalten des Ausgangs $C_{n+4}$ mit dem Eingang $C_{n}$ des folgenden Schaltkreises als Ripple-Carry-Addierer verwendet werden, wenn die Geschwindigkeit unkritisch ist.

## Ein- und Ausgänge

Der 74181 verfügt über vierzehn Eingänge: Jeweils vier für die beiden Operanden $A_{0}$ bis $A_{3}$ und $B_{0}$ bis $B_{3}$, vier Eingänge für die Auswahl der Operation $S_{0}$ bis $S_{3}$, einen Eingang $M$ für die Auswahl, ob logische oder arithmetische Operationen durchgeführt werden, und ein Eingangssignal für den Übertrag $C_{n}$. Die acht Ausgänge sind die vier Ergebnisse $F_{0}$ bis $F_{3}$, der entstehende Übertrag $C_{n+4}$, die Ausgänge $P$ für propagate und $G$ für das propagate- und generate-Signal des carry-lookahead-Addiers sowie ein Ausgang $A=B$, der die Gleichheit der beiden Eingabewerte anzeigt.

## Logikpegel

Der 74181 kann sowohl mit dem Logikpegel active-low (niedrige Spannung entspricht der logischen 1) als auch active-high (hohe Spannung entspricht der logischen 1) betrieben werden. Der Baustein selber liefert immer die gleichen Ergebnisse, aber die Interpretation der Daten ändert sich damit.

## Funktionstabelle für F

In der folgenden Funktionstabelle ist das logische UND als Produkt dargestellt und das logische ODER als $+$. 'L' steht für den niedrigen Spannungspegel, 'H' für den hohen.

| Auswahl | Auswahl | Auswahl | Auswahl | Active-low data | Active-low data | Active-low data | Active-high data | Active-high data | Active-high data |
| - | - | - | - | - | - | - | - | - | - |
| | | | | Logik $M=H$ | Arithmetisch $M=L$ | Arithmetisch $M=L$ | Logik $M=H$ | Arithmetisch $M=L$ | Arithmetisch $M=L$ |
| $S_{3}$ | $S_{2}$ | $S_{1}$ | $S_{0}$ | | $C_{n}=L$ Kein Übertrag | $C_{n}=H$ Übertrag | | $C_{n}=L$ Kein Übertrag | $C_{n}=H$ Übertrag |
| L | L | L | L | ${\overline {A}}$ | $A$ minus $1$ | ${A}$ | ${\overline {A}}$ | $A$ | $A$ plus $1$ |
| L | L | L | H | ${\overline {AB}}$ | $AB$ minus $1$ | ${AB}$ | ${\overline {A+B}}$ | $A+B$ | ${(A+B)}$ plus $1$ |
| L | L | H | L | ${\overline {A}}+B$ | $A{\overline {B}}$ minus $1$ | $A{\overline {B}}$ | ${\overline {A}}B$ | $A+{\overline {B}}$ | $(A+{\overline {B}})$ plus $1$ |
| L | L | H | H | Logical 1 | $-1$ (Zweierkomplement) | $0$ (zero) | Logical 0 | $-1$ (Zweierkomplement) | $0$ (zero) |
| L | H | L | L | ${\overline {A+B}}$ | $A$ plus $(A+{\overline {B}})$ | $A$ plus $(A+{\overline {B}})$ plus $1$ | ${\overline {AB}}$ | $A$ plus $A{\overline {B}}$ | $A$ plus $(A{\overline {B}})$ plus $1$ |
| L | H | L | H | ${\overline {B}}$ | $AB$ plus $(A+{\overline {B}})$ | $AB$ plus $(A+{\overline {B}})$ plus $1$ | ${\overline {B}}$ | $(A+B)$ plus $A{\overline {B}}$ | $(A+B)$ plus $A{\overline {B}}$ plus $1$ |
| L | H | H | L | ${\overline {A\oplus B}}$ | $A$ minus $B$ minus $1$ | $A$ minus $B$ | $A\oplus B$ | $A$ minus $B$ minus $1$ | $A$ minus $B$ |
| L | H | H | H | $A+{\overline {B}}$ | $A+{\overline {B}}$ | $A+{\overline {B}}$ plus $1$ | $A{\overline {B}}$ | $A{\overline {B}}$ minus $1$ | $A{\overline {B}}$ |
| H | L | L | L | ${\overline {A}}B$ | $A$ plus $(A+B)$ | $A$ plus $(A+B)$ plus $1$ | ${\overline {A}}+B$ | $A$ plus $AB$ | $A$ plus $AB$ plus $1$ |
| H | L | L | H | $A\oplus B$ | $A$ plus $B$ | $A$ plus $B$ plus $1$ | ${\overline {A\oplus B}}$ | $A$ plus $B$ | $A$ plus $B$ plus $1$ |
| H | L | H | L | $B$ | $A{\overline {B}}$ plus $(A+B)$ | $A{\overline {B}}$ plus $(A+B)$ plus $1$ | $B$ | $(A+{\overline {B}})$ plus $AB$ | $(A+{\overline {B}})$ plus $AB$ plus $1$ |
| H | L | H | H | $A+B$ | $A+B$ | $AB$ plus $1$ | $AB$ | $AB$ minus $1$ | $AB$ |
| H | H | L | L | Logical 0 | $A$ plus $A$ | $A$ plus $A$ plus $1$ | Logical 1 | $A$ plus $A$ | $A$ plus $A$ plus $1$ |
| H | H | L | H | $A{\overline {B}}$ | $AB$ plus $A$ | $AB$ plus $A$ plus $1$ | $A+{\overline {B}}$ | $(A+B)$ plus $A$ | $(A+B)$ plus $A$ plus $1$ |
| H | H | H | L | $AB$ | $A{\overline {B}}$ plus $A$ | $A{\overline {B}}$ plus $A$ plus $1$ | $A+B$ | $(A+{\overline {B}})$ plus $A$ | $(A+{\overline {B}})$ plus $A$ plus $1$ |
| H | H | H | H | $A$ | $A$ | $A$ plus $1$ | $A$ | $A$ minus $1$ | $A$ |

## Historische Einordnung und Bedeutung

Frühe Computer wie der Eniac oder die IBM 704 verwendeten Elektronenröhren. Der Übergang zu einzelnen Transistoren wie bei der IBM 7090 oder der PDP-1 ermöglichte eine deutlich höhere Zuverlässigkeit und einen geringeren Stromverbrauch. Das Aufkommen von integrierten Schaltungen ermöglichte eine weitere Reduktion von Baugrößen und Kosten.

Eines der komplexesten Teile der damaligen Computer war die ALU. Um dort Kosten zu sparen, wurde beispielsweise bei der PDP-8/S eine ALU mit einer Breite von einem Bit verwendet.

Der 74181 stellte hierbei einen Meilenstein dar: Er war der erste integrierte Schaltkreis, der eine ALU auf einem Baustein implementierte. Dies vereinfachte den Entwurf und Bau von Computern erheblich und sparte daher auch Kosten.

Zahlreiche Minicomputer verwendeten daher einen oder mehrere 74181 als Arithmetik-Einheit. Zuerst wurde der Chip bei der Nova von Data General im Jahr 1970 eingesetzt. Weitere Computer, bei denen er Verwendung fand, waren verschiedene Modelle der PDP-11 und der VAX11/780 von Digital Equipment sowie die Xerox Alto.

Mit zunehmender Integrationsdichte wurden Bit-Slice-Bausteine wie der 74181 von größeren Einheiten oder ganzen CPUs auf einem Baustein abgelöst.

