DE2153517A1 - Anordnung zur Codeumsetzung - Google Patents

Anordnung zur Codeumsetzung

Info

Publication number
DE2153517A1
DE2153517A1 DE19712153517 DE2153517A DE2153517A1 DE 2153517 A1 DE2153517 A1 DE 2153517A1 DE 19712153517 DE19712153517 DE 19712153517 DE 2153517 A DE2153517 A DE 2153517A DE 2153517 A1 DE2153517 A1 DE 2153517A1
Authority
DE
Germany
Prior art keywords
code
word
column
stored
address
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.)
Pending
Application number
DE19712153517
Other languages
English (en)
Inventor
Louis Szu-Heng Mohegan Lake; Mommens Jacques Henri Briarcliff Manor; Raviv Josef Yorktown Heights; N.Y. Loh (V.StA.). H04r 1-34
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 DE2153517A1 publication Critical patent/DE2153517A1/de
Pending legal-status Critical Current

Links

Classifications

    • 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
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M5/00Conversion of the form of the representation of individual digits

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Description

Böblingen, 18.Oktober 1971 ne-sk
Anmelderin: International Business Machines
Corporation, Armonk, N.Y. 10 504
Amtl.Aktenz.: Neuanmeldung
Aktenz.d.Anmeld.: Docket YO 970 061
Anordnung zur Codeumsetzung
Die Erfindung bezieht sich auf eine Anordnung zur Codeumsetzung im Zusammenhang mit Datenverdichtung. Ihr liegt die Aufgabe zugrunde, eine Anordnung anzugeben, die zwecks Datenverdichtung die Umsetzung von Codewörtern fester Länge eines ersten Codes in Codewörter unterschiedlicher Länge eines zweiten Codes ermöglicht und auch für die Code-Umsetzung in umgekehrter Richtung geeignet ist.
Die genannte Aufgabe wird durch eine Anordnung der vorher genannten Art gelöst, die gekennzeichnet ist durch eine erste Speichereinheit zum Speichern der Codewörter fester Länge, von denen jedes zusammen mit M Adresswörtern deren jedes einer anderen von M Codegruppen zugeordnet ist, in die die Gesamtheit der Codewörter eingeteilt ist, und mit einer die zugehörigen Codegruppe angebenden Codegruppenzelle und einer Codesatzzahl gespeichert wird, die den zugehörigen Codesatz angibt,eine zweite Speichereinheit zum Speichern der Codewörter unterschiedlicher Länge, die in N Codesätze unterteilt sind und von denen jedes zusammen mit einer den zugehörigen Codesatz an-
209819/0964 Dooket ϊ0 9vo
gebenden Codesatzzahl und einem Adresswort gespeichert wird, das einem Adressort der ersten Speichereinheit entspricht, eine mit der ersten Speichereinheit verbundene erste Eingabevorrichtung für den Vergleich eines umzusetzenden Codeworts fester Länge mit den gespeicherten Codewörtern zur Feststellung einer Übereinstimmung, eine erste Ausgabevorrichtung zum Auslesen des zu einer vorher ausgewählten Codegruppe im ersten Speicher gehörenden Adresswortes, das zusammen mit dem übereinstimmenden Codewort gespeichert wurde, eine zweite mit der zweiten Speichereinheit verbundene Eingabevorrichtung zum Vergleich des aus der ersten Speichereinheit ausgelesenen Adresswortes und einer vorher ausgewählten Codesatzzahl mit den Adresswörtern und Codesatzzahlen der zweiten Speichereinheit zum Feststellen einer Übereinstimmung, eine zweite Ausgabevorrichtung zum Auslesen des aus der zweiten Speichereinheit ausgelesenen Codewortes unterschiedlicher Länge, das zusammen mit dem übereinstimmenden Adresswort der Codesatζzahl gespeichert wurde.
Die Erfindung wird nachfolgend durch die Beschreibung bevorzugter Ausführungsbeispiele in Verbindung mit den Zeichnungen näher erläutert, von denen zeigen:
Fig.l ein Diagramm von in Codegruppen angeordneten Codewörtern;
Fig.2 ein Diagramm von in Codesätzen angeordneten Codewörtern unterschiedlicher Länge;
Fig.3 ein Blockdiagramm eines Ausführungsbeispiels einer erfindungsgemäßen Verarbeitungseinheit ;
209819/0964
Docket YO 97Ο
Fig.4A-4H in der in Fig.4 gezeigten Anordnung ein Schaltbild der in Fig.3 gezeigten Verarbeitungseinheit und
Fig.5 in einem Blockdiagramm schematisch ein weiteres Ausführungsbeispiel der Erfindung .
Bei der Codierung von Daten z.B. in binärer oder ternärer Darstellung und dergl. werden Codewörter .durch eine Reihe von Bits dargestellt. Bei Codes mit Codewörtern fester Länge wird jedes Zeichen oderWort durch dieselbe Anzahl von Bits wiedergegeben. 256 verschiedene Wörter können z.B. in 256 verschiedene, aus 8 Bits bestehende binäre Bytes codiert werden. Schon lange wurde erkannt, daß ein Code mit Codewörtern unterschiedlicher Länge, im folgenden kurz als Code unterschiedlicher Länge bezeichnet, verwendet werden kann, wenn bestimmte Wörter in einem Datensatz häufiger auftreten als andere, wobei den häufiger auftretenden Wörtern kürzere Codewörter zugeordnet werden. Der Morse-Code und der Huffman-Code seien als Beispiele für Codes unterschiedlicher Länge genannt.
Ein sog. abhängiger Code ist ein Code, bei dem die Wahrscheinlichkeit für das Vorkommen eines Wortes oder Zeichens abhängig von dem vorhergehenden Zeichen ist. In der englischen Sprache liegt z.B. eine hohe Wahrscheinlichkeit dafür vor, daß ein U einem Q folgt und eine sehr niedrige dafür, daß ein S einem Q folgt. Wenn man also die Eigenschaften eines Datensatzes kennt, kann man eine Codetabelle für einen abhängigen Code mit unterschiedlicher Länge so aufstellen, daß die Codezeichen einer Anzahl verschiedener Codegruppen und Codesätze zugeordnet werden. Wenn ein vorhergehendes Zeichen co-
2098 19/096 A Docket Y0 9 70 O6i
diert wird, wird die Codierung so gewählt, daß das mit größter Wahrscheinlichkeit folgende Zeichen mit einer kleinen Bitanzahl codiert wird. Es gibt natürlich auch Fälle, in denen einem Zeichen tatsächlich ein unwahrscheinliches Zeichen folgt. Dieses Zeichen wird in ein längeres Wort codiert. Durchschnittlich hat jedoch ein abgängiger Code untersc hiedlicher Länge kürzere Codewörter und liefert somit eine Datenverarbeitung.
Die vorliegende Erfindung bezieht sich auf eine Verarbeitungseinheit zur Codierung und Decodierung eines abhängigen Codes unterschiedlicher Länge, wobei die Existenz der Codezuordnungstabelle vorausgesetzt wird. Die Art, in welcher die Codezuordnungstabelle aufgestellt wird, bildet keinen Teil der Erfindung und wird daher nur kurz beschrieben. Zuerst wird die Wahrscheinlichkeit eines jeden Zeichens des Datensatzes bestimmt, mit der es jedem der anderen Zeichen folgt. ZumBeispiel sind Pl/1, P2/1, P3/1, P4/1 ... Pn/1 die Wahrscheinlichkeiten, mit denen jedes der η Zeichen dem ersten Zeichen der Daten folgt. Das wird wiederholt für P1/2, P2/2, P3/2 P4/2 ... Pn/2 bis Pl/m, P2/m, P3/m, P4/m ... Pn/m. Die m Zeilen der Wahrscheinlichkeiten werden dann zu Gruppen zusammengefaßt, ähnliche Zeilen werden derselben Gruppe zugeordnet. Schließlich werden die Gruppen in verschiedenen Codesätzen angeordnet.
In Fig.l ist eine Tabelle gezeigt, zu deren Aufstellung ein Datensatz untersucht und entsprechend den Wahrscheinlichkeiten angeordnet wurde, mit denen vorgegebene Zeichen auf vorhergehenden Zeichen folgen. Es sind nur 12 Zeichen A bis L in dem als Beispiel gewählten Datensatz vorhanden. Diese sind in der Spalte I angeordnet. Die Zeichen sind.den 5 Gruppen 0, 1, 2, 3 und 4 zugeordnet.
209819/0964 Docket YO 970
Die Gruppenzahlen sind in der Spalte VII angegeben. Die beiden Codesätze 0 und 1 sind in Spalte VIII gesetzt. Die Zahlen in den Spalten II, III, IV, V undVI sind Adressen, die später erklärt werden.
Fig.2 zeigt eine Liste der Codewörter unterschiedlicher Länge in Spalte IX, die Länge des Codewortes für das Ausführungsbeispiel in Spalte X, die Codesatzzahl in Spalte XI und die Adresse in Spalte XII. Da das erste Zeichen in einer Nachricht kein vorhergehendds Zeichen aufweist, werden für dieses erste Zeichen willkürlich eine Codegruppe 0 und ein Codesatz 0 gewählt. Bei Bedarf kann jedoch auch die Wahrscheinlichkeit dafür berücksichtigt werden, daß jedes Zeichen im Datensatz das erste Zeichen ist und Gruppen- und Codesatzzuordnung werden entsprechend vorgenommen.
Da es 12 verschiedene Zeichen unter den in einem Binärcode mit fester Länge zu codierenden Daten gibt, können die Zeichen in Wörter von je 4 Bits codiert werden. Wenn angenommen wird, daß eine Nachricht aus den 5 Zeichen B, P, D, A und L in dieser Reihenfolge besteht, dann werden für das erste Zeichen B willkürlich eine Gruppe 0 und der Codesatz 0 gewählt. Das Zeichen B bezeichnet die zweite Zeile der Fig.l. Die Gruppe 0 (Spalte II der Fig.l) liefert die Adresszahl 2 für B. In Fig.2 bezeichnen die Adresse 2 und der Codesatz 0 das Codewort 01. In Fig.l gibt das Auftreten von B auch eine neue Gruppe 1 und einen Codesatz 0 (in den letzten beiden Spalten am Ende der Zeile) für das nächste -Zeichen an.
Das nächste Zeichen F (6. Zeile der Fig.l) und die Gruppe 1 (Spalte III) geben die Adresse 2 an. In Fig.2 geben die Adresse 2 und der Codesatz 0 das Codewort
209819/0964 Docket YO 970
für F an. Außerdem wird eine neue Gruppe 3 und der Codesatz 1 (Fig.l) für das nächste Zeichen angegeben.
Das Zeichen D und die Gruppe 3 ergeben eine Adresse 2. Die Adresse 2 und der Codesatz 1 liefern das Wort 011 von Fig.2. Außerdem werden eine neue Gruppe 0 und ein Codesatz 0 für das nächste Zeichen erzeugt (Fig.l). Das Zeichen A und die Gruppe O liefern eine Adresse 1 in Fig.l. Die Adresse 1 und der Codesatz 0 liefern ein Codewort 11 für das Zeichen A. Außerdem werden eine neue Gruppe 0 und ein Codesatz 0 angegeben.
Das Zeichen L und die Gruppe 0 (Spalte IX in Fig.l) bestimmen eine Adresse 11. Die Adresse 11 und der Codesatz 0 in Fig. 2 geben das Codewort 0000001 ar. Hierbei handelt es sich um ein langes Wort, weil im Datensatz ein A selten vor einem L steht. Die codierte Nachricht 01, 01, 011, 11, OOOOOOl hat eine Gesamtlänge von 16 Bits, wogegen ein Code mit fester Länge für diese Nephricht 20 Bits erfordern würde.
Zum Decodieren der Nachricht wird die Tabelle der Fig. 2 vor der Tabelle der Fig.l benutzt. Das erste Hort 01 wird mit dem Inhalt der Spalte ZX der Fig.2 verglichen. Da es das erste Zeichen ist, wird eine Gruppe 0 und ein Codesatz 0 angegeben. Zm Codesatz O der Fig. 2 wird das 01-Wort verglichen und die Adresse 2 angegeben. Die Gruppe 0 bezeichnet die Spalte ZX in Fig.l und darin die Adresse 2 das ZPiPhen β und gibt außerdem die neue Gruppe 1 und den Codesatz 0 an. Das P&chste Zeichen 01 und der neue Codesatz 0 ergeben mittels Fig.2 die Adresse 2. Zn Fig.l geben die Gruppe 1 (Spalte XXX) und die Adresse 2 das Zeichen F an und eine neue Gruppe 3 und den Codesatx 1. Obwohl B und F beide als 01 codiert waren, werden sie richtig decodiert.
209819/0964 Docket YO 970
Das nächste Wort Oll und der neue Codesatz 1 geben die Adresse 2 in Fig.2 an. Die Gruppe 3 (Spalte IV) und die Adresse 2 bezeichnen das Zeichen D in Fig.l und eine neue Gruppe 0 und einen Codesatz 0.
Das Wort 11 und der neue Codesatz 0 bestimmen die Adresse 1 in der Fig.l. Die Gruppe 0 (Spalte II) und die Adresse 1 bezeichnen das Zeichen A in Fig.l und geben eine neue Gruppe 0 und einen Codesatz 0 an. In derselben Weise bezeichnen das nächste Zeichen OOOOOOl und der neue Codesatz die Adresse 11 in Fig.2. Gruppe O und Adresse 11 bezeichnen das Zeichen L in Fig.l.
Die Tabellen der Fig.l und 2 stellen die Inhalte von Assoziativspeichereinheiten dar, die in der erfindungsgemäßen Verarbeitungseinheit verwendet werden. Der in Fig.2 aufgestellte Code unterschiedlicher Länge erfüllt die Bedingung, daß in jedem Codesatz kein Codewort den Anfang irgendeines anderen Codewofctes bildet. Somit findet sich im Codesatz 0 das Zeichen 01 nicht in den ersten beiden Bits eines anderen Wortes.
Im Blockschaltbild der Fig.3 ist eine Verarbeitungseinheit mit einem Assoziativ-Register gezeigt. Die Verarbeitungseinheit ist in diesem Ausführungsbeispiel zur Codierung von 8 Bits enthaltenden Bytes in Codewörter eines Codes unterschiedlicher Länge ausgelegt, die bis zu 16 Bits umfassen. Der Code besteht aus 2 56 möglichen Codewörtern zu je 8 Bits. Die Speichereinheit 10 entspricht der Tabelle der Fig.l und die Speichereinheit der Tabelle der Fig.2. Die Speichereinheit 12 ist ein Speicher, dessen Speicherelemente 3 Zustände einnehmen können, nämlich den Eins-Zustand, den Null-Zustand und den sog. neutralen Zustand. Die Speichereinheit 10 kann ein Assoziativspeicher sein, dessen Speicherelemente 2
209819/0964 Docket YO 970
- 8 Zustände einnehmen können.
Funktionsmäßig ist die Speichereinheit 10 in 256 Zeilen und 19 Spalten eingeteilt. Die ersten 17 Spalten (Spalten 18 - 50) sind 8 Bits breit, die 18. Spalte (Spalte 52) ist 4 Bits breit und die 19. Spalte (Spalte 54) 1 Bit breit. Das Register 14 ist mit Segmenten derselben Bitgröße ausgerüstet wie die Speichereinheit 10. In der Spalte 18 der Speichereinheit 10 sind die 256 möglichen Codewörter gespeichert, von denen jedes 8 Bits lang ist. Die Spalten 20, 22, 24 ... 50 sind den 16 Gruppen zuge- W wiesen und enthalten die aus 8 Bits bestehenden Adresswörter in derselben Art, wie es für die Spalten II - VI inPig.l beschrieben wurde. Es wird angenommen, daß der Datensatz für das Ausführungsbeispiel der Fig.3 aufgrund der vorher beschriebenen Wahrscheinlichkeitsberechnungen in 16 Gruppe und zwei Codesätze eingeteilt wurde. Die Spalte 52 enthält 4 Bit größe Wörter, die die entsprechenden Gruppenzahlen für die Wörter in Spalte 18 darstellen und die entsprechende Wahl der Spalten 20 - 50 bestimmen, die zu den Gruppen 0-15 gehören. Die Spalte 54 enthält die 1 Bit großen Bezeichnungen für die Codesätze 0 oder 1.
Die Speichereinheit 12 ist funktonsmäßig in 4 Spalten eingeteilt. Die Spalte 56 ist 16 Bits breit und 512 Zeilen lang und enthält Codewörter mit veränderlicher Länge. Die übrigen Bitpositionen von Codewörtern mit weniger als 16 Bits nehmen den neutralen Zustand ein. Die Spalte 58 enthält aus 4 Bits bestehende Wörter, die die Länge des benachbarten Codewortes (in Spalte 56) angeben, wobei 0000 die Länge 16 bezeichnet. Die Spalte 60 ist ein Bit breit und enthält die Bits, die den Codesatz angeben. Die Spalte 62 ist 8 Bits breit und enthält die Adressen. Der Speicher 12 ist daher genauso angeord-
209819/096/; Docket YO 970 061
net wie die Tabelle in Fig.2. Für das Register 64 sind Segmente derselbenBitgröße vorgesehen, wie sie der Speicher 12 aufweist.
Anschließend wird die Codierung dines 8 Bit enthaltenden Codewortes fester Länge in ein Codewort mit unterschiedlicher Länge beschrieben. Die Operation ist funktionsmäßig dieselbe, die im Zusammenhang mit den Fig.l und 2 beschrieben wurde. Wieder sind Gruppe und Codesatz für das erste Datenwort willkürlich mit 0,0 gewählt. Somit wird die Adresse aus der Spalte 20 gewählt.
Das Register 14, in welches die Adressen aus den Spalten 20 - 50 gelesen werden, ist so vorbereitet, daß nur der Teil 72 eine Adresse aufnimmt. Das bedeutet, daß nur eine aus der Spalte 2O, die der Gruppe 0 zugeordnet ist, ausgelesene Adresse aufgenommen wird. In den Teil 112 des Registers 64 wird außerdem ein O-Bit für den Codesatz 0 eingetragen.
Das erste Datenwort wird in den aus 8 Bits bestehenden Abschnitt 68 des Registers 14 eingetragen und eine Zuordnung vorgenommen, in welcher das Wort gleichzeitig mit all den Wörtern in der Spalte 18 verglichen wird, es tritt eine Übereinstimmung auf, z.B. mit demWort in Zeile 70. Die 16 Adressen der Zeile 70 werden gelesen, jedoch nur die Adresse in Spalte 20 in den Teil 72 des Registers 14 ausgelesen. Gruppenzahl und Codesatzzahl der Zeile werden ebenfalls in die Teile 104 und 106 des Registers 114 gelesen.
Die 8 Bits umfassende Adresse im Teil 72 des Registers wird in den Teil 114 des Registers 64 übertragen. Die jetzt im Teil 114 stehende 8 Bits enthaltende Adresse und das den Codesatz kennzeichnende Bit im Teil 112 des
2098 19/0964 Docket YO 970
Registers 64 werden mit den 9 Bits in jeder der Spalten 60 und 62 des Speichers 12 verglichen. Eine Übereinstimmung tritt nur alt einer Zeile, z.B. der Zeile 116, ein und das Codewort unterschiedlicher Länge in Zeile 116 wird aus derSpalte 56 in den Teil 108 des Registers 64 gelesen. Die Länge des Wortes wird aus der Spalte 58 in den Teil 110 des Registers 64 gelesen. Bei einer angenommenen Wortlänge von 5 besteht dieses aus 5 binären Bits und 11 neutralen Stellen. Die Längenangabe im Teil 110 des Registers 64" sorgt dafür, daß nur die 5 wertdarstellenden Bits als codiertes Wort aus dem Register 64 herausgeschoben werden.
Die im Teil 104 des Registess 14 für das erste Eingabewort gespeicherte Gruppenzahl wird zum Wählen des nächsten der Teile 72 - 102 verwendet, der eine Adresse für das nächste 8 Bit enthaltende Eingabecodewort aufnimmt und damit die Gruppen für das nächste Eingabecodewort bestimmt. Das im Teil 106 des Registers 14 gespeicherte Bit zur Angabe der Codesatzzahl wir.d in den Teil 112 des Registers 64 als Codesatzzahl für da3 nächst!e Eingabecodewort übertragen. Somit dienen die aus der Zeile 7O, Spalten 52 und 54 des Speichers 10 für das erste Eingabewort gelesene Gruppenzahl und Codesatzzahl als Gruppenzahl und Codesatzzahl für das nächste Eingabewort. Die oben beschriebene Operation wird für alle anderen zu codierenden Eingabewörter wiederholt.
Die Speicher 10 und 12 mit den Registern 14 und 64 werden auch zum Decodieren benutzt. Wie beim Codieren, gilt für das erste zu decodierende Wort unterechiedlicher Länge eine Gruppe 0 und ein Codesatz 0. Register 14 ist so ausgelegt, daß die Adresse nur vom Teil 72 in die Spalte 20 (für die Gruppe O) und der Codesatz 0 in den Teil 112 des Registers 64 eingetragen wird. Die ersten
209819/0964 Docket YO 970 061
16 Bits codierter Daten, die zu decodieren sind, werden in den Teil 108 des Registers 64 eingegeben. Höchstwahrscheinlich ist das Codewort kleiner als 16 Bits und die übrigen Positionen des Teiles 108 werden durch nachfolgende Datenbits belegt. Das Codewort im Teil 108 und die Codesatzzahl im Teil 112 werden mit den Wöttern und der Codesatzzahl in den Spalten 56 und 60 des Speichers 12 verglichen. Eine Übereinstimmung tritt nur in einer Zeile auf, da kein Wort in einem Codesatz den Anfang eines anderen Wortes bildet. Wenn ein übereinstimmendes Wort gefunden wird, z.B. das Wort in der Zeile 116, wird j seine zugehörige Adresse aus der Spalte 62 und die Längen- ™ information aus der Spalte 58 ausgelesen und in den Teilen 114 bzw. 110 des Registers 64 gespeichert.
Das Adresswort im Teil 114 wird zmm Register 14 übertragen und mit den Wörtern in Spalte 20 des Speichers 10 verglichen. Eine einzige Übereinstimmung tritt auf, z.B. in der Zeile 70, und das entsprechende 8 Bits enthaltende Codewort in Spalte 18 wird in den Teil 68 des Registers 14 als decodiertes Ausgabewort ausgelesen. Gruppenzahl und Codesatzzahl der übereinstimmenden Wortzeile werden aus den Spalten 52 und 54 ausgelesen. Mit der Gruppenzahl wird bestimmt, welche der Spalten 20 - 50 die nächste ^ durch das nächste Wort erzeugte Adresse empfängt, und das den Codesatz angebende Bit wird im Teil 112 des Registers 64 gespeichert, um für das nächste zu decodierende Wort verwendet zu werden. Die Längeninformation im Teil 110 des Registers 64 wird zur Erhöhung des Inhaltes von Teil 108 benutzt, um das gerade codierte Wort zu entfernen und eine gleiche Anzahl neuer Datenbits in den Teil 108 einzugeben. Jedes folgende Codewort mit veränderlicher Länge wird dann genauso decodiert.
209819/0964 Docket YO 970 061
In den nach Fig.4 zusammengesetzten Figuren 4A - 4H ist das Ausführungsbeispiel der Fig.3 genauer gezeigt. Soweit möglich, sind die in Fig.3 benutzten Bezugszahlen für die gleichen Elemente auch in den Fig.4A- 4H verwendet worden.
Die Eingabewörter mit fester Länge werden in das System über eine Eingabeeinheit, wie z.B. einen Rechner oder eine übertragungsleitung, eingegeben. Ein Wortzähler 254 in Fig.4F ist vorgesehen, der auf die Zahl der zu codierenden Wörter eingestellt wird. Wenn ein Eingabewort codiert ist, wird der Zählerstand vermindert, und das . System arbeitet weiter, bis der Zählerstand den Wert 0 erreicht. Zu diesem Zeitpunkt endet die Operation. Die Codierfolge wird bestimmt durch Codiertaktimpulse mit den Bezeichnungen E-I bis E-9. Bei der Beschreibung der Codierfolge werden zuerst die Vorgänge beim Auftreten eines jeden TaktImpulses beschrieben. Zu Beginn wird der Wortzähler 254 auf die Anzahl der zu codierenden Wörter eingestellt. Eine Gruppenzahl 0 wird vorgegeben durch Setzen des Registers 104-2 (Fig.4E) auf 0000. Der Codesatz 0 wird vorgegeben tiurch Setzen des Registerteiles 112 In Fig.4G auf 0.
Bel E-I
wird der Inhalt des Registers 68-1 (Fig.4D) des Argumentenregisters für den Assoziativspeicher 10 weitergeleitet. Die eine Obereinstimmung anzeigenden Flip-Flops im SteuPrteil 10-1 (Fig.4A) des Assoziativspeichers 10 werden auf 1 gesetzt.
209819/0964 „„**«, 970 oei
Bei E-2
wird der Inhalt des Argumentenregisters 68-1 mit der Spalte 18 des Assoziativspeichers 10 verglichen. Das 8 Bits enthaltende Adresswort des übereinstimmenden Wortes aus einer der Spalten 20 - 50 des Assoziativspeichers 10 wird in das Argumentenregister 114 (Fig.4G) für den Assoziativspeicher 12 (Flg.4C) ausgelesen. Die auszulesende Spalte des Assoziativspeichers 10 wird durch die Gruppenzahl im Register 104-2 bestimmt. Diese ist am Anfang 0000. Aus demselben übereinstimmenden Wort im Assoziativspeicher 10 wird die Gruppenzahl in der Spalte 52 in das Register 4-1 ausgelesen und die Codesatzzahl aus derSpalte 54 in das Register 106(Fig.4E).. Die eine Übereinstimmung anzeigenden Flip-Flops im Assoziativspeicher 12 werden auf 1 gesetzt. Der Assoziativspeicher 10 wird zerstörungsfrei ausgelesen.
Bei E-4
werden die Codesatzzahl und das Adresswort in den Spalten 60 und 62 des Assoziativspeichers 12 mit den Inhalten der Argumentenregisterteilen 112 und 114 (Fig.4G) verglichen, um eine Übereinstimmung festzustellen.
Bei E-5
wird im Assoziativspeicher 12 der Teil des übereinstimmenden Wertes in der Spalte 56 in den Registerteil 108-2 (Fig.4F) gelesen. Im Assoziativspeicher 12 wird auBerdem die Längenangabe der Codezuordnung für das übereinstimmende Wort in Spalte 58 in den Registerteil 110 (Fig.4G) gelesen. Der Zählerstand des Wortzählers 254 wird vermindert .
20S8 18/0964 Docket YO 970 061
- 14 -Bel E-6
wird das äußerste rechte Bit des Registerteiles 108-2 weitergeleitet.
Bei E-7
wird der Inhalt des Registerteiles 108-2 verschoben und der Inhalt des als Längenzähler fungierenden Register-teils 110 vermindert.
Bei E-8
wird der Inhalt des Registerteils 110 abgefragt f um zu bestimmen, ob der Zählerstand des Längen*ahle 3 Null ist. Ist das nicht der Fall, werden die Schritte l*-f, B-7 und E-8 wiederholt, bis der Zählerstand Hull ist. Zu diesem Zeitpunkt wird der Wortzähler abgefragt um festzustellen, ob sein Inhalt Null ist und damit anzeigt, daß kein weiteres Wort zu codieren ist. Wenn der Wortzähler 254 den Zählerstand Null besitzt, beendet das System seine Operation. Beträgt der Zählerstand nicht NuIl9 wird der * Taktimpuls E-9 erzeugt.
Bei E-9
wird die Gruppenzahl vom Register 104-1 zum Register 104-2 und die Codetatzzahl vom Registerteil 106 zum Registerteil 112 übertragen. Der Taktimpuls E-I wird erzeugt und der ganze Opexationszyklus wiederholt» bis der Wortzähler 254 auf Null steht.
Vor einer genaueren Beschreibung ist die Beziehung «wischen den Elementen der Fig.3 und denen der Fig.4A-4H zu beachten. In Fig.3 besteht das Register 14 aus den Teilen
209819/0964 Docket YO 970 061
68, 72, 74, 76, 78 bis 106. In Pig.4D besteht der Registerteil 68 aus zwei Registern, nämlich 68-1 und 68-2. Die Registerteile 72 bs 106 in Fig.3 sind in Wirklichkeit Paare von Torschaltungen, die in den Pig.4A und 4B mit 72A und 72B bis 102A und 102B bezeichnet sind. In Fig.3 besteht das Register 64 aus den Teilen 108, 110, 112 und 114. Der Registerteil 108 besteht in Fig.4F aus einem Register 108-1 und einem Register 108-2. Die Registerteile 112 und 114 sind in Fig.49 gezeigt. Der Registerteil 104 des Registers 14 der Flg.3 ist in Fig.4E als aus den Registern 104-1 und 104-2 bestehend dargestellt. Der Registerteil 106 befindet sich rechts vom Registerteil 104-1 in Fig.4C.
Beim Codieren werden zuerst die sich auf die Gruppenzahl beziehenden Registerteile 104-2 (Flg.4E) auf 0000 rückgestellt. Der Registerteil 112 für den Codesatz in Fig.4G wird ebenfalls auf Null rückgestellt und der in Fig.4F gezeigte Wortzähler wird auf die Anzahl der zu codierenden Wörter eingestellt. Dann wird ein Impuls an die Eingangsleitung 256 des in Fig.4H gezeigten Codier-Taktgebers angelegt. Der Impuls auf der Leitung 256 läuft weiter über das ODER-Glied 258 und schaltet die »onostabile Kippschaltung 260 ein. Diese erzeugt einen Impuls E-I auf der E-I-Leitung, der über das Kabel 264 zur Torschaltung 266 (Fig.4D) gelangt, um das erste Eingangscodewort von der Eingabeeinheit in den Registerteil 68-1 zu leiten. Der Impuls E-I wird außerdem über die Verzögerungsschaltung 268 der Leitung 270 zugeleitet, die zur Eingabeeinheit führt. Dort fungiert der Impuls als ein Signal für die Eingabeeinheit, daß das nächste Codewort über die Eingabeleitung der Torschaltung 266 zugeführt werden kann.
209819/0964 Docket YO 970
Wenn die monostabile Kippschaltung 260 des Codier-Taktgebers (Fig.4H) in ihren stabilen Zustand zurückkehrt, schaltet sie die monostabile Kippschaltung 276 ein und erzeugt einen Impuls E-2 auf der E-2-Leitung, der über das Kabel 262 zum ODER-Glied 278 in Fig.4D gelangt, welches dann ein Signal auf der Leitung 280 erzeugt. Das Signal auf der Leitung 280 wird über den Registerteil 68-1 als Assoziativimpuls geliefert. Der Impuls E-2 wird außerdem an die Torschaltung 282 in Fig.4D angelegt, um die Ausgangssignale des Register- Wk teiles 68-1 der Spalte 18 des Assoziativspeichers 10 (Fig.4A) zuzuleiten. Somit wird der Inhalt des Registerteiles 68-1 verglichen mit dem Inhalt der Spalte 18 des Assoziativspeichers 10 und alle Übereinstimmungs-Anzeigeeinrichtungen des Assoziativspeichers 10 werden mit einer Ausnahme auf Null rückgestellt. Die übereinstimmungs-Anzeigeeinrichtung des Assoziativspeichers 10, die in ihrem "1"-Zustand aufgrund der Übereinstimmung belassen wurde, gestattet das Auslesen des übereinstimmenden Wortes aus der Spalte 18.
Wenn die monostabile Kippschaltung 276 des Codier-Taktgebers in ihren stabilen Zustand zurückkehrt, schaltet ™ sie die monostabile Kippschaltung 284 ein und erzeugt dadurch den Impuls E-3 auf der E-3-Leitung, der über das Kabel 262 an die Torschaltung 252 in Fig.4E angelegt wird, um die Ausgangssignale des Umsetzers 248 weiterzuleiten. Da der die Gruppenzahl enthaltende Registerteil 104-2 am Anfang auf die Gruppenzahl 0000 gesetzt wurde, erscheint ein Signal auf der Leitung 200 des Konverters 248, welches über die Torschaltung 252 und das Kabel 286 an die in Fig.4A gezeigte Torschaltung 72B angelegt wird. Der Impuls E-3 gelangt außerdem über das Kabel 264 zum ODER-Glied 288 in Fig.4A und erzeugt dadurch ein Signal auf der Leitung 290 zum Auslesen des Inhaltes des Asso-
209819/0964 Docket YO 970 061
ziativspeichers 10 als Ergebnis der Übereinstimmung zwischen dem Inhalt des Registers 68-1 und einem Wort in der Spalte 18. Da die Gruppenzahl 0000 ein Signal auf der Leitung 200 erzeugte, welches die Torschaltung 72B durchschaltete, wird jetzt das Adresswort in der Spalte 20 in der übereinstimmenden Zeile ausgelesen. Das Adresswort in Spalte 20 wird ausgelesen und gelangt über die Torschaltung 72B und das Kabel 292 und in den Registerteil 114 in Fig.4G. Wie bereits gesagt, ist der Registerteil 114 eines der Argumentregister für den Assoziativspeicher 12. Die aus 4 Bits bestehende Gruppenzahl aus der übereinstimmenden Zeile in Spalte des Assoziativspeichers 10 und die ein Bit umfassende Codesatzzahl in der übereinstimmenden Zeile in Spalte des Assoziativspeichers 10 werden über das Kabel 294 in den Registerteil 104-1 und 106 in Pig.4E übertragen. Der Impuls E-3 gelangt außerdem über das Kabel 264 zum ODER-Glied 296 (Fig.4C) und erzeugt so ein Signal auf der Leitung 298, welches die eine Übereinstimmung anzeigenden Flipflops im Steußrabschnitt 12-1 des Assoziativspeichers 12 auf 1 setzt.
Wenn die monostabile Kippschaltung 284 des Codiertaktgebers in Fig.4H in den stabilen Zustand zurückkehrt, schaltet sie die monostabile Kippschaltung 296 ein und erzeugt dadurch den Impuls E-4, der über das Kabel 264 als Assoziativimpuls an die Registerteile 112 und 114 in Fig.4G angelegt wird. Der Inhalt der Registerteile . 112 und 114 gelangt über das Kabel 298 zu den Spalten 60 und 62 des Assoziativspeichers 12. Eine Übereinstimmung erfolgt in einer Zeile der Spalten 60 und 62 und alle übereinstimmungs-Anzeigeeinrichtungen werden mit Ausnahme des einen eine Übereinstimmung anzeigenden Flipflops auf Null rückgestellt.
209819/0964 Docket YO 970
Wenn die monostabile Kippschaltung 296 des Codier-Takt-' gebers in den stabilen Zustand zurückkehrt, wird die monoetabile Kippschaltung 3OO eingeschaltet und dadurch der Impuls E-5 erzeugt, der über das Kabel 264 an das ODER-Glied 302 in Fig.4C angelegt wird. Dieses erzeugt ein Signal auf der Leitung 304, durch das das Codewort und seine Länge aus der übereinstimmenden Zeile der Spalten 56 bzw. 58 des Assoziativspeichers 12 ausgelesen werden. Die aus den Spalten 56 und 58 des Assoziativspeichers 12 ausgelesenen Werte für Codewort und Länge werden über fk das Kabel 306 in die Registerteile 108-2 und HO übertragen. Das Codewort wird in den Registerteil 1O8-2 und seine Länge in den Registerteil110 übertragen. Das übereinstimmende Adresswort aus der Spalte 62 des Assoziativspeichers 12 wird über das Kabel 308 in das Argumentregister 68-1 der Pig.4D übertragen.
Bisher wurde ein eingegebenes Codewort mit fester Länge mit dem Inhalt der Spalte 18 des Argumentregisters 10 verglichen. Da die erste Gruppenzahl 0000 war, wurde die übereinstimmende Adresse in Spalte 2O ausgelesen und in den Registerteil 112 übertragen. Außerdem wurde die Gruppenzahl in der übereinstimmenden Zeile des Assoziativ-Speichers 10 aus derSpalte 52 ausgelesen und in den Registerteil 104-1 übertragen. Die Codesatzzahl in der übereinstimmenden Zeile des Assoziativspeichers IO wurde ebenfalls aus der Spalte 54 ausgelesen und in den Speicherteil 106 übertragen. Dann wurde das in den Registerteil 114 übertragene Adresswort mit dem Inhalt der Spalte 62 des Assoziativspeichers 12 und gleichzeitig die erste Codesatzzahl 0 im Registerteil 112mit dem Inhalt der Spalte 60 verglichen, um eine Übereinstimmung zu erzeugen. Für eine der Zeilen tritt eine Übereinstimmung auf. Das Codewort unterschiedlicher Länge aus der übereinstimmenden Zeile der Spalte 56 des Assoziativspeichers
209819/0964 Docket YO 970 061
und seine Länge aus der Spalte 58 wurden in die Registerteile 108-1 bzw. HO in den Fig.4F und 4G übertragen.
Der Impuls E-5 der monostabilen Kippschaltung 300 des Codier-Taktgebers gelangt über die Leitung 262 über das ODER-Glied 310 (Fig.4F) auf die Leitung 312. Mit dem Signal auf der Leitung 312 wird der Inhalt des Hortzählers 254 so vermindert, daß er anzeigt, daß ein Eingabewort in ein entsprechendes Codewort unterschiedlicher Länge aus der Spalte 56 des Assoziativspeichers codiert wurde. Wann die monostabile Kippschaltung 300 des Codier-Taktgebers in den stabilen Zustand zurückkehrt, schaltet ein Impuls über das ODER-Glied 314 die monostabile Kippschaltung 360 jsin, wodurch der Impuls E-6 erzeugt wird, der über das Kabel 264 an die Torschaltung 332 (Fig.4F) angelegt wird, um das äußerste rechte Bit des Codewortes unterschiedlicher Länge in den Registerteil 108-2 zu leiten. Dieses Bit ist das erste Bit des Codewortes unterschiedlicher Länge und wird über die Torschaltung 332 der Ausgabeeinheit, z.B. einem Rechner oder einer übertragungsleitung, zugeführt.
Wenn die monostabile Kippschaltung 316 des Codier-Taktgebers in den stabilen Zustand zurückkehrt, wird die monostabile Kippschaltung 324 eingeschaltet und dadurch der Impuls E-7 erzeugt, der über das Kabel 262 zum Registerteil 108-2 gelangt und den Inhalt des Registerteils 1O8-2 um eine Bitposition nach rechts verschiebt. Der Impuls E-7 gelangt auch über das ODER-Glied 336 derFig.4G zur Leitung 338 und vermindert den Inhalt des Registerteils 110 um 1. Dadurch wird die Längenanzeige des im Register 10 stehenden Hortes um vermindert.
2098 19/0964 Docket yo 970 06i
Wenn die monostabile Kippschaltung 324 in den stabilen Zustand zurückkehrt, schaltet sie die monostabile Kippschaltung 334 ein, die den Impuls E-8 erzeugt/ der über das Kabel 264 zur Torschaltung 318 in Fig.4G gelangt, um den Registerteil 110 zu prüfen. Wenn der Registerinhalt nicht aus lauter Nullen besteht, wird ein Impuls auf der Leitung 232 erzeugt. Die Leitung 232 verläuft in den Kabeln 320 und 322 zum ODER-Glied 314 in Fig.4H und der Impuls auf der Leitung 232 schaltet die monostabile Kippschaltung 316 ein. Somit wird wieder der Impuls E-6 erzeugt, der das nächste Bit des im Registerteil 108-2 befindlichen Codewortes unterschiedlicher Länge herausschiebt, und der Impuls E-7 wird erzeugt, um die Längenanzeige im Registerteil 110 um 1 zu vermindern. Dann wird der Impuls E-8 erzeugt, um zu prüfen, ob der Inhalt des Registerteiles 110 Null beträgt. Diese Operation wiederholt sich, bis das ganze Codewort unterschiedlicher Länge aus dem Registerteil 108-2 herausgeschoben ist und der Registerteil 110 lauter Nullen enthält. Wenn der Inhalt des Registerteiles 110 Null ist, verursacht der Impuls E-8, der der in Fig.4G gezeigten Torschaltung 318 zugeführt wird, ein Signal auf der Leitung 234 und nicht auf der Leitung 232. Das Signal auf der Leitung 234 ge?- langt zu den UND-Gliedern 326 und 328 in Fig.4F. Auf diese Weise wird der Wortzähler 254darauf geprüft, ob sein Inhalt Null ist, wodurch angezeigt wird, daß alle eingegebenen Wörter codiert sind. Beträgt der Inhalt des Wortzählers 254 Null, wird das UND-Glied 328 durchgeschaltet und erzeugt ein Ausgangssignal, welches das Ende der Codieroperation anzeigt. Beträgt der Inhalt des Zählers 254 nicht Null, wird das UND-Glied 326 durchgeschaltet und erzeugt ein Ausgangssignal auf der Leitung 236, welches über die Kabel 320 und 322 die. monostabile Kippschaltung 330 (Fig.4H) des Codier-Taktgebers einschaltet.
209819/0964 Docket YO 970 061
Wenn die monostabile Kippschaltung 330 eingeschaltet ist, erzeugt sie einen Impuls E-9, der über das Kabel 262 und das OSER-Glied 340 der Fig.4E auf die Leitung 342 gelangt. Der Impuls auf der Leiung 342 öffnet die Torschaltung 344 und die Gruppenzahl im Registerteil 1O4-1 wird dadurch zum Registerteil 104-2 übertragen/ um den Konverter 248 so zu steuern, daß die der Gruppenzahl entsprechende Ausgangsleitung des Umsetzers 248 erregt wird. Der Impuls E-9 gelangt außerdem über das ODER-Glied 346 (Fig.4E) auf die Leitung 348, die den Impuls zur Torschaltung 350 in Fig.4E weiterleitet, um die neue im Register 106 gespeicherte Codesatzzahl zum Registerteil 112 der Fig.4G zu übertragen. Somit wird jetzt die aus der Spalte 52 des Assoziativspeichers 10 erhaltene Gruppenzahl im Registerteil 104-2 gespeichert, um festzustellen, welche der Spalten 20 - 50 des Assoziativspeichers bei der nächsten Operation ausgelesen wird. In gleicher Weise wurde die bei der Codieroperation aus der Spalte 54 des Assoziativspeichers 10 erhaltene Codesatzzahl zum Registerteil 112 zwecks Vergleichs der Spalte 60 des Assoziativspeichers 12 bei der nächsten Codieroperation übertragen. Wenn die monostabile Kippschaltung 330 in den stabilen Zustand zurückkehrt, gelangt ein Impuls zum ODER-Glied 258 des Codier-Taktgebers, um die Operation für das nächste eingegebene zu codierende Wort zu wiederholen.
Der Decodierbetrieb wird gesteuert durch eine Folge von Decodier-Taktimpulsen D-I bis D-14. Vor dem Taktimpuls Dl wird der Wortzähler 254 auf die Zahl der zu decodierenden Wörter eingestellt. Eine Gruppenzahl 0000 wird in das Register 1O4-2 (Fig.4E) und eine Codesatzzahl 0 in das Register 112 (Fig.4G) eingegeben.
209819/0964
Docket Ϊ0 970
- 22 Bei D-I
wird die Längenanzeige im Register HO auf OQOO gesetzt.
Bei D-2
wird das erste Bit des zu decodierenden Codewortes unterschiedlicher Länge von der Eingabeeinheit in die äußerste linke Bitposition des Registerteiles 108-1 geleitet und die Längenanzeige im Registerteil HO um 1 erniedrigt.
Bei D-3
wird der Registerteil 110 auf einen Längenwert Null geprüft. Ist der Längenwert bei D-4 von Null verschieden, ist der Inhalt des Registerteils 1O8-1 zu verschieben und die Impulse D2 und D3 sind erneut zu erzeugen. Wenn das Längenwort im Registerteil HO bei D-3 den Wert Null hat, bedeutet das, daß 16 Datenbits in den Registerteil 108-1 geschoben wurden und eine Assoziation vorgenommen werden kann. Daher wird D-5 erzeugt
Bei D-5
werden die eine Übereinstimmung anzeigenden Flipflops im Abschnitt 12-1 des Assoziativspeichers 12 in Pig.4C auf 1 gesetzt.
Bei D-6
werden die 16 Bits im Registerteil 108-1 und das die Codesatzzahl anzeigende Bit im Registerteil 112 mit den Spalten 56 bzw. 60 des Assoziativspeichers 12 verglichen. Es tritt eine Übereinstimmung für eine der Zeilen auf.
209819/0964 Dockät yo 970 06i
- 23 Bei D-7
wird die aus 8 Bits bestehende Adresse in Spalte 62 der übereinstimmenden Zeile des Assoziativspeicher 12 auf den Argumentregisterteil 68-1 des Assoziativspeichers 10 übertragen. Das Wort in Spalte 56 der übereinstimmenden Zeile des Speichers 12 wird zum Registerteil 108-2 und das Längenwort in Spalte 58 der übereinstimmenden Zeile zum Registerteil 110 übertragen. Die die Übereinstimmung anzeigenden Flipflops im Assoziativspeicher werden auf 1 gesetzt.
Bei D-8
wird das Bitadresswort im Registerteil 68-1 mit dem Inhalt eines der Elemente 20 bis 50 des Assoziativspeichers 10 verglichen. Die jeweilige Spalte, deren Adresswort verglichen wird, wird bestimmt durch die Gruppenzahl im Registerteil 104-2, die anfangs 0000 beträgt.
Bei D-9
wird das Codewort in der übereinstimmenden Zeile der Spalte 18 in den Registerteil 68-2 übertragen. In der übereinstimmenden Zeile wird die Gruppenzahl aus der Spalte 52 in das Register 1O4-1 und der Codesatz aus der Spalte 54 in das Register 106 übertragen. Der Inhalt des Wortzählers wird um 1 vermindert.
Bei D-IO
wird das decodierte Wort im Register 68-2 der Ausgabeeinheit zugeleitet.
209819/0964 Docket YO 970 061
- 24 Bei D-Il
wird der Inhalt des Argumentregisters 108-1 um 1 Bit verschoben, die Längenangabe im Registerteil 110 um 1 vermindert.
Bei D-12
wird das neue Datenbit in das äußerste linke Bit des Argumentregisterteiles 108-1 eingegeben.
Bei D-13
wird die Längenangabe im Registerteil 110 geprüft. Ist diese von Null verschieden, werden die Impulse D-Il und D-12 wiederholt, bis die Längenangabe im Registerteil Null ist. Wenn der Inhalt des Wortzählers 254 gleich Null ist, endet die Operation. Ist er von Null verschieden, tritt der Impuls D-14 auf.
Bei D-14
wird die Gruppenzahl vom Registerteil 104-1 dem Registerteil 104-2 zugeleitet und der Codesatz im Register 106 dem Register 112 zugeführt. Die Reihenfolge der Operationen wird von D-5 an wiederholt, bis der Inhalt des Wortzählers 254 anzeigt, daß alle Wörter decodiert worden sind. Das Auslesen der Assoziativspeicher 10 und 12 erfolgt natürlich zerstörungsfrei und der Inhalt bleibt bei allen Decodieroperationen im Speicher stehen.
Beim Decodieren wird der Wortzähler 254 in Fig.4F entsprechend der Anzahl der zu decodierenden Wörter eingestellt. Eine Gruppenzahl von 0000 wird in den Registerteil 104-2 in Fig.4E eingegeben. Eine Codesatzzahl wird
209819/0964 Docket YO 970
durch Setzen des Registerteiles 112 der Fig.4G auf Null festgelegt. Ein Startimpuls wird dann an die Leitung 352 der Fig.4H angelegt, um den Decodier-Taktgeber zu starten. Der Startimpuls auf der Leitung 352 schaltet eine monostabile Kippschaltung 354 zur Erzeugung eines Impulses D-I ein, der über das Kabel 264 zum Register 110 (Pig.4G) gelangt und die Wortlängenanzeige auf 0000 rückstellt.
Wenn die monostabile Kippschaltung 354 in den stabilen Zustand zurückkehrt, wird ein Impuls vom ODER-Glied 356 übertragen und schaltet die monostabile Kippschaltung 358 ein, die dann den Impuls D-2 erzeugt, der über das Kabel 262 und das ODER-Glied 360 der Fig.4F an die Torschaltung 362 angelegt wird, um das erste Bit des zu decodierenden. Wortes von der Eingabeeinheit zuzuführen. Dieser Prüfimuuls wird zur Verzögerungsschaltung 364 übertragen und liefert ein Signal an die Eingabeeinheit, welches anzeigt, daß das nächste Bit der Eingabeleitungen der Torschaltung 362 zugeleitet werden kann. Der Impuls D-2 wird auch über das Kabel 264 und das ODER-Glied 336 zur Leitung 338 übertragen, um den Inhalt des Registerteiles 110 in Fig.4G zu vermindern.
Wenn die monostabile Kippschaltung 358 in den stabilen Zustand zurückkehrt, wird die monostabile Kippschaltung 366 eingeschaltet und erzeugt den Impuls D-3, der über das Kabel 264 zur Torschaltung 368 (Fig.4G) übertragen wird, um den Registerteil 110 zu prüfen. Wenn der Inhalt des Registerteils 110 Null beträgt, erscheint ein Impuls auf der Leitung 240, der über das Kabel 320 und das Kabel 370 zum ODER-Glied 374 (Fig.4H) gelangt, dessen Ausgangssignal die monostabile Kippschaltung 376 einschaltet, die den Impuls D-5 erzeugt. Wenn der Inhalt des Registerteiles 110 jedoch von Null verschieden ist und damit anzeigt, daß
209819/0964 Docket YO>97O 061
das Register 108-1 noch nicht ganz gefüllt ist, erscheint ein Impuls auf der Leitung 238, der über das Kabel 320 und das Kabel 37O die monostabile Kippschaltung 372 zur Erzeugung des Impulses D-4 einschaltet.
Der Impuls D-4 wird über das Kabel 262 und das ODER-Glied 394 (Fig.4F) zum Schieberegister 108-1 übertragen und verschiebt den Inhalt des Registers 108-1 um 1 Bit. Wenn die monostabile Kippschaltung 372 in den stabilen Zustand zurückkehrt, wird über das ODER-Glied 356 ein Signal an die monostabile Kippschaltung 358 zur Erzeugung eines weiteren Impulses D-2 angelegt. Die oben beschriebene Operation läuft weiter, bis der Registerteil 1O8-1 gefüllt ist, was dadurch angezeigt wird, daß der Inhalt des Registerteils 110 Null beträgt. Wie bereits gesagt, wird zu diesem Zeitpunkt die monostabile Kippschaltung 376 eingeschaltet und der Impuls D-5 erzeugt, welcher dann über das Kabel 264, das ODER-Glied 296 und die Leitung 298 (Fig.4C) die eine Übereinstimmung anzeigenden Flipflops des Assoziativspeibhers 12 auf 1 setzt.
Wenn die monostabile Kippschaltung 376 in den stabilen Zustand zurückkehrt, schaltet die die monostabile Kippschaltung 378 ein und erzeugt den Impuls D-6, der über das Kabel 262 den Vergleich des Inhaltes des Registers 108-1 mit dem Inhalt der Spalte 56 des Speichers 12 veranlaßt. Der Impuls D-6 wird außerdem über das Kabel 264 zum Registerteil 112 übertragen, um das die Codesatzzahl angebende Bit mit dem Inhalt der Spalte 60 des Speichers 12 zu vergleichen. Somit wird das Adresswort in Spalte der übereinstimmenden Zeile des Speichers 12 ausgelesen und über das Kabel 308 zum Argumentregisterteil 68-1 der Fig.4D übertragen. Das übereinstimmende Wort in Spalte 56 und seine Längenangabe in Spalte 58 werden ebenfalls über das Kabel 306 in die Registerteile 108-1 bzw. 110
209819/0964 Docket YO 97O
ausgelesen. Der Impuls D-2 setzt auch über das Kabel 264, das ODER-Glied 277 und die Leitung 274(Fig.4A) die eine Übereinstimmung anzeigenden Flipflops im Assoziativspeicher 10 auf 1.
Wenn die monostabile Kippschaltung 380 in den stabilen Zustand zurückkehrt, wird die monostabile Kippschaltung 382 eingeschaltet und dadurch der Ippuls D-8 erzeugt, der über das Kabel 262 das ODER-Glied 278 und die Leitung 280 übertragen wird und als Assoziierungsimpuls für den Argumentregisterteil 68-1 in Fig.4D fungiert. Der Impuls D-8 wird außerdem an die Torschaltung 250 angelegt, um die Ausgangssignale des Umsetzers 248 einer der Torschaltungen 72A bis 102A in den Fig.4A und 4B zuzuleiten. Wie bereits gesagt, wurde der Regiaterteil 104-2 ursprünglich mit der Codegruppe 0000 besetzt. Daher erscheint das Ausgangssignal des Umsetzers 248 auf der Leitung 200 und kann an die Torschaltung 72A angelegt werden, die mit Spalte 20 des Assoziativspeichers 10 verbunden ist. Der Impuls D-8 wird außerdem an die Torschaltung 384 (Fig.4D) angelegt, um den Inhalt des Argumentregisterteiles 68-1 den Torschaltungen 72A bis 102A zuzuleiten. Es wird jedoch nur die Torschaltung 72A geöffnet und daher wird der Inhalt des Registers 68-1 verglichen mit dem Inhalt der Spalte des Speichers 10, und eine Übereinstimmung tritt in einer der Zeilen auf.
Wenn die monostabile Kippschaltung 382 in den stabilen Zustand zurückkehrt, wird die monostabile Kippschaltung 384 eingeschaltet und erzeugt den Impuls D-9, derüber das Kabel 264 und das ODER-Glied 288 auf die Leitung (Fig.4A) gelangt und als Leseimpuls für den Assoziativspeicher 10 fungiert. Das aus 8 Bits bestehende Codewort für die übereinstimmende Zeile wird aus der Spalte 18
209819/0964 Docket YO 970
- 28 -
des Speichers 10 in den Registerteil 68-2 gelesen. Die aus 4 Bits bestehende Gruppenzahl der übereinstimmenden Zeile wird aus der Spalte 52 des Speichers 10 ausgelesen und im Registerteil 104-1 gespeichert. In gleicher Weise wird die Codesatzzahl der übereinstimmenden Zeile aus der Spalte 54 gelesen und im Registerteil 106 gespeichert. Der Impuls D-9 wird außerdem über das Kabel 262 und das ODER-Glied 310 übertragen, um den Inhalt des Wortzählers 254 zu vermindern.
Bisher wurden also 16 hereinkommende Datenbits seriell in den Registerteil 108-1 eingegeben.und im Assoziativspeicher 12 mit dem Codesatzbit Null verglichen. Ein Codewort unterschiedlicher Länge in Spalte 56 wurde mit einer entsprechenden Anzahl von Datenbits zur Übereinstimmung gebracht. Das Adresswort für das übereinstimmende Codewortwurde aus dem Speicher 12 ausgelesen. Das Adresswort aus Spalte 62 des Speichers 12 wurde in das Register 68-1 eingegeben und mit einer der Spalten des Assoziativspeichers 10 gemäß der Gruppenzahl verglichen, die ursprünglich 0000 betrug. Das Codewort fester Länge für die übereinstimmende Zeile wird aus der Spalte 18 des Speichers 10 ausgelesen und im Register 68-2 gespeichert. Die neue Gruppenzahl wurde aus der Spalte 52 des Speichers 10 ausgelesen und in das Register 104-1 eingegeben und die neue Codesatzzahl aus der Spalte 54 des Speichers 10 wurde in den Registerteil 106 übertragen. Somit ist das decodierte aus 8 Bits bestehende Codewort jetzt im Registerteil 68-2 gespeichert.
Wenn die monostabile Kippschaltung 384 in den stabilen Zustand zurückkehrt, wird die monostabile Kippschaltung 386 eingeschaltet und erzeugt den Impuls D-IO, der über das Kabel 262 zu der in Fig.4D dargestellten Torschaltung 388 übertragen wird und das Codewort im Register
209819/0964 Docket YO 970
68-2 der Ausgabeeinheit zuleitet. Wenn die monostabile Kippschaltung 386 in den stabilen Zustand zurückkehrt, schaltet der dabei entstehende Impuls über das ODER-Glied 390 die monostabile Kippschaltung 392 ein, die den Impuls D-Il erzeugt, der über das Kabel 262 und das ODER-Glied 394 (Fig.4F) den Inhalt des Argumentregisterteils 108-1 um 1 Bit nach rechts verschiebt. Der Impuls D-Il gelangt außerdem über das ODER-Glied 336 auf die Leitung 338 (Fig.4G), um den Inhalt des die Längenangabe enthaltenden Registerteils 110 um 1 zu vermindern. Wenn die monostabile Kippschaltung 392 in den stabilen Zustand zurückkehrt, wird die monostabile Kippschaltung 396 eingeschaltet und erzeugt den Impuls D-I2, der über das Kabel 262 und das ODER-Glied 360 zur Torschaltung 362 (Fig.4F) übertragen wird, um das nächste Bit von der Eingabeeinheit weiter zuleiten. Der Impuls D-12 wird außerdem an die Verzögerungsschaltung 364 angelegt, um der Eingabeeinheit anzuzeigen, daß ein weiteres Bit den Eingabeleitungen der Torschaltung 362 zugeleitet werden kann.
Wenn die monostabile Kippschaltung 396 in den stabilen Zustand zurückkehrt, wird die monostabile Kippschaltung 398 eingeschaltet und erzeugt den Impuls D-13, der über das Kabel 264 zur Torschaltung 400 in Fig.4G übertragen wird, um den Inhalt des die Längenangabe enthaltenden Registerteils 110 zu prüfen. Ist der Inhalt von Null verschieden, erscheint ein Impuls auf der Leitung 242, der über die Kabel 320 und 402 zum ODER-Glied 390 der Fig.4E gelangt. Das Ausgangssignal des ODER-Gliedes 390 schaltet die monostabile Kippschaltung 392 so ein, daß die Impulse D-Il, D-12 und D-13 wieder erzeugt werden, bis der Inhalt des Registerteils 110 Null beträgt. Ist dasder Fall, erscheint ein Impuls auf der Leitung 244, der an die UND-Glieder 404 und 406 angelegt wird.
209819/0964 Docket YO 970 061
Wenn der Inhalt des Wortzählers 254 Null beträgt, liefert das UND-Glied 406 ein Ausgangssignal und zeigt damit das Ende der Decodieroperationen an. Ist der Inhalt des Wortzählers 254 von Null verschieden, erscheint ein Impuls auf der Leitung 246, der über die Kabel 320 und 402 die monostabile Kippschaltung 408 zur Erzeugung des Impulses D-14 einschaltet. Der Impuls D-14 gelangt über das Kabel 262, das ODER-Glied 346 und die Leitung 348 zur Torschaltung 350 (Pig.4E), um.das die Cödesatzzahl anzeigende Bit des Registerteils 106 zum Registerteil 112 zu übertragen. Der Impuls D-14 wird auch über das ODER-Glied 340 und die Leitung 342 an die Torschaltung 344 angelegt, um die Gruppenzahl vom Registerteil 104-1 zum Registerteil 104-2 zu übertragen, wo sie dem Umsetzer 248 zugeführt wird. So stehen die neue Gruppenzahl und die neue Codesatzzahl für die nächste Decodieroperation zur Verfügung.
In Fig.5 ist eine zweite, etwas unterschiedliche Verarbeitungeeinheit gezeigt, bei der im Decodierbetrieb eine Überlappung der Arbeitsweise auftritt. Die Decodieroperation erfolgt somit schneller, jedoch sind zusätzliche Bauteile erforderlich.
In Fig.5 ist schematisch ein Blockschaltbild zweier Speichereinheiten 11 und 13 gezeigt. Bei den Speichern handelt es sich um Assoziativspeicher, ähnlich den in Fig.3 gezeigten. Der Speicher 11 enthält darstellungsgemäß 12 Zeichen, die den in 5 Gruppen in den Spalten 15, 17, 19, 21 und 23, die die Gruppen 0, 1, 2, 3, 4 darstellen, angeordneten Datensatz bilden. Die Spalte 25 enthält die Adressen der Zeilen. In der praktischen Ausführung werden die Daten in binärer Form dargestellt, in Fig.5 sind sie der Klarheit halber jedoch alphanumerisch wiedergegeben.
209819/0964 Docket YO 970 061
Im Speicher 13 enthält die Spalte 27 die in zwei Sätzen angeordneten Codewörter. Die oberen 12 Zeilen der Spalten 29 und 31 enthalten die Adressen bzw. Wortlängen. Die Adressen und Wortlängen sind außerdem in den unteren 12 Zeilen der Spalten 33 bzw. 35 gespeichert. Die unteren 12 Zeilen der Spalten 29 und 31 und die oberen 12 Zeilen der Spalten 33 und 35 sind mit Nullen gefüllt. Die oberen 12 Zeilen der Codewörter im Speicher 13 stellen den Codesatz 0 und die unteren 12 Zeilen den Codesatz 1 dar, die Codesatzdarstellungen selbst sind jedoch nicht gespeichert. Register 37 gehört zum Speicher 11 und Register 19 zum Speicher 13, und jedes Register enthält Teile für jede Spalte der Speicher. Die Registerteile 55 und 57 werden für die Adressen bzw. die Längenangabe des Codesatzes 0 und die Registerteile 59 und 61 für die Adressen bzw. Längenangaben des Codesatzes 1 benutzt. Bei der Codieroperation werden eine Gruppe 0 und ein Codesatz 0 willkürlich für das erste zu codierende Wort gewält. Das erste Wort, z.B. "B", wird in alle Teile 41 bis 49 des Registers 37 eingegeben. Da die Gruppe 0 ist, ist das Register so voreingestellt, daß nur das "B" im Teil 41 mit der Spalte 15 (für die Gruppe 0) übereinstimmt. Das Wort stimmt mit der zweiten Zeile überein, und die Adresse "2" wird in den Teil 51 ausgelesen. Die Adresse 2 wird vom Teil 51 in die Teile 55 und 59 des Registers 39 übertragen. Die Teile 57 und 61 des Registers 39, die für die Längenangaben bestimmt sind, enthalten am Anfang Nullen. Da der Codesatz 0 ist, ist das Register 39 so voreingestellt, daß die Adresse im Teil 55 mit Spalte 29 verglichen wird und die Adresse im Teil 59 nicht. Der Inhalt Null des Registerteiles 61 für die Längenangaben wird ebenfalls auf Spalte 35 verglichen (Teil 61 bezieht sich auf den Codesatz 1). Normalerweise stimmt die Adresse nur mit einem zugehörigen Wort im Speicher überein, die Adresse 2 im Teil 55 stimmt z.B. mit der zweiten Zeile überein. Im
209819/0964 Docket YO 970 061
Adress-Satz befindet sich jedoch ein Adresswort, das aus lauter Nullen besteht und auch mit den Nullen im unteren Teil des Speichers 13 übereinstimmt. Aus diesem Grund werden die Nullen im Teil 61 ebenfalls verglichen. Sie stimmen mit keinem Wort im unteren Teil der Spalte 35 überein und stellen dadurch sicher, daß nur die eine richtige Reihe übereinstimmt. Wenn eine Übereinstimmung auftritt, wie z.B. in der zweiten Zeile für die Adresse 2, wird das entsprechende Codewort 01 in den Teil 53 des Registers 39 eingegeben. Die entsprechende Längenangabe "zwei" wird ebenfalls in den Teil 57 eingegeben und dazu benutzt, die durch die beiden Bits aus dem Teil 53 dargestellte Angabe zu erhöhen.
Die Gruppe und der Codesatz für das nächste Wort müssen auf der Basis der Identität des vorhergehenden Wortes bestimmt werden. Das erfolgt in einem dritten Speicher und einem Register 65. Gleichzeitig wird das Eingabedatenwort (d.h. das "B") in den Teil 41 des Registers 37 und in den Teil 67 des Registers 65 eingegeben. Die Spalte 73 des Speichers 63 enthält die Zeichen des Datensatzes binär codiert und die Spalten 75 und 77 enthalten die zugehörige Gruppenzahl und die Codesatzzahl. Somit stimmt das "B" im Teil 67 mit dem in der Zeile 2 gespeiherten "B" überein und liefert die Gruppenzahl 1 und die Codesatzzahl 0, welche in die Teile 69 und 71 des Registers 65 gelesen werden. Durch die Gruppenzahl 1 wird das Register 37 so voreingestellt, daß nur das nächste Wort im Teil 43 verglichen wird, und durch die Codesatzzahl 0 wird das Register 39 so eingestellt, daß nur der Inhalt der Teile 55 und 61 verglichen wird.
Das nächste Zeichen, z.B. "F", wird in alle Teile des Registers 37 eingegeben und nur mit Spalte 43 verglichen.
209819/0964 Docket YO 970 061
Eine Übereinstimmung wird wieder in der zweiten Zeile festgestellt und erzeugt eine Adresse "2", die in die Teile 55 und 59 des Registers 39 eingegeben wird, es wird jedoch nur der Teil 55 mit der Spalte29 verglichen, weil die Codesatzzahl 0 das Register 39 voreingestellt hat. Die Nullen im Teil 61 werden ebenfalls verglichen und eine Übereinstimmung tritt in der zweiten Zeile auf und erzeugt das Codewort 01, welches in den Teil 53 zusammen mit der Längenangabe 2 eingegeben und als codiertes Wort ausgegeben wird. In der Zwischenzeit wurde das Datenwort "P" im Speicher 63 verglichen und erzeugte die Gruppenzahl 3 und die Codesatzzahl 1 für das nächste Datenwort. Alle anschließend eingegebenen Datenwörter werden genauso codiert. Für eine Codesatzzahl 1 wird der Registerteil mit der Spalte 33 verglichen und die Nullen in Spalte 57 werden mit Spalte 31 verglichen.
Zur Decodierung werden für das erste Wort die Gruppenzahl 0 und die Codesatzzahl 0 gewählt. Das bedeutet, daß nur der Teil 41 des Registers 37 ein Wort empfängt und die Information nur in den Teilen 55 und 57 des Registers 39 ausgelesen wird. Am Anfang wird der Teil 53 des Registers 39 mit den Eingabedatenbits gefüllt und ein Vergleich mit der Spalte 27 vorgenommen. Es können zwei Übereinstimmungen auftreten. Wenn das Wort z.B. 00001 ist, tritt eine Übereinstimmung auf mit der 9. und der 22. Zeile. Somit können Adressen in die Teile 55 und 59 und übereinstimmende Wortlängenangaben in die Teile 57 und 61 eingelesen werden. Die Codesatzzahl bestimmt, welche Teile auszulesen sind. Für den Codesatz 0 wird die Adresse im Teil 55 ausgelesen und die Längenangabe im Teil 57 erhöht die durch die übereinstimmenden Bits im Teil 53 dargestellte Angabe und füllt den Teil 53 des Registers 39 nach.
209819/0964 „ Λ<,
Docket YO 970 061
Die Adresse aus dem Tell 55 des Registers 39 wird zum " Teil 51 des Registers 37 übertragen und mit Spalte 25 verglichen. Wenn eine Übereinstimmung auftritt, wird nur das Wort aus Spalte 15 in den Teil 41 des Registers 37 gelesen, weil die Gruppenzahl 0 ist. In der Zwischenzeit können neue Bits in den Teil 53 des Registers 39 eingegeben, mit Spalte 27 des Speichers 13 verglichen und so , die Decodierung des nächsten Wortes begonnen und neue Adressen und Wortlängenangaben in die Teile 55, 57, 59 und 61 eingegeben werden. Das in den Teil 41 des Re- W gisters 37 nach der Übereinstimmung im Speicher 11 eingegebene Wort ist das decodierte Wort. Dieses Wort wird in den Teil 67 des Registers65 eingegeben und mit Spalte 73 verglichen und liefert die neue Gruppen- und Codezahl für die Spalten 75 und 77. Hit der neuen Codesatzzahl wird festgelegt, welcher der Teile 55, 57, 59 oder 61 des Registers 39 auszulesen ist. Mit der neuen Gruppenzahl wird festgelegt, welcher Teil des Registers 37 das neu decodierte Wort nach einer durch die neue Adresse aus dem ausgewählten Teil 55 oder 59 des Registers erzeugten Übereinstimmung enthält. Die nachfolgenden Wörter mit veränderlicher Länge werden genauso decodiert.
Der Vorteil des in Fig.5 gezeigten Verarbeitungsgerätes liegt darin, daß beim Decodierbetrieb im Speicher 13 ein neues Wort verglichen und zur Übereinstimmung gebracht werden kann, während gleichzeitig die Speicher 11 und 63 noch die alte Information verarbeiten. Da die Verarbeitungseinheit in Fig.5 ähnlich aufgebaut ist wie die in Fig.3 gezeigte, wird sie nicht näher beschrieben.
209819/0964 Docket YO 970 061

