Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Manufacturing Technology >> Industrietechnik

Nachschlagetabellen

Nachdem wir im letzten Kapitel etwas über digitale Speichergeräte gelernt haben, wissen wir, dass es möglich ist, binäre Daten in Halbleitergeräten zu speichern. Diese Speicher-„Zellen“ innerhalb von Halbleiterspeichergeräten werden leicht adressiert, indem die „Adress“-Leitungen des Geräts mit dem/den richtigen Binärwert(en) angesteuert werden.

Angenommen, wir hätten eine ROM-Speicherschaltung mit bestimmten Daten beschrieben oder programmiert, so dass die Adressleitungen des ROM als Eingänge und die Datenleitungen des ROM als Ausgänge dienen, wodurch die charakteristische Reaktion einer bestimmten Logikfunktion erzeugt wird. Theoretisch könnten wir diesen ROM-Chip so programmieren, dass er jede beliebige Logikfunktion emuliert, die wir wollten, ohne irgendwelche Drahtverbindungen oder Gates ändern zu müssen.

Betrachten Sie das folgende Beispiel eines 4 x 2 Bit ROM-Speichers (ein sehr kleiner Speicher!), der mit der Funktionalität eines Halbaddierers programmiert ist:

Wenn dieses ROM mit den obigen Daten beschrieben wurde (die eine Wahrheitstabelle eines Halbaddierers darstellen), bewirkt das Ansteuern der A- und B-Adresseneingänge, dass die entsprechenden Speicherzellen im ROM-Chip aktiviert werden, wodurch die entsprechenden Daten als Σ ( Summe) und Cout Bits. Im Gegensatz zu der aus Gattern oder Relais aufgebauten Halbaddiererschaltung kann dieses Gerät mit zwei Eingängen und zwei Ausgängen so konfiguriert werden, dass es überhaupt jede logische Funktion ausführt, nicht nur die Halbaddiererfunktion.

Um die Logikfunktion zu ändern, müssen wir lediglich eine andere Datentabelle auf einen anderen ROM-Chip schreiben. Wir könnten sogar einen EPROM-Chip verwenden, der nach Belieben neu beschrieben werden kann, was die ultimative Funktionsflexibilität bietet.

Es ist von entscheidender Bedeutung, die Bedeutung dieses Prinzips bei der Anwendung auf digitale Schaltungen zu erkennen. Während der aus Gattern oder Relais aufgebaute Halbaddierer Prozesse die Eingabebits, um zu einem bestimmten Ausgang zu gelangen, das ROM merkt sich einfach was die Ausgaben für eine gegebene Kombination von Eingaben sein sollten.

Dies unterscheidet sich nicht wesentlich von den in der Grundschule auswendig gelernten „Stundenplänen“:Anstatt das Produkt von 5 mal 6 (5 + 5 + 5 + 5 + 5 + 5 =30) berechnen zu müssen, wird den Schülern beigebracht, sich zu erinnern dass 5 x 6 =30, und dann wird erwartet, dass dieses Produkt bei Bedarf aus dem Speicher abgerufen wird. Ebenso hängt die logische Funktion nicht von der funktionalen Anordnung der festverdrahteten Gatter oder Relais (Hardware) ab, sondern allein von den in den Speicher geschriebenen Daten (Software).

Eine so einfache Anwendung mit bestimmten Ausgaben für jede Eingabe wird als Nachschlagetabelle bezeichnet , weil das Speichergerät einfach „nachschlägt“, wie die Ausgänge für jede gegebene Kombination von Eingangszuständen aussehen sollten.

Diese Anwendung eines Speichergeräts zur Ausführung logischer Funktionen ist aus mehreren Gründen von Bedeutung:

Die Nützlichkeit einer Nachschlagetabelle wird mit zunehmender Komplexität der Funktion immer offensichtlicher. Angenommen, wir wollten eine 4-Bit-Addiererschaltung mit einem ROM aufbauen. Wir benötigen ein ROM mit 8 Adresszeilen (zwei 4-Bit-Zahlen zum Addieren) plus 4 Datenleitungen (für die vorzeichenbehaftete Ausgabe):

Mit 256 adressierbaren Speicherplätzen in diesem ROM-Chip hätten wir ziemlich viel zu programmieren, um ihm mitzuteilen, welcher Binärausgang für jede einzelne Kombination von Binäreingängen generiert werden soll.

