DE2144113A1 - Verfahren und Einrichtung zur Code-Umwandlung - Google Patents
Verfahren und Einrichtung zur Code-UmwandlungInfo
- Publication number
- DE2144113A1 DE2144113A1 DE19712144113 DE2144113A DE2144113A1 DE 2144113 A1 DE2144113 A1 DE 2144113A1 DE 19712144113 DE19712144113 DE 19712144113 DE 2144113 A DE2144113 A DE 2144113A DE 2144113 A1 DE2144113 A1 DE 2144113A1
- Authority
- DE
- Germany
- Prior art keywords
- codes
- code
- length
- memory
- bits
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M5/00—Conversion of the form of the representation of individual digits
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/40—Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
- H03M7/42—Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code using table look-up for the coding or decoding process, e.g. using read-only memory
Description
PATB
:pl. iKQ. K. HOLZEE
8Ö AUGSBÜBG
■2U4113
Ι·132
Augsburg, den 26.August 1971
N#y# 10 504, V.St.A.
Die Erfindung betrifft Verfahren zur Code-Umwandlung unter Verwendung eines Rechners mit einem Speicher zum
Umsetzen einer Folge von Eingabecodes fester Länge in einen Ausgabebitstrom aus Codes veränderlicher Länge, welche
die häufiger vorkommenden Eingabecodes darstellen, und aus
209812/1785
Codes fester Länge, welche jeweils mit den weniger häufig vorkommenden Eingabecodes identisch sind.
Ferner betrifft die Erfindung Verfahren zur Code-Umwandlung unter Verwendung eines Rechners mit einem Speicher
zur Erzeugung von Ausgabecodes fester Länge in Abhängigkeit von einem Eingabebitstrom, welcher häufig vorkommende
vorsatzfreie Codes veränderlicher Länge vermischt mit nicht häufig vorkommenden Codes fester Länge aufweist.
Schließlich betrifft die Erfindung Assoziativspeichereinrichtungen zur Durchführung der genannten Verfahren,
welche als Codierer-Decodierer Umwandlungen zwischen häufig vorkommenden Codes fester Länge und entsprechenden vorsatzfreien Codes veränderlicher Länge, jedoch keine Umwandlungen
der weniger häufig vorkommenden Codes fester Länge bewirken.
Kodieren mit veränderlicher Länge kann für Datenverdichtungszwecke verwendet werden, indem den Codes mit
kürzerer Länge die häufiger vorkommenden Worte bzw. Bytes zugeordnet werden, wodurch eine mittlere Codelänge erzielt
wird, welche geringer ist als die Länge von Bitketten von Codes fester Länge. Die Auswahl von Codes veränderlicher
Länge zur Darstellung der verschiedenen Codes fester Länge wird nach dem Ergebnis einer statistischen Analyse der
209812/1785
21U113
!.:.■·
verwendeten besonderen Datenbasis vorgenommen· Nimmt man beispielsweise an, daß die Daten in Bytes,d.h. jeweils acht Bits gleichzeitig verarbeitet werden sollen,so kann die am häufigsten vorkommende Byte-Konfiguration durch nur ein Bit in dem Kodierschema mit veränderlicher Länge dargestellt werden, während die am zweithäufigsten vorkommende Kombination durch zwei Bits dargestellt wird, usw. Die Codes veränderlicher Länge sind vorzugsweise vorsatzfrei, d.h. keiner dieser Codes kann den Anfang einer längeren Codebitkette bilden. Die bekannten Huffman-Codes, erfüllen beispielsweise diese Forderung.
verwendeten besonderen Datenbasis vorgenommen· Nimmt man beispielsweise an, daß die Daten in Bytes,d.h. jeweils acht Bits gleichzeitig verarbeitet werden sollen,so kann die am häufigsten vorkommende Byte-Konfiguration durch nur ein Bit in dem Kodierschema mit veränderlicher Länge dargestellt werden, während die am zweithäufigsten vorkommende Kombination durch zwei Bits dargestellt wird, usw. Die Codes veränderlicher Länge sind vorzugsweise vorsatzfrei, d.h. keiner dieser Codes kann den Anfang einer längeren Codebitkette bilden. Die bekannten Huffman-Codes, erfüllen beispielsweise diese Forderung.
Obgleich das Kodieren mit veränderlicher Länge für einen wirtschaftlichen Betrieb der verwendeten Einrichtungen
und für eine Verkürzung der erforderlichen Zeit zur übertragung und Speicherung von Daten, die in einem derartigen Codesystem
umgewandelt worden sind, nützlich ist, können die Daten in dieser Form nicht durch einen Rechner verarbeitet
werden und müssen deshalb zur Verarbeitung in ein Format fester Länge zurückverwandelt werden. Der Vorteil der
Verwendung einer Kodierung mit veränderlicher Länge zur Erzielung einer Datenverdichtung kann deshalb durch den
Zeitverlust bei der Durchführung von Code-Umwandlungen mittels herkömmlicher Verfahren aufgewogen werden. Wenn jedoch die
Code-Umwandlungsgeschwindigkeit vergrößert werden kann,wird dadurch der Nutzeffekt der Codierung mit veränderlicher
- 3 2098 12/178S
Länge sehr vergrößert und der Konstrukteur von Datenverarbeitungsanlagen
und Datenübertragungssystemen kann die sich daraus ergebenden Einsparungen in seine Überlegungen
einbeziehen. Es besteht ein großer Bedarf an Code-Umwandlungsschemata, die die Verwendung der Kodierung mit veränderlicher
Länge praktisch durchführbar machen.
Durch die Erfindung soll die Aufgabe gelöst werden, Umwandlungen zwischen Codes fester Länge und Codes veränderlicher
Länge wirtschaftlich und schnell auszuführen, damit
die Brauchbarkeit der Kodierung mit veränderlicher Länge für Datenverdichtungszwecke verbessert wird«
Im Sinne der Lösung dieser Aufgabe beinhaltet die Erfindung ein Verfahren zur Code-Umwandlung unter Verwendung
eines Rechners mit einem Speicher zum Umsetzen einer Folge von Eingabecodes fester Länge in einen Ausgabebitstrom aus
Codes veränderlicher Länge, welche die häufiger vorkommenden Eingabecodes darstellen, und aus Codes fester Länge, welche
jeweils mit den weniger häufig vorkommenden Eingabecodes identisch sind. Ein solches Verfahren ist gemäß der Erfindung
durch folgende Schritte gekennzeichnet:
a) Speichern von Darstellungen der in dem Bitstrom häufig vorkommenden Codes veränderlicher Länge in einem
ersten Teil des Speichers,
209812/1785
21U113
S"
b) Speichern von Darstellungen der jeweils den Codes veränderlicher Länge entsprechenden Codes fester
Länge in einem zweiten Teil des Speichers,
c) Vergleichen jedes der aufeinanderfolgenden Eingabecodes mit den in dem zweiten Speicherteil gespeicherten
Codes fester Länge, und
d) Ausführen einer der folgenden Tätigkeiten, je nach dem Ergebnis jedes derartigen Vergleiches:
dl) Falls ein Eingabecode mit einem der in dem
zweiten Speicherteil gespeicherten Codes fester Länge übereinstimmt:
Auslesen der Bits des entsprechenden, in dem ersten Speicherteil gespeicherten Codes veränderlicher
Länge als Elemente des Ausgabebitstroms, oder
d2)falls der Eingabecode nicht mit einem der in
dem zweiten Speicherteil gespeicherten Codes fester Länge übereinstimmt:
Serielles Auslesen der Bits dieses Eingabecodes als Elemente des AusgabebitStroms«
- 5 209812/1785
durch ein Verfahren zur Code-Umwandlung unter Verwendung eines Rechners mit einem Speicher zur Erzeugung von Ausgabecodes
fester Länge in Abhängigkeit von einem Eingabebitstrom
gelöst, welcher häufig vorkommende vorsatzfreie Codes veränderlicher Länge vermischt mit nicht häufig vorkommenden
Codes fester Länge aufweist. Dieses Verfahren ist gemäß der Erfindung durch folgende Schritte gekennzeichnet:
a) Speichern von Darstellungen der in dem Bitstrom häufig vorkommenden Codes veränderlicher Länge in einem
ersten Teil des Speichers,
b) Speichern von Darstellungen der jeweils den Codes veränderlicher Länge entsprechenden Codes fester
Länge in einem zweiten Teil des Speichers,
c) Vergleichen der Bits eines Eingabecodes mit den in dem ersten Speicherteil gespeicherten Codes
veränderlicher Länge, und
d) Ausführen einer der folgenden Tätigkeiten, je nach dem Ergebnis eines solchen Vergleiches:
dl) Falls der .Eingabecode mit einem der in dem ersten Speicherteil gespeicherten Codes
- 6 209812/1785
veränderlicher Länge übereinstimmt; Auslesen des entsprechenden Codes fester
Länge aus dem zweiten Speicherteil als Ausgabecode, oder
d2) falls der Eingabecode nicht mit einem der in dem ersten Speicherteil gespeicherten
Codes veränderlicher Länge übereinstimmt: Auslesen der Bits des Eingabecodes als
Elemente des Ausgabecodes.
Die Erfindung beinhaltet außerdem eine Assoziativ-Speichereinrichtung
zur Durchführung der genannten Verfahren, welche als Codierer-Decodierer Umwandlungen zwischen häufig
vorkommenden Codes fester Länge und entsprechenden vorsatzfreien Codes veränderlicher Länge, jedoch keine Umwandlungen
der weniger häufig vorkommenden Codes fester Länge bewirkt. Eine solche Einrichtung ist gemäß der Erfindung gekennzeichnet
durch:
a) Reihen von Speicherzellen zur Speicherung einer Vielzahl von Worten, wobei jedes Wort jeweils
einen der häufig vorkommenden Codes veränderlicher Länge zusammen mit einem entsprechenden Code der
häufiger vorkommenden Codes fester Länge sowie
- 7 -209812/1785
eine Längenangabe enthält, welche die Anzahl signifikanter Bits in dem entsprechenden Code
veränderlicher Länge angibt, wobei außerdem die Zellen zum speichern der Codes veränderlicher
Länge Drei-Zustands-Zellen sind, welche in einem Codefeld angeordnet sind, das für jede Reihe
eine gleiche Anzahl von Zellen enthält, und welche jeweils einen signifikanten 1- oder O-Binärzustand
oder einen "nicht beachten"-Zustand annehmen können, dessen gespeichertes Bit nicht signifikant ist,
b) eine Argument-Speichereinrichtung mit einem Teil, welcher bei als Dekodierer arbeitender Assoziativ-Speichereinrichtung
Bitketten speichert, die in einer Folge von Codes veränderlicher Länge und Codes
fester Länge enthaltender Eingabecodes enthalten sind, und mit einem weiteren Teil, welcher bei als
Codierer arbeitender Assoziativ-Speichereinrichtung die Bits eines umzuwandelnden Codes fester Länge
speichert, wobei der genannte eine Teil der Argumentspeichereinrichtung wahlweise die in ihm gespeicherten
Bits fortschreitend in Richtung abnehmenden Stellenwerts verschiebt,
c) eine Datenspeichereinrichtung mit einem Teil, welcher
- 8 209812/1785
bei als Codierer arbeitender Assoziativ-Speichereinrichtung Bits speichert, welche aus den Zellen
in dem, die Codes veränderlicher Länge speichernden Speicherfeld ausgelesen worden sind, und mit einem
weiteren Teil, welcher bei als Decodierer arbeitender Assoziativ-Speichereinrichtung Bits speichert,
welche aus den Zellen in dem, die Codes fester Länge speichernden Speicherfeld ausgelesen worden sind,
und schließlich mit einem Längenzähler zur Speicherung der aus den betreffenden Speicherzellen während der
Codier- und Decodieroperationen ausgelesenen Längenangaben, wobei der genannte eine Teil der Datenspeichereinrichtung
wahlweise die in ihm gespeicherten Bits fortschreitend in Richtung abnehmenden Stellen
werts verschiebt,
d) eine Decodier-Steuereinrichtung, welche während normaler Decodieroperationen die serielle Verschiebung
von Eingabecodebits in die Argument-Speichereinrichtung v
hinein, aus dieser heraus und durch diese hindurch bewirkt, was mindestens teilweise durch die in dem
Längenzähler gespeicherten Daten bestimmt wird, und welche das Auslesen von Codes fester Länge aus der
Datenspeichereinrichtung als Ausgabecodes in Abhängigkeit vom Vorhandensein von Codes veränderlicher Länge
- 9 209812/1785
in der Argument-Speichereinrichtung bewirkt, welche mit in den gespeicherten Worten enthaltenen Codes
veränderlicher Länge übereinstimmen, wobei die Decodier-Steuereinrichtung außerdem spezielle
Vorrichtungen aufweist$ die immer dann, wenn die
Inhalte der Argument-Speichereinrichtung nicht mit irgendeinem der Codes veränderlicher Länge in der
Vielzahl gespeicherter Worte übereinstimmen und dadurch das Vorhandensein eines der weniger häufig
vorkommenden Codes fester Länge in den Serien von Eingabecodes anzeigen, bewirken, daß dieser betreffende
Code fester Länge als Ausgabecode direkt aus der Argument-Speichereinrichtung ausgelesen wird,
und
e) eine Codier-Steuereinrichtung, welche während Codieroperationen das Auslesen von Codebits aus
dem, Codes variabler Länge speichernden Feld und das Einbringen derselben in die Datenspeichereinrichtung
in Abhängigkeit von dem Vorhandensein von Codes fester Länge in der Argument-Speichereinrichtung,
welche mit den in den gespeicherten Worten enthaltenen Codes fester Länge übereinstimmen,
bewirkt,und welche das serielle Hindurchschieben ausgewählter Anzahlen dieser Bits von Codes veränderlicher
- 10 -
209812/1785
Länge durch die Datenspeichereinrichtung und entsprechend der in dem Längenzähler gespeicherten Daten das
Auslesen aus der Datenspeichereinrichtung als Ausgabecodes bewirkt, wodurch nicht signifikante Bits aus
diesen ausgelesenen Codes ausgeschlossen bleiben, wobei die Codier-Steuereinrichtung außerdem
spezielle Vorrichtungen aufweist, die immer dann, wenn die Inhalte der Argument-Speichereinrichtung
nicht mit einem der Codes fester Länge in der Vielzahl von gespeicherten Worten übereinstimmen und dadurch
das Vorhandensein eines der weniger häufig vorkommenden Codes fester Länge in der Argument-Speichereinrichtung
anzeigen, bewirken, daß dieser betreffende Code fester Länge als Ausgabecode direkt aus der Argument-Speichereinrichtung
ausgelesen wird.
Gemäß der Erfindung wird ein neuartiger Drei-Zustands-Assoziativ-Speicher
für Codier- und Decodierzwecke verwendet. Dieser Speicher weist ein Feld zum Speichern von Codes
veränderlicher Länge, im folgenden VL-Codes genannt, sowie ein Feld zum Speichern der entsprechenden Codes fester Länge,
welche oft auch als "Identitäts"-Codes oder ID-Codes bezeichnet werden und deshalb im folgenden ID-Codes genannt sind, und
ein "Längen"-FeId auf, in welchem eine Darstellung der Anzahl
signifikanter Bits in jedem der VL-Codes gespeichert ist.
- 11 209812/1785
2H4113
Diejenigen Speicherzellen in dem VL-Codefeld, welche keine
signifikanten Codebits speichern, sind auf einen "nicht beachten"-Zustand eingestellt, in welchem sie gegenüber
dem Abragen während der innerhalb des Speichers ausgeführten Zuordnungs- bzw. Suchoperationen wirksam verdeckt sind.
Das Vorhandensein des obengenannten "Längen"-Feldes in dem Assoziativ-Speicher ermöglicht es, daß dieser als Codierer
wahlweise eine Parallelbiteingabe fester Länge in eine Serienbitausgabe veränderlicher Länge umwandeln bzw. als Decodierer
eine serielle Biteingabe veränderlicher Länge in eine Parallelbitausgabe fester Länge zurückverwandeln kann. Im Codierbetrieb
gibt der aus dem "Längen"-Feld ausgelesene Wert die Anzahl gültiger Bits an,die nach dem Durchführen der Zuordnung
aus dem Datenregister seriell auszulesen sind, wodurch dieses Auslesen auf den gewünschten VL-Code beschränkt wird, so daß
die in den übrigen Bitstellen, falls vorhanden, des Datenregisters
gespeicherten "nicht beachten"-Bits ausgeschlossen bleiben. Im Decodierbetrieb gibt der "Längen-"Wert die Anzahl
der Bitstellen an, um welche die Inhalte des Argument-Registers nach dem Ausführen der Zuordnung verschoben werden
müssen, um die Bits des nächstfolgenden VL-Codes in die für die Zuordnung richtige Ordnung zu bringen.
Die Verwendung eines vollkommen assoziativen Speichers
- 12 -
209812/1785
21U113
mit jeweils einer Reihe bzw. einem "Wort" von Speicherzellen für jede mögliche ID-Codebit-Konfiguration gestattet das
Erzielen maximaler Datenverdichtung, Das kann jedoch einen ziemlich großen Assoziativ-Speicher erforderlich machen.
Wenn, beispielsweise, die ID-Codelänge 1 Byte (8 Bits)
beträgt, so muß der Assoziativ-Speicher so viele Worte enthalten, wie 8-Bit-Code-Kombinatinnen vorhanden sind,
bzw, 256 Worte, um eine maximale Datenverdichtung zu
erreichen. Es hat sich jedoch herausgestellt, daß man bei den meisten Datenbasen einen geringen Teil der Verdichtung
opfern und dadurch eine große Einsparung an Assoziativ-Speicher-Kosten
erzielen kann. Bei gegebener Datenbasis beispielsweise kann man feststellen, daß sehr wenig an Datenverdichtung
verloren geht, wenn man einen Assoziativ-Speicher-Codierer Decodierer verwendet, welcher, beispielsweise die 15O am
häufigsten vorkommenden ID-Codebit-Kombinationen entsprechend den 150 kürzesten VL-Codes verarbeitet und die verbleibenden
156 ID-Codebit-Kombinationen ohne Code-Umwandlung verarbeitet.
Durch die Erfindung soll deshalb weiterhin die Aufgabe gelöst werden, die Kategorie zu erkennen, in welche ein
bestimmter ID-Code fällt, und diesen in Abhängigkeit von dieser Peststellung mit oder ohne VL-Codierung zu behandeln.
Das ist im folgenden unter "Kopier-Kennzeichen" beschrieben.
- 13 209812/1785
Ein Ausführungsbeispiel zur Durchführung des Verfahrens nach der Erfindung ist in den Zeichnungen dargestellt und
wird im folgenden näher beschrieben. Es zeigen:
Pig, 1 ein Schema eines Assoziativ
speichers mit Drei-Zustands-Speicherzellen und mit einem Längenfeld
zur Durchführung "normaler" Codier- und Decodieroperationen,
Fig. 2 ein Schema der in dem Assoziativ
speicher in Pig, I verwendeten Schaltung und der dem Speicher
zugeordneten Steuereinrichtung, außerdem die Art der Verwendung einer Drei-Zustands-Speicherzelle,
die Pig, 3A
und 3B aneinandergefügt, einen ausführ
licheren Schaltplan des Assoziativ-Speichers und der diesem zugeordneten
Steuereinrichtung zur Durchführung der in Pig, I allgemein angegebenen
Codier- und Decodieroperationen,
209812/1785
Pig.4 ein Plußdiagramm des Betriebes
der in den Pig· 3A und 3B dargestellten Einrichtung beim Kodieren,
Fig. 5 ein Plußdiagramm der in den Pig. 3A
und 3B dargestellten Einrichtung beim decodieren,
Fig. 6 ein Diagramm wie in Fig. 1, aus
welchem die gemäß der Erfindung vorgenommenen Abwandlungen zum Erreichen des "Kopier"-Kennzeichens
dargestellt sind,
Fig. 7 einen Teil der Assotiativ-Speicher-
Steuereinrichtung mit Kopier-Kennzeichen,
die Fig. 8A
bis 8C aneinandergefügt, einen Schaltplan
einer Einrichtung, bei welcher ein abgewandelter Assoziativ-Speicher
geringerer Größe mit dem genannten Kopier-Kennzeichen verwendet wird,
- 15 -
209812/1785
2U4113
Fig. 9 ein Flußdiagramm des Betriebes der
in den Fig. 8A bis 8C dargestellten Einrichtung beim Codieren, und
Figo 10 ein Flußdiagramm des Betriebes
der in den Fig. 8A bis 8C dargestellten Einrichtung beim Decodieren.
Im folgenden ist zunächst ein System ohne "Kopier"-Kennzeichen
beschrieben.
Die Fig. 1 bis 5 zeigen das Grundsystem, welches zunächst verstanden werden muß, bevor das im folgenden beschriebene
"Kopier"-Kennzeichen hinreichend verstanden werden kann. Bei der Einrichtung gemäß Fig. 1 bis 3B weist ein Assoziativspeicher
AS ein "Wort" bzw. eine Reihe von Zellen für jede mögliche ID-Codebitkombination auf. Wie eingangs bereits
erwähnt, wird im folgenden für den Ausdruck "Code fester Länge" der Ausdruck ID-Code verwendet. Nimmt man demzufolge
an, daß die ID-Codelänge 8 Bits bzw. 1 Byte beträgt, so
gibt es 256 mögliche Codebitkombinationen. Deshalb sind
256 Informationsworte in den verschiedenen adressierbaren Speicherplätzen innerhalb des Assoziativ-Speichers gespeichert,
- 16 209812/1785
21U113
wie in Pig. 1 angegeben. Das VL-Codefeld (VL-Code bedeutet,
wie eingangs angegeben, Code veränderlicher Länge) ist so lang, daß es den VL-Code größter Länge, für welchen bei
dem gewählten Beispiel eine Länge von 16 Bits angenommen worden ist, aufnehmen kann. Dieser Teil des Assoziativspeichers
ist mit VL-Codes geladen, welche jeweils den ID-Codes entsprechen, die an den gleichen Wortadressen
in dem ID-PeId des Speichers gespeichert sind. Die VL-Codes
sind vorsatzfrei, d.h. keiner dieser Codes bildet den Anfang einer längeren Codebitkette.
Die VL-Codes sind rechtsbündig gespeichert, so daß die signifikanten Bits eines jeden Codes die am weitesten
rechts gelegenen Stellen in dem VL-PeId einnehmen« Diejenigen Speicherzellen in diesem Feld, die nicht zum Speichern
signifikanter Bits verwendet werden, sind auf ihren "nicht beachten"-Zustand gesetzt, was im folgenden noch
näher erläutert ist. Der "nicht beachten"-Zustand ist in Fig. 1 durch ein "X" dargestellt. Demzufolge enthält die
erste Reihe von Zellen in dem VL-PeId zwei signifikante, d.h. gültige Bits "1" und "0" sowie vierzehn "nicht beachten"-Bits,
welche bei dieser Eingabe in dieser Reihenfolge von rechts nach links angeordnet sind. Der entsprechende
ID-Code in diesem besonderen Beispiel ist mit 00000000 ange-
- 17 -
209812/1785
21U113
nommen. Diese Beziehung ist selbstverständlich nicht notwendigerweise
für sämtliche Datenbasen wahr« Das Längen-Feld enthält eine 4-Bit-Eingabe 0010, welche angibt, daß
in der entsprechenden VL-Codeeingabe zwei signifikante Bits vorhanden sind. In gleicher Weise zeigt die Schlußeingabe
in diesem Längenfeld an, daß in der letzten VL-Codeeingabe vierzehn signifikante Bits vorhanden sind»
Es ist nicht notwendig, daß die Eingaben innerhalb eines Feldes des Assoziativ-Speichers mit Bezug aufeinander in
einer bestimmten Ordnung angeordnet sind, so lange jede Eingabe auf die entsprechenden Eingaben in anderen Feldern
richtig ausgerichtet ist.
Jede geeignete Form eines Assoziativspeichers kann verwendet werden, vorausgesetzt, daß der betreffende Speicher
innerhalb seines VL-Codespeicherbereiches Drei-Zustands-Speieherzellen
aufweist. Für die im Rahmen der Erfindung zu erfüllenden Zwecke eignet sich ein Assoziativspeicher
der in der US-PS 3 317 898 beschriebenen Art, welcher gemäß der Darstellung in Fig. 2 der beigefügten Zeichnungen so
abgewandelt ist, daß ein dritter bzw« "nicht beachten"-Zustand
für diejenigen Speicherzellen vorhanden ist, welche diese Eigenschaft verlangen.
In Fig· 2 ist eine typische Drei-Zustands-Assoziativ-
- 18 209812/1785
Speicherzelle innerhalb eines gestrichelten Rechtecks 20 dargestellt. Diese Zelle 20 weist ein Flipflop 22 zum
Speichern einer binären 1 oder einer binären 0 auf. Wenn das gespeicherte Bit signifikant ist, wird ein anderes Flipflop 21I
auf seinen "1"-Zustand gesetzt. Wenn das gespeicherte Bit
jedoch nicht signifikant ist, d.h. wenn sich die Zelle 20 in ihrem "nicht beachten"-Zustand befindet, wird das
Flipflop 24 auf 0 zurückgestellt. Die Auswirkung dieses Betriebsverhaltens ist im folgenden näher erläutert.
Zum Einschreiben einer Information in die Zelle 20 wird eine von drei Schreib-Eingangsleitungen 26, 28 und 30
für diese Bitstelle zusammen mit einer Schreib-Wahlleitung erregt, welch letztere dem betreffenden Speicherwort, in
dem sich die Zelle 20 befindet, zugeordnet ist. Wenn, beispielsweise, die Leitungen 26 und 32 gleichzeitig erregt
sind, so erzeugt die Koinzidenz der Signale an einer UND-Schaltung 34 ein Signal, welches das Flipflop 22 auf
seinen nlw-Zustand setzt. Wenn die Leitungen 28 und 32
gleichzeitig erregt sind, gibt eine UND-Schaltung 36 ein
Signal ab, welches das Flipflop 22 auf seinen "O"-Zustand setzt. Jedesmal dann, wenn entweder durch die UND-Schaltung
oder durch die UND-Schaltung 36 ein Signal zu dem Flipflop geleitet wird, wird dasselbe Signal auch durch eine ODER-Schaltung
38 hindurchgeleitet und an ein Flipflop 24 ange-
- 19 209812/1785
legt, welches durch dieses Signal auf seinen "!."-Zustand
gesetzt wird. Die "1-Ausgangssignale der Flipflops 22 und
werden an eine mit drei Eingängen versehene UND-Schaltung angelegt. Das "O"-Ausgangssignal des Flipflops 22 und das
"1"-Ausgangssignal des Flipflops 24 werden an eine mit drei Eingängen versehene UND-Schaltung 42 angelegt. Das dritte
Eingangssignal der UND-Schaltung 40 kommt von einer Abzweigung einer "0"-Zuordnungsleitung 44, während das dritte Eingangssignal
an der UND-Schaltung 42 von einer Abzweigung einer "1"-Zuordnungsleitung 46 kommt. Die Zuordnungsleitungen
und 46 werden wahlweise mit Impulsen versorgt, je nach dem, ob in der betreffenden Bitstelle nach einer "1" oder nach
einer "0" gesucht wird.
Die Ausgangssignale, falls vorhanden, der beiden UND-Schaltungen 40 und 42 werden an eine Nichtübereinstimmungsleitung
48 abgegeben. Für jedes Wort des Assoziativspeichers ist eine solche Nichtübereinstimmungsleitung vorgesehen.
Die Nichtübereinstimmungsleitung 48 stellt, wenn sie erregt ist, einen Übereinstimmungsanzeiger 50 für das
betreffende Wort auf seinen "O"-Zustand zurück. Eine Nichtübereinstimmung
kann vorliegen, wenn die Zelle 20 in dem Augenblick, in welchem die "!"-Zuordnungsleitung 46 mit
Impulsen versorgt ist, eine "0" speichert, oder wenn die Zelle 20 in dem Augenblick, in welchem die "0"-Zuordnungs-
- 20 209812/1785
leitung 44 mit Impulsen versorgt ist, eine "1" speichert, vorausgesetzt, daß die Zelle nicht in ihrem "nicht beachten"-Zustand
ist. Die sich ergebende Koinzidenz von Eingangssignalen entweder an der UND-Schaltung 40 oder an der
UND-Schaltung 42 führt zur Abgabe eines Ausgangssignals,
an die Nichtüberexnstimmungsleitung 48O
Um die Zelle in ihren "nicht beachten"-Zustand zu bringen,
wird eine Gleichstrom-Schreib-Eingangsleitung 30 gleichzeitig mit der Schreib-Wahlleitung 32 erregt. Das hat zur Folge,
daß eine UND-Schaltung 52 ein Signal weiterleitet, welches das Flipflop 24 auf seinen "O"-Zustand zurückstellt. Wenn
das Flipflop 24 in seinem "O"-Zustand ist, ist eines der Eingangssignale jeweils an den UND-Schaltungen 40 und 42
nicht vorhanden, wodurch diese beiden Torsehaltungen
gesperrt und damit nicht in der Lage sind, Signale an die Nichtüberexnstimmungsleitung 48 weiterzugeben. Wenn aber
die Zelle 20 in ihrem "nicht beachten"-Zustand ist, wobei ihr Flipflop 24 auf "0" gesetzt ist, so wirkt sie immer so,
als ob eine Übereinstimmung vorgelegen hat, unabhängig davon, ob diese Zelle auf der "1"- oder "0"-Zuordnungsleitung 46
oder 44 abgefragt worden ist; dadurch ist die Zelle 20 wirksam gegen ein Abfragen abgedeckt.
Die Assoziativ-Speicher-Steuerschaltung ist nur bruch-
- 21 209812/1785
stückhaft,d.h. soweit es für den vorliegenden Zweck erforderlich
ist, innerhalb eines gestrichelten Rechteckes 56 in Fig. 2 dargestellt. Weitere Einzelheiten dieser Steuerschaltung
sind in der obengenannten US-PS 3 317 898 beschrieben,,
Wenn eine Information in eine ausgewählte Wortadresse des Assoziativ-Speichers eingeschrieben werden soll, wird eine
Schreibleitung 58 erregt, welche einer Reihe von Schreib-Wahl-Torschaltungen,
z.B. 60, von welchen jeweils eine für jedes Wort vorhanden ist, mit einem Eingangssignal versorgt.
Wenn ein Wortwahlsignal an den anderen Eingang dieser Torschaltung angelegt ist, so wird die entsprechende Schreib-Wahlleitung,
beispielsweise 32, erregt und versetzt die Speicherzellen dieses Wortes in die Lage, Informationen
von den Schreib-Eingangsleitungen, beispielsweise 26, 28 und 30, zu empfangen.
Wenn eine "Zuordnungs"- oder Suchoperation auszuführen
ist, werden die übereinstiiranungsanzeiger, beispielsweise 50, für die verschiedenen Worte durch einen an eine Rückstellleitung
62 angelegten Impuls zuerst auf ihre "!"-Zustände zurückgestellt. Danach werden die verschiedenen Zuordnungsleitungen, beispielsweise 44 und 46, zum Abfragen der
betreffenden Speicherzellen wahlweise mit Impulsen versorgt. Wenn eine oder mehrere Zellen in einem Wort ein Nichtüber-
- 22 -
209812/1785
2U4113
einstimmungssignal auf der entsprechenden Nichtübereinstimmungsleitung,
beispielsweise 48, erzeugen, wird der Übereinstimmungsanzeiger, z.B. 50, für dieses Wort auf "0" gesetzt
und dadurch ein Eingangssignal von einer Lese-Wahl-Torschaltung 64 für dieses Wort weggenommen und dadurch verhindert,
daß das betreffende Wort bei der Abfragung ausgelesen wird.
Zum Auslesen des übereinstimmenden Wortes wird die Leseleitung 66 erregt. Nimmt man an, daß das übereinstimmende
Wort dem übereinstimmungsanzeiger 50 zugeordnet ist, so
empfängt dieser kein Nichtübereinstimmungssignal und bleibt demzufolge in seinem "!."-Zustand, auf welchen er anfänglich
gesetzt war. Die UND-Schaltung 64 wird deshalb in der Lage sein, das Lesesignal von der Leitung 66 zu der Lese-Wahlleitung
68 weiterzuleiten. Das Signal auf der lLeitung 68 bewirkt, daß zwei UND-Schaltungen 70 und 72 die Daten aus
der Speicherzelle 20 in dem ausgewählten Speicherwort auslesen. In Abhängigkeit von dem Zustand des Speicherflipflops 22
wird ein Signal über die UND-Schaltung 70 oder über die UND-Schaltung 72 zu der "1"- oder "O"-Lese-Ausgangsleitung
oder 76 weitergeleitet.
Wenn die Zelle 20 in einem "nicht beachten"-Zustand ist, wobei der Flipflop 24 auf 0 gesetzt ist, so hat diese Ein-
- 23 209812/1785
Stellung keine Auswirkung auf das Auslesen der in dem Flipflop 22 gespeicherten Daten. Der 1- oder O-Wert, welcher
in diesem Zeitpunkt zufällig in dem Flipflop 22 gespeichert ist, wird unabhängig davon ausgelesen, ob die Zelle 20
in ihrem "nicht beachten"-Zustand ist oder nicht. Weitere, im folgenden näher beschriebene Vorkehrungen sind getroffen,
damit diejenigen Bits, die aus den im "nicht beachten"-Zustand befindlichen Zellen ausgelesen werden, unbeachtet bleiben.
Die "nicht beachten"-Einstellung sperrt lediglich die Nichtübereinstimmungsschaltungen 40 und 42 der Zelle» Sie hat
jedoch keine Auswirkung auf die Leseschaltungen 70 und 72 dieser Zelle.
Der Betrieb der in den Fig. 3A und 3B dargestellten Einrichtung wird unter Bezugnahme auf die in den Fig. 4
und 5 dargestellten Flußdiagramme beschrieben. Zunächst wird der Codierbetrieb betrachtet, bei welchem ein ID-Code
in einen entsprechenden VL-Code umgewandelt wird. Es wird angenommen, daß der Assoziativ-Speicher AS, Fig. 3A, vorher
mit den nötigen ID- und VL-Codeeingaben zusammen mit den jeweils zugehörigen "Längen"-Eingaben zur Angabe der Anzahl
signifikanter Bits in jeder VL-Codebitkette, geladen worden ist.
Als Beispiel wird angenommen, wie oben bereits erwähnt,
- 24 209812/1785
daß die ID-Codes eine Länge von 8 Bits, d«h. von einem Byte aufweisen und daß die VL-Codes eine Länge von 1 Bit bis
16 Bits haben können. Zur Darstellung einer Längenzählung bis zu 16 Bits, bei welcher "16" durch 0000 dargestellt ist,
genügt eine 4-Bit-Längendarstellung, Demgemäß weist der
Assoziativspeicher AS, Pig, 3A, ein 16-Bit-Peld zum speichern von VL-Codes, ein 8-Bit-Peld zum speichern der ID-Codes,
welche jeweils eine Länge von 1 Byte haben, und ein 4-Bit-Längenfeld
auf, in welch letzterem jede Eintragung ein Maß für die Anzahl signifikanter Bits in dem entsprechenden
VL-Code ist. Bei der in den Pig» 3A und 3B dargestellten
Ausführungsform ist weiterhin angenommen, daß sämtliche
möglichen ID-Bytekonfigurationen (insgesamt 256) durch den Assoziativ-Speicher AS aufgenommen werden.
Vor dem Beginn der Codieroperation wird die Anzahl der zu kodierenden ID-Bytes in einen Bytezähler 80, Pig, 3B,
eingebracht. Eine Datenquelle bzw. Eingabeeinheit, welche
diese Anzahl von Bytes liefert, sei vorhanden. Wenn die Eingabeeinheit mit anderer Geschwindigkeit als der Assoziativspeicher
arbeitet, wird eine geeignete Pufferung vorgesehen. Die Einstellung des Bytezählers 80 wird, so wie die ID-Bytes
kodiert werden, fortschreitend vermindert, und die laufende Einstellung wird durch einen Decodierer 82 in ein "Null"- oder
- 25 -
209812/1785
21U113
"nicht Null"-Ausgangssignal umgesetzt. Ein Null-Ausgangssignal
aus dem Decodierer 82 beendigt die Kodieroperation. Das ist im folgenden noch näher erläutert.
Bei der Beschreibung des Kodierbetriebes wird auf Fig. 4 in Verbindung mit den Fig. 3A und 3B Bezug genommen.
Die in den Fig. 3A und 3B schematisch dargestellte Einrichtung stellt lediglich eine zur Erläuterung herangezogene
Ausführungsform dar, welche nicht notwendigerweise mit der
Form identisch ist, in welcher die Einrichtung nach der Erfindung für eine kommerzielle Verwendung hergestellt wird. Die
Kodieroperation wird durch Anlegen eines "Start"-Impulses an
einen Draht 90 eingeleitet, welcher zu einer Kodiertaktschaltung führt.Dieser Start-Impuls gelangt über eine ODER-Schaltung
92 zu einem monostabilen Multivibrator 9^,welcher dadurch
eingeschaltet wird und einen Impuls auf einem Draht El erzeugt, welcher durch ein Kabel 96, Fig» 3B und 3A, hindurchgeführt
ist. Der Impuls auf dem Draht El wird einer Torschaltung 98, Fig. 3A, zugeführt, welche dadurch freigegeben
wird und ein Byte aus der Eingabeeinheit (nicht dargestellt) zu einem ID-Argument-Register 100 leitet. Das Argument-Register
100 enthält nun das Byte, welches zu kodieren ist. Der gleiche Impuls wird außerdem von dem Draht El über eine
Verzögerungsschaltung 102 der Eingabeeinheit zugeführt, welche daraufhin das nächste ID-Code-Byte an die zu der
- 26 209812/1785
2U4113
Torschaltung 94 führenden Eingabeleitungen abgibt. Der
El-Impuls gelangt außerdem über eine ODER-Schaltung 106,
Fig. 3A, zu dem auch in Fig. 2 dargestellten Draht 62, bei dessen Erregung die übereinstimmungsanzelger in der
Assoziativ-Speicher-Steuerschaltung 56 auf ihren M!."-Zustand
zurückgestellt werden. Die Einrichtung ist nun bereit, die Kodierung vorzunehmen.
Wenn der monostabile Multivibrator 94, Fig. 3B, abschaltet, schaltet er einen monostabilen Multivibrator
ein. Dadurch wird ein Impuls auf einem Draht E2 erzeugt, welcher über das Kabel·96 zu dem Argument-Register 100 hingeführt
ist, damit entsprechend der Einstellung des ID-Argument-Registers 100 ein Muster von Einsen und Nullen auf
die Zuordnungsleitung 110 gebracht wird. Diese Zuordnungsleitungen 110 haben die gleiche Aufgabe wie die mit Bezug
auf Fig. 2 beschriebenen Zuordnungsleitungen 44 und 46, ausgenommen, daß sie in diesem Fall mit den Speicherzellen
in dem ID-Code-Bereich des Assoziativ-Speichers AS verbunden sind. Dadurch wird bewirkt, daß die verschiedenen ID-Codes
aufgesucht werden, um das Wort zu finden, welches den VL-Code enthält, der dem ID-Code in dem Argument-Register 100 entspricht.
Wenn der monostabile Multivibrator 108, Fig. 3B, ab-
- 27 209812/1785
2H4113 IS
schaltet,schaltet er den nächsten monostabilen Multivibrator
ein, welcher einen Impuls auf einem Draht E3 im Kabel 96
erzeugt. Dieser Impuls auf dem Draht E3 gelangt über eine
ODER-Schaltung II6, Fig. 3A, zu der Leseleitung 66 der Assoziativ-Speicher-Steuerschaltung 56, Fig. 3A und 2. Eine
Impulsabgabe an die Leitung 62 bewirkt ein Auslesen des übereinstimmenden Wortes in dem Assoziativ-Speicher über
ein Kabel II8, Fig. 3A, in das Datenregister 120 hinein.
Dadurch wird die in den verschiedenen Feldern dieses übereinstimmenden
Wortes gespeicherte Information in das Datenregister 120 eingebracht. Diese Information enthält die
16 Bits in dem VL-Code-Bereich des übereinstimmenden Wortes plus die 8 Bits in dem ID-Code-Bereich des Wortes sowie
die 4 Bits in dem Längenfeld dieses Wortes. In dem gleichen Augenblick, in dem diese Tätigkeit ausgeführt wird, liegt
der Impuls auf dem Draht E3 über eine ODER-Schaltung 122 auch an dem Bytezähler 80 an und vermindert diesen.
Wenn der monostabile Multivibrator 114 abschaltet, gibt er über eine ODER-Schaltung 124 einen Impuls an einen
monostabilen Multivibrator 126 ab und schaltet diesen ein. Letzterer gibt einen Impuls über eine Leitung E4 an eine
Torschaltung 128, Fig. 3A, ab und versetzt diese dadurch in die Lage, das rechtsbündige Bit aus dem VL-FeId des
Datenregisters 120 an die Ausgabeeinheit weiterzuleiten.
- 28 -
209812/1785
2H4113
Wenn das rechtsbündige Bit des VL-Codes auf diese Weise ausgegeben worden ist, ist es erforderlich, die Inhalte
des VL-Peldes im Datenregister 120 um eine Bitspeicherstelle nach rechts zu verschieben. Das findet statt, wenn der
monostabile Multivibrator 126 abschaltet und dadurch einen monostabilen Multivibrator 130 einschaltet, welcher auf
einem Draht E5 einen Impuls erzeugt. Dieser Impuls auf dem Draht E5 wird an eine nicht dargestellte Verschiebeeinrichtung
angelegt und bewirkt die Verschiebung des in dem Datenregister 120 gespeicherten VL-Code-Bits um ein Bit nach rechts,
was durch den Pfeil an dem Draht E5 in Pig. 3A angedeutet ist«
Der den 4-Bit-Längencode speichernde Teil des Datenregisters
120 wird als Längenzähler verwendet. Bei jeder Rechtsverschiebung der in dem Register 120 gespeicherten
VL-Code-Bits wird diese Längenzählung um 1 vermindert. Diese Verminderung des Längenzählers wird im vorliegenden
Fall durch den E5-Impuls bewirkt, welcher über eine ODER-Schaltung 132 zu einer Leitung 13^ gelangt, die zu einer
nicht dargestellten Einrichtung zur Verminderung des in dem Längenzähler (letzte 4 Bits des Datenregisters 120)
gespeicherten Wertes führt.
- 29 -
209812/1785
21U113
3c
Es wird nun ein Test durchgeführt, um festzustellen, ob die Längenzählung auf 0 vermindert worden ist, deh.
ob sämtliche signifikanten Bits des laufenden VL-Codes aus dem Datenregister 120 hinausgeschoben worden sind. Wenn der
monostabile Multivibrator 130 abschaltet, Fig. 3B, schaltet ein monostabiler Multivibrator 136 ein und gibt einen
Impuls an einen Draht E6 ab, welcher zu einer Torschaltung in Pig. 3B führt. Die Torschaltung 138 ist mit Null (O)-
und "nicht Null"-(Ö~)-Eingangsleitungen verbunden, die von der UND-Schaltung l40 hergeführt sind,, an welche die
O-Auf-gangssignale in einer der vier Stellen des Längenzählers
angelegt sind. Wenn die UND-Schaltung 140 kein Ausgangssignal abgibt, was bedeutet, daß mindestens eines der Bits in
dem Längenzähler auf 1 ist, legt ein Inverter 142 über die nicht-Null-Eingangsleitung 144 eine Spannung an die Torschaltung
138 an. Wenn sämtliche Bits des Längenzählers auf Null sind, ist die Null-Eingangsleitung 146 an der
Torschaltung I38 erregt. Nimmt man im vorliegenden Fall an,
daß mehr als ein Codebit aus dem Datenregister 120 hinauszuschieben ist, so empfängt die Torschaltung 138 ein
Nicht-Null-Eingangssignal, wodurch ein von der Torschaltung
wegführender Ausgangsdraht 147 erregt wird. Der Draht 147 ist über Kabel 148 und 150 an die ODER-Schaltung 124 angeschlossen,
so daß der Nicht-Null-Längenzählimpuls an dem
monostabilen Multivibrator 126 anliegt. Dadurch wird ein neuer
- 30 209812/1785
21U113
Betriebszyklus eingeleitet, in welchem die monostabilen Multivibratoren 126, I30 und I36 nacheinander erregt werden.
Während dieses Vorganges erfolgt das Auslesen eines anderen Bits aus der rechtsbündigen Stelle in dem VL-Code-Feld des
Datenregisters 120, eine sich daraus ergebende 1-Bit-Rechtsverschiebung
der übrigen Bits in diesem Feld und ein Testen der Längenzählereinstellung, um festzustellen,
ob sie vollständig auf Null verringert worden ist.
Die Operationsschritte, bei welchen die monostabilen Multivibratoren 126, 130 und I36 erregt werden und demzufolge
Impulse an die Drähte E*J, E5 und E6 abgegeben werden, wird
so oft wie nötig wiederholt (Fig. 4), bis die Längenzählung
auf Null vermindert ist. An dieser Stelle ist das letzte signifikante Bit aus dem VL-Code-Feld des Datenregisters
ausgelesen worden und die übrigen Bits in diesem Feld sind nicht von Interesse, da sie aus Speicherzellen stammen,
welche jeweils im "nicht beachten"-Zustand sind, oder da sie während des Verschiebungsvorganges in das Register
eingebracht worden sind. Die Operation verläßt nun das Rechtverschiebungsunterprogramm. Wenn die Torschaltung I38,
Fig. 3B, durch den Impuls auf dem Draht E6 aktiviert ist, ist die 0-Eingangsleitung 146 in Abhängigkeit von einer
vollständigen Nullstellung des Längenzählers erregt, und
- 31 -
209812/1785
21U113
eine Ausgangsleitung 154 der Torschaltung I38 ist demzufolge
erregt und gibt ein Eingangssignal jeweils an UND-Schaltungen 156 und 158, Fig. 3B, ab. Ein weiteres Eingangssignal*
wird der UND-Schaltung 156 von einem Decodierer 82 über eine "^-Ausgangs leitung I60 nur dann geliefert, wenn die
Einstellung des Bytezählers 80 auf 0 vermindert worden ist. Wenn die Einstellung des Bytezählers 80 nicht 0 ist, liefert
der Decodierer über eine. Leitung 162 ein Ausgangssignal an die UND-Schaltung 158. Nimmt man an, daß in diesem Falle
die Bytezählereinstellung nicht Null ist, was bedeutet, daß zusätzliche ID-Bytes zu dekodieren sind, so wird durch
die Koinzidenz der Eingangssignale an der UND-Schaltung ein Impuls an einen Draht 164 abgegeben, welcher über
Kabel 148 und 150 mit der ODER-Schaltung 92 verbunden ist,
so daß über diese ODER-Schaltung ein Impuls an den monostabilen Multivibrator 94 abgegeben wird. Dieser startet
einen neuen Kodierzyklus, wie durch die Schritte El bis E6 in Fig. 4 angegeben.
Der oben beschriebene Kodierzyklus wird so oft wie nötig wiederholt, um die Bytezählereinstellung auf Null
herunterzubringen. Wenn das letzte ID-Byte kodiert worden
ist und die Einstellung des Bytezählers 80 Null wird, liefert der Decodierer 82 ein O-Ausgangssignal an die
- 32 -
209812/1785
21U113
UND-Schaltung 156. Wenn anschließend die Längenzählereinstellung
Null wird, was bedeutet, daß das letzte der kodierten Bits aus dem Datenregister 120 ausgelesen worden
ist, wird durch die Koinzidenz der Erregungen an der UND-Schaltung 156 ein Impuls zur Beendigung der Operation
des Systems erzeugt.
Wenn die Einrichtung als Decodierer betrieben wird, werden die zu dekodierenden Bits des VL-Codes seriell in
ein Argument-Register I78, Pig. 3A, eingegeben, welches 16 Bitspeicherstellen aufweist. Die Anzahl von VL-Codes,
die in diesem Register 178 zu irgend einem Zeitpunkt gespeichert sind, ist unbestimmt.Beim Start jeder Decodieroperation
ist es jedoch erforderlich, daß das erste Bit eines neuen Codes in die rechtsbündige Stellung des
Argument-Registers 178 gebracht wird. Das wird durch im
folgenden näher beschriebene Vorkehrungen erreicht.
Die Decodieroperation des Systems wird mit Bezug auf die Fig. 3A, 3B und 5 beschrieben. In dem Flußdiagramm in
Fig, 5 entsprechen die verschiedenen Schritte Dl, D2, usw, den durch Impulse auf verschiedenen Drähten Dl, D2, usw,
hervorgerufenen Vorgängen, was im folgenden noch näher erläutert ist. Die Decodieroperation wird durch Anlegen
eines Impulses an den "Start"-Draht I80 gestartet, durch
- 33 209812/1785
21U113
welchen ein monostabiler Multivibrator 182 in der Decodier'-taktschaltung
aktiviert wird« Wenn der monostabile Multivibrator 182 eingeschaltet ist, gibt er einen Impuls über
den Draht Dl und Kabel 184 und 96, Fig. 3B und 3A, an die Rückstelleinrichtung für den Längenzähler weiter, welcher
aus den rechten 4-Bit-Speieherstellen in dem Datenregister 120 besteht· Der Impuls auf dem Draht Dl hat die
Aufgabe, den Längenzähler auf seinen "alles NuIl"-Zustand
zurückzustellen und ihn dadurch in die Lage zu versetzen, die ersten sechzehn Informationsbits zu zählen,
die seriell in das Argument-Register 178 eingegeben werden. Es muß sichergestellt sein, daß sechzehn Bits einer neuen
Information in das Argument-Register eingebracht worden sind, bevor Decodieroperationen beginnen können. Der Längenzähler
dient als Instrument zu dieser Feststellung.
Wenn der monostabile Multivibrator 182 abschaltet, sendet er über die ODER-Schaltung I86 einen Impuls an
einen monostabilen Multivibrator I90, welcher einen Impuls
auf dem Draht D2 erzeugt« Dieser Impuls auf dem Draht D2
gelangt über eine ODER-Schaltung 192, Fig. 3A, und einen Draht 194 zu einer Torschaltung I96 und versetzt diese
dadurch in die Lage, das erste Bit aus der Eingabeeinheit in die linksbündige Bitspeicherstelle des Argument-Registers
- 34 209812/1785
einzubringen. Der Impuls auf dem Draht 194 gelangt außerdem über eine Verzögerungsschaltung 198 zu der Eingabeeinheit
und bewirkt, daß das nächste Bit für die übertragung zur Verfügung gestellt wird. Das Bit, welches soeben in das
Argument-Register 178 eingebracht worden ist, muß eventuell nach rechts verschoben werden, bis es die rechtsbündige
Bitspeicherstelle in diesem Register einnimmt. Der D2-Impuls gelangt außerdem über die ODER-Schaltung 132, Fig. 3A, auf
die Längenzählerverminderungsleitung 13** und bewirkt, daß
die Längenzählung um 1 vermindert wird. Wenn der Längenzähler anfänglich auf 0000 stand, so wird bei dem ersten Verminderungsvorgang diese Einstellung in 1111 abgeändert.
Wenn der monostabile Multivibrator 190 abschaltet, Fig. 3B, wird ein monostabiler Multivibrator 200 eingeschaltet,
welcher einen Impuls auf demDraht D3 erzeugt. Dieser D3-Impuls liegt an einer Torschaltung 202 an, welche ihr
Eingangssignal von dem Nicht-Null-Draht 144 oder von dem O-Draht 146 erhält, die mit dem Längenzähler verbunden sind»
Wenn die Längenzählung nicht auf O steht, was im vorliegenden Beispiel der Fall ist, gelangt ein Signal von dem Draht 144
über die Torschaltung 202 auf einen Draht 204, welcher zu einem monostabilen Multivibrator 208 in Pig· 3B hingeführt
ist.
- 35 209812/1785
Wenn der monostabile Multivibrator 208 einschaltet, gibt er einen Impuls an den Draht D4 ab. Dieser Impuls
gelangt über eine ODER-Schaltung 210, Fig. 3A, zu einem Draht .212, welcher zu der nicht dargestellten Verschiebungs
einrichtung des Argument-Registers 178 führt. Dadurch werden die Inhalte des Argument-Registers 178 um eine
Bitspeicherstelle nach rechts verschoben, so daß die linksbündige Bitspeicherstelle dieses Registers bereit ist, eine
neue Biteingabe zu empfangen.
Wenn der monostabile Multivibrator 208 abschaltet, sendet er einen Impuls über einen Draht 216 und die ODER-Schaltung
186 zu dem monostabilen Multivibrator 190 und schaltet diesen ein. Die Folge der Schritte D2 und D3,
Fig· 5» wird nun wiederholt, da die monostabilen Multivibratoren 190 und 200 nacheinander erregt werden* Beim
Schritt D3 wird die Einstellung des Längenzählers wieder getestet, und,wenn diese Einstellung noch nicht gleich
0000 ist, wird der monostabile Multivibrator 208 zur Ausführung des Schrittes O^ eingeschaltet, wodurch die Inhalte
des Argument-Registers 178 nach rechts verschoben werden.
Diese Folge, welche aus dem Einbringen eines Informationsbits in das Argument-Register 178, dem Vermindern
des Längenzählers, dem Testen der Längenzähler-
- 36 209812/1785
21U113
einstellung und dem Verschieben der Inhalte des Argument-Registers
178 nach rechts besteht, wird so lange
wiederholt, bis der Test im Schritt D 3 endgültig zeigt, daß die Längenzählereinstellung gleich 0000 ist. Diese Einstellung
zeigt an, daß die ersten sechzehn Informationsbits in das Argument-Register 178 eingegeben worden sind und daß sich
das erste Bit des ersten VL-Codes nun in der äußersten
rechten Stelle dieses Registers befindet. Wenn an dieser Stelle der D3-Impuls an der Torschaltung 202, Fig, 3B, anliegt,
wird die Erregung von der O-Ausgangsleitung 146 des Längenzählers
über die Torschaltung 202 an einen Draht 220 weitergegeben, der zu der ODER-Schaltung 222, Fig, 3B, hingeführt
ist, über welche die Erregung an einen monostabilen Multivibrator 224 weitergegeben wird. Wenn der monostabile Multivibrator
224 einschaltet, gibt er einen Impuls an den Draht D5 ab, welcher über Kabel 184 und 96 und die ODER-Schaltung
106, Fig. 3A, eine Verbindung zu der Übereinstimmungsanzeiger-Rückstelleitung 62 herstellt und dadurch
die Übereinstimmungsanzeiger der Assoziativ-Speicher-Steuerschaltung 56, Fig. 3A und 2, auf ihre 1-Zustände zurückstellt.
Wenn der monostabil« Multivibrator 224 abschaltet, wird dadurch der monostabile Multivibrator 226 eingeschaltet und
ein Impuls an den Draht D6 abgegeben. Dieser gibt den Impuls
an das Argument-Register 178, Fig« 3A, ab, und leitet dadurch eine "Zuordnungs^-Qperation ein, bei welcher die Inhalte des
- 37 -
209812/1785
2 HA113 'S*
Argument-Registers 178 über die Zuordnungsleitungen 230 zu
dem VL-Code-Feld des Assoziativ-Speiehers AS übertragen werden.
Die Zuordnungsleitungen 230 weisen Leitungen, wie beispielsweise ^k und 46 in Pig· 2, zum Abfragen der verschiedenen
3-Zustands-Speicherzellen auf, welche die VL-Codes in dem
Assoziativspeicher speichern. Diejenigen Speicherzellen,
welche jeweils im "nicht beachtentl-Zustand sind, sind nicht
in der Lage,, irgendwelche Nichtübereinstimmungssignale zu erzeugen. Diejenigen Speicherzellen, die nicht im "nicht
beaehten"-Zustand sind und die keine Bits speichern, welche
mit den Signalen auf den Abfrageleitungen 230, Fig. 3A,
übereinstimmen, erzeugen übereinstimmungssignale, welche
ihre jeweiligen übereinstimmungsanzeiger auf 0 setzen.
Oben ist dargelegt worden, daß die VL-Codes vorsatzfrei sind. Die Codebits in dem Argument-Register 178 stimmen
deshalb nur mit einem Code-Wort in dem Assoziativspeicher AS überein· Dabei handelt es sich um dasjenige Code-Wort,
dessen signifikante Bits exakt mit den Bits der VL-Code-Kette übereinstimmen, die am rechten Ende des
Argument-Registers 178 angeordnet ist. Das ist unabhängig davon wahr, wieviele andere VL-Codes an anderen Plätzen
des Argument-Registers 178 gespeichert sind.
Wenn der monostabile Multivibrator 226 abschaltet,
- 38 203812/1705
wird der monostabile Multivibrator 232 eingeschaltet und ein Impuls auf dem Draht D7 erzeugt, welcher über Kabel
und 96 zu der ODER-Schaltung 116, Pig. 3A, gelangt. Dieser Impuls wird sodann über die ODER-Schaltung 116 an die
Leseleitung 66 der Assoziativ-Speicher-Steuerschaltung 56
abgegeben. Der übereinstiinmungsanzeiger, welcher dann in seinem 1-Zustand ist, gibt die Adresse des übereinstimmenden
Wortes in dem Assoziativspeicher an. Dieses übereinstimmende Wort wird aus dem Assoziativ-Speicher ausgelesen
und über die Ausgangsleitungen 118 in das Datenregister 120 eingelesen. Das übereinstimmende Wort enthält den gesuchten
ID-Code und außerdem eine Längenzählung· Diese Informationen werden in geeigneten Stellen des Datenregisters 120 gespeichert,
Der D7-Impuls wird außerdem über die ODER-Schaltung 122, Fig. 3A, zu dem Bytezähler 80, Fig. 3B, geleitet und vermindert
diesen.
Wenn der monostabile Multivibrator 232 abschaltet, schaltet er einen monostabilen Multivibrator 236 ein. Dieser
erzeugt auf dem Draht D8 einen Impuls, welcher an eine Torschaltung 238, Fig. 3A, angelegt wird, und diese dadurch
in die Lage versetzt, den 8-Bit-ID-Codeteil der in dem
Datenregister 120 gespeicherten Information an die Ausgabeeinheit abzugeben.
- 39 -
209812/1785
21U113 «fO
In diesem Zeitpunkt registriert der 4-Bit-Längenzähler
(rechte vier Stellen des Datenregisters 120, Fig. JA) die Anzahl signifikanter Bits, die in dem soeben dekodierten
VL-Code enthalten sind. Die Inhalte des Argument-Registers müssen nun um diesen Wert nach rechts verschoben werden,
um das erste Bit des nächstfolgenden VL-Codes in die rechtsbündige Stellung dieses Argument-Registers zu bringen.
Das wird in folgender Weise erreicht:
Wenn der monostabile Multivibrator 236 abschaltet, überträgt er einen Impuls über die ODER-Schaltung 240, welcher
einen monostabilen Multivibrator 242 einschaltet. Dieser erzeugt einen Impuls auf dem Draht D9, Fig. 3B und 3A,
welcher über die ODER-Schaltung 210 zu der Rechtsverschiebungsleitung
212 gelangt. Dieser Vorgang hat zur Folge, daß die Inhalte des Argument-Registers 178 um ein Bit
nach rechts verschoben werden. Gleichzeitig gelangt der Impuls auf dem Draht D9 über die ODER-Schaltung 132, Fig. 3A,
zu d,em Längenzählerverminderungsdraht 131U wodurch die
Längenzählung um 1 vermindert wird.
Wenn der monostabile Multivibrator 242 abschaltet, wird ein monostabiler Multivibrator 244 eingeschaltet und
dadurch auf dem Draht DlO ein Impuls erzeugt. Dieser Impuls
- 40 -
209812/1785
Hi
gelangt über die ODER-Schaltung 192 und den Draht 194 zu der Torschaltung 196, Pig. 3A, so daß das nächste Bit in
die linksbündige Stelle des Argument-Registers 178 eingegeben wird. Gleichzeitig gelangt ein Impuls über die Verzögerungsschaltung
198 zu der Eingabeeinheit, so daß diese
ein neues Bit auf der Eingangsseite der Torschaltung 196 verfügbar machen kann.
Der monostabile Multivibrator 244 schaltet beim Abschalten einen monostabilen Multivibrator 246 ein. Dieser
erzeugt auf der Leitung DIl einen Impuls, welcher zu einer Torschaltung 248, Fig. 3B, gelangt, und bewirkt, daß
der Zustand des Längenzählers getestet wird. Wenn die Längenzählung noch nicht auf 0 vermindert worden ist, leitet
die Torschaltung 248 einen Impuls von der Nicht-Null-Leitung 144 zu einem Draht 250 weiter, welcher zu der ODER-Schaltung
240, Fig. 3B, hingeführt ist. Das hat zur Folge, daß der monostabile Multivibrator 242 wieder eingeschaltet
wird und die Folge der Schritte D9, DlO und DIl, Fig. 5, von neuem begonnen wird. Auf diese Weise werden die Inhalte
des Argument-Registers 178 fortschreitend so lange nach rechts verschoben, bis die laufende Längenzählung auf 0
vermindert ist. Wenn dieser Zustand erreicht ist, ist bereits das Bit mit dem niedrigsten Stellenwert in dem
nächstfolgenden VL-Code am rechten Ende des Argument-
- 41 209812/178S
21U113
Registers 178 eingebracht worden. Die Einrichtung ist nun bereit, eine neue Zuordnung mit Bezug auf diesen VL-Code
auszuführen.
Wenn, gemäß Fig. 3B, die Längenzählung auf 0 abnimmt
und der monostabile Multivibrator 246 eingeschaltet ist, wird die Erregung von der O-Leitung 146 über die Torschaltung
248 an eine Leitung 252 weitergegeben, welche jede
der UND-Schaltungen 254 und 256 mit einem Eingangssignal
versorgt. Wenn der Bytezähler 80 in diesem Zeitpunkt noch eine Nicht-Null-Einstellung hat, gibt der Decodierer 82
an die Leitung 162 ein Signal ab, welches über die UND-Schaltung 254 zu einem Draht 260 und von diesem aus über
die ODER-Schaltung 222, Fig. 3B, zu dem monostabilen Multivibrator
224 gelangt und diesen einschaltet. Das hat zur Folge, daß die Schritte D5 bis DIl in dem Flußdiagramm,
Fig· 5, wiederholt werden. Dieser Vorgang wiederholt sich
so lange, bis die Bytezählerexnstellung auf 0 steht. Wenn dann der monostabile Multivibrator 246, Fig. 3B, einschaltet,
wird die Torschaltung 256 wirksam und erzeugt ein Signal zur Beendigung der Decodieroperation.
"Kopier"-Kennzeichen Bei der in den Fig. 1 bis 5 dargestellten Kodier-Deko-
- 42 209812/1785
dier-Einrichtung wird ein Assoziativ-Speicher mit einer Wortspeicheradresse für jeden möglichen ID-Code und dessen
übereinstiefenden VL-Code verwendet« Bei dem hier zur
Erläuterung gewählten Beispiel haben die ID-Codes eine Länge von 1 Byte (8 Bits)· Der Assoziativ-Speicher muß
deshalb eine Kapazität von 256 Worten haben, damit er
sämtliche Bytekonfigurationen aufnehmen kann« Dadurch wird die aaxinale Datenverdichtung erreicht. Es gibt jedoch
viele Situationen, in welchen es besser ist, einen geringen Teil der Gesamtdatenverdichtung zu opfern, um eine größere
Einsparung an Speicherkosten zu erzielen. Eine Analyse der in der Praxis wahrscheinlich vorkommenden Datenbasen
kann zu de» Ergebnis führen, daß, beispielsweise, nur sehr wenig an Datenverdichtung verlorengeht, wenn etwa 150 der
am häufigsten vorkommenden ID-Codes in einzigartige VL-Codes umgewandelt werden. Die übrigen 156 ID-Codes könnten dann
ohne das übliche Codieren und Decodieren verarbeitet werden, wobei es sich um diejenigen Codes handelt, die weit weniger
häufig als die anderen I50 Codes vorkommen. Die längeren
VL-Codes werden den ID-Code-Bit-Ketten zugeordnet, welche
weniger häufig vorkommen; durch deren Verwendung wird eine verhältnismäßig geringe Datenverdichtung erzielt. Immer,wenn
einer dieser weniger häufigen ID-Codes vorgefunden wird, kann er in geeigneter Weise, wie im folgenden beschrieben,
identifiziert und ohne das normale Codieren durch das
- 43 209812/1785
21U113
Hf
System lediglich "kopiert" werden. Diese Betriebsart wird
im folgenden als "Kopier"-Betriebsart bezeichnet.
Zur Anpassung an die Kopier-Betriebsart ist das in den Fig. 1 bis 5 dargestellte System gemäß der Darstellung
in den Pig, 6 bis 10 abgewandelt worden. Ein Vergleich der Fig. 6 mit der Fig. 1 zeigt in allgemeiner Weise die
erforderlichen Abwandlungen, Bei der Ausführungsform gemäß
Fig. 6 hat der Assoziativ-Speicher AS1 eine Speicherkapazität
von 150 Worten (ein Wort für jedes übereinstimmende
Paar von VL- und ID-Codes) plus einem zusätzlichen Wort, welches in seinem VL-FeId einen Kopier-Code enthält« Die
Inhalte des ID-Feldes in diesem letztgenannten Wort sind
unwesentlich, so lange sie nicht mit irgendeinem der in den 150 übereinstimmenden Wörtern enthaltenen ID-Codes
identisch sind, die Assoziativ-Speicher-Steuerschaltung, die
im folgenden näher beschrieben ist, ist so ausgelegt, daß, wenn keine Übereinstimmung mit irgendeinem der in den
' übereinstimmenden Worten des Assoziativ-Speichers gespeicherten
ID-Codes während einer Codieroperation erzielt wird, der Kopier-Code dann automatisch als VL-Code-Ausgangssignal
erzeugt wird. Das abschließend codierte Ausgangssignal ist, wenn die Einrichtung in Kopier-Betriebsart arbeitet,
eine Bit-Kette, welche aus den Kopier-Code-Bits besteht, die unmittelbar von den Bits des ID-Codes gefolgt sind.
2 0 § 8*t i/ 1 7 8 S
2K4113
Dadurch ergibt sich natürlich eine Code-Bit-Kette, welche länger als die normale ID-Code-Bit-Kette ist„ Da das jedoch
nicht häufig vorkommt, wird die Gesamtdatenverdichtung nicht merklich beeinflußt.
Die Größe des VL-Code-Peldes ist so gewählt, daß sie
den längsten VL-Code aufnehmen kann, der unter denjenigen Worten vorkommen kann, welche dem normalen Codierprozeß ausgesetzt
sind. Für diesen besonderen Fall wird zu Erläuterungszwecken angenommen, daß ein VL-Code-Feld mit einer Länge
von neun Bits alle diese Worte aufnimmt» Durch Verwendung dieses Schemas wird deshalb eine Einsparung von sieben
Speicherzellen pro Wort erzielt· Demzufolge wird durch Verwenden des Kopier-Kennzeichens nicht nur eine Einsparung
bei der Anzahl der Worte erzielt, welche durch den Assoziativ-Speicher AS1 gespeichert werden müssen, sondern
auch bei der Anzahl der Bits, die in jedem dieser Worte enthalten sind. Die Verwendung des Kopier-Kennzeichens
gestattet deshalb einen zufriedenstellenden Grad an Datenverdichtung, während ein Assoziativ-Speicher von nur bescheidener
Größe erforderlich ist.
Der Kopier-Code erfordert nicht notwendigerweise die maximale Anzahl signifikanter Bits. Mit Bezug auf die
209812/1785
anderen gespeicherten VL-Codes muß er jedoch vorsatzfrei sein. In der Tat stellt der Kopier-Code sämtliche 156 ID-Cοdes
dar, welche im vorliegenden Beispiel ohne das normale Codxerverfahren verarbeitet werden. Diese Gruppe
von Codes kann als Gesamtheit zusammen mit den übrigen 150 ID-Codes nach Frequenzen geordnet sein. Die Frequenz,
mit welcher Mitglieder dieser Code-Gruppe vorkommen, bestimmt die Länge des zu ihrer kollektiven Darstellung verwendeten
Kopier-Codes. Unter diesen Umständen kann der Kopier-Code eine Länge, d.h. eine Anzahl signifikanter Bits haben,
welche beträchtlich geringer ist als die maximale 9-Bit-Länge für VL-Codes.
Wenn die inFig. 6 dargestellte Einrichtung nach der Erfindung als Decodierer arbeitet, werden die ankommenden
Codes, welche manchmal Kombinationen von Kopier- und ID-Codes enthalten können, seriell in das VL-Argument-Register
eingegeben. Jeder Kopier-Code leitet eine spezielle Operation ein, bei welcher die Bits des Kopier-Codes aus
dem Argument-Register hinausgeschoben und die folgenden
8 Bits des ID-Codes in die rechten 8 Stellen dieses Argument-Registers eingebracht werden. Diese 8 Bits des ID-Codes
werden sodann aus dem VL-Argument-Register parallel ausgelesen, statt daß sie in normaler Weise aus dem Decodier-Datenregister
ausgelesen werden. Im Anschluß daran wird
- 46 209812/1785
der ID-Code aus dem VL-Argument-Register, in welchem er
normalerweise gespeichert würde, hinausgeschoben, damit der nächstfolgende VL-Code hineingebracht werden kann.
Wenn der ID-Code in dem Argumentregister während einer Codierüperation keinen übereinstimmenden ID-Code in dem
Assoziativ-Speicher AS' findet, wird eine spezielle Operation durchgeführt, wodurch der Kopier-Code aus dem
Assoziativ-Speicher in ein Codierdatenregister eingebracht wird, aus welchem die Bits dieses Copier-Codes dann
anschließend seriell ausgelesen werden. Unmittelbar danach werden die 8 Bits des ID-Codes in dem argument-Register
seriell ausgelesen und an die Kette von Kopier-Code- Bits angehängt und dadurch eine zusammengesetzte Kopier-ID-Code-Bit-Kette
der oben beschriebenen Art gebildet.
In Fig· 7 ist ein Teil der Assoziativ-Speicher-Steuerschaltung
56' für das abgewandelte System nach der Erfindung dargestellt. In dieser Figur sind ebenso wie in
den zugehörigen Fig. 6 und 8A bis 10 die den Teilen des in den Fig. 1 bis 5 dargestellten Systems entsprechenden
Teile mit gleichen Bezugszahlen versehen,mit der Ausnahme, daß bei dem vorliegenden System die Bezugszahlen zusätzlich
jeweils mit einem Hochstrich C) versehen sind. Bei dem in Fig. 7 dargestellten Steuerschema sind jedem Wort in
- 47 -209812/1785
dem Assoziativspeicher AS1, Fig. 6, mit Ausnahme des Wortes,
welches den Kopier-Code enthält, jeweils eine Nichtübereinstimmungsleitung 48* und ein übereinstimmungsanzeiger 50f
zugeteilt. Von jedem Argument-Code, welcher nicht einem
der 150 Worte entspricht, welche übereinstimmende VL- und
ID-Codeteile (Fig. 6) haben, wird angenommen, daß er sich
in der Gruppe von Codes befindet, die gemeinsam durch den Kopier-Code gekennzeichnet sind. Wenn während einer Codieroperation
der ID-Argument-Code nicht mit einem der Worte übereinstimmt, welchem übereinstimmungsanzeiger 50' zugeordnet
sind, werden alle diese übereinstimmungsanzeiger auf ihre Null-Zustände gelöscht. Das hat eine Stromkreiserweiterung
von der Leseleitung 661 , Fig. 7, über eine Reihe von
UND-Schaltungen 290, welche jeweils ein Eingangssignal von der O-Ausgangsseite des ihnen jeweils zugeordneten Übereinstimmungsanzeigers
50' empfangen, bis zu einer Lese-Wahlleitung
292 für den Kopier-Code hin zur Folge, so daß der Kopier-Code als erster Teil des codierten Signals
in das Datenregister eingebracht wird. Gleichzeitig wird über die Drähte 292 und 294 ein Kopier-Flipflop 296 erregt
und dieses dadurch auf seinen 1-Zustand eingestellt. Durch diesen Vorgang werden die in dem Argument-Register gespeicherten ID-Code-Bits seriell als der zweite Teil des
codierten Signals ausgelesen. Das Einbringen eines nicht
209812/1785
übereinstimmenden ID-Codes in das Argument-Register während einer Codieroperation erzeugt eine zusammengesetzte Code-Bitkette,
welche aus einem Kopier-Code gefolgt von dem ID-Code besteht. Es ist bemerkenswert, daß es unwesentlich
ist, ob der ID-Code mit dem ID-Teil des den Kopier-Code
enthaltenden Wortes übereinstimmt oder nichto Das Kriterium
ist, ob er mit einem der in den anderen Worten des Assoziativ-Speichers AS1 gespeicherten ID-Codes übereinstimmt
oder nicht.
Während einer Decodieroperation stimmt der VL-Code, welcher als ein Argument verwendet wird, entweder mit
einem der 150 Worte in dem Assoziativ-Speicher AS1,
die übereinstimmende VL- und ID-Codes enthalten, oder mit dem darin gespeicherten Kopier-Code überein. Wenn das
Argument ein Kopier-Code ist, sind sämtliche Nichtübereinstimmungsanzeiger
50', Fig. 7, auf Null gelöscht und der Lesestromkreis ist von der Leitung 66* aus über die
UND-Schaltungen 290 und die Drähte 292 und 294 bis zu
dem Kopier-Plipflop 296 ausgedehnt, wodurch dieser auf seinen 1-Zustand gesetzt wird. Während einer Decodier-Operation
werden deshalb die Kopier-Codebits aus dem Argument-Register hinausgeschoben und die Bits des
folgenden ID-Codes in eine Stellung gebracht, in
209812/1 78S
welcher sie direkt aus dem Argument-Register ausgelesen werden können, wie in Fig. 6 angegeben.
Der Schaltplan in den Fig. 8A bis 8C und die Flußdiagramme
in den fig. 9 und 10 zeigen mehr ins einzelne gehend den Aufbau und die Betriebsweise des abgewandelten
Systems mit dem Kopier-Kennzeichen. In diesen Figuren
sind die Schaltungselemente, welche gleiche Funktionen wie die Schaltungselemente in dem ersten System (Fig. 1 bis 5)
erfüllen, durch gleiche Bezugszahlen gekennzeichnet, welchen beim vorliegenden System jeweils noch ein Hochstrich
(') hinzugefügt ist. Zur Korrelation der Flußdiagramme
in denFig. 9 und 10 mit der in den Fig. 8A bis 8C gezeigten Einrichtung sind die einzelnen Schritte in
diesen Flußdiagrammen jeweils mit den Bezugszeichen versehen, mit welchen die Leitungen bezeichnet sind, welche
die diese Schritte einleitenden Taktimpulse übertragen. Der Schritt El1 in Fig. 9, wird, beispielsweise, durch
einen Taktimpuls eingeleitet, welcher über die in den Fig. 8C und 8B dargestellte Leitung El1 übertragen wird.
Der Assoziativ-Speicher AS1, Fig. 8A, hat, wie oben
bereits erwähnt, eine viel kleinere Kapazität als der Assoziativ-Speicher AS, Fig. 3A, da der Assoziativ-Speicher
bei der abgewandelten Ausführungsform der Einrichtung
- 50 209812/1785
5Λ
nach der Erfindung nicht für jede mögliche, ihm dargebotene Code-Bit-Kombination eine Code-Umwandlung durchführen muß»
Die häufiger vorkommenden Codes, von welchen bei dem vorliegenden Beispiel angenommen wird, daß es diejenigen
Codes sind, deren Länge in der codierten VL-Porm jeweils 9 Bits nicht überschreitet, werden im wesentlichen in
gleicher Weise behandelt, wie es oben mit Bezug auf die Fig. 1 bis 5 beschrieben worden ist. Die Codier- und Decodieroperationen
bei solchen Codes werden deshalb an dieser Stelle der Beschreibung nicht näher erläutert. Besondere
Aufmerksamkeit wird hier insbesondere denjenigen Operationen geschenkt, die sich auf die weniger häufig vorkommenden
ID-Codes beziehen, welche bei normaler Codierung VL-Codes ergäben, deren Länge größer wäre als 9 Bits. Für solche
Codes wird ein spezielles Kopier-Codier-Verfahren durchgeführt, was im folgenden näher beschrieben ist.
In vorliegendem Fall wird angenommen, daß die Mehrheit der möglichen Byte-Konfigurationen, welche die ID-Codes
bilden, in die Kategorie der weniger häufig vorkommenden Codes fällt, für welche das Kopier-Verfahren durchgeführt
wird. Sämtlichen Codes in dieser Gruppe ist der gleiche Wahrscheinlichkeitsrang zugeordnet und sie sind sämtlich
durch einen gemeinsamen Code dargestellt, welcher im codierten Format dem ID-Code vorangeht und ihn als einen
- 51 209812/1785
Code kennzeichnet, welcher ohne das normale Codieren "kopiert"
worden ist, Darüberhinaus ist jeder Code in dieser Gruppe der gleichen Längenzählung, entsprechend der Anzahl signifikanter
Bits in dem Kopier-Code, zugeordnet» Länge und Form des Kopier-Codes hängen von dem Wahrscheinlichkeitsrang
der Gruppe von Codes ab, welche er, betrachtet als eine Gesamtheit, mit Bezug auf die anderen verfügbaren Codes
darstellt·
Im folgenden wird nun unter Bezugnahme auf die Pig, 9 und 8A bis 8C eine Codieroperation beschrieben.
Der Bytezähler 80', Pig, 8B, ist auf die Anzahl der zu codierenden ID-Code-Bytes eingestellt. Ein an die Leitung 90',
angelegter Startimpuls, Fig. 8C, leitet den Betrieb des Codiertaktes
bzw, der Codiertaktschaltung ein. Beim Schritt El1,
Pig· 9» wird der zu codierende ID-Code in das Argument-Register 100·, Fig. 8a, eingebracht. Die Übereinstimmungsanzeiger 50', Fig. 7, in der Assoziativ-Speicher-Steuerschaltung
werden auf 1 zurückgestellt« Bei der vorliegenden Ausführungsform erfüllt der El'-Taktimpuls noch eine
zusätzliche Aufgabe, Gemäß Pig, 8B liegt der El'-Impuls
über eine ODER-Schaltung 300 an dem Kopier-Plipflop 296 an und stellt diesen auf seinen O-Zustand zurück.
Bei den schritten E2' und E31, Fig„ 9, wird mit dem
- 52 209812/1785
ID-Code in demArgument-Register eine Zuordnung bzw. Abfragung ausgeführt, um ein übereinstimmendes Wort zu
finden. Wenn in dem Speicher AS1 ein übereinstimmendes
Wort gefunden wird, wird der in dem Speicher enthaltene VL-Code ausgelesen und in das Datenregister 120», Fig„ 8A,
eingebracht« Wenn kein übereinstimmendes Wort gefunden wird, so aktiviert die Assoziativ-Speicher-Steuerschaltung
56', Pig· 7» die Lese-Wahlleitung des Kopier-Codes und
bewirkt dadurch,daß der Kopier-Code ausgelesen und in das
VL-Code-Feld des Datenregisters 120* eingebracht wird.
Gleichzeitig erregt die Assoziativ-Speicher-Steuerschaltung über den Draht 294 das Kopier-Flipflop 296, Fig. 8B, und
setzt dieses dadurch auf seinen 1-Zustand. Anschließend wird der Bytezähler 80' um 1 vermindert.
Der Zyklus von Schritten E1J1, E51 und E61, Fig. 9,
wird so oft wiederholt, wie es zum seriellen Auslesen der in dem 9-Bit-Feld des Datenregisters 120', Fig. 8A,
gespeicherten signifikanten Codebits erforderlich ist. Das hängt davon ab, ob der in dem 9-Bit-Feld gespeicherte
Code ein VL-Code oder ein Kopier-Code ist« Wenn das letzte signifikante Bit ausgelesen ist, wird die Einstellung
des Längenzählers (rechte vier Stellen des Datenregisters 120·) auf 0 vermindert. In diesem Augenblick
- 53 -
209812/1785
ist die Torschaltung 138*, Fig. 8B, an welcher der Taktimpuls
E6f anliegt, in der Lage, die Erregung von der O-Ausgangsleitung
146' des Längenzählers aus über einen Draht an drei UND-Schaltungen 304, 305 und 306 weiterzugeben.
Wenn das Kopier-Plipflop 296 auf 1 gesetzt ist,was
bedeutet, daß ein Kopier-Code ausgelesen worden ist, muß eine spezielle Folge von Schritten eingeleitet werden,
um die Bits des in dem Argument-Register gespeicherten ID-Codes unmittelbar im Anschluß an das letzte Bit des
Kopier-Codes seriell zu übertragen. Diese spezielle Folge von Schritten ist in Fig. 9 niit E7 bis ElO bezeichnet.
Sie wird eingeleitet, wenn an der UND-Schaltung 304
koinzidente Erregungen vorhanden sind, d.h. in dem Zeitpunkt, in welchem die Längenzählung auf 0 (Schritt E61)
vermindert wird, während das Kopier-Flipflop in seinem
1-Zustand ist. Daraufhin wird durch die UND-Schaltung ein Signal über einen Draht 310 geleitet, welcher gemäß
Fig» 8b und 8C über das Kabel 1501 mit einem monostabilen
Multivibrator 312 verbunden ist und diesen deshalb einschaltet, damit dieser auf der Leitung E7 einen Taktimpuls
erzeugt. Dieser E7-Taktimpuls stellt den Längenzähler auf 1000, d.h. auf dezimal 8 zurück. Auf diese Weise wird der
Längenzähler darauf vorbereitet, das Auslesen der 8 Bits
209812/1785
21U113 SS
des in dem Argument-Register 100·, Pig. 8A, gespeicherten
ID-Codes zu steuern.
Wenn der monostabile Multivibrator 312 abschaltet, gibt er über eine ODER-Schaltung 31**, Fig. 8C, einen Impuls
an einen monostabilen Multivibrator 3l6 ab, welcher daraufhin
einschaltet und auf der Leitung E8, Fig. 8C, 8B und 8A, einen Taktimpuls erzeugt. Dadurch wird eine Torschaltung 320,
Fig„ 8a, erregt und das rechtsbündige Bit aus dem Argument-Register
100' an die Ausgabeeinheit abgegebene
Im Anschluß an diesen Vorgang wird ein monostabiler Multivibrator 322, Fig. 8C, eingeschaltet, welcher einen
Taktimpuls auf dem Draht E9 erzeugt. Das hat zweierlei zur Folge, nämlich das Erregen der Verschiebungsleitung
für das Argument-Register 100·, Fig. 8A, und das Vermindern des Längenzählers um 1. Demzufolge wird der monostabile
Multivibrator 324, Fig. 8C, eingeschaltet, welcher auf
der Leitung ElO einen Taktimpuls erzeugt, welchem zufolge eine Torschaltung 326, Fig. 8B, den Zustand des Längenzählers
testet.
Wenn der Längenzähler nicht auf 0 ist, was bedeutet, daß noch weitere Code-Bits aus dem ID-Argument-Register aus-
- 55 -
209812/1785
SC
zulesen sind, wird von der Nicht-Null-Ausgangsleitung 144'
des Längenzählers aus über die Torschaltung 326 ein Draht
und von diesem aus über die ODER-Schaltung 314, Fig. 8C, der monostabile Multivibrator 316 erregt«, Dieser Vorgang
leitet erneut die Folge von Schritten E8, E9 und ElO, Fig. 9, zur Verschiebung des nächsten Code-Bits hinaus aus
dem ID-Argument-Register ein. Dieser Zyklus wird so oft
wiederholt, bis sämtliche ID-Code-Bits aus dem Argument-)
Register hinausgeschoben sind.
Da aus dem Argument-Register acht ID-Code-Bits auszulesen
sind und da der Längenzähler anfänglich auf den gleichen
Wert, Schritt E7, eingestellt wurde, wird durch das Auslesen des letzten ID-Code-Bits die Längenzählereinstellung auf
0 vermindert«, Der Test im Schritt ElO veranlaßt nun die
Torschaltung 326, Fig. 8B von der O-Längenzählungsleitung
146» aus einen zu UND-Schaltungen 334 und 335 hinführenden
Draht 332 zu erregen. Nimmt man an, daß die Byte-Zählereinstellung in diesem Augenblick nicht 0 ist,
so ist die UND-Schaltung 334 aktiv und erregt über einen
Draht 336, Fig. 8B und 8C, und über die ODER-Schaltung 92» den monostabilen Multivibrator 94·; dadurch wird eine
neue Codierfolge eingeleitet, welche mit dem Schritt El1,
Fig. 9, beginnt. Während diese abläuft, werden die 8 Bits
209812/1785
21U113
des ID-Codes aus dem Argument-Register 100·, Fig. 8A, ausgelesen
worden sein, und zwar im Anschluß an die Folge von Kopier-Code-Bits, die vorher aus dem 9-Bit-Feld des
Datenregisters 120· ausgelesen worden sind. Auf diese Weise ist eine zusammengesetzte Kopier-ID-Code-Bit-Kette
erzeugt worden.
Die oben beschriebene Folge von Schritten El* bis E61
wird nun wiederholt. Wenn der in dem Argument-Register 100* als nächstfolgender gespeicherte ID-Code nicht zu den
Codes gehört, die in die spezielle Kopier-Kategorie fallen, behält das Kopier-Flipflop 296, Fig. 8B, seine anfängliche
O-Einstellung bei« Wenn unter diesen Umständen die Bytezählereinstellung
noch nicht auf 0 vermindert worden ist, leitet die UND-Schaltung 334, Fig. 8B und 9, ein Signal
zur erneuten Einleitung des Schrittes El weiter, und zwar so bald das letzte signifikante Bit aus dem VL-Code-Feld
des Datenregisters ausgelesen worden ist. Die Vorgänge, welche stattfinden, wenn das Kopier-Flipflop auf seiner
O-Einstellung gehalten wird, sind normale Codier- oder Decodieroperationen, wie oben mit Bezug auf die erste
Ausführungsform (Fig. 1 bis 5) beschrieben.
Wenn die Bytezählereinstellung auf 0 vermindert wird
- 57 -
209812/1785
21U113
und wenn die Kopier-Flipflopeinstellung in diesem Zeitpunkt ebenfalls gleich 0 ist, wird die UMD-Sehaltung 335
aktiv und erzeugt dann einen Ende-Impuls, wenn das letzte Code-Bit aus dem Datenregister ausgelesen worden ist.
Wenn jedoch die Kopier-Plipflopeinstellung in diesem Zeitpunkt auf 1 ist, so wird dadurch angezeigt, daß nur
die Kopier-Code-Bits ausgelesen worden sind und daß es erforderlich ist, nun die ID-Code-Bits auszulesen, die
dem Kopier-Code folgen müssene In diesem Fall wird die UND-Schaltung 301*, Fig. 8B und 9, wirksam und leitet die
durch die Schritte E7 bis ElO dargestellte Zweigoperation ein, bei welcher die ID-Code-Bits ausgelesen werden. Wenn
das letzte ID-Code-Bit ausgelesen worden ist, und wenn die Bytezählereinstellung dann auf 0 ist, wird die UND-Schaltung
335 wirksam und erzeugt einen Ende-Impuls zur Beendigung der Operation.
Die Decodieroperation des abgewandelten Systems wird unter Bezugnahme auf Fig. 10 in Verbindung mit den Fig. 8AA
bis 8C beschrieben« Es sei nochmals daran erinnert, daß bei einer ankommenden Code-Bitkette, welche aus einem
Kopier-Code gefolgt von einem ID-Code (Fig.6) besteht, der
Kopier-Code von dem System außer Acht gelassen werden muß und daß die folgenden 8 Bits des ID-Codes dann direkt
209812/1785
als das decodierte Ausgangssignal unter Umgehung des normalen
Decodierverfahrens ausgelesen werden. Für sämtliche
anderen empfangenen Bitketten findet ein normales Decodieren statt, wie es mit Bezug auf die in den Pig» I bis 5 dargestellte
Ausführungsform beschrieben worden iste
Gemäß Fig. 8C wird die Decodxeroperatxon durch einen
auf dem Draht 180* ankommenden Startimpuls eingeleitet, welcher den raonostabilen Multivibrator 182' einschaltet.
Der Bytezähler 80* ist mit der Anzahl von VL-Codes geladen
worden, welche in ID-Code-Bytes zu decodieren bzw. umzuwandeln sind. Wenn der monostabile Multivibrator 182'
einschaltet, wird über einen Draht Dl11 ein Taktimpuls zu
einer in Fig« 8AA dargestellten Einrichtung geleitet und der Längenzähler auf 1001 (dezimal 9) zurückgestellt. An
dieser Stelle der Operation ist es erforderlich, das 9-Bit-Argument-Register I781 mit den aufeinanderfolgenden
Bits des ersten VL-Codes und folgender Codes bis auf die ersten 9 Bits zu füllen. Dieser Vorgang des Füllens
des Argument-Registers 178' wird während der Folge von
Schritten D2r, D3' und D4', Fig. 9, ausgeführt, welche
so lange wiederholt werden, bis der Längenzähler beim Schritt D3' auf 0000 vermindert worden ist. Die Torschaltung
2021, Fig. 8b, leitet sodann ein Signal von der O-Ausgangsleitung 146* des Längenzählers zu dem Draht 22O1
- 59 209812/1785
21U113
to
und der ODEH-Schaltung 222' weiter, so daß der monostabile
Multivibrator 224' eingeschaltet wird, welcher auf der Leitung D51 einen Taktimpuls erzeugt.
Der D51-Taktimpuls setzt die Übereinstimmungsanzeiger
50' der Assoziativ-Speicher-Steuerschaltung 56' auf
"1" zurück. Außerdem wird dieser Impuls über eine ODER-Schaltung 300, Fig. 8b, weitergeleitet und löscht
das Kopier-Plipflop 296 auf Null. Der monostabile Multivibrator 226' schaltet sodann ein und erzeugt den Taktimpuls
Do', mit dessen Hilfe die Inhalte des Argument-Registers 178' den Inhalten des 9-Bit-VL-Code-Feldes
des Assoziativ-Speichers AS' zugeordnet werden. Wenn ein übereinstimmendes Wort gefunden wird, wird es aus dem
Datenregister 120' (Schritt D7', Fig. 10) ausgelesen, und das Kopier-Flipflop 296 bleibt auf seiner O-Einsteilung.
Wenn kein übereinstimmendes Wort gefunden wird, wird der
von der Speichersteuerschaltung 56' herkommende Draht 294, Fig. 8a und 8b, erregt und damit das Kopier-Flipflop auf
seinen 1-Zustand eingestellt, wodurch angezeigt wird, daß der im Argument-Register 178' rechts gespeicherte Code ein
Kopier-Code ist. Der D7'-Taktimpuls bewirkt außerdem die Verminderung des Bytezählers 8O1.
Wenn der monostabile Multivibrator 232', welcher den
- 60 209812/1785
21U113 W
Taktimpuls D71 erzeugt hat, abschaltet, erzeugt er einen
Impuls auf einem Draht 350, Fig. 8C, 8b, welcher zu den Eingängen von UND-Schaltungen 352 und 354 hinführt. Wenn
das Kopier-Flipflop 296 auf 0 ist, was bedeutet, daß kein
Kopier-Code vorhanden ist,wird der Stromkreis von dem
Draht 350 aus über die UND-Schaltung 352 und einen
Draht 356, Fig. δε und 8C, bis zu dem monostabilen Multivibrator
236' hin ausgedehnt, welcher einschaltet und
einen Taktimpuls für die Leitung D8' erzeugt. Dann wird die normale Decodierfolge, welche die Schritte D8' bis
DIl', Fig. 10, umfaßt, ausgeführt und es werden dabei die
Bits des aufgefundenen ID-Codes,welche in dem 8-Bit-ID-FeId
des Datenregisters 12O1 gespeichert sind, parallel ausgeleser
und in die Ausgabeeinheit eingegeben. Die in dem Argument-Register 158' gespeicherten Bits werden fortschreitend
in Richtung abnehmenden Stellenwerts verschoben, bis die Längenzählereinstellung auf 0 vermindert ist (D91
bis DIl1).
Wenn die Längenzählereinsteilung auf 0 geht, wird
der Stromkreis von dem Draht 146' über die Torschaltung 248'
Fig. 8b, bis zu einem Draht 36O ausgedehnt, welcher zu UND-Schaltungen 362 und 364 führt. Wenn die Bytezählereinstellung
nicht auf 0 vermindert worden ist, setzt sich
- 61 -
209812/1785
21U113
der Stromkreis über die UND-Schaltung 362, den Draht 366 und die ODEn-Schaltung 222', Fig. 8C, bis zu dem monostabilen
Multivibrator 224' fort, damit eine neue Folge von Schritten D5' bis D7', Fig. 10, eingeleitet wird.
Wenn die Bytezählereinstellung jedoch gleich 0 war, wird die UND-Schaltung 364, Fig. 8B, aktiviert und ein Ende-Impuls
erzeugt. Übereinstimmungs- und Ausleseoperationen werden
in der oben beschriebenen Weise so lange ausgeführt, bis in dem Argument-Register I781 der Kopier-Code angetroffen
wird. Nachdem der Kopier-Code in dem Datenregister 120T
gespeichert worden ist, Schritt D7', Fig. 10, befindet sich das Kopier-Flipflop 296, Fig. 8b, in seinem 1-Zustand. Wenn.
unter diesen Umständen der monostabile Multivibrator 232', Fig. 8c, abschaltet und auf dem Draht 350 einen Impuls
erzeugt, leitet die UND-Schaltung 354, Fig. 8B, diesen Impuls von dem Draht 350 weiter zu einem Draht 370, Fig. 8b
und 8C, und von diesem aus über eine ODER-Schaltung 372 zu einem monostabilen Multivibrator 374. Wenn der monostabile
Multivibrator 374 einschaltet, erzeugt er auf dem Draht D12
einen Taktimpuls und leitet dadurch eine spezielle Folge von Schritten D12 bis DI6, Fig. 10, zum Decodieren der empfangenen
Kombination eines Kopier-Codes mit einem folgenden ID-Code ein. Kurz gesagt, besteht diese spezielle
Decodieroperation aus dem Hinausschieben des Kopier-Codes
- 62 -
209812/1785
aus dem Argument-Register I78' und aus dem anschließenden
Auslesen der 8 folgenden Code-Bits aus diesem Register, wobei die letztgenannten 8 Bits den aufzufindenden
ID-Code bilden.
Im einzelnen wird bei dieser speziellen Decodieroperation der Dl2-Taktimpuls über die ODER-Schaltung 210'
an die Verschiebungsleitung 212' für das Argument-Register I78'
angelegt. Das hat zur Folge, daß das Argument-Register I78' seme Inhalte um eine Bitstelle nach rechts verschiebt.
Gleichzeitig liegt der D12-Taktimpuls auch über die
ODEn-Schaltung 1J52', Fig. 8B, an dem Draht 13V an, welcher
bei Versorgung mit einem Impuls bewirkt, daß der Längenzähler, Fig. 8a, um 1 vermindert wird.
Wenn der monostabile Multivibrator 374, Fig. 8C, abschaltet, schaltet er den monostabilen Multivibrator
ein, welcher einen Taktimpuls an die Leitung DI3 abgibt.
Dieser DI3-Impuls gelangt dann über die ODER-Schaltung 192',
Fig. 8b, zu dem Draht 194', und aktiviert die "Ein"-Torschaltung
196', Fig. 8A. Diese bringt ein Bit aus der Eingabeeinheit in die linksbündige Stelle des Argument-Registers
178' ein, um das aus diesem Register hinausgeschobene
Bit zu ersetzen.
209812/1785
21U113
tv
Wenn der monostabile Multivibrator yj6 abschaltet,
schaltet er den monostabilen Multivibrator 378 ein und
erzeugt einen Taktimpuls auf der Leitung Dl4, welche zu einer Torschaltung 38O, Fig. 8B, führt. Wenn der Längenzähler
in diesem Zeitpunkt nicht auf 0 ist, wird der Stromkreis von dem Nicht-Null-Draht 144', Fig. 8B, über
die Torschaltung 380,den Draht 382 und die ODER.-Schaltung 372,
Fig. 8C, bis zu dem monostabilen Multivibrator 37^ ausgedehnt,
welcher einschaltet und erneut die Folge von Schritten D12 bis D14, Fig. 10, einleitet.
Es sei daran erinnert, daß dann, wenn der Kopier-Code zuerst während der "Zuordnungs"-Operation (Schritt D61)
angetroffen wurde, das den Kopier-Code enthaltende Wort ausgelesen und in dem Datenregister 120' gespeichert wurde.
Das hatte zur Folge, daß die dem Kopier-Code zugeordnete Längenangabe in dem Längenzählerabschnitt des Datenregisters
gespeichert wurde. Die Folge von Schritten D12 bis Dl4,
Fig. 10, muß deshalb so oft wiederholt werden, wie es durch diese Längenzählereinstellung angegeben wird, um sämtliche
Kopier-Code-Bits aus dem Argument-Register 1781 hinauszuschieben.
Wenn die Längenzählereinstellung 0 erreicht und dadurch anzeigt, daß das letzte Kopier-Code-Bit aus dem
Argument-Register hinausgeschoben worden ist, so sind die-
- 64 -
209812/1785
jenigen Bits, welche nun die rechten 8 Stellen des argument-Registers
178" einnehmen, die 8 Bits des ID-Codes, welcher
dem Kopier-Code unmittelbar folgt. Dies sind die 8 Bits, welche
aufgefunden werden müssen.
Wenn der mittels des Dl4-Taktimpulses durchgeführte
Test die Längenzählereinsteilung atu' 0 χ ludet, wird der
Stromkreis von der O-Längenzahlungsleitung 146", Fig. 8B,
über die Torschaltung 380 und den Draht 386, Pig. 8b und
8C, bis zu dem monastabilen Multivibrator 390 hin ausgedehnt,
welcher einschaltet und den D15-Täktimpuls erzeugt. Dieser
Di5~Taktimpuls wird an eine Torschaltung 392#FIg#8A, angelegt,
damit die in d©n letzten 8 Stellen des Argument-Registers 178'
gespeicherten 8 Bits ausgelesen werden, welche sodann
parallel in di« Ausgabeeinheit eingebräßht werden, Wenn der
monostabil« Multivibrator 390 abschaltet, Fig* &C, schaltet
er den monostabilen Multivibrator 393 ein, welcher einen
Dlβ-Taktimpuls erzeugt, der Über die ODEH-Sehaltung 311,
Pig. SB, zu d«m Draht 313, Fig. Sä, gelangt und den Längenzähler
auf loOO zurückstellt. Der monostablle Multivibrator
393 gibt btim Absehalten einen Impuls an den Draht
ab, welcher au UND-Schaltungen 396 und 398, Fig. 8Bj, führt.
Wenn die Bytezählung in diesem Zeitpunkt nicht auf 0 vermindert worden ist, gelangt dieser Impuls über die UND*-Schal~
fcung396, einen Draht 400 und die ODER-Schaltung I86f,
- 65 -209812/1785
Pig. 8C, zu dem monostabilen Multivibrator 190r und leitet
erneut den Schritt D21 der Deeodieroperation, Pig» 10, ein,
Die Schritte D2f D3f und D4* werden sodann oft genug
wiederholt» um die Längenzählereinstellung von 1000 auf
0000 zu vermindern und dadurch die 8 Bits des ID-Codes aus
dem Argument-Register I781 zu entfernen und die Inhalte
dieses Registers um 8 Stellen nach rechts zu verschieben und den nächstfolgenden Code zur Eintragung zu bringen»
Wenn die Bytezählung beim Abschalten des monostabilen Multivibrators 393, Fig· 8C, auf 0 ist, so wird der
Impuls auf dem Draht 394 durch die Torschaltung 398,
Pig» 8Bf hindurchgeleitet und ein Ende-Signal zur Beendigung
der Decodieroperation erzeugt«
Im Rahmen der Erfindung bietet sich dem Fachmann
über die beschriebenen Ausführungsbeispiele hinaus selbstverständlich
eine Vielzahl von Vereinfachungs- und Verbesserungsmöglichkeiten sowohl hinsichtlich des Aufbaus
und der Betriebsweise der erfindungsgemäßen Einrichtung als auch der Durchführung des Verfahrens nach
der Erfindung.
- 66 -
209812/1785
Claims (9)
- 21U113Patentansprüche:/ Iy Verfahren zur Codeumwandlung unter Verwendung eines Rechners mit einem Speicher zum Umsetzen einer Folge von Eingabecodes fester Länge in einen Ausgabebitstrom aus Codes veränderlicher Länge, welche die häufiger vorkommenden Eingabecodes darstellen, und aus Codes fester Länge, welche jeweils mit den weniger häufig vorkommenden Exngabecodes identisch sind, gekennzeichnet durch folgende Schritte:a) Speichern von Darstellungen der in dem Bitstrom häufig vorkommenden Codes veränderlicher Länge in einem ersten Teil des Speichers,b) Speichern von Darstellungen der jeweils den Codes veränderlicher Länge entsprechenden Codes fester Länge in einem zweiten Teil des Speichers,c) Vergleichen jedes der aufeinanderfolgenden Eingabecodes mit den in dem zweiten Speicherteil gespeicherten Codes fester Länge, undd) Ausführen einer der folgenden Tätigkeiten, je nach dem Ergebnis jedes derartigen Vergleiches:- 67 -209812/178521U113dl) falls ein Eingabecode mit einem der in dem zweiten Speicherteil gespeicherten Codes fester Länge übereinstimmt: Auslesen der Bits des entsprechenden, in dem ersten Speicherteil gespeicherten Codes veränderlicher Länge als Elemente des Ausgabebitstroms, oderd2) falls der Eingabecode nicht mit einem der in dem zweiten Speicherteil gespeicherten Codes fester Länge übereinstimmt: Serielles Auslesen der Bits dieses Eingabecodes als Elemente des Ausgabebitstroms.
- 2. Verfahren zur Codeumwandlung unter Verwendung eines Rechners mit einem Speicher zur Erzeugung von Ausgabecodes fester Länge in Abhängigkeit von einem Eingabebitstrom, welcher häufig vorkommende vorsatzfreie Codes veränderlicher Länge vermischt mit nicht häufig vorkommenden Codes fester Länge aufweist, gekennzeichnet durch folgende Schritte:a) Speichern von Darstellungen der in dem Bitstrom häufig vorkommenden Codes veränderlicher Länge in einem ersten Teil des Speichers,- 68 -209812/1785b) Speichern von Darstellungen der jeweils den Codes veränderlicher Länge entsprechenden Codes fester Länge in einem zweiten Teil des Speichers,c) Vergleichen der Bits eines Eingabecodes,mit den in dem ersten Speicherteil gespeicherten Codes veränderlicher Länge, undd) Ausführen einer der folgenden Tätigkeiten, je nach dem Ergebnis eines solchen Vergleiches:dl) Falls der Eingabecode mit einem der in dem ersten Speicherteil gespeicherten Codes variabler Länge übereinstimmt: Auslesen des entsprechenden Codes fester Länge aus dem zweiten Speicherteil als Ausgabecode, oderd2) falls der Eingabecode nicht mit einem der in dem ersten Speicherteil gespeicherten Codes veränderlicher Länge übereinstimmt: Auslesen der Bits des Eingabecodes als Elemente des Ausgabecodes.
- 3>. Verfahren zur Codeumwandlung unter Verwendung- 69 209812/17852H4113eines Rechners mit einem Speicher und einem Schieberegister zum Umsetzen einer Folge von Eingabecodes fester Länge in einen Ausgabebitström, welcher teilweise aus Codes veränderlicher Länge besteht, die mindestens einige der häufiger vorkommenden Eingabecodes darstellen, und welcher außerdem Codes fester Länge aufweist, die mit mindestens einigen
der weniger häufig vorkommenden Eingabecodes identisch
sind, wobei in dem Bitstrom jedem der Ausgabecodes fester Länge ein spezieller Code vorangeht, gekennzeichnet durch folgende Schritte:a) Speichern von Darstellungen der in dem Bitstrom
häufig vorkommenden Codes veränderlicher Länge
in einem ersten Teil des Speichers,b) Speichern von Darstellungen der jeweils den
Codes veränderlicher Länge entsprechenden Codes
fester Länge in einem zweiten Teil des Speichers,c) Speichern von Längenangaben in einem dritten Teil des Speichers, welche jeweils die Anzahl derin den Codes veränderlicher Länge, die in dem
ersten Speicherteil gespeichert sind, enthaltenen Bits darstellen,209812/1785d) Speichern einer Darstellung des speziellen Codes in einem vierten Teil des Speichers,e) Vergleichen jedes der aufeinanderfolgenden Eingabecodes mit den in dem zweiten Speicherteil gespeicherten Codes fester Länge, undf) Ausführen einer der folgenden Tätigkeiten, je nach dem Ergebnis jedes derartigen Vergleiches:fl) Falls ein Kingabecode mit einem der in dem zweiten Speicherteil gespeicherten Codes fester Länge übereinstimmt: Einbringen des entsprechenden Codes veränderlicher Länge in dem ersten Speicherteil in das Register und Verschieben der Inhalte dieses Registers um diejenige Anzahl von Bitspeicherstellen, welche durch die entsprechende, in dem dritten Speicherteil gespeicherte Längenangabe dargestellt ist, um daraus die Bits des Codes veränderlicher Länge auszulesen, die als Elemente des Ausgabebitstroms in das Register eingebracht worden sind, oder- 71 -209812/1785f2) falls der Eingabecode nicht mit einemder in dem zweiten Speicherteil gespeicherten Codes fester Länge übereinstimmt: Serielles Auslesen der Bits des in dem vierten Speicherteil gespeicherten speziellen Codes und anschließendes Auslesen der Bits des Eingabecodes als Elemente des Ausgabebitstroms. - 4. Verfahren zur Cod.eumwandlung unter Verwendung eines Rechners mit einem Speicher und einem Schieberegister zur Erzeugung von Ausgabecodes fester Länge in Abhängigkeit von einem Eingabebitstrom, welcher häufig vorkommende vorsatzfreie Codes veränderlicher Länge vermischt mit nicht häufig vorkommenden Codes fester Länge enthält, wobei den Eingabecodes fester Länge in dem Bitstrom jeweils ein spezieller Code bestimmter Länge vorangeht, gekennzeichnet durch folgende Schritte:a) Speichern von Darstellungen der in dem Bitstrom häufig vorkommenden Codes veränderlicher Länge in einem ersten Teil des Speichers,b) Speichern von Darstellungen der jeweils den Codes veränderlicher Länge entsprechenden Codes fester- 72 209812/1785Länge in einem zweiten Teil des Speichers,c) Speichern von Längenangaben in einem dritten Teil des Speichers, welche jeweils die Anzahl der in den Codes veränderlicher Länge, die in dem ersten Speicherteil gespeichert sind, enthaltenen Bits darstellen,d) Speichern einer die Anzahl der Bits in dem speziellen Code darstellenden Längenangabe in einem vierten Teil des Speichers,e) Speichern der Bits eines ausgewählten Codes der Codes in dem Bitstrom in aufeinanderfolgenden Stellen des Schieberegisters, und anschließend von beliebigen Bits, die in dem Bitstrom enthalten sein können, bis an die Grenze der Kapazität des Registers, wobei das Bit niedrigster Ordnung des ausgewählten Codes am Anfang in die Bitspeicherstelle niedrigster Wertigkeit des Registers eingebracht wird,f) Vergleichen der in dem Schieberegister gespeicherten Codebits mit den in dem ersten Speicherteil gespeicherten Codes veränderlicher Länge, und- 73 -209812/178821U113g) Ausführen einer der folgenden Tätigkeiten, je nach dem Ergebnis eines solchen Vergleiches:gl) Falls der ausgewählte Code mit einem der in dem ersten Speicherteil gespeicherten Codes veränderlicher Länge übereinstimmt: Auslesen des entsprechenden Codes fester Länge aus dem zweiten Speicherteil als Ausgabecode und Verschieben der Inhalte des Schieberegisters um die Anzahl der Bitspeicherstellen, die durch die entsprechende, in dem dritten Speicherteil gespeicherte Längenangabe dargestellt ist, oderg2) falls der ausgewählte Code nicht mit einem der in dem ersten Speicherteil gespeicherten Codes veränderlicher Länge übereinstimmt: Verschieben der Inhalte des Schieberegisters um die Anzahl der Bitspeicherstellen, die durch die in dem vierten Speicherteil gespeicherte Längenangabe des speziellen Codes dargestellt ist, sodann Ablesen derjenigen Bits aus der sich ergebenden Einstellung des Schieberegisters, welche- 74 209812/178621U113Stellen besetzen, die den verschiedenen Stellen eines Codes fester Länge entsprechen, als Elemente des Ausgabecodes, und Verschieben der Inhalte des Schieberegisters um die gleiche Anzahl von Bitstellen.
- 5. Assoziativ-Speichereinrichtung zur Durchführung des Verfahrens nach einem der Ansprüche 1 bis 4, welche als Codierer-Decodierer Umwandlungen zwischen häufig vorkommenden Codes fester Länge und entsprechenden vorsatzfreien Codes veränderlicher Länge, jedoch keine Umwandlungen der weniger häufig vorkommenden Codes fester Länge bewirkt, gekennzeichnet durch:a) Reihen von Speicherzellen (20) zur Speicherung einer Vielzahl von Worten, wobei jedes Wort jeweils einen der häufig vorkommenden Codes veränderlicher Länge zusammen mit einem entsprechenden Code der häufiger vorkommenden Codes fester Länge sowie eine Längenangabe enthält, welche die Anzahl signifikanter Bits in dem entsprechenden Code veränderlicher Länge angibt, wobei außerdem die Zellen zum Speichern der Codes veränderlicher Länge Drei-Zustands-Zellen sind, welche in einem Codefeld angeordnet sind, das für jede Reihe- 75 -209812/1785eine gleiche Anzahl von Zellen enthält, und welche Jeweils einen signifikanten 1- oder O-Binärzustand oder einen "nicht beachten"-Zustand einnehmen können, dessen gespeichertes Bit nicht signifikant ist, ·b) eine Argument-Speichereinrichtung mit einemTeil (178), welcher bei als Decodierer arbeitender Assoziativ-Speiehereinrichtung (AS) Bitketten speichert, die in einer Folge von Codes veränderlicher Länge und Codes fester Länge enthaltender Eingabecodes enthalten sind, und mit einem weiteren Teil (100), welcher bei als Codierer arbeitender Assoziativ-Speiehereinrichtung die Bits eines umzuwandelnden Codes fester Länge speichert, wobei der genannte eine Teil der Argument-Speichereinrichtung wahlweise die in ihm gespeicherten Bits fortschreitend in Richtung abnehmenden" . Stellenwertes verschiebt,c) eine Datenspeichereinrichtung (120) mit einem Teil, welcher bei als Codierer arbeitender Assoziativ-Speiehereinrichtung Bits speichert, welche aus den Zellen in dem, die Codes veränderlicher Länge speichernden Speicherfeld ausgelesen worden sind.-.76 -209812/1785und mit einem weiteren Teil, welcher bei als Decodierer arbeitender Assoziativ-Speichereinrichtung Bits speichert, welche aus den Zellen in dem, die Codes fester Länge speichernden Speicherfeld ausgelesen worden sind, und schließlich mit einem Längenzähler zur Speicherung der aus den betreffenden Speicherzellen während der Codier- und Decodieroperationen ausgelesenen Längenangaben, wobei der genannte eine Teil der Datenspeichereinrichtung wahlweise die in ihm gespeicherten Bits fortschreitend in Richtung abnehmenden Stellenwerts verschiebt,d) eine Decodier-Steuereinriohtung, welche während normaler Decodieroperationen die serielle Verschiebung von Eingabecodebits in die Argument-Speichereinrichtung hinein, aus dieser heraus und durch diese hindurch bewirkt, was mindestens teilweise· durch die in dem Längenzähler gespeicherten Daten bestimmt wird, und welche das Auslesen von Codes fester Länge aus der Datenspeichereinrichtung als Ausgabecodes in Abhängigkeit vom Vorhandensein von Codes veränderlicher Länge in der Argument-Speichereinrichtung bewirkt, welche mit in den gespeicherten Worten enthaltenen Codes veränder-- 77 -209812/17852K4113licher Länge übereinstimmen, wobei die Decodier-Steuereinrichtung außerdem spezielle Vorrichtungen aufweist, die immer dann, wenn die Inhalte der Argument-Speichereinrichtung nicht mit irgendeinem der Codes veränderlicher Länge in der Vielzahl gespeicherter Worte übereinstimmen und dadurch das Vorhandensein eines der weniger häufig vorkommenden Codes fester Länge in den Serien von Eingabecodes anzeigen, bewirken, daß dieser betreffende Code fester Länge als Ausgabecode direkt aus der Argument-Speichereinrichtung ausgelesen wird, unde) eine Codier-Steuereinrichtung, welche während Codieroperationen das Auslesen von Codebits aus dem, Codes veränderlicher Länge speichernden Feld und das Einbringen derselben in die Datenspeiohereinrichtung in Abhängigkeit von dem Vorhandensein von Codes fester Länge in der Argument-Speichereinrichtung, welche mit den in den gespeicherten Worten enthaltenen Codes fester Länge übereinstimmen, bewirkt, und welche das serielle Hindurchschieben ausgewählter Anzahlen dieser Bits von Codes veränderlicher Länge durch die Datenspeichereinrichtung- 78 209812/178Sals Ausgabecodes bewirkt, wodurch nichtsignifikante Bits aus diesen ausgelesenen Codes ausgeschlossen bleiben, wobei die Codier-Steuereinrichtung außerdem spezielle Vorrichtungen aufweist, die immer dann, wenn die Inhalte der Argument-Speichereinrichtung nicht mit einem der Codes fester Länge in der Vielzahl von gespeicherten Worten übereinstimmen und dadurch das Vorhandensein eines der weniger häufig vorkommenden Codes fester Länge in der Argument-Speichereinrichtung anzeigen, bewirken, daß dieser betreffende Code fester Länge als Ausgabecode direkt aus der Argument-Speichereinrichtung ausgelesen wird.
- 6. Einrichtung nach Anspruch 5, welche als Codierer arbeitet, dadurch gekennzeichnet, daß der weitere Teil (100) der Argument-Speichereinrichtung ein Argument-Register ist, und daß der eine Teil der Datenspeichereinrichtung (120) ein Datenregister ist.
- 7. Einrichtung nach Anspruch 5, welche als Decodierer arbeitet, dadurch gekennzeichnet, daß der eine Teil (178) der Argument-Speichereinrichtung ein Argument-Register ist und daß der weitere Teil der Datenspeichereinrichtung (120) ein Datenregister ist.- 79 -209812/17852U4113 80
- 8. Einrichtung nach Anspruch 6, dadurch gekennzeichnet, daß die Reihen von Speicherzellen (20) außerdem eine Reihe (Fig. 6) zum Speichern eines zusätzlichen Wortes aufweisen, welches einen in dem Codefeld untergebrachten speziellen Code und eine die Anzahl der Bits in diesem speziellen Code angebende Längenangabe enthält, und daß die speziellen Vorrichtungen außerdem eine spezielle Codierung bewirken und eine Einrichtung aufweisen, welche das Einbringen der Bits des speziellen Codes in das Datenregister und, gesteuert durch die Längenangabe des speziellen Codes, das serielle Auslesen aus dem Datenregister (120T) bewirkt, und schließlich eine weitere Einrichtung aufweisen, welche anschließend das serielle Auslesen der Bits des nicht übereinstimmenden Codes fester Länge aus dem Argument-Register (I781) bewirkt, und dadurch* einen zusammengesetzten Ausgangscode erzeugt, welcher aus dem speziellen Code und dem darauf folgenden, nicht übereinstimmenden Code fester Länge besteht.
- 9. Einrichtung nach Anspruch 7* welche einen Eingabe-Bitstrom verarbeitet, der häufig vorkommende vorsatzfreie Codes veränderlicher Länge und nicht häufig vorkommende . Codes fester Länge verarbeitet, welchen jeweils ein spezieller Code bestimmter Länge vorangeht, dadurch gekennzeichnet, daß die speziellen Vorrichtungen außerdem- 80 -209812/178S21U113eine spezielle Codierung bewirken und eine Einrichtung, welche das serielle Hinausschieben der Bits des speziellen Codes aus dem Argument-Register (10O1, I781) bewirkt, und eine weitere Einrichtung aufweisen, welche das Auslesen der dem speziellen Code folgenden Bits des Codes fester Länge als Ausgabecode aus dem Argument-Register bewirkt.- 81 -209812/1785Leerseite
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US7025170A | 1970-09-08 | 1970-09-08 | |
US7025170 | 1970-09-08 |
Publications (3)
Publication Number | Publication Date |
---|---|
DE2144113A1 true DE2144113A1 (de) | 1972-03-16 |
DE2144113B2 DE2144113B2 (de) | 1976-05-13 |
DE2144113C3 DE2144113C3 (de) | 1976-12-30 |
Family
ID=
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0647034A1 (de) * | 1993-09-30 | 1995-04-05 | Nec Corporation | Verfahren zur Dekodierung eines variablen Wortlängenkodes und Dekoder zur Durchführung dieses Verfahrens |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0647034A1 (de) * | 1993-09-30 | 1995-04-05 | Nec Corporation | Verfahren zur Dekodierung eines variablen Wortlängenkodes und Dekoder zur Durchführung dieses Verfahrens |
Also Published As
Publication number | Publication date |
---|---|
US3675211A (en) | 1972-07-04 |
DE2144113B2 (de) | 1976-05-13 |
JPS52340B1 (de) | 1977-01-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE2139731C2 (de) | Anordnung zur Code-Umsetzung | |
DE3606869C2 (de) | Vorrichtung zur Datenkompression | |
DE2210044C2 (de) | Verfahren zum Umsetzen von Codewörtern | |
DE2205422C2 (de) | Verfahren und Einrichtung zur Dekompression verdichteter Daten | |
DE602004010922T2 (de) | Speicher und stromeffizienter mechanismus für schnelles tabellennachschlagen | |
EP0230437B1 (de) | Verfahren zum komprimieren und dekomprimieren mehrerer strukturverwandter datenfolgen sowie einrichtungen zur durchführung des verfahrens | |
DE3545125C2 (de) | ||
DE2208664A1 (de) | Verfahren zur Decodierung eines vorsatzfreien Verdichtungscodes veränderlicher Länge | |
DE2346525B2 (de) | Virtuelle Speichereinrichtung | |
DE1499193A1 (de) | Datenverarbeitungsanlage | |
DE2614916A1 (de) | Konverter zur codeumwandlung | |
DE60009502T2 (de) | Lzw datenkomprimierung/dekomprimierungsgerät und - verfahren mit eingebetteter lauflängenkodierung/dekodierung | |
DE60302203T2 (de) | Anordnung zur Komprimierung einer Datentabelle | |
DE2900586C2 (de) | Anordnung zum Decodieren von Codewörtern variabler Länge | |
DE3742142C2 (de) | ||
DE3137704A1 (de) | Vorrichtung zum decodieren eines baumfoermigen codes variabler laenge | |
DE3921646A1 (de) | Verfahren zu einer codierung einer elementfolge und einrichtung zur durchfuehrung des verfahrens | |
EP0427884B1 (de) | Verfahren und Anordnung zum Komprimieren und Dekomprimieren von Daten | |
DE2144113A1 (de) | Verfahren und Einrichtung zur Code-Umwandlung | |
EP0417854B1 (de) | Verfahren zur Erkennung von N unterschiedlichen Wortketten in einem Sprachsignal | |
DE3113189A1 (de) | "verfahren und vorrichtung zur umwandlung von digitalen zeichencodes, die von einem datenverarbeitungssystem empfangen oder geliefert werden" | |
DE2144113C3 (de) | Verfahren zur Codeumsetzung und Assozjathr-Speichereinrlchtung zur Durchführung dieses Verfahrens | |
DE3633227A1 (de) | Anordnung zur umwandlung einer virtuellen adresse in eine physikalische adresse fuer einen in seiten organisierten arbeitsspeicher einer datenverarbeitungsanlage | |
DE4342521C1 (de) | Verfahren und Anordnung zur Expansion komprimierter Daten | |
DE2136536B2 (de) | Verfahren und Anordnung zur Korn pnmierung und Dekompnmierung binarer Daten |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C3 | Grant after two publication steps (3rd publication) | ||
E77 | Valid patent as to the heymanns-index 1977 | ||
8339 | Ceased/non-payment of the annual fee |