Lookup-Tabellen verstehen: Von ROMs zu fortgeschrittenen ALUs
Im vorherigen Kapitel erforschten wir digitale Speichergeräte und entdeckten, wie Festkörperspeicherzellen präzise über binäre Werte adressiert werden können. Indem wir die Adressleitungen eines ROMs mit spezifischen Binärmustern ansteuern, können wir gespeicherte Daten direkt aus seinen Speicherzellen abrufen.
Stellen Sie sich einen ROM vor, der mit einer Wahrheitstabelle für eine bestimmte Logikfunktion vorprogrammiert wurde. Die Adressleitungen fungieren dann als Eingänge der Funktion, während die Datenleitungen die entsprechenden Ausgänge liefern. Mit diesem Setup kann ein einzelner ROM-Chip jede gewünschte Logikfunktion emulieren – ob Halbaddierer, Volladdierer oder eine völlig andere kombinatorische Schaltung – ohne physische Neuverdrahtung.
Unten ist ein 4 × 2-Bit ROM, konfiguriert als Halbaddierer. Wenn die A- und B-Eingänge an die Adresspins angelegt werden, gibt der ROM das korrekte Summenbit (Σ) und Übertragsbit (Cout) aus.

Im Gegensatz zu einem gatterbasierten Halbaddierer, der Eingänge durch ein festes Netzwerk von Logikgattern verarbeitet, „erinnert“ dieser ROM einfach den korrekten Ausgang für jedes Eingangs-Paar. Durch Schreiben einer neuen Wahrheitstabelle in einen anderen ROM, oder sogar ein löschbares EPROM, können wir die Logikfunktion sofort neu konfigurieren, was beispiellose Flexibilität bietet.
Im Wesentlichen heißt ein ROM, der für jede mögliche Eingabe vorbestimmte Ausgänge liefert, Lookup-Tabelle. Dieses Konzept spiegelt wider, wie wir Multiplikationstabellen in der Schule auswendig lernen: statt 5 × 6 jedes Mal neu zu berechnen, rufen wir ab, dass es 30 ergibt.
Die Nutzung von Software (den im ROM gespeicherten Daten) statt Hardware bietet mehrere Vorteile:
- Softwareänderungen sind weit einfacher als Hardwaremodi-fikationen.
- Software kann auf Disks, Bändern oder anderen Medien archiviert werden, was Dokumentation und Transfer erleichtert.
- Software kann zwischen Geräten kopiert werden, sodass ein Chip vom anderen lernen kann.
- Komplexe Funktionen, die mit diskreten Gattern unhandlich wären, lassen sich unkompliziert implementieren.
Die Macht von Lookup-Tabellen wächst mit der Funktionskomplexität. Ein 4-Bit-Addierer könnte mittels eines ROMs mit 8 Adressleitungen (zwei 4-Bit-Operanden) und 4 Datenleitungen für die signierte Summe gebaut werden. Mit 256 adressierbaren Locations muss jede Eingangskombination sorgfältig programmiert werden.

Das Programmieren einer solchen Tabelle erfordert Präzision, aber der Nutzen software-definierten Verhaltens überwiegt das Risiko eines falsch programmierten Eintrags.
Lookup-Tabellen glänzen auch beim Handling von Randfällen, wie Überlauf in 2's-Komplement-Addition. Beispielsweise ergibt Addition von 0111 (7) und 0110 (6) in einem 4-Bit-Feld 1001 (–7) statt der korrekten 13. Durch Programmieren des ROMs zur Ausgabe eines benutzerdefinierten Werts – vielleicht der maximal darstellbaren positiven Zahl – können wir die Reaktion auf Überlaufbedingungen kontrollieren.
Jenseits einfacher Addition erweitert das Hinzufügen von zwei weiteren Adressleitungen die ROM-Kapazität von 256 auf 1.024 Einträge. Dies ermöglicht dem ROM, mehrere Operationen basierend auf zwei Kontrollbits (A8 und A9) durchzuführen: Addition, Subtraktion (beide Richtungen) und Gleichheitstest – alles auf 4-Bit-Operanden.

Mit noch mehr Adressleitungen kann der ROM eine breite Palette binärer Operationen hosten, wie Paritätsprüfungen oder XORs, und fungiert effektiv als Arithmetic Logic Unit (ALU). Historisch nutzten die IBM 1401 und 1620 Computer Lookup-Tabellen für Addition, eine Designwahl, die den Spitznamen „CADET“ (Can't Add, Doesn't Even Try) einbrachte.
Eine häufige moderne Nutzung ROM-basierter Lookup-Tabellen findet sich in Steuerungssystemen, die eine präzise mathematische Funktion erfordern. Beispielsweise justieren automobilen Kraftstoffeinspritzsysteme das Luft-Kraftstoff-Verhältnis basierend auf Motorlast, Umgebungstemperatur und Luftdruck. Sensoren messen diese Variablen, ihre analogen Ausgänge werden digitalisiert, und der resultierende digitale Vektor dient als ROM-Adresse. Der ROM gibt dann die optimalen Einspritzparameter aus.
ROMs korrigieren auch digitalisierte Signale. Thermoelement-Sender wandeln beispielsweise eine nicht-lineare Millivolt-Spannung in einen Temperaturwert um. Durch Speichern von Korrekturdaten in einem ROM kann das Gerät den Ausgang linearisieren, was die Genauigkeit verbessert. Diese Anwendung wird oft als digitaler Characterizer bezeichnet.

Ein weiteres klassisches Beispiel ist Code-Übersetzung. Ein 128 × 8 ROM kann 7-Bit-ASCII-Codes in 8-Bit-EBCDIC-Codes übersetzen, indem er jeden Eingang auf seinen entsprechenden Ausgang in der ROM-Tabelle abbildet.
Zugehöriges Arbeitsblatt: Memory Devices Worksheet
Industrietechnik
- Digitaler Speicher Grundlagen: Adressierung, Zugriff und Volatilität
- ROM, PROM, EPROM und EEPROM verstehen: Design, Programmierung und Identifikation
- Mikroprozessoren: Die Evolution des Stored-Program-Computing
- Dynamische Speicherallokation in C: malloc, calloc, realloc & free meistern
- Cervoz bringt DDR4-2666 Speicher für industrielle KI- und IoT-Lösungen
- Magnetisches neuromorphes Computing steigert KI-Effizienz auf menschenähnliches Niveau
- Dynamische Speicherverwaltung in C: calloc, malloc und free erklärt
- C++ Dynamischer Speicher: Stack vs. Heap erklärt
- Java 10: Heap auf alternativen Speicher (NV-DIMM) allozieren – JEP 316
- Ladder Logic 202: PLC-Speicherorganisation meistern