Wir würden auch Gefahr laufen, bei unserer Programmierung einen Fehler zu machen und eine falsche Summe ausgeben zu lassen, wenn wir nicht aufpassen. Die Flexibilität, diese Funktion (oder eine beliebige Funktion) allein durch Software konfigurieren zu können, überwiegt jedoch im Allgemeinen diese Kosten.

Betrachten Sie einige der erweiterten Funktionen, die wir mit dem obigen "Addierer" implementieren könnten. Wir wissen, dass wir riskieren, dass die Antwort überläuft, wenn wir zwei Sätze von Zahlen in Zweierkomplement-Notation mit Vorzeichen addieren.

Wenn wir beispielsweise versuchen, 0111 (dezimal 7) zu 0110 (dezimal 6) mit nur einem 4-Bit-Zahlenfeld zu addieren, erhalten wir 1001 (dezimal -7) anstelle des korrekten Werts 13 (7 + 6), die nicht mit 4 vorzeichenbehafteten Bits ausgedrückt werden kann. Wenn wir wollten, könnten wir die seltsamen Antworten vermeiden, die bei Überlaufbedingungen gegeben werden, indem wir diese Nachschlagetabellenschaltung so programmieren, dass sie unter Bedingungen, bei denen wir wissen, dass ein Überlauf auftritt, etwas anderes ausgibt (dh in jedem Fall, in dem die reale Summe +7 . überschreiten würde). oder -8).

Eine Alternative könnte darin bestehen, den ROM so zu programmieren, dass er die Größe 0111 (den maximalen positiven Wert, der mit 4 Bits mit Vorzeichen dargestellt werden kann) oder einen anderen Wert ausgibt, der unserer Meinung nach für die Anwendung geeigneter ist als der typische übergelaufene „Fehler“-Wert die eine normale Addiererschaltung ausgeben würde. Es liegt ganz am Programmierer, zu entscheiden, was er oder sie mit dieser Schaltung tun soll, da wir nicht mehr durch die Beschränkungen der Logikgatterfunktionen eingeschränkt sind.

Auch bei kundenspezifischen Logikfunktionen hören die Möglichkeiten nicht auf. Durch Hinzufügen weiterer Adressleitungen zum 256 x 4 ROM-Chip können wir die Nachschlagetabelle um mehrere Funktionen erweitern:

Mit zwei weiteren Adressleitungen hat der ROM-Chip viermal so viele Adressen wie zuvor (1024 statt 256). Dieses ROM könnte so programmiert werden, dass, wenn A8 und A9 beide niedrig waren, die Ausgabedaten die Summe represented darstellten der beiden 4-Bit-Binärzahlen, die auf den Adressleitungen A0 bis A7 eingegeben werden, genau wie bei der vorherigen 256 x 4 ROM-Schaltung.

Für die Adressen A8=1 und A9=0 könnte er so programmiert werden, dass er die Differenz ausgibt (Subtraktion) zwischen der ersten 4-Bit-Binärzahl (A0 bis A3) und der zweiten Binärzahl (A4 bis A7). Für die Adressen A8=0 und A9=1 könnten wir den ROM so programmieren, dass er die Differenz (Subtraktion) der beiden Zahlen in umgekehrter Reihenfolge ausgibt (zweite - erste statt erste - zweite) und schließlich für die Adressen A8=1 und A9 =1, könnte der ROM so programmiert werden, dass er die beiden Eingaben vergleicht und einen Hinweis auf Gleichheit oder Ungleichheit ausgibt.

Was wir dann haben, ist ein Gerät, das vier verschiedene arithmetische Operationen an 4-Bit-Binärzahlen durchführen kann, indem alle die darin programmierten Antworten „nachgeschlagen“ werden.

Wenn wir einen ROM-Chip mit mehr als zwei zusätzlichen Adressleitungen verwendet hätten, könnten wir ihn mit einer größeren Vielfalt an Funktionen programmieren, die er an den beiden 4-Bit-Eingängen ausführen kann. Es gibt eine Reihe von Operationen, die für Binärdaten charakteristisch sind (wie Paritätsprüfung oder Exklusiv-ODER-Verknüpfung von Bits), deren Programmierung in einer solchen Nachschlagetabelle nützlich sein könnte.