Claims (12)

  1. - 35 PATENTANSPRÜCHE
    Anordnung zur Umsetzung von Codewörtern fester Länge eines ersten Codes in Codewörter unterschiedlicher Länge eines zweiten Codes und umgekehrt, gekennzeichnet durch eine erste Speichereinheit zum Speichern der Codewörter fester Länge, von d^nen jedes zusammen mit M Adreßwörtern, deren jedes einer anderen von M Codegruppen zugeordnet ist, in die die Gesamtheit der Codewörter eingeteilt ist, und mit einer die zugehörige Codegruppe angebenden Codegruppenzahl und einer Codesatzzahl gespeichert wird, die den zugehörigen Codesatz angibt,
    eine zweite Speichereinheit zum Speichern der Codewörter unterschiedlicher Länge die in N Codesätze unterteilt sind und von denen jedes zusammen mit einer den zugehörigen Codesatz angebenden Codesatzzahl und einem Adreßwort gespeichert wird, das einem Adreßwort der ersten Speichereinheit entspricht,
    eine mit der ersten Speichereinheit verbundene erste Eingabevorrichtung für den Vergleich eines umzusetzenden Codewortes fester Länge mit den gespeicherten Codewörtern zur Feststellung einer Übereinstimmung,
    eine erste Ausgabevorrichtung zum Auslesen des zu einer vorher ausgewählten Codegruppe im ersten Speicher gehörenden Adreßwortes, das zusammen mit dem übereinstimmenden Codewort gespeichert wurde,
    eine zweite mit der zweiten Speichereinheit verbundene Eingabevorrichtung zum Vergleich des aus der ersten Speichereinheit ausgelesenen Adreßwortes und einer vorher ausgewählten Codesatzzahl mit den Adreßwörtern und Codesatzzahlen der zweiten Speichereinheit zum Feststellen einer Übereinstimmung ,
    eine zweite Ausgabevorrichtung zum Auslesen des aus der zweiten Speichereinheit ausgelesenen Codewortes unterschiedlicher Länge, das zusammen mit dem übereinstimmenden Adreßwort und der Codesatzzahl gespeichert wurde.
    209819/096 4 Docket YO 970 061
  2. 2. Anordnung nach Anspruch 1, dadurch gekennzeichnet, daß die erste Ausgabevorrichtung auch die Codegruppenzahl und Codesatzzahl des die zusammen mit dem übereinstimmenden Codewort fester Länge gespeichert sind, aufnimmt und daß Mittel zur Speicherung der aus der ersten Speichereinheit ausgelesenen Codegruppenzahl und Codesatzzahl vorgesehen sind, die diejenige der M Codegruppen und denjenigen der N Codesätze bezeichnen, die für das Umsetzen des nachfolgenden Codewortes fester Länge verwendet werden.
  3. 3. Anordnung nach Anspruch 1, dadurch gekennzeichnet, daß in der zweiten Speichereinheit zusammen mit jedem der Codewörter unterschiedlicher Länge ein die Anzahl der Codeelemente angebendes Längenwort gespeichert ist, daß die zweite Ausgabevorrichtung Mittel zur Übertragung der Codeelemente des Codewortes unterschiedlicher Länge enthält, und daß die Anzahl der übertragenen Codeelemente durch das zugehörige Längenwort gesteuert wird.
  4. 4. Anordnung nach Anspruch 1, dadurch gekennzeichnet, daß die erste Speichereinheit ein Assoziativspeicher ist, dessen Speicherelemente zwei Zustände einnehmen können, und daß die zweite Speiehereinheit ein Assoziativspeicher ist,
    fe dessen Speicherelemente drei Zustände einnehmen können.
  5. 5. Anordnung nach Anspruch 1, dadurch gekennzeichnet,
    daß mit der zweiten Speichereinheit eine Einrichtung verbunden ist zum Vergleich eines umzusetzenden Codewortes unterschiedlicher Länge und einer vorher ausgewählten Codesatzzahl mit den gespeicherten Codewörtern unterschiedlicher Länge und den Codesatzzahlen zum Festellen einer Übereinstimmung ,
    daß Mittel zum Auslesen des Adreßwortes aus der zweiten Speichereinheit vorgesehen sind, das zusammen mit dem über einstimmenden Codewort unterschiedlicher Länge und der Codesatzzahl gespeichert wurde,
    209819/0964 Docket YO 970 061
    daß eine Einrichtung vorgesehen ist zum Vergleich des aus der zweiten Speiehereinheit ausgelesenen Adreßwortes mit den Adreßwörtern einer vorher ausgewählten Codegruppe in der ersten Speichereinheit und
    das Mittel vorgesehen sind zum Auslesen des Codewortes fester Länge, das zusammen mit dem Übereinstimmenden Adreßwort in der ersten Speichereinheit gespeichert ist.
  6. 6. Anordnung nach Anspruch 5, dadurch gekennzeichnet, daß die Mittel zum Auslesen des Codewortes fester Länge aus der ersten Speichereinheit auch die Codegruppenzahl und die Codesatzzahl ausliest, die zusammen mit dem übereinstimmenden Adreßwort gespeichert sind und daß eine Einrichtung zur Speicherung der aus der ersten Speichereinheit ausgelesenen Codegruppenzahl und Codesatzzahl vorgesehen ist, die eine der M Codegruppen und einen der N Codesätze bezeichnen, die für ein nachfolgendes Codewort unterschiedlicher Länge verwendet werden.
  7. 7. Anordnung nach Anspruch 5, dadurch gekennzeichnet,
    daß in der zweiten Speichereinheit ein eine Längenangabe enthaltendes Wort zusammen mit jedem Codewort unterschiedlicher Länge gespeichert ist, das dessen Anzahl von Codeelementen angibt,
    daß die Vergleichseinrichtung zum Vergleichen des umsetzenden Codewortes unterschiedlicher Länge Mittel zum Entfernen von Codeelementen des Codewortes unterschiedlicher Länge aus der Vergleichseinrichtung enthält und daß die Anzahl der entfernten Codeelemente gesteuert wird durch das die Längenangabe enthaltende Wort, das mit dem übereinstimmenden Codewort unterschiedlicher Länge gespeichert wurde.
  8. 8. Anordnung nach Anspruch 1, dadurch gekennzeichnet,
    daß ein erster Assoziativspeicher vorgesehen ist, dessen Speicherplätze in Zeilen und Spalten angeordnet sind und
    209819/0964 Docket YO 970 061
    aus Speicherelementen bestehen, die zwei Zustände einnehmen können,
    daß in einer ersten Spalte des ersten Assoziativspeichers die Codewörter fester Länge gespeichert sind, daß in M weiteren Spalten Adreßwörter gespeichert sind, daß in einer weiteren Spalte Codegruppenzahlen gespeichert sind,
    daß in einer weiteren Spalte die Codesatzzahlen gespeichert sind, so daß jede Zeile des ersten Assoziativspeichers ein Codewort fester Länge, Ά Adreßwörter, eine Codegruppenzahl und eine Codesatzzahl enthält,
    daß ein zweiter Assoziativspeicher vorgesehen ist, dessen Speicherplätze in Zeilen und Spalten angeordnet sind, daß die Speicherplätze der ersten Spalte aus Speicherelementen bestehen, die drei stabile Zustände einnehmen können, daß in der ersten Spalte des zweiten Assoziativspeichers die Codewörter unterschiedlicher Länge gespeichert sind, die in N Codesätze unterteilt sind,
    daß in einer zweiten Spalte die Codesatzzahlen der Codesätze gespeichert sind,
    daß in einer dritten Spalte Längenwörter gespeichert sind, von denen jedes die Zahl der Codeelemente des in der gleichen Zeile gespeicherten Codewortes unterschiedlicher Länge angibt, daß in einer vierten Spalte Adreßwörter gespeichert sind, die den in dem ersten Assoziativspeicher gespeicherten Adreßwörtern entsprechen,
    daß eine mit dem ersten Assoziativspeicher verbundene erste Eingabevorrichtung vorgesehen ist für den Vergleich eines umzusetzenden Codewortes fester Länge mit den in der ersten Spalte gespeicherten Codewörtern zum Feststellen einer Übereinstimmung,
    daß eine erste Ausgabevorrichtung mit dem ersten Assoziativspeicher verbunden ist zum Auslesen des zu einer vorher aus den M Spalten ausgewählten Spalte gehörenden Adreßwortes, daß eine zweite Eingabevorrichtung mit dem zweiten Assoziativspeicher verbunden ist zum Vergleichen des aus dem ersten
    209819/0964 Docket YO 970 061
    ■ - 39 -
    Assoziativspeicher ausgelesenen Adreßwortes und einer vorher ausgewählten Codesatzzahl mit den in der vierten Spalte gespeicherten Adreßwörtern und den in der zweiten Spalte des zweiten Assoziativspeichers gespeicherten Codesatzzahlen zum Feststellen einer Übereinstimmung und daß eine mit dem zweiten Assoziativspeicher verbundene zweite Ausgabevorrichtung vorgesehen ist zum Auslesen des übereinstimmenden Codewortes unterschiedlicher Länge aus der ersten Spalte.
  9. 9. Anordnung nach Anspruch 8, dadurch gekennzeichnet, daß die erste Ausgabevorrichtung auch die Codegruppenzahl und Codesatzzahl ausliest und daß Mittel zur Aufnahme der aus dem ersten Assoziativspeicher ausgelesenen Codegruppenzahl und Codesatzzahl vorgeshen ist, die diejenige der M Codegruppen und denjenigen der N Codesätze bezeichnen, die für das Umsetzen des nachfolgenden Codewortes fester Länge verwendet werden.
  10. 10. Anordnung nach Anspruch 8, dadurch gekennzeichnet, daß
    die zweite Ausgabevorrichtung auch das in der dritten Spalte des zweiten Assoziativspeichers gespeicherte Längenwort ausliest und daß sie Mittel enthält, um die Codeelemente des ausgelesenen Codewortes unterschiedlicher Länge zu übertragen, wobei die Anzahl der übertragenen Codeelemente durch das Längenwort bestimmt wird.
  11. 11. Anordnung nach Anspruch 8, dadurch gekennzeichnet,
    daß eine mit dem zweiten Assoziativspeicher verbundene Einrichtung vorgesehen ist zum Vergleich eines umzusetzenden Codewortes unterschiedlicher Länge mit den in der ersten Spalte des zweiten Assoziativspeichers gespeicherten Codewörtern unterschiedlicher Länge und zum Vergleich einer vorher ausgewählten Codesatzzahl mit den in der zweiten Spalte gespeicherten Codesatzzahlen zum Feststellen einer Übereinstimmung mit einem Codewort unterschiedlicher Länge
    209819/0964 Docket YO 970 061
    - 40 -
    und mit einer Codesetzzahl,
    daß Mittel zum Auslesen des Adreßwortes aus der übereinstimmenden Zelle vorgesehen sind,
    daß Mittel zum Vergleich des aus dem zweiten Assoziativspeicher ausgelesenen Adreßwortes mit den In einer vorher aus den M Spalten ausgewählten Spalte des ersten Assoziativspeichers enthaltenen Adreßwörtern zum Feststellen einer Übereinstimmung vorgesehen sind, und daß MIttel zum Auslesen des In der ersten Spalte des ersten Assoziativspeichers in der übereinstimmenden Zeile gespeicherten Codewortes fester Länge vorgesehen sind.
  12. 12. Anordnung nach Anspruch 11, dadurch gekennzeichnet, daß die Mittel zum Auslesen des Codewortes fester Länge aus der übereinstimmenden Zeile des ersten Assoziativspeichers auch die Codegruppenzahl und die Codesatzzahl ausliest und daß eine Einrichtung zur Aufnahme dieser Zahlen vorgesehen ist, die eine der M Spalten des ersten Assoziativspeichers und einen der N Codesätze des zweiten Assoziativspeichers für das Umsetzen des nachfolgenden Codewortes unterschiedlicher Länge angeben.
    209819/0964 °°*ίϊ0Ο61
