DE2144113A1 - Verfahren und Einrichtung zur Code-Umwandlung - Google Patents

Verfahren und Einrichtung zur Code-Umwandlung

Info

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
Application number
DE19712144113
Other languages
English (en)
Other versions
DE2144113B2 (de
DE2144113C3 (de
Inventor
Josef Yorktown Heights N.Y. Raviv (V.StA.)
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE2144113A1 publication Critical patent/DE2144113A1/de
Publication of DE2144113B2 publication Critical patent/DE2144113B2/de
Application granted granted Critical
Publication of DE2144113C3 publication Critical patent/DE2144113C3/de
Expired legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M5/00Conversion of the form of the representation of individual digits
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion 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/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • H03M7/42Conversion 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
International Business Machines Corporation, .Anaonk,
N#y# 10 504, V.St.A.
Verfahren und Einrichtung zur Code-Umwandlung
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.
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«
In Weiterbildung der Erfindung wird die Aufgabe
- 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
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)

  1. 21U113
    Patentansprü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, und
    d) Ausführen einer der folgenden Tätigkeiten, je nach dem Ergebnis jedes derartigen Vergleiches:
    - 67 -
    209812/1785
    21U113
    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.
  2. 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/1785
    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 variabler 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.
  3. 3>. Verfahren zur Codeumwandlung unter Verwendung
    - 69 209812/1785
    2H4113
    eines 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 der
    in den Codes veränderlicher Länge, die in dem
    ersten Speicherteil gespeichert sind, enthaltenen Bits darstellen,
    209812/1785
    d) 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, und
    f) 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/1785
    f2) falls der Eingabecode nicht mit einem
    der 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. 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/1785
    Lä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/1788
    21U113
    g) 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, oder
    g2) 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/1786
    21U113
    Stellen 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. 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/1785
    eine 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 einem
    Teil (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/1785
    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 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/1785
    2K4113
    licher 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 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/178S
    als 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. 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. 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/1785
    2U4113 80
  8. 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. 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/178S
    21U113
    eine 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/1785
    Leerseite
DE19712144113 1970-09-08 1971-09-03 Verfahren zur Codeumsetzung und Assozjathr-Speichereinrlchtung zur Durchführung dieses Verfahrens Expired DE2144113C3 (de)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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