Geräte wie dieses, die eine Vielzahl von arithmetischen Aufgaben ausführen können, die von einem binären Eingangscode diktiert werden, werden als Arithmetic Logic Units bezeichnet (ALUs) und bilden eine der wesentlichen Komponenten der Computertechnik. Obwohl moderne ALUs aus Geschwindigkeitsgründen häufiger aus sehr komplexen kombinatorischen Logikschaltungen (Gate) aufgebaut sind, sollte es beruhigend sein zu wissen, dass genau dieselbe Funktionalität mit einem „dummen“ ROM-Chip dupliziert werden kann, der mit der entsprechenden Nachschlagetabelle programmiert ist (s).

Tatsächlich wurde dieser exakte Ansatz 1959 von IBM-Ingenieuren bei der Entwicklung der IBM 1401- und 1620-Computer verwendet, die Nachschlagtabellen zur Durchführung von Additionen anstelle von binären Addiererschaltungen verwendeten. Die Maschine wurde liebevoll „CADET“ genannt, was für „C . stand nicht A dd, D ist nicht E sogar T ry.“

Eine sehr verbreitete Anwendung für Nachschlagetabellen-ROMs sind Steuersysteme, in denen eine kundenspezifische mathematische Funktion dargestellt werden muss. Eine solche Anwendung findet sich in computergesteuerten Kraftstoffeinspritzsystemen für Automobilmotoren, bei denen sich das richtige Luft/Kraftstoff-Gemischverhältnis für einen effizienten und sauberen Betrieb mit mehreren Umgebungs- und Betriebsvariablen ändert.

Tests, die an Motoren in Forschungslabors durchgeführt werden, ermitteln diese idealen Verhältnisse für unterschiedliche Bedingungen von Motorlast, Umgebungslufttemperatur und barometrischem Luftdruck. Die Variablen werden mit Sensorwandlern gemessen, deren analoge Ausgänge mit einer A/D-Schaltung in digitale Signale umgewandelt und diese parallelen digitalen Signale als Adresseingänge für einen Hochleistungs-ROM-Chip verwendet werden, der so programmiert ist, dass er den optimalen digitalen Wert für das Luft/Kraftstoff-Verhältnis für . ausgibt eine dieser gegebenen Bedingungen.

Manchmal werden ROMs verwendet, um eindimensionale Nachschlagetabellenfunktionen bereitzustellen, um digitalisierte Signalwerte zu „korrigieren“, damit sie ihre Bedeutung in der realen Welt genauer darstellen. Ein Beispiel für ein solches Gerät ist ein Thermoelement-Transmitter , das das Millispannungssignal misst, das von einer Verbindung unterschiedlicher Metalle erzeugt wird, und ein Signal ausgibt, das direkt entsprechen dieser Sperrschichttemperatur.

Leider haben Thermoelement-Übergänge kein perfekt lineares Temperatur-/Spannungsverhalten, und daher ist das Rohspannungssignal nicht perfekt proportional zur Temperatur. Durch Digitalisierung des Spannungssignals (A/D-Wandlung) und Senden dieses digitalen Werts an die Adresse eines mit den erforderlichen Korrekturwerten programmierten ROMs könnte die Programmierung des ROMs einen Teil der Nichtlinearität der Temperatur-zu-Millispannungs-Beziehung des Thermoelements beseitigen, so dass die endgültige Ausgabe des Geräts wäre genauer.

Der gängige Instrumentierungsbegriff für eine solche Nachschlagetabelle ist ein digitaler Characterizer .

Eine andere Anwendung für Nachschlagetabellen ist die spezielle Codeübersetzung. Ein 128 x 8 ROM könnte beispielsweise verwendet werden, um 7-Bit-ASCII-Code in 8-Bit-EBCDIC-Code zu übersetzen:

Auch hier muss der ROM-Chip lediglich mit den erforderlichen Daten richtig programmiert werden, damit jede gültige ASCII-Eingabe einen entsprechenden EBCDIC-Ausgabecode erzeugt.

VERWANDTES ARBEITSBLATT:


Industrietechnik

  1. Begriffe und Konzepte des digitalen Speichers
  2. Nur-Lese-Speicher (ROM)
  3. Mikroprozessoren
  4. C Dynamische Speicherzuweisung
  5. Cervoz aktualisiert DDR4-2666-Speicher der nächsten Generation
  6. KI kann Magnetik nutzen, um menschenähnliche Effizienz zu erreichen
  7. C - Speicherverwaltung
  8. Dynamischer C++-Speicher
  9. Java 10 - Heap-Zuweisung
  10. Leiterlogik 202:Speicherorganisation