DE19712153517 1970-10-30 1971-10-27 Anordnung zur Codeumsetzung Pending DE2153517A1 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US8557670A 1970-10-30 1970-10-30

Publications (1)

Publication Number Publication Date
DE2153517A1 true DE2153517A1 (de) 1972-05-04

Family

ID=22192553

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19712153517 Pending DE2153517A1 (de) 1970-10-30 1971-10-27 Anordnung zur Codeumsetzung

Country Status (6)

Country Link
US (1) US3701108A (de)
JP (1) JPS5135335B1 (de)
CA (1) CA972868A (de)
DE (1) DE2153517A1 (de)
FR (1) FR2112365B1 (de)
GB (1) GB1315060A (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0021283A1 (de) * 1979-06-14 1981-01-07 International Business Machines Corporation Digitales Datengerät

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3835467A (en) * 1972-11-10 1974-09-10 Ibm Minimal redundancy decoding method and means
US4021782A (en) * 1974-01-07 1977-05-03 Hoerning John S Data compaction system and apparatus
US3918047A (en) * 1974-03-28 1975-11-04 Bell Telephone Labor Inc Decoding circuit for variable length codes
US4038652A (en) * 1974-05-13 1977-07-26 Sperry Rand Corporation Digital communications line terminal compacter/expander
US4319225A (en) * 1974-05-17 1982-03-09 The United States Of America As Represented By The Secretary Of The Army Methods and apparatus for compacting digital data
US4075622A (en) * 1975-01-31 1978-02-21 The United States Of America As Represented By The Secretary Of The Navy Variable-to-block-with-prefix source coding technique
US4056809A (en) * 1975-04-30 1977-11-01 Data Flo Corporation Fast table lookup apparatus for reading memory
US4099257A (en) * 1976-09-02 1978-07-04 International Business Machines Corporation Markov processor for context encoding from given characters and for character decoding from given contexts
US4188669A (en) * 1978-01-13 1980-02-12 Ncr Corporation Decoder for variable-length codes
JPS5698192U (de) * 1979-12-28 1981-08-03
US4506325A (en) * 1980-03-24 1985-03-19 Sperry Corporation Reflexive utilization of descriptors to reconstitute computer instructions which are Huffman-like encoded
US4355306A (en) * 1981-01-30 1982-10-19 International Business Machines Corporation Dynamic stack data compression and decompression system
US4562423A (en) * 1981-10-15 1985-12-31 Codex Corporation Data compression
US4560976A (en) * 1981-10-15 1985-12-24 Codex Corporation Data compression
US5146221A (en) * 1989-01-13 1992-09-08 Stac, Inc. Data compression apparatus and method
IL91158A (en) * 1989-07-28 1993-01-31 Ibm Israel Method and system for arithmetic coding and decoding
US5173695A (en) * 1990-06-29 1992-12-22 Bell Communications Research, Inc. High-speed flexible variable-length-code decoder
US5537551A (en) * 1992-11-18 1996-07-16 Denenberg; Jeffrey N. Data compression method for use in a computerized informational and transactional network
US5635932A (en) * 1994-10-17 1997-06-03 Fujitsu Limited Lempel-ziv compression with expulsion of dictionary buffer matches
JPH08116447A (ja) * 1994-10-18 1996-05-07 Fuji Xerox Co Ltd 画像信号の符号化装置
US5710719A (en) * 1995-10-19 1998-01-20 America Online, Inc. Apparatus and method for 2-dimensional data compression
US8229844B2 (en) 1996-06-05 2012-07-24 Fraud Control Systems.Com Corporation Method of billing a purchase made over a computer network
US20030195848A1 (en) 1996-06-05 2003-10-16 David Felger Method of billing a purchase made over a computer network
US7555458B1 (en) 1996-06-05 2009-06-30 Fraud Control System.Com Corporation Method of billing a purchase made over a computer network
US5821886A (en) * 1996-10-18 1998-10-13 Samsung Electronics Company, Ltd. Variable length code detection in a signal processing system
US6075470A (en) * 1998-02-26 2000-06-13 Research In Motion Limited Block-wise adaptive statistical data compressor
DE19937456C2 (de) * 1999-08-07 2001-06-13 Bosch Gmbh Robert Rechner zur Datenverarbeitung und Verfahren zur Datenverarbeitung in einem Rechner
US11044495B1 (en) 2018-02-13 2021-06-22 Cyborg Inc. Systems and methods for variable length codeword based data encoding and decoding using dynamic memory allocation
US10491240B1 (en) 2019-01-17 2019-11-26 Cyborg Inc. Systems and methods for variable length codeword based, hybrid data encoding and decoding using dynamic memory allocation

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3337854A (en) * 1964-07-08 1967-08-22 Control Data Corp Multi-processor using the principle of time-sharing
US3331056A (en) * 1964-07-15 1967-07-11 Honeywell Inc Variable width addressing arrangement
USRE26429E (en) * 1964-12-08 1968-08-06 Information retrieval system and method
US3408631A (en) * 1966-03-28 1968-10-29 Ibm Record search system
US3440615A (en) * 1966-08-22 1969-04-22 Ibm Overlapping boundary storage
US3496550A (en) * 1967-02-27 1970-02-17 Burroughs Corp Digital processor with variable field length operands using a first and second memory stack

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0021283A1 (de) * 1979-06-14 1981-01-07 International Business Machines Corporation Digitales Datengerät

Also Published As

Publication number Publication date
FR2112365B1 (de) 1974-10-31
US3701108A (en) 1972-10-24
CA972868A (en) 1975-08-12
FR2112365A1 (de) 1972-06-16
JPS5135335B1 (de) 1976-10-01
GB1315060A (en) 1973-04-26

Similar Documents

Publication Publication Date Title
DE2153517A1 (de) Anordnung zur Codeumsetzung
DE2513862C2 (de) Vorrichtung zum Decodieren von Codes minimaler Redundanz und variabler Länge
DE2139731C2 (de) Anordnung zur Code-Umsetzung
DE2264090C3 (de) Datenverdichtung
DE2205422C2 (de) Verfahren und Einrichtung zur Dekompression verdichteter Daten
DE2801988A1 (de) Arithmetische codierung von symbolfolgen
DE2418653C3 (de) Vorrichtung zum Anzeigen eines Extremwertes einer Folge von Digitalwerten
DE2227148A1 (de) Verfahren zur verarbeitung digitaler daten
DE1296182C2 (de) Verfahren zur uebertragung binaerer informationssignale sowie kodierer zur abgabe solcher signale und mit diesem betreibbarer dekodierer
DE2652459C2 (de) Umsetzvorrichtung für Binärsignale variabler Länge
EP0078903A1 (de) Verfahren und Anordnung zur Sicherstellung der Start-Synchronisation eines aus Bit-Impulsfolgen bestehenden Telegramms innerhalb eines Empfängers
DE3148099C2 (de) Anordnung zum Erkennen einer Digitalfolge
DE2844216A1 (de) Synchronisierfolgecodierung bei code mit begrenzter lauflaenge
DE3330845C2 (de)
DE2805294C2 (de) Codierende Übertragungsanlage für Faksimile-Signale
DE2728889B2 (de) Verfahren und Vorrichtung zum Übertragen eines Zweipegel-Faksimilesignals
DE2736967A1 (de) Asynchrone telemetrieschaltung
DE2900586C2 (de) Anordnung zum Decodieren von Codewörtern variabler Länge
DE1474576B2 (de) Fehlererkennungseinrichtung fuer den zeitmultiplexbetrieb
DE1803222B2 (de) Verfahren zum zusammenfassen pulscodierter nachrichten
DE3729732C2 (de)
DE2355786A1 (de) Verfahren und anordnung zur decodierung von codes mit minimaler redundanz
DE2838228B2 (de) Verfahren zum Synchronisieren einer Datenbitfolge
DE2440768A1 (de) Verfahren und vorrichtung zur datenkompression fuer die faksimile-uebertragung graphischer information
DE1474066A1 (de) Verfahren zur Umsetzung von Zahlen in datenverarbeitenden Anlagen,insbesondere Fernmeldeanlagen