DE2227148C3 - Schaltungsanordnung zur Umsetzung digitaler Daten - Google Patents

Schaltungsanordnung zur Umsetzung digitaler Daten

Info

Publication number
DE2227148C3
DE2227148C3 DE2227148A DE2227148A DE2227148C3 DE 2227148 C3 DE2227148 C3 DE 2227148C3 DE 2227148 A DE2227148 A DE 2227148A DE 2227148 A DE2227148 A DE 2227148A DE 2227148 C3 DE2227148 C3 DE 2227148C3
Authority
DE
Germany
Prior art keywords
length
bit
bits
word
register
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.)
Expired
Application number
DE2227148A
Other languages
English (en)
Other versions
DE2227148B2 (de
DE2227148A1 (de
Inventor
Peter Anthony Mt. Kisco N.Y. Franaszek (V.St.A.)
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 DE2227148A1 publication Critical patent/DE2227148A1/de
Publication of DE2227148B2 publication Critical patent/DE2227148B2/de
Application granted granted Critical
Publication of DE2227148C3 publication Critical patent/DE2227148C3/de
Expired 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/4025Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code constant length to or from Morse code conversion
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/14Digital recording or reproducing using self-clocking codes
    • G11B20/1403Digital recording or reproducing using self-clocking codes characterised by the use of two levels
    • G11B20/1423Code representation depending on subsequent bits, e.g. delay modulation, double density code, Miller code
    • G11B20/1426Code representation depending on subsequent bits, e.g. delay modulation, double density code, Miller code conversion to or from block codes or representations thereof
    • 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

Landscapes

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

Description

Länge, die entworfen wurden, um die Fehlerfortpflanzung auf der Basis einer statistischen Wahrscheinlichkeit zu begrenzen, haben sich aus einer Reihe von Gründen als unbefriedigend erwiesen. Einmal arbeiten diese Verfahren in der Praxis nicht gut, da viele, wenn nicht die meisten Datenbasen sich nicht für das statistische Verfahren der Begrenzung der Fehlerfortpflanzung eignen. Unter bestimmten Bedingungen läßt sich der Synchronismus nicht wiedergewinnen, ohne das System anzuhalten und neu zu starten. Zum andern weisen solche Codes nicht die Beschränkungen hinsichtlich der Lauflänge auf, die sich als höchst wünschenswert für das Erreichen wirksamer Datenübertragungs- und Aufzeichnungsoperalionen erwiesen haben. Aus diesen und anderen Gründen wird der statistische Weg zur Begrenzung der Fehlerfortpflanzung nicht allgemein als günstig angesehen.
Der Erfindung liegt die Aufgabe zugrunde, eine Schaltungsanordnung zur Umsetzung digitaler Daten anzugeben, die eine raschere Verarbeitung ermöglicht als dies bekannte Einrichtungen erlauben und bei der außerdem die Fehlerfortpflanzung eingeschränkt ist.
Gelöst wird die genannte Aufgabe mit Hilfe einer Schaltungsanordnung zur Umsetzung digitaler Daten, die aus originalen Bitfoigen unterschiedlicher Länge in Codewörter unterschiedlicher Länge so codiert werden, daß jedes gültige Codewort eine bestimmte, das Wortende kennzeichnende Bitfolge besitzt, die aus mehreren solcher Folgen ausgewählt ist, und daß die Länge der Codewörter in einem festen Verhältnis zur Länge der originalen Bitfolgen steht, welche Schaltungsanordnung dadurch gekennzeichnet ist, daß
a) ein Assoziativspeicher vorgesehen ist, von dessen in Zeilen angeordneten Speicherelementen zumindest einige auch einen dritten, neutralen Zustand einnehmen können, der Assoziativspeicher in drei Teile unterteilt ist, von denen der erste Teil, in dem die Codewörter unterschiedlicher Länge gespeichert sind, mindestens so viele Speicherelemente pro Zeile enthält als das längste Codewort unterschiedlicher Länge Bits aufweist, der zweite Teil des Assoziativspeichers, in dem die ursprünglichen Bitfolgen gespeichert sind, pro Zeile so viele Speicherelemente enthält als die längste der originalen Bitfolgen Bits aufweist, die in diesem Teil des Assoziativspeichers zur Speicherung von Bits nicht benötigten Speicherelemente sich in ihrem neutralen Zustand befinden, im dritten Teil des Assoziativspeichers in jeder Zeile eine Längenangabe gespeichert ist, die die Anzahl der Bits der in der gleichen Zeile gespeicherten Bits der ursprünglichen Bitfolge bezeichnet,
b) ein als Schieberegister ausgebildetes Argumentregister vorgesehen ist, dem die Bits eines originalen Bitstromes, der eine Reihe von Bitfolgen unterschiedlicher Länge enthält, seriell zugeführt werden und mit den im zweiten Speicherteil gespeicherten Bits verglichen werden,
c) für ein aus dem ersten Teil des Assoziativspeichers aus der gleichen Zeile, die die übereinstimmende Bitfolgc enthält, ausgelesenes Wort ein als Schieberegister ausgebildetes Datenregister vorgesehen ist, aus dem die parallel in dieses Register übertragenen Bits seriell ausgeschoben werden.
d) eine Steuerschaltung vorgesehen ist, die auf Grund der im dritten Speicherteil gespeicherten Längenangabe den Ausgabevorgang aus dem Datenregister und die Eingabe in das Argumentregister so steuert, daß die Anzahl der seriell aus dem Datenregister ausgelesenen Bits der Längenangabe, multipliziert mit dem konstanten Verhältnis von codierten zu originalen Bits, entspricht und die Anzahl der seriell in das Argumentregister vor dem nachfolgenden Vergleich eingegebenen Bits der Längenangabe entspricht.
Ein Ausführungsbeispiel der Erfindung ist in den Zeichnungen dargestellt und wird anschließend näher beschrieben. Es zeigen
Fig. IA und 1 B ein allgemeines Schaltbild einer Codier-Decodieranordnung nach der Erfindung, das für die Verarbeitung von zustandsunabhängigen Codes geeignet ist,
ao Fig. 2 in einem allgemeinen Ablaufdiagramm ein
Codierverfahren, welches mit der in den Fi g. 1 A und
B gezeigten Anordnung ausgeführt werden kann,
Fig. 3 in einem allgemeinen Ablaufdiagramm ein
Decodierverfahren, welches mit der in den Fig. IA
as und 1 B gezeigten Anordnung ausgeführt werden
kann.
Fig. 4 ein Schaltpian eines Codiertaktgebers oder Impulsgenerators, der die Taktimpulse für die durch die Anordnung nach den Fig. 1 A und 1 B ausgeführ-3» ten Codierfunktionen liefert,
Fig. 5 einen Schaltplan eines Decodiertaktgebers oder Impulsgenerators, der die Taktimpulse für die vor der in den F i g. 1 A und 1 B gezeigten Anordnung ausgeführten Decodierfunktionen liefert,
Fig. 6 und 7 Codeumsetzungstabellen, die von einer Anordnung der in Fig. 1 A und 1 B gezeigten Art benutzt werden für Codier- und Decodieroperationen in Systemen zur Codierung von dk-begrenzteη Wörtern -.-nterschiedlicher Länge, worin die (d, k) Begrenzungen (1,8) bzw. (2,7) sind,
Fig. 8 und 9 Schaltbilder der durch die in den Fig. IA und 1 B gezeigte Anordnung verwendeten Rahmenlogik zum Treffen der Rahmenentscheidungen im Hinblick auf dfc-begrenzte Codes mit unterschiedücher Länge, in weichen die (d, k) Beschränkungen (1.8) bzw. (2.7) sind,
Fig. 10 und 11 in Tabellenform die Rahmenoperationen, die durch das vorliegende System an Mustercodefolgen in (1,8) bzw. (2,7) Codierung ausgeführt werden,
Fig. 12 in einem Diagramm die Assoziativspeicher-Steuerschaltung, und
Fig. 13 in einem fragmentarischen Schaltbild eines abgewandelten Codier-Decodiersystems zur Verarbettung von zustandsabhängigen Codes.
In Verbindung mit der in den Fig. 4 und 5 gezeigten Taktgeberschaltung zeigen die Fig. IA und 1 B die wesentlichen Teile eines Gerätes, welches die Codierung und Decodierung nach der vorliegenden Erfindung vornehmen kann. Als Beispiel dienende Codes, die durch ein derartiges System verarbeitet werden können, sind in den Codeumwandlungstabellen der Fig. 6 und 7 gezeigt. Alle diese Codes haben die folgenden Merkmale gemeinsam:
a) es handelt sich um Codes mit Lauflängenbegrenzung, in denen die aufeinanderfolgenden Einsen einer jeder codierten Bitfolge durch nicht weniger als d und nicht mehr als k Nullen voneinan-
Seide wir zu η Fat ger vor zu η mal »Se Co. of I bis
Sys ode den vcr rei! stet die ein Wo dur Art Be; übe sue so ; jed lek tex 1
stal sch Co ehe Tal ger Be dal zut an im sei ein Re dn Vc äh
der getrennt sind, wohei die Wahl der Werte für d und k abhängt von dem jeweils verwendeten Code;
b) die codierte Information wird in Codegruppen oder in Codewörtern unterschiedlicher Länge verarbeitet, und die Längen der codierten Wörter haben ein konstantes Verhältnis zu den entsprechenden Längen ihrer zugehörigen Originalen (oder decodierten) Bitreihen und stellen dadurch eine konstante Geschwindigkeit der Datenübertragung oder Datenaufzeichnung sicher;
c) jedes codierte Wort (wenn es richtig codiert und erkannt wurde) endet in einer von mehreren verschiedenen Bitfolgen. die leicht als Wortende erkannt werden können, um einen Rahmenpunkt im codierten Bitstrom festzusetzen.
Die vorliegende Erfindung befaßt sich mehr mit der Schaltungsanordnung, durch welche Information nach den oben gezeigten Prinzipien codiert und decodiert wird und nicht mit den der Bildung der Codeumsetzungstabellen selbst zugrundeliegenden theoretischen Faktoren. Trotzdem werden jedoch einige grundlegende Überlegungen für den Aufbau der durch das vorliegende System zu verwendenden Codeumsetzungstabellen erklärt. Eine genauere Behandlung der mathematischen Theorie findet sich in dem Aufsatz »Sequence-state Methods for Run-length-limited Coding«, von P. A. Franaszek, im »IBM Journal of Research and Development, Juli 1970, Seiten 376 bis 383.
Vor der genaueren Beschreibung des dargestellten Systems werden zuerst die Ausdrücke »Codewort« oder »Codegruppe«, so wie sie hier verwendet werden, erklärt. Ein »Wort« wird als eine individuelle verarbeitbare Folge von Bits. d. h. also als eine Bitreihe, von beliebiger Länge betrachtet, die vom System als eine Einheit verarbeitet werden kann. Für die vorliegende Erfindung wird die Art, in welcher ein Bitstrom unterteilt oder in seine ihn bildenden Wörter oder Bitreihen »gerahmt« wird, ausschließlich durch die Einfachheit der Verarbeitung bestimmt. Die Art der Unterteilung steht dabei nicht notwendig in Beziehung zu der Nachricht, die durch den Bitstrom übertragen wird. Das soll heißen, daß hier kein Versuch in der Richtung unternommen wird, den Bitstrom so zu rahmen, daß die Codegruppe innerhalb eines jeden Rahmens ein einzelnes Zeichen oder andere leicht zu identifizierende Einheit numerischer oder textlicher Information definiert.
Die in den Fi g. 6 und 7 gezeigten Codeumsetzungstabellen zeigen die Art des hier verwendeten Codierschemas. Die in F i g. 6 gezeigte Tabelle ist für einen Code mit Lauflängenbegrenzung ausgelegt, in welchem d = 1 und k = 8 ist. Die in Fig. 7 gezeigte Tabelle ist für einen Code ausgelegt, dessen Lauflängenbegrenzungen d — 2 und k = 7 sind. Aus der Betrachtung z. B. der Tabelle in Fig. 6 geht hervor, daß nach dem (1,8) Code die OO-Bitreihe jedesmal zum Wort 010 codiert wird, wenn eine Bitfolge 00 an dem Punkt auftritt, der den Anfang eines Wortes im originalen Bitstrom markiert. Als weiteres Beispiel sei die Bitfolge 1000 angeführt, die unmittelbar hinter einem Wortanfangspunkt auftritt. Dann wird diese Reihe zum Wort 101000 codiert. In jedem Fall stehen drei codierte Bus für zwei originale Bits und dieses Verhältnis 3 : 2 ist für den (1,8) Code konstant. In ähnlicher Weise ist für den (2,7) Code das Verhältnis /wischen der Anzahl codierter Bits und den originalen Bits mit 2 : 1 konstant. Grundsätzlich bleibt für ein nach der Erfindung aufgebautes Codesystem das Verhältnis von codierten zu originalen Bits konstant bei M/a, wobei N und α die kleinstet, ganzen Zahlen sind, die dieses Verhältnir ausdrücken. (Die beiden Symbole haben hier dieselbe Bedeutung wie in dem obenerwähnten Artikel.)
Ein wichtiger Punkt der Codeumsetzungstabelle ist
ίο ihr kleines Ausmaß. Im Falle des in Fig. 6 gezeigten
(1.8) Code umfaßt das ganze Codewörterbuch nur 16 Wörter, deren Länge in Vielfachen von drei zwischen drei und neun Bits schwankt. Im Falle des in Fig. 7 gezeigten (2,7) Code enthält das Codewörterbuch nur sieben Codewörter, deren Länge in Vielfachen von zwei zwischen zwei und acht Bits wechselt. Wenn eine Information mit einem äquivalenten Bit-pro-Symbol-Wert in einem Codiersystem mit begrenzter Lauflänge und festen Wortlängen zu codieren wäre, würde
»ο die Größe des Codewörterbuchs enorm um einige Größenordnungen zunehmen auf Grund der relativen Inflexibilität der Codierung in einem System mit fester Länge und begrenzter Lauflänge. Dadurch nimmt die Komplexität des für Tabellenleseoperationen oder
as gleichwertige Codier- und Decodierfunktionen erforderlichen Gerätes enorm zu. Wie in den obenerwähnten Artikeln auf Seite 380 aufgeführt wird, hat ein
(4.9) Code ein Code wörterbuch von 512 Wörtern bei einem Format fester Länge, jedoch von nur sechs
jo Wörtern bei einem Format mit unterschiedlicher Länge.
In den Fig. b und 7 sind die Codetabellen in der Form wiedergegeben, die sie bei einer Speicherung in den in F i g. IA gezeigten Assoziativspeicher 20 hätten. Dieser Speicher enthält Speicherzellen mit drei Zuständen in seinen Teilen 22 und 24, in weichen die codierten Wörter bzw. Originalwörter gespeichert werden. Das Zeichen »Ä« in Fig. 6 und 7 bezeichnet eine Speicherzelle mit drei möglichen Zuständen in ♦0 ihrem dritten oder ^-Zustand, in welchen sie versetzt wird, wenn sie keines der wertdarstellenden Bits eines Wortes speichert. Jede Speicherzeile in den Teilen 22 und 24 kann wunschgemäß in einen der drei folgenden Zustände versetzt werden:
1. Im Zustand einer binären 1 erzeugt die Zelle ein Ungleichheits-Signal, wenn sie durch eir O-Bit abgefragt wird, erzeugt jedoch kein Ausgangssignal, wenn sie durch ein 1-Bii abgefragi wird.
2. Im 0-Zustand erzeugt die Zelle ein Ungleich
heits-Signal, wenn sie durch ein 1-Bit abgefragi wird, erzeugt jedoch kein Ausgangssignal, wenr sie durch ein O-Bit abgefragt wird.
3. Im X-Zustand kann die Zelle kein Ungleich heits-Signal erzeugen ungeachtet der Abfrag« durch ein 1 -Bit oder ein O-Bit. In diesem Zustaru ist die Zelle für die Abfrage effektiv maskiert
Die spezielle Konstruktion des Assoziativspeicher
20 mit seinen Speicherzellen, die drei Zustände ein
βο nehmen können, wird hier nicht im einzelnen be schrieben, da solche Speicher allgemein bekannt sine De«· Vorteil solcher Speicherzellen für drei Zustand besteht darin, daß sie individuell für die Abfrage rna; kiert werden können, ohne daß alle anderen Zelle
«5 in derselben Spalte maskiert werden.
Der dritte Teil 26 des in Fig. IA gezeigten Ass( ziativspeichcrs 20 speichert Längenanzeiger L. m denen bei der Codierung die Anzahl der Wert darstc
lenden Bits im Originalwort angegeben wird. So gehört z. B. in Fig. 6 zum Originalwort (K) die binäre Längenangabe (L) von UlU oder 2 in Dezimalnotierung, die besagt, daß zwei Bits in diesem Originalwort stehen. Da das Verhältnis {N/a) der codierten zu den originalen Bits in diesem speziellen Codesystem 3 : 2 beträgt, ist die Länge des entsprechenden Codewortes (01U) drei Bits. Die Längenangabe L wird nur bei Codieroperatiorien gebraucht. Bei Decodieroperationen wird die benötigte Wortlängeninformation abgeleitet aus der Rahmenfunktion.
Die Codieranordnung wird im Zusammenhang mit den Fig. 1 A und 1 B, 2,4,6 und 7 erklärt. Wie bereits oben gesagt wurde, wird für die vorliegenden Zwecke angenommen, daß das System Information nach einem zustandsunabhängigen Codierschema verarbeitet, wie es der zur Illustration gewählte (1,8) Code oder der (2.7) Code (Fig. 6 und 7) ist. Das bedeutet, daß eine Codier-Decodiertabelle verwendet werden kann und die nach dieser Tabelle erzeugten Codewörter frei verkettet werden können, ohne daß die angegebenen (d, k) Beschränkungen verletzt werden.
Bei Verwendung eines zustandsabhängigen Codierschemas ist die Codierung ähnlich, bringt jedoch eine Auswahl unter mehreren Codiertabellen abhängig von dem Endzustand des vorher codierten Wortes mit sich. Die erforderlichen Änderungen des gezeigten Systems für diese Art der zustandsabhängigen Codierung werden später kurz beschrieben.
Die Codierung wird folgendermaßen durchgeführt: Die zu codierenden Informationsbits werden seriell in ein in Fig. IA gezeigtes Argumentregister 30 eingegeben. Am Anfang wird in das Register eine Anzahl von Bits eingegeben, die gleich ist a W N und der Maximallänge der im Speicherteil 24 gespeicherten Wörter entspricht. Die Assoziation wird auf Grund dieses Arguments ausgeführt und das übereinstimmende Codewort aus dem Speicherteil 22 ausgelesen und in ein Datenregister 32 eingegeben. Gleichzeitig wird die zugehörige Längenangabe L aus dem Speicherteil 26 ausgelesen und in einen in F i g. IB gezeigten Längenzähler 34 eingegeben. Somit ist jetzt die Länge des übereinstimmenden Originalwortes im Längenzähler 34 registriert.
Es folgt eine Periode, in welcher das im Datenregister 32 gespeicherte Codewort aus diesem Register seriell ausgelesen wird. Gleichzeitig werden neue Bits des originalen Bitstroms seriell in das Argumentregister 30 eingegeben, dessen Inhalt fortschreitend nach links verschoben wird, um den neu eingegebenen Bits aufzunehmen. Die Anzahl der aus dem Datenregister 32 ausgelesenen Bits muß mit der Länge des Codewortes übereinstimmen und die Anzahl der in das Argumentregister 30 neu eingegebenen Bits muß gleich sein der Anzahl der Bits im Originalwort, das gerade codiert wurde. Dieses Wort wird fortschreitend aus dem Argumentregister ausgeschoben, während die neue Eingabe erfolgt. Der Längenzähler 34, der entsprechend dem L-Wert eingestellt wurde, steuert diese beiden Aktionen so, daß die richtige Bitzahl ausgelesen bzw. eingegeben wird. Der Zählerstand des Längenzähler 34 wird jedesmal um eins vermindert, wenn ein neues Bit in das Argumentregister 30 eingegeben wird, und wenn der Längenzähler den Zählerstand 0 erreicht hat, endet die Eingabe neuer Bits in das Register 30, bis die nächste Codieroperation erfolgt.
Die Kapazität des Datenregisters reicht nus. um ein Codewort mit der maximalen Länge L aufzunehmen.
Wenn das während der durch den Speicher 20 ausgeführten Assoziation ausgelesene Codewort eine
kleinere Länge als W hat, wird nur die entsprechende
Anzahl von Bits aus dem Register 32 in den codierten
Bitstrom ausgelesen. Auf jeden Fall muß das Verhältnis zwischen der Anzahl der aus dem Register 32 ausgelesenen Bits und der in das Register 30 eingegebenen Bitskonstantauf dem Wert Ni α gehalten werden.
ίο Das bedeutet anders ausgedrückt, daß für jede Menge
von α Bits, die in das Argumentregister 30 eingegeben
werden, N Bits aus dem Datenregister 32 ausgelesen
werden müssen. Dieses Verhältnis wird aufrechterhalten, indem man zwei Bitzähler 36 und 38 in
Fig. IB auf die entsprechenden Werte einstellt. Der
Zähler 36, der hier als Ausgabebitzähler bezeichnet
wird, wird bei der Codieroperation am Anfang auf
den Wert Λ'eingestellt und jeweils um eins heruntergezählt, wenn ein Bit aus dem Datenregister 32 ausge-
ao geben wird. Der hier mit Eingabebitzähler bezeichnete Zähler 38 wird bei Codieroperationen am
Anfang auf den Wert α gesetzt und jedesmal um eins
heruntergezählt, wenn ein Bit in das Argumeniregister
gelangt.
J5 Das Auslesen codierter Bits und die Eingabe neuer
originaler Bits erfolgen ungefähr gleichzeitig. Wenn
also eine Gruppe von α Bits in das Register 30 gelangt
ist, wird dadurch der Zählerstand des Eingabebitzählers 38 auf null reduziert. Die Eingabe der nächstfol-
genden Gruppe von α Bits in das Register 30 wird
verzögert, bis die laufende Gruppe von Λ' codierten
Bits aus dem Datenregister 32 ausgelesen wurde.
Wenn der Zählerstand des Ausgabebitzählers 36 dann
auf den Wert U reduziert wurde, werden die beiden
Bitzähler 36 und 38 wieder auf N bzw. α eingestellt
und steuern die Eingabe von α Bits in das Register
sowie die Ausgabe von /V Bits aus dem Register
32. bis das laufende Codewort ganz aus dem Register
ausgelesen wurde. Diese Tatsache wird dadurch
angezeigt, daß der Zählerstand des Längenzählers 34
auf 0 reduziert wurde.
Während neue Bits in das Argumentregister 30 eingegeben werden, wird der Inhalt dieses Registers entsprechend nach links verschoben. Die Einstellung des
Längenzählers bestimmt die Anzahl der Linksverschiebungen, die entsprechend der Länge der Bngruppe oder Bitreihe, die gerade codiert wurde, vorgenommen wird. Wenn das letzte Bit der alten Gruppe
also aus dem Argumentregister 30 ausgeschoben
wurde, gelangt demzufolge das erste Bit der neuen
Gruppe an die Stelle, die für eine durch den Assoziativspeicher 20auszuführende neue Assoziation richtig
ist.
Anschließend wird im Zusammenhang mit dem
Ablaufdiagramm der Fig. 2 das Codierverfahren genauer erklärt. Die verschiedenen Schritte in diesem
Ablaufdiagramm sind durch Bezugszahlen mit dem
Vorsatz »F.«gekennzeichnet (z. B. El. £2, £3usw.).'
Damit sind Schritte des Verfahrens bezeichnet, die
durch die Taktimpulse eingeleitet werden, welche auf
den mit denselben Bezeichnungen versehenen Leitungen der in Fig. 4 gezeigten Taktgeberschaltung
erzeugt werden. Jeder dieser Taktimpulse wird durch
eine monostabile Kippschaltung bei deren Einschaltung erzeugt. Wenn z. B. die in Fi g. 4 gezeigte monostabile Kippschaltung 40 auf Grund eines an die Leitung 42 angelegten Startimpulses in den instabilen
Zustand geschaltet oder eingeschaltet wird, erzeugt
sie ein wird d' dierve zähler ein in flop) a gängeti an durch \ sieeim
der Im flop Φ Wer wieder schalte Glied < daraufl gescha: des Sc! zeugt.
Fig. 1 Einrieb verschi um ein< Empfai mende 1
Wen schalte ausschf, tung 52 durch ν tet, in gczeigii Bit den zeitig \ I ig-Ί ! tung an ?ählers das Art: stand d
Wen· schaltui langt di bilen Z Dieser 1 genzähl ziert wi gezeigt! 0-Ausg eines zu weiter. 64, wen hat und zähler c weist. 1 die Lei Längen Unter < der Toi in den 1 ein OD tung 50 einen T Fig. 2 Schritte Argunii ein neu
sic einen Taktimpuls auf der Leitung £1. Dadurch wird der in Fig. 2 mit £1 bezeichnete Schritt des Codierverfahrens eingeleitet, in welchem der Längenzähler 34 in F i g. IB auf den Anfangswert a Wl N und ein in Fig. IA gezeigtes Flipflop 44 (das Ende-Flipflop) auf Null rückgestellt wird. Diese beiden Vorgänge werden ausgeführt durch Anlegen des Impulses £1 an eine in Fig. IA gezeigte Torschaltung 46. Dadurch wird diese Torschaltung durchgeschaltet, so daß sie einen vorgewählten Anfangswert α Wl N dem Längenzähler 34 der Fig. IB zuleitet. Außerdem wird der Impuls £1 auch an den Ü-Eingangdes Ende-Flipflop 44 in Fig. IA angelegt.
Wenn die monostabile Kippschaltung 40 in Fig. 4 wieder in den Ruhezustand zurückkehrt oder ausschaltet, sendet sie einen Impuls über das ODER-Glied 48 zu der monostabilen Kippschaltung 50, die daraufhin in den instabilen Zustand gelangt oder eingeschaltet wird und den Taktimpuls £2 zur Einleitung des Schrittes £2 des Codierverfahrens (Fig. 2) erzeugt. Aus der gemeinsamen Betrachtung der Fig. IA und 2 ist zu ersehen, daß der Impuls £2 einer Einrichtung zugeführt werden kann, die eine Linksverschiebung des Inhaltes des Argumentregisters 30 um eine Bit-Position bewirkt und dieses Register zum Empfang eines vom originalen Bitstrom hereinkommenden Bits vorbereitet.
Wenn die in Fig. 4 gezeigte monostabile Kippschaltung 50 in den stabilen Zustand zurückkehrt oder ausschaltet, schaltet sie die monostabile Kippschaltung 52 ein und erzeugt so den Taktimpuls £3. Dadurch wird der in Fi g. 2 gezeigte Schritt £3 eingeleitet, in welchem der Impuls £3 einer in Fig. 1 A gezeigten Torschaltung 54 zugeführt und dadurch ein Bit dem Argumentregister 30 zugeleitet wird. Gleichzeitig wird der Taktimpuls £3 auch über ein in Fig. 1 B gezeigtes ODER-Glied 56 an eine Einrichtung angelegt, welche den Zählerstand des Längenzähler? um eins vermindert. Somit wurde ein Bit in das Argumentregister 30 eingegeben und der Zählerstand des Längenzählers entsprechend vermindert.
Wenn die in Fig. 4 gezeigte monostabile Kippst haltung 52 in den stabilen Zustand zurückkehrt, gelangt die monostabile Kippschaltung 58 in den instabilen Zustand und erzeugt so den Taktimpuls £4. Dieser leitet eine Prüfung des Zählerstandes des Längenzählers ein, um festzustellen, ob er zu Null reduziert wurde. Der Impuls £4 wird an die in Fig. IB gezeigte Torschaltung 60 angelegt und leitet das O-Ausgangssignal oder das Nicht-0-Ausgangssignal eines zum Längenzähler 34 gehörenden Umsetzers 62 weiter. Der Umsetzer 62 erregt eine Ausgangsleitung 64, wenn der Längenzähler die Einstellung 0 erreicht hat und eine Ausgangsleitung 66, wenn der Längenzähler einen von Null verschiedenen Zählerstand aufweist. Im vorliegenden Fall wird angenommen, daß die Leitung 66 erregt wird, da der Zählerstand des Längenzählers noch nicht den Wert 0 erreicht hat. Unter diesen Umständen wird beim Durchschalten der Torschaltung 60 durch den Taktimpuls £4 eine in den F ig. 1 B und 4 gezeigte Leitung 68 erregt. Über ein ODER-Glied 48 wird die monostabile Kippschaltung 50 in den instabilen Zustand versetzt, die wieder einen Taktimpuls £2 erzeugt. Dadurch wird, wie aus Fig. 2 zu ersehen ist, wieder die Reihenfolge der Schritte £2, £3 und £4 eingeleitet, in welcher im Argumentregister 30 eine Linksverschiebung erfolgt, ein neues Bit in dieses Register 30 eingegeben, der Zählerstand des Längenzählers 34 um eins herabgesetzt und der Inhalt des Längenzählers wieder auf den Wert 0 geprüft wird. Diese Folge der Schritte £2, £3 und £4 wiederholt sich so lange, bis der erste Satz von aWIN Bits in das Argumentregister 30 gebracht ist. Wenn alle diese Bits eingegeben worden sind, ergibt die nächste Prüfung des Zählerstandes des Längenzählers im Schritt £4, daß der Zählerstand den Wert 0 erreicht hat.
ίο Wenn der Torschaltung 60 der Taktimpuls £4 zugeführt wird, während die O-Ausgangsleitung 64 des Unsetzers 62 erregt ist, dann wird deren Ausgangsimpuls über die Leitung 70 und das ODER-Glied 72 in Fig. 4 der monostabilen Kippschaltung 74 zugeführt, die daraufhin in den instabilen Zustand gelangt und den Taktimpuls £5 erzeugt. Dieser leitet eine neue Reihenfolge von Schritten £5, £6 und £7 ein, die in Fig. 2 gezeigt ist und während welcher die eigentliche Decodierung erfolgt.
ao Wenn also der Taktimpuls £5 erzeugt wird, setzt er die verschiedenen Übereinstimmungs-Anzeiger der in den Fig. IA und 12 gezeigten Assoziativspeichersteuerschaltungen 80 in den Eins-Zustand. Der Taktimpuls £5 gelangt über ein in Fig. IA gezeigtes ODER-Glied 82 auf eine in F i g. 12 gezeigte Leiturg 84, die parallel mit den 1-Eingangsanschlüssen der Übereinstimmungs-Anzeige Flipflops 86 in den Steuerschaltungen 80 des Assoziativspeichers verbunden ist. Dadurch werden diese für eine Suchoperation vorbereitet.
Wenn die in Fig. 4 gezeigte monostabile Kippschaltung 74 in den stabilen Zustand zurückkehrt, schaltet sie eine monostabile Kippschaltung 88 in den instabilen Zustand zur Erzeugung eines Taktimpulses £6 ein, der einer Assoziationsleitung des in Fig. IA gezeigten Argumentregisters zugeleitet wird. Dadurch wird der Assoziativspeicher 20 zur Suche nach einem Wort im Speicherteil 24 veranlaßt, das mit dem Inhalt des Argument registers 30 übereinstimmt. Eine Übereinstimmung tritt auf. wenn das Muster der wertdarstellenden Bits in einem der im Speicherteil 24 gespeicherten Wörter übereinstimmt mit den entsprechenden Bits im Argumentregister 30. Wenn bei Verwendung des (1.8) Codes z. B. angenommen wird.
daß die beiden äußersten linken Positionen des Argurnentregistcrs 30 Nullen enthalten, dann besteht eine Übereinstimmung zwischen diesem Argument und dem obersten Wort des in Fig. (■> gezeigten Speichertcilcs 24. Die übrigen Bits im Argumentregister 30 werden in diesem Fall ignoriert, da die übrigen Zellen dieser Zeile im Teil 24 des Assoziativspeichers sich im A'-Zustand befinden. Somit wird eine Übereinstimmungfestgestellt zwischen dem Argument 00 und dem gespeicherten Wort 00 ungeachtet deT übrigen Bits im Argumentregister 30.
Die im Teil 24 des Assoziativspeichers 20 gespeicherten Wörter, die alle originale Bitreihen darstellen, welche codiert werden können, sind so ausgewählt, daß kein Wort den Anfang eines längeren Wortes in demselben Satz bilden kann. Aus Fig. 6 ist z. B. zu ersehen, daß keines der anderen codierbaren im Teil 24 gespeicherten Wörter mit 00 beginnen kann, da das erste Wort im Speicherteil 24 das Wort 00 ist. In diesem Zusammenhang ist jedoch zu beachten, daß eine besondere Zeile von Zellen im Teil 24 vorhanden ist, die ein aus lauter Nullen bestehendes ?seudowor' enthält. Dieses Pseudowort gehört jedoch zu einer anderen Kategorie und stellt eine fehlende Übereinstim-
mung dar, die nur bei Decodieroperationen auftreten kann. Bei Codieroperationen wird dieses Wort nicht benutzt und wird daher bei der Beschreibung von Decodieroperationen besonders behandelt. Bei Codieroperationen wird angenommen, daß für jedes im Argumentregister 30 der Fig. IA gespeicherte Argument eine eindeutige Übereinstimmung zwischen dem Avgument und einem der im Speicherteil 24 mit Ausnahme dieses Pseudowortes gespeicherten Wörter besteht.
Befindet sich in einer Zeile des abgefragten Teils des Assoziativspeichers (in diesem Fall Teil 24) ein nicht übereinstimmendes Wor^, so wird dadurch ein Signa! auf der Ungleichheit anzeigenden Leitung 90 für diese Zellenzeile erzeugt. Dieses Ungleichheit anzeigende Signal wird dem O-Eingangsanschluß des zugehörigen Übereinstimmungsanzeige-Flipflop 86 zugeführt und dieses dadurch auf 0 zurückgestellt. Da angenommen wird, daß nur eine Zellenzeile ein übereinstimmendes Wort enthält, werden Ungleichheit anzeigende Signale für alle Zeilen mit Ausnahme der Zeile erzeugt, in welcher dieses übereinstimmende Wort gespeichert ist. Somit bleibt nur einer der Übereinstimmungsanzeiger 86 im Eins-Zustand, die anderen werden in den Null-Zustand zurückgestellt.
Wenn die in Fig. 4 gezeigte monostabile Kippschaltung 88 in ihren stabilen Zustand zurückkehrt, sendet sie einen Impuls über eine Leitung 92 zum Einschalten der nächsten monostabilen Kippschaltung 94 und Erzeugen eines Taktimpulses £7, der über ein ODER-Glied 96 in F i g. IA der in F i g. 12 gezeigten Leseleitung 98 zugeführt wird. Zu jedem Übereinstimmungs-Anzeiger 86 gehört ein UND-Glied 100. Ein Eingang eines jeden UND-Gliedes 100 ist mit der Leseleitung 98 verbunden, der andere mit dem 1-Ausgang des entsprechenden Übereinstimmungs-Anzeigers. Wenn der Übereinstimmungs-Anzeiger sich im Eins-Zustand befindet, wird ein Signal über das entsprechende UND-Glied 100 an die zugehörige Leseleitung 102 weitergegeben und dadurch das Auslesen der Speicherzellenzeile vorbereitet, die das übereinstimmende Wort enthält, d. h., das Wort, welches mit dem im Argumentregister 30 der Fig. 2 A gespeicherten Argument übereinstimmt. Alle anderen Leseleitungen 102 erhalten kein Signal. Wie bereits gesagt wurde, gibt es bei jeder Codieroperation nur ein übereinstimmendes Wort.
Der in Fig. IA gezeigte Teil 22 des Assoziativspeichers 20 ist jetzt zum Auslesen des in der Zellenzeile gespeicherten codierten Wortes vorbereitet, die das übereinstimmende Originalwort im Speicherteil 24 enthält. Wenn der Taktimpuls £7 nach obiger Beschreibung erzeugt «vird, wird er auch einer Torschaltung 104 in Fi g. IA zugeführt und koppelt damit den Ausgang des Speicherteiles 22 mit der Eingangsseite des Datenregisters 32. Dadurch kann das dem codierten Argument entsprechende codierte Wort in das Datenregister 32 geleitet werden und steht dort jetzt zum seriellen Auslesen zur Verfügung.
Durch den Taktimpuls £7 wird weiterhin die in Fig. IA gezeigte Torschaltung 106 durchgeschaltet und überträgt die zugehörige Längenangabe L aus dem Speicherteil 26 in den in F i g. IB gezeigten Längenzähler 34. Dessen Zählerstand gibt daher die Anzahl der im Originalwort enthaltenen wertdarstellenden Bits an, die soeben als Codier-Argument benutzt wurden.
Wenn die in Fig. 4 gezeigte monostabile Kippschaltung 94 in den stabilen Zustand zurückkehrt, bringt sie die monostabile Kippschaltung 108 in den instabilen Zustand und erzeugt damit den Taktimpuls £8. Wie im Ablaufdiagramm der Fig. 2 gezeigt ist. wird dadurch der Eingabebitzähler 38 in F i g. IB auf den Wert α und der Ausgabebitzähler 36 auf den Wert N eingestellt. Entsprechend obiger Beschreibung stellt der Wert N die Anzahl von aus dem Datenregister 32 in Fig. IA auszulesenden Datenbits
ίο für je α von in das Argumentregister 30 eingegebenen Datenbits dar. Das heißt, das Verhältnis Λ', α ist ein festes Verhältnis zwischen der Anzahl von im codierten Wort enthaltenen Bits und der Anzahl der in der originalen Bitreihe enthaltenen Bits, von denen dieses
codierte Wort abgeleitet wurde.
Wenn die in Fig. 4 gezeigte monostabile Kippschaltung 108 in den stabilen Zustand zurück kehrt, sendet sie einen Impuls über die ODER-GJieder Ϊ10 und 112 an eine monostabile Kippschaltung 114 und
ao einen zweiten Impuls über die ODER-Glieder 110 und 116 an die monostabile Kippschaltung 118. Jetzt folgt eine Phase der Codieroperatioit, in welcher zwei Schrittfolgen £9 bis £11 und £12bis £14 gleichzeitig ausgeführt werden. Während der Schritte £9 bis £i I
»5 werden « Datenbits seriell in das Argumentre^istei 30 in Fig. IA eingegeben und dessen Inhalt entsprechend nach links verschoben. Während der Schritte £12 bis £14 werden N Datenbits seriell aus dem Datenregister 32 ausgelesen und dessen Inhalt entspre-
chend nach links verschoben. Diese beiden gleichzeitigen Schrittfolgen werden so oft ausgeführt als nötig (was durch die Einstellung des Längenzählers bestimmt ist), um ein neues Argument zur Assoziierung in das Argumentregister 30 zu bringen und das Ausle-
sen des gerade codierten Codewortes aus dem Datenregister 32 zu beenden.
Betrachtet man die gerade beschriebenen Operationen im einzelnen, so erzeugt die monostabile Kippschaltung 114 in Fi g. 4 beim Einschalten einen Takt-
impuls £9, welcher den Inhalt des in Fig. 1Λ gezeigten Argumentregisters 30 um ein Bit nach links verschiebt. Wenn die monostabile Kippschaltung ii4 in Fig. 4 in den stabilen Zustand zurückkehrt, bringt sie die monostabile Kippschaltung 120 in den instahi-
len Zustand und erzeugt den Taktimpuls £10. Das hat drei Auswirkungen. Erstens wird die Torschaltung 54 in F i g. IA betätigt und ein Bit in das Argumentregister 30 eingegeben. Zweitens wird der Zählerstand des Eingabebitzählers 38 in Fig. 1 B um eins herun-
tergezählt. Drittens wird der Zählerstand des Längenzählers 34 um eins erniedrigt.
Wenn die monostabile Kippschaltung 120 in den stabilen Zustand zurückkehrt, bringt sie die in Fig. 4 gezeigte monostabile Kippschaltung 122 in den insta-
bilen Zustand und erzeugt dadurch den Taktimpuls £11. Durch diesen Impuls wird der Zählerstand des Eingangsbitzählers 38 in Fig. 1 B auf den Wert Null abgefragt. Mit dem Eingabebitzähler 38 ist ein Umsetzer 128 verbunden, der ein Ausgangssignal auf der Leitung 124 erzeugt, wenn der Zählerstand des Eingabebitzählers von 0 verschieden ist und ein Signal auf einer anderen Ausgangsleitung 126, wenn der Zählerstand des Eingabebitzählcrs 0 beträgt. Der Taktimpuls £11 wird einer in F i g. 1 B gezeigten Torschaltung 130 zugeführt und wenn die Leitung 124 erregt ist (was für den vorliegenden Fall angenommen wird), gelangt der Ausgangsimpuls der Torschaltung 130 über eine in den Fig. IB und 4 gezeigte Leitung
sier Zäh Null £11 Aus Oi) Fig zv, e
Da*- ihm wen Wer
des weii hat star
sch; star FY. 32. ten neu Bit
st al bile er/' der ver her her
stal bil( erz ler 36
/al ein gai 15i Ii im Di £1 Di de wi
Ai Ai i5
di. I.r cn de L'
hrt,
den
ist,
auf
den
rei-Dabits
nen
ein
ierder
sses
PP-hrt,
UU
etzt
wei
■itig
EU
ster
ireitte
Dairczeijtig
beung
sleen-
:rappikt-IA
nks
114
ngt
ibi-Das
ang
:reind
uncn-
132 und über ein ODER-Glied 112 zu der monostabilen Kippschaltung 114. Daher wird die Schrittfolge £9 bis £11 in Fig. 2 wiederholt, bis der Eingabebitzähler auf 0 zurückgezählt wurde.
Wenn schließlich « neue Bits in das Argumentregister 30 in Fig. 1 A eingegeben wurden, beträgt der Zählerstand des Eingabebitzählers 38 in Fig. IB Null. Wenn unter diesen Umständen der Taktimpuls £11 erzeugt wird, liefert die Torschaltung 130 einen Ausgangsimpuls über eine Leitung 134 und das ODER-Glied 136 zu einem Eingang eines in den Fig. IB und 2 gezeigten UND-Gliedes 138. Ein zweites Eingangssignal für das UND-Glied 138 wird vom Eingabebitzähler über die Leitung 126 geliefert. Das UND-Glied 138schaltet jedoch erst durch, wenn ihm ein drittes Eingangssignal dann zugeführt wird, wenn der Zählerstand des Ausgabebitzählers 36 den Wert Ü erreicht. Die Rückführung des Zählerstandes des Eingabebitzählers zum Wert 0 unterbricht also die weitere Ausführung der Schritte £9 bis £11 in F ig. 2, hat jedoch keinen weiteren Einfluß, bis der Zählerstand des Ausgabebitzählers auf 0 reduziert wurde.
Wenn die ir Fig. 4 gezeigte monostabile Kippschaltung 118 gemäß obiger Beschreibung in den instabilen Zustand gelangt, erzeugt sie den Taktimpuls £12 zum Ausgeben eines Bits aus dem Dateniegister 32, indem der Taktimpuls £12 der in F i g. IA gezeigten Torschaltung 140 zugeführt wird, welche das ausgegebene Bit durchläuft. Dieses ist das erste von N Bits, die aus dem Datenregister 32 auszugeben sind.
Wenn die monostabile Kippschaltung 118 in den stabilen Zustand zurückkehrt, bringt sie die monostabiie Kippschaltung 142 in den instabilen Zustand und erzeugt den Taktimpuls £13. Dadurch wird erstens der Inhalt des Datenregisters 32 um ein Bit nach links verschoben und zweitens der Zählerstand des Ausgabebitzählers 36 gemäß Darstellung in F ig. 1 B um eins herabgesetzt.
Wenn die monostabile Kippschaltung 142 in den stabilen Zustand zurückkehrt, bringt sie die monostabile Kippschaltung 144 in den instabilen Zustand und erzeugt den Taktimpuls £14. Dadurch wird der Zählerstand des in Fig. 1 B gezeigten Ausgabebitzählers 36 geprüft. Mit dem Zähler 36 ist ein Umsetzer 146 verbunden, der Ausgangssignale liefert, und zwar auf der Leitung 148, wenn der Ausgabebitzähler einen von 0 verschiedenen Zählerstand besitzt und auf der Leitung 150, wenn der Zählerstand des Ausgabebitzählers den Wert 0 hat. Der Taktimpuls £14 wird einer Torschaltung 152 zugeführt, und wenn die Ausgangsleitung 148 erregt ist, erzeugt die Torschaltung 150 einen Impuls, der über eine Leitung 154 in den Fig. IB und 4 und ein ODER-Glied 116 zu einer monostabilen Kippschaltung 118 weitergeführt wird. Dadurch wird die Reihenfolge der Schritte £12 bis £14 in Fig. 2 wiederholt, und zwar so lange, bis ;V Datenbits aus den Datenregister 32 ausgegeben und der Zählerstand des Ausgabebitzählers auf 0 reduziert wurde.
Wenn der Zählerstand des in Fig. 1 B gezeigten Ausgabebitzählers 36 auf 0 reduziert wurde, führt das Anlegen des Taktimpulses £14 an die Torschaltung 152 zur Weiterleitung eines Ausgangsimpulses über die Leitung 156 und das ODER-Glied 136 zu dem UND-Glied 138. Da beide Zähler jetzt auf 0 stehen, empfängt das UND-Glied 138 Eingangssignale von den Leitungen 126 und 150 sowie vorn ODER-Glied 1Λ6 Somit wird der Ausgangsimpuls des UND-GHe des 138 über die Leiiung 160 in den Fig. IB und 4 der monoslabilen Kippschaltung 162 im Taktimpulsgenerator zugeleitet.
Wenn die monostabiie Kippschaltung 162 in den instabilen Zustand gebracht wird, erzeugt sie den Taktimpuls £15, welcher der Torschaltung 164 in Fig. IB zugeführt wird. Wenn der Zählerstand des Längcnzählers einen von U verschiedenen Wert hat. wird ein entsprechendes Signal auf der Ausgangsleitung 66 über die Torschaltung 164 und eine Leitung 176"der monostabilen Kippschaltung 172 \n Fig. 4 zugeieitet.
Wenn die monostabile Kippschaltung 172 in den instabilen Zustand gebracht wird, erzeugt sie den
is Taktimpuls £16 und aus den Fig. 2 und 1 B ist zu ersehen, daß dadurch der Eingabebitzähler 38 wieder auf den Wert α und der Ausgabebitzahler 36 auf den Wert /V eingestellt werden. Wenn die in Fig. 4 gezeigte monostabile Kippschaltung 172 in den stabilen Zustand zurückkehrt, sendet sie einen Impuls übe: die ODER-Glieder 110, 112 und 116 zu den monostabilen Kippschaltungen 114 bzw. 118, wodurch die beiden Schrittfolgen £9 bis £11 und £12 bis £14 in Fig. 2 wieder eingeleitet werden. Infolgedessen
a5 wird eine weitere Gruppe von (t Bits seriell in das Argumentenregistcr 30 der Fig. IA eingegeben inid eine weitere Gruppe von N Bits seriell aus dem Datenregister 32 ausgelesen.
Die Reihenfolge der in Fig. 2 gezeigten Schritte £9 bis £16 wird wiederholt, bis der Zählersland des Längenzähler auf 0 reduziert ist. Wenn diese Bedingung erreicht wird, heißt das, daß L neue Bits in das Argumentregister 30gelesen und eine damit in Beziehung stehende Anzahl von Bits, nämlich NL/u, aus dem Datenregistcr 32 ausgelesen wurde. Somit ist ein ganzes der Codewörter unterschiedlicher Länge aus dem Datenregister 32 ausgelesen und eine nachfolgende zu codierende Bitreihe an die für die Assoziation im Argumentregistcr 30 richtige Stelle gesetzt worden. Wenn unter diesen Umständen der Taktimpuls £15 erzeugt wird, fließt ein Strom von der O-Ausgangsleitung 64 des Umsetzers 62 des Längenzählers in Fig. IB über die Torschaltuni' 164 und die leitung 176 zu der in Fig. 4 gezeigten monostabilen
Kippschaltung 178. Wenn diese in Ben instabilen Zustand gelangt, erzeugt sie einen Taktimpuls £17 und leitet eine Prüfung ein, mit welcher festgestellt wird, ob das letzte Wort codiert wurde. Die hierfür nötigen Prüfeinrichtungen werden jetzt beschrieben.
Es wird angenommen, daß jede zu codierende Aufzeichnungoder Nachricht in einem erkennbaren Code »Ende des Datensatzes (EDD)« endet. Als solcher kann z. B. eines der im Assoziativspeicherteil 22 gespeicherten codierten Wörter angesehen werden. Der originale Bitstrom endet in einer Reihe von Bits, die in diese EDD-Darstellung umgesetzt werden. Zum Datenregister 32 gehört ein Detektor 180 für das codierte EDD, Fig. 1 A. Wenn ein EDD-Codt aus dem Datenregister 32 des Assoziativspeichers 20 gelesen wird, erzeugt der Detektor 180 ein Ausgangssignal auf der Leitung 182, welches über ein ODER-Glied 184 zum 1-Eingang des Ende-Flipflop 44 läuft und dieses in den »!«-Zustand bringt. Wenn das Ende-Fiipflop 44 im »!«-Zustand ist, erscheint ein Ausgangssigna! auf der Leitung .188. 1st das Ende-Flipflop 44 im »Ö«--Z,ustaiHl, erscheint ein Signal auf der Leitung 186. Die Erregung einer der beiden Leitungen 186 oder 188 häimt davon ah. ob der Detektor t80
18
einen EDD-Code im Datenregister 32 festgestellt hat oder nicht. Wenn das Ende des Datensatzes zum Zeitpunkt des Taktimpulses £17 noch nicht erreicht ist, wird die Leitung 186 erregt, sonst die Leitung 188. Der Taktimpuls £17 wird zum entsprechenden Zeitpunkt der in F i g. 1 A gezeigten Torschaltung 190 zugeführt. Wenn das Ende der Aufzeichnung noch nicht erreicht ist, fließt Strom von der Leitung 186 über die Torschaltung 190, Leitung 192 und das in ment eingeschlossen, auch wenn die Rahmenlärm kleiner als W ist. sc
Zum Eingangsregister 200 gehört eine mit Ra>, men-Logik bezeichnete Schaltung 202 in Fig Λ Diese Einheit 202 enthält logische Schaltungen fji" die Rahmenentscheidungen, die in bezug auf den her einkommenden Bitstrom getroffen werden müssen d. h., die Schaltungen entscheiden, an welchen PUnk ten dei Bitstrom unterteilt werden muß, um die
ii— j j„._ j: c ι -i , .
Fig. 4 gezeigte ODER-Glied 72zu der monostabilen " fange und Enden der diesen Strom bildenden Code-
Kippschaltung 74. Diese kommt dadurch in den insta- Wörter zu markieren. D.e Schalung stellt Jn
bilen Zustand und erzeugt einen Taktimpuls £5 und Wirklichkeit die Lange eines jeden der Rahmen mit
leitet dadurch eine neue Codierfolge ein, die mit dem unterschiedlicher Lange fest, d.e d.e entsprechenden
in F i g. 2 gezeigten Schritt £5 beginnt. Das System Codewörter enthalten. Die m der Einhcii 202 jeweils
codiert dann das neue Argument weiter, welches jetzt i5 verwendeten logischen Schaltungen hangen von dem
im Argumentregister 30 steht. Code ab, der benutzt wird. F ι g. 8 zeigt die Rahmen-
d (18) Cd d H 9
Argumentregister 30 steht.
Diese neue Codieroperation beginnt also erst, wenn alle Bits des vorher codierten Wortes aus dem Datenregister 32 ausgelesen worden sind und sie beginnt außerdem, sobald das letzte Bit des alten Codeworts ausgelesen wurde. Zwischen der Codierung aufeinanderfolgender Codewörter besteht also keinerlei Verzögerung.
Wenn der Taktimpuls £17 zu einem Zeitpunkt erzeugt wird, an welchem das Ende-Flipflop im »1 «-Zustand ist, d. h., daß ein EDD-Codewort erzeugt wurde. Dann führt die Torschaltung 190 in Fig. IA den Strom auf der Leitung 188 einer zur Beendigung eier Codieroperation des Systems geeigneten Einrichtung zu. Das EDD-Codewort ist mittlerweile aus dem Datenregister 32 ausgeschoben worden, um den letzten Teil der codierten Nachricht zu bilden.
Die Decodierung oder Rück-Umsetzung wird anschließend im Zusammenhang mit den Fig. IA, IB, 3 und 5 bis 12 beschrieben.
Wie aus Fig. IB zu ersehen ist, werden die Bits des codierten Bitstromes seriell in ein Eingangsregister 200 eingegeben. Die Bit-Speicherstellen 200 sind der Reihe nach von eins an aufwärts numeriert. Das Rahmen-Logik für den (1,8) Code und Fig. 9 für den P 71
Code. "' '
Die Einheit 202 stellt vorher die Lange fest, die
»0 das decodierte Wort haben wird. Genauer gesagt stellt die Einheit 202 zuerst einmal die laufende Rahmenlänge fest, das ist die Länge des zu decodierenden Codewords. Dann liefert die Einheit 202 an ihrem Ausgang eine binäre Anzeige für die durch das Verhältnis
Λ', α der codierten Bits zu den originalen Bits dividierte Rahr/ienlänge. Dieser Längenwert wird in den Längenzähler 34 der Fig. IB zu gegebener Zeit eingegeben. Der Zählerstand des Längenzählers steuert dann die Decodieroperation, die im normalen Ablauf folgt.
Zur Decodieroperation gehört zuerst die parallele Übertragung der in den ersten W Stellen des Eingaberegisters 200 gespeicherten Bits in das in I- i g. 1 A gezeigte Argumentregister 204 zwecks Benutzung als
Decodierargument. Mit diesem W Bits umfassenden Decodierargument wird dann eine Assoziation ausgeführt, um ein übereinstimmendes Codewort im Ab
schnitt 22 des Assoziativspeichers 20 zu finden. Wenn eine Übereinstimmung gefunden ist, wird das entspre-Register 200 ist ein Schieberegister und sein Inhalt 40 chende decodierte Wort aus dem Speicherabschnitt wird intermittierend um jeweils eine Bitstelle nach 24 in ein Datenregister 206 ausgelesen, aus dem es links verschoben (mit Blickrichtung auf Fig. IB), anschließend bitseriell ausgelesen wird.
u,iiura„A A-.a t\a: .:.._ <·.__.. „!_„_:·.. r^_ Sowohl das im Argumentregister 204 gespeicherte
Codewort als auch das aus dem Datenregister 206 ausgelesene decodierte Wort haben veränderliche Längen. Die Anzahl der aus dem Datenregister 206 ausgelesenen Bits wird gesteuert durch die Länge des decodierten Wortes, die bereits durch die Einheit 202 festgestellt wurde. In gleicher Weise wird die Anzahl der neu in das Eingaberegister 200 einzugebenden Bits entsprechend der Rahmenlänge, festgestellt durch die Einheit 202, gesteuert. Beide Aktionen laufen unter Steuerung durch den Längenzähler ab.
In der Zeit, in welcher die Bits des decodierten
W gleich acht Bits. Der Punkt im Register 200, der 55 Wortes aus dem Datenregister 206 ausgelesen und zwischen der Bitstelle Wund der Bitstelle W+ 1 liegt, neue Bits in das Eingangsregister 200 eingegeben .c. ok- d„i u„~ >..,_,. —. . ,, .,. werden, wird vom Assoziativspeicher 20 weder eine
Dccodierfunktion noch eine Rahmenprüfung durch die Einheit 202 durchgeführt. Wie bereits erklärt wurde, werden diese beiden Funktionen nur einmal pro Rahmen ausgeführt, nachdem das gerade decodierte Wort durch ein neues Codewor! ersetzt wird. Diese Rahmenprüfung wird durchgeführt, wenn dieses neue Codewort am Rahmenbe/.ugspunkt registriert wurde (Fig. S oder Fig. 9).
während die Decodieroperation fortschreitet. Das zwischen zwei aufeinanderfolgenden Verschiebungen liegende Zeitintervall (oder auch das vor der ersten Verschiebung liegende Zeitintervall) wird hier als Schiebeintervall bezeichnet.
Die Bits des codierten Bitstromes werden im Eingangsregister 200 gespeichert, um bestimmte Rahmenprüfungen an einem bestimmten Teil dieses Bitstromes ausführen zu können, welcher W Bits enthält, wobei W die größtmögliche Wortlänge ist. Im Falle des in Fig. 6 gezeigten (1,8) Code ist W z. B. gleich neun Bits. Beim in Fig. 7 gezeigten (2,7) Code ist
ist als Rahmenbezugspunkt bekannt. Für den (1,8) Code liegt der Rahmenbezugspunkt zwischen der neunten und zehnten Bitstelle im Register 200, wie das in Fig. H dargestellt ist, und für den (2,7) Code
/wischen der achten und neunten Bitstclle, wie das in Fig. 9 dargestellt ist. Dieser Rahmenbezugspunkt markiert effektiv die Vorderkante eines aus W Bits gestehenden Decodierargumentes, welches zu gegebener Zeit in das Argumentregistcr 204 des Assoziaivspcichers 20 der Fig. IA übertragen wird. Alle Jits im Eingangsregister, die zu dieser Zeit rechts vom <ahnienbezugspunkt stehen, werden in dieses Argu-
g g )
Wenn das im Eingangsregister 200 registrierte Codewort auf Grund IaNcIiCr Codierung oder Biterkenfalsch dargestellt wird, trifft die Einheit 202
otzdem en eilt, welchi
;n werden ■ort und ei espeichertt Hing fesigt welches an tehen soll) iin neues < angsregisu ion lauft W. ung stange ültigen Wi ierhereink hronisatioi Die inter st nach den »elegt. Fig. leii 202 be begrenzter \cx Wert fi Üe logische 2,7) Code en diese k Eingangsre -,in prüfen, ichen Punk werden kai «erden die sucht, irgei Register finden. Wei der Reihe men. daß ι Bits) im R< dieroperati Diese Ann den gegebe mögliche \ falsch, verl die durch ι des Bitstro ser in das gültiges W Fig. Sz 202 für de tabelle füi Lauflänge, dicrten Wi sechs oder Codewortl Wort auf drei Nullewörtern in mindesten ten, abhän eine 0 in 9 steht, wi nes der drt gegenwärt registers Schaltung Ausgangs;-ter 208 ii UND-GIk sonder Bi 212 und ν r;ii,-,l
Lah-IB.
für
ier-
>en.
nk-
\nde-
in
mit
Jen
eils
em
en-
die
illt
nis
νιο η
n-
;rt
uf
rotzdem eine Entscheidung, die die beste Wahl dartellt, welche unter den gegebenen Umständen getrofsn werden kann. Wenn zwischen dem falschen Code- ιοτΧ und einem der im Speicherteil 22 der Fig. IA espeicherten codierten Wörter keine Übereinstimmung festgestellt werden kann, wird ein Pseudowort welches angenommenermaßen aus !auter Nullen betehen soll) aus dem Datenregister 206 ausgelesen. Jin neues Oxlewort wird zur Prüfung in das Ein- ;angsregister 200 gebracht und die Decodieroperaion läuft weiter, als ob gerade eine gültige Decodieung stattgefunden halte. Das Feststellen des ersten gültigen Wortendes, welches dem fehlerhaften Teil !er hereinkommenden Nachricht folgt, stellt die Syn- ;hronisation wieder her.
Die interne Schaltung der Einheit 202 in Fig. IB St nach dem jeweils verwendeten Codierschema ausgelegt. Fig. S zeigt die logischen Schaltungen der Einieit 202 bei der Verwendung eines (1,8J Codes mit jegrenzter Lauflänge, d. h. eines Codes, in welchem jer Wert für d = 1 und für k = 8 ist. Fig. 9 zeigt jje logischen Schaltungen der Einheit 202 für einen [2,7) Code mit begrenzter Lauflänge. Allgemein sollen diese logischen Schaltungen das gegenwärtig im Eingangsregister 200 gespeicherte Bitmuster daraufhin prüfen, ob ein Wortende an bestimmten strategischen Punkten innerhalb dieser Bitreihe festgestellt werden kann. Bei der Durchführung dieser Prüfung werden die wertniedrigen Bitstellen ignoriert und versucht, irgendwo innerhalb des übrigen Teiles der im Register 200 gespeicherten Bitreihe ein Wortende zu finden. Wenn kein derartiges Wortende in diesem Teil der Reihe festgestellt werden kann, wird angenommen, daß ein Codewort von maximaler Länge ( W Bits) im Register 200 gespeichert ist und die Decodieroperation wird dann entsprechend ausgeführt. Diese Annahme kann richtig oder falsch sein, unter den gegebenen Umständen stellt: sie jedoch die einzig mögliche Entscheidung dar. Ist diese Entscheidung falsch, verläßt man sich auf die Wortendprüfungen, die durch die Einheit 202 beim nachfolgenden Teil des Bitstromes vorgenommen werden, nachdem dieser in das Eingaberegister 200 gelangt, um dort ein gültiges Wortende zu finden.
Fig. 8 zeigt die logischen Schaltungen Jer Einheit 202 für den (1,8) Code und F i g. 6 die Code-Umsetztabelle für diesen speziellen Code mit begrenzter Lauflänge, wobei zuerst zu beachten ist, daß alle codierten Wörter in diesem System Längen von drei, sechs oder neun Bits aufweisen, wobei neun die größte Codewortlänge ist. Außerdem endet jedes codierte Wort auf nicht weniger als eine und nicht mehr als drei Nullen. Somit kann allgemein von allen Codewörtern im (1,8) Code festgestellt werden, daß sie mindestens eine 0 in den Bitstellen 1, 4 oder 7 enthalten, abhängig von der Länge des Codewortes. Wenn eine 0 in Stelle 7 und eine 1 in den Stellen 8 oder 9steht, wird vernünftigerweise angenommen, daß eines der drei Bit großen Codewörter in diesem System gegenwärtig in den Bitstellcn 7, 8 und 9 des Eingangsregisters 200 gespeichert ist. Die in Fig. 8 gezeigte Schaltung erkennt diese Tatsache. Somit wird das U-Ausgangssignal von der Bitstclk: 7 durch einen Inverter 208 invertiert und als 1-Eingangssignal einem UND-Glied 210 zugeleitet. Das 1-Ausgangssignal vondcrBitstclle 8oder 9 durchläuft ein ODER-Glied 212 und wird als zweites Eingangssignal dem UND-Tilipd 210 /uueleitet. Unter diesen Umständen wird auf der Ausgangsleitung A des UND-Gliedes 210 ein Signal erzeugt, welches hier als »Erfüllungs«-Signal bezeichnet wird.
Wenn mit Bezug auf die in Fi g. 6 gezeigte Codier-
Tabelle in Bitstelle 4 in F i g. 8 gegenwärtig eine Ü und in den Bitstellen 5, 6 und 7 eine 1 gespeichert ist, wird vernünftigerweise angenommen, daß eines der vier sechs Bit großen Codewörter gegenwärtig in den Stellen 4 bis 9 des Eingangsregisters 200 gespeichert
ίο ist. Unter diesen Bedingungen wird das 0-Ausgangssignal der Bitsielle 4 durch den in Fi g. 8 gezeigten Inverter 213 invertiert und in dieser Form dem UND-Glied 214 zugeleitet. Das 1-Ausgangssignal in Stelle 5,6 oder 7 durchläuft ein ODER-Glied 216 und wird dem anderen Eingang des UND-Gliedes zugeführt, welches daraufhin ein Ausgangssignal auf der ß-Lcitung erzeugt, welches hier ebenfalls als »Erfüllungs«- Signal bezeichnet wird.
Mit den drei Bitstellen 1, 2 und 3 des Eingangsregisters 200 sind keine logischen Schaltungen verbunden. Wenn auf der /4-Leitung oder der ß-Leitungkein Erfüllungssignal erzeugt wird, besteht die einzig mögliche Alternative darin, die gesamte neun Bit große, in den Stellen 1 bis 9 des Registers 200 gespeicherte
»5 Bitfolge als ein neun Bit großes Codewort zu behandeln, ungeachtet dessen, ob diese Annahme richtig ist oder nicht. Es hat also keinen Zweck, die Stelle 1 auf ein Wor'.ende zu überprüfen. Wenn die Folge von in den Stellen 1 bis 9 des Registers gespeicherten Bits kein echtes Codewort ist, enthält die nächste Folge von neun Bits aller Wahrscheinlichkeit nach ein gültiges Wortende.
Die im unteren Teil der Fig. 8 wiedergegebene Rahmen-Entscheidungstabelle bezeichnet die RaIimen-Entscheidungen, die unter verschiedenen Umständen, abhängig von der Existenz oder dem Fehlen der Erfüllungssignale auf den Leitungen A und B von der Einheit 202 getroffen werden. Wenn kein Signal auf einer der Leitungen A oder B vorhanden ist, wird, wie gerade gesagt, angenommen, daß die Rahmenlänge neun Bits betrügt. Ein Erfüllungssignal nur auf der Leitung B bezeichnet eine Rahmenlänge von sechs Bits, ein Erfüllungssignal nur auf der Leitung A eine Rahmenlänge von drei Bits. Wenn ein Erfüllungssignal auf der Leitung A und auf der Leitung B gleichzeitig erscheint, wird dadurch eine in mindestens einer der beiden Gruppen der Bitstellen 4 bis 6 und 7 bis 9 vorliegende Fehlerbedingung bezeichnet Diese Frage nach der Fehlerbedingung wird bei der
Konstruktion der Schaltung dadurch gelöst, daß man annimmt, daß der Fehler innerhalb der Gruppe der Bitstellen 7, 8 und 9 auftritt, so daß nur diese drei Bits ersetzt werden müssen. Es wird daher die Rahmenlänge 3 angenommen, wenn Erfüllungssignale auf den beiden Leitungen A und B festgestellt werden. Der im unteren Teil der in F i g. 8 dargestellten Einheit 202 allgemein mit der Zahl 218 bezeichnete Teil der logischen Schaltungen setzt das Signalmuster auf den Leitungen A und B in einen Wert für den Län-
genzähler um, der in diesem Fall -\· , der angegebenen Rahmenlänge beträgt. Der Wert im Längenzähler gibt bekanntlich die Länge desdecodierten Wortes an. und beim (1.N) Code mit begrenzter Lauflänge ist nach tier \ 01 liegenden Erfindung die decodicrtc Wortlänge immer zwei Drittel dei Länge des entsprechenden codierten Wortes. Bei der Decodieropcration wird das Ausgaiigssignal der Schaltung 218 zum geeigneten Zeitpunkt über eine Torschaltung 220 in den Längen-
zähler 34 eingegeben. Wenn ζ. H. die angegebene Rahmer länge sechs Bits beträgt, dann wird der binäre Wert 100 oder dezimal 4 in die drei untersten Bestellen des Längenzählers 34 eingegeben. Die entsprechenden Dezimalwerte dieser drei Bitstellen im Zähler 34 sind in Fig. 8 angegeben.
In das in Fig. 8 gezeigte ODER-Glied 212 führen drei Eingangsleitungen, die im vorliegenden Falle von den entsprechenden Bitstellen 8, 9 und 10 des Eingangsregisters 200 ausgehen. Die Stelle 10 liegt über dem Rahmenbezugspunkt und enthält das letzte Bit des vorher decodierten Wortes. Wenn die Codewörter richtig codiert und erkannt wurden, steht in der Registerslellc 10 immer eine 0. Steht in Stelle 10 jedoch einmal eine 1, so bedeutet das, daß entweder das Bit falsch ist oder daß ein Rahmenfehler aufgetreten ist, durch welchen die 1 in dieser Stelle erscheint. Unter diesen Umständen kann man nicht sicher sein, daß das in Stelle 9 gespeicherte Bit tatsächlich der Anfang eines neuen Codewortes ist. Wenn z. B. angenommen wird, daß die Bitfolge 001000 in den Stellen 9 bis 4 des Registers 200 gespeichert ist und daß eine 1 in Stelle 10 steht, so könnte normalerweise angenommen werden, daß die in den Stellen 9 bis 4 gespeicherten Bits ein sechs Bit großes Codewort darstellen, welches in Stelle 9 beginnt und in Stelle 4endet. Die 1 in Stelle 10 sagt jedoch, daß das nicht richtig sein kann. Wenn also ein Erfüllungssignal nur auf der Leitung B erzeugt würde, kann das eine Fehleranzeige für die Rahmenlänge sein. Leitet man jedoch das Ausgangssignal der Stelle 10 über ein ODER-Glied 212 dem UND-Glied 210 zu, so wird dadurch auch ein Erfüllungssignal auf der Leitung A erzeugt, so daß die Rahmenlänge mit drei und nicht mit sechs Bits angegeben wird. Setzt man diese kleinere Bitzahl im Register 200 bei dieser Fehlerbedingung ein. dann erfolgt die nächste Wortendeprüfung bereits, wenn nur drei Bits aus dem Register 200 geschoben wurden und nicht erst nach sechs Bits. Dadurch wird das Risiko vermieden, drei Bits zu zerstören, die nicht fehlerhaft waren.
Aus der in Fig. 7 gezeigten Code-Umsetztabelle lür den (2,7) Code geht hervor, daß alle Codewörter in diesem System bei richtiger Codierung entweder vier, sechs oder acht Bits enthalten Außerdem endet jedes gültige Codewort in diesem System auf nicht weniger als zwei und nicht mehr als drei Nullen. F i g. 9 zeigt die Einheit 202 fur den (2.7) Code. Unter normalen Bedingungen kann man erwarten, daß zwei Nullen in den Stellen 1 und 2 oder 3 und 4 oder 5 und 6 des Eingangsregisters 200 gespeichert sind. Das Vorhandensein solcher Nullen-Paare an den angegebenen Stellen zeigt die Möglichkeit an, daß ein gültiges Codewort an einer dieser Stellen endet. Nullen können auch in den Stellen 7 und 8 erscheinen, unter diesen Umständen sollten jedoch in den Stellen 9 und 10 auch Nullen gespeichert sein. Normalerweise enthalten die Stellen 9 und 10 die beiden letzten Bits des vorhergehenden Codewortes, das decodiert wurde, und diese Bits sollten Nullen sein, wenn kein FehleT gemacht wurde, in den Stellen 7 und 8 befinden sich normalerweise die beiden ersten Bits des laufenden zu codierenden Codewortes. Die bei einem Fehler in der Codewortdarstellung vorherrschenden Bedingungen werden anschließend beschrieben.
Die in Fig. 9 dargestellte Schaltung prüft die Stelle 3 oder die Stelle 5 des Eingangsregisters 200 auf ein gültiges Wortende und die Stelle 7 auf ein ungültiges Wortende. Die Stelle 1 wird nicht geprüft.
weil angenommen wird, daß das im Register 200 ge speicherte Codewort ein acht Bit großes Wort ist wenn keine der beiden anderen Prüfbedingungen erfüllt ist. Die Stelle 1 wird nicht auf ein Wortende ge· prüft, da in jedem Fall die in den Stellen 1 bis 8 des Registers 200 gespeicherten Bits für die nächste Decodieroperation ersetzt werden müssen, wenn die anderen Wortende-Prüfungsbedingungen nicht erfüllt sind.
ίο Im einzelnen werden die Ausgangssignale der Stellen 3 und 4 des Registers 200 in der in Fi g. 9 dargestellten Einheit 202 invertiert durch die Inverter 224 und 226 und dem UND-Glied 228 zugeleitet. Das Ausgangssignal der Stelle 5 oder 6 kann außerdem über das ODER-Glied 230 als zusätzliches Eingangssignal dem UND-Glied 228 zugeleitet werden.
Wenn Nullen in den beiden Stellen 3 und 4 und in einer der Stellen 5 oder 6 eine Eins stehen, erzeugt das UND-Glied 228 ein Erfüllungssignal auf seiner
»o Ausgangsleitung C. Aus der Rahmen-Entscheidungstabelle im unteren Teil der Fig. 9 ist zu ersehen, daß ein Erfüllungssignal auf der leitung C" eine Rahmenlänge von 6 Bits bezeichnet. Das entspricht dem Zählerstand 3 des Längenzählers 3.
»5 Auf ähnliche Weise haben eine 0 in den Stellen 5 und 6 und eine 1 in einer der Stellen 7 oder 8 die Erzeugung eines Erfüllungssignals auf der Leitung B mittels des UND-Gliedes 236 zur Folge. Wenn auf der Leitung B ein Signal erscheint, kann bei diesem
speziellen Schema nicht auch gleichzeitig ein Signal auf der Leitung C oder der Leitung A (noch zu beschreiben) erscheinen. Ein Signal auf der Leitung B gibt an. daß ein Codewort mit einer Rahmenlänge von vier Bits festgestellt wurde und in den Stellen 5 bis
8 des Registers 200 gespeichert ist. Die Rahmenlänge 4 entspricht einer Längenzählereinstellung 2.
Der Teil der in F ig. 9 mit 242 bezeichneten Schaltung wandelt die Erfüllungssignale auf den Leitungen A, B und C in äquivalente Werte für den Längenzäh-
ler nach der Rahmen-Entscheidungstabelle um Zu gegebener Zeit erhält also die Torschaltung 220 Impulse, um die Ausgangssignale der Schaltung 242 an den Längenzähler 34 weiterzuleiten.
Das UND-Glied 240 erzeugt ein Erfüllungssignal
auf der Leitung A, wenn in den Stellen 7 und Skullen und in einer der Stellen 9 und 10 des Eingangsregisters 200 eine Eins erscheint. Damit wird eine Fehlerbedingung angezeigt, weil bei richtiger Codierung und Decodierung der Wörter diese spezielle Bitkombination
in den Stellen 7 bis 10 des Registers 200 nicht erscheint. Wenn z. B. angenommen wird, daß die Bitfolge 001000 in den Stellen 8 bis 3 des Eingangsregisters 200 und eine 1 in einer der Stellen 9 oder 10 gespeichert ist, so wird die Bitfolge 001000 in den
Stellen 8 bis 3 normalerweise als ein 6 Bit großes Codewort interpretiert, welches ein Erfüllungssienal auf der Leitung C hervorruft. Da jedoch in den Stellen 9 oder 10 eine Eins steht, heißt das. daß dieser Fall nicht vorliegen kann. Trotzdem ist die Schaltune so ausgelegt, daß sie einen Zweifel an der Möglichkeit zuläßt, daß ein gültiges Wortende in Bitposition 3 vorliegt Somit haben gleichzeitig auf den Leitungen A und C auftretende Signale denselben Effekt wie ein Signal auf der Leitung C alleine.
Wenn ein Signal nur auf der Leitung A erscheint, heißt das. daß in der gerade vorher ^ccodiertcn Codcgruppc ein Fehler aufgetreten ist und daß die Registcrstellen 1 bis 8 nicht ein Coiiewort mit einer Lange
von 4 ode
keit, daß
in diesen
jedoch ke
Codewort
angenomi
und es wii
Codewor
Mer 200
Diese
gewissen
wendung
mag für t
gen sprc<
wird. Di
strukteu
Zusamn
diagram
leiten, w
tes OD
lung 25
diese nn
Zustani
ches ve
die Mi
Menge
geben.
ausgelc
von /V
Als ZW'
Null zu
der in
durch'
regislc
imrnei
hält).
sch; brir inst imt 25< de« pn: Fi dc 84 ge in
r 200 ge
Wortisl
-gen ei
endege
bis 8 de
hste Dc
η die an
it erfüll!
derSte!
rter2M IeL Das
lßerdem ■
und
erzeup
fseinei
•idungs-
en, dal·
ahmen-
teilen!
zu be-
anger
aal·
Hip·
Ji
iac*
Φ
ßoc
is·
BH-It?
rH
von 4 oder 6 Bits enthalten. Es besteht die Möglichkeit, daß ein Codewort mit einer Länge von 8 Bits in diesen Stellen gespeichert ist. In diesem Fall wird jedoch keine Annahme zugunsten eines 8 Bit großen Codewortes gemacht, sondern statt dessen willkürlich angenommen, daß die Rahmentängc 2 Bits beträgt und es wird ein weiterer Versuch gemacht, ein gültiges Codewortende zu finden, nachdem 2 Bits in das Register 200 eingegeben wurden.
Diese Rahmen-Entscheidungen sind bis zu einem gewissen Ausmaß insofern willkürlich, als die Verwendung des /!-Signals betrofft..n ist. Die Erfahrung mag für eine andere Wahl der Rahmen-Entscheidungen sprechen, wenn eine Fehlerbedingung festgestellt wird. Diese Möglichkeiten stehen jedoch dem Konstrukteur des Gerätes frei.
Die Decodierung wird anschließend genauer im Zusammenhang mit dem in Fig. 3 gezeigten Ablaufdiagramm beschrieben. Um die Decodierung einzuleiten, wird ein Startimpuls über ein in F i g. 5 gezeigtes ODER-Glied 250 der monostabilen Kippschaltung 252 im Decodier-Taktgeber zugeführt. Wenn diese monostabile Kippschaltung 252 in den instabilen Zustand gelangt, erzeugt sie ein Taktsignal Dl, welches verschiedene Aktionen auslöst. Als erstes wird die Menge N in den Eingabebitzähler und die Menge a in den Ausgabebitzähler in Fig. IB eingegeben. Für alle aus dem Decodier-Datenregister 206 ausgclescncn « Bits wird eine entsprechende Anzahl von N Bits in das Eingangsregister 200 eingegeben. Als zweites wird das Ende-Flipflop 44 in Fig. IA auf Null zurückgestellt und dann wird der Dl-Taktimpuls der in den Fig. 1 B. 8 und 9 gezeigten Torschaltung 220 zugeleitet, um den Längenzähler 34 auf den Längenwert des decodierten Wortes einzustellen, der durch die Einheit 202, basierend auf der im Eingangsregister 200 gespeicherter. Information, festgestellt wurde.
An diesem Punkt sollte erklärt werden, daß das Eingangsregister 200 am Ende eines Dccodierlaufes immer (lauter Nullen) gelöscht ist (lauter Nullen enthält). Es wird angenommen, daß das Register 200 am Anfang eines neuen Decodierlaufes sich in diesem Zustand befindet. Unter diesen Umständen wird der Inhalt des Eingangsregisters 200 als ein Codewort von maximaler Länge behandelt, welches aus lauter Nullen besteht. Aus den Fig. 8 und 9 ist zu ersehen, daß das Fehlen des Erfüllungssignals bei den durch die Einheit 202 durchgeführten Wortendprüfungen eine maximale Wortlänge angibt. Das System kann natürlich für eine andere Betriebsart so ausgelegt werden, daß die Decodieroperation erst startet, wenn die ersten W Bits in das Eingangsregister eingegeben wurden. Dieser Punkt wird jedoch als weniger bedeutende Einzelheit angesehen.
Wenn die in Fig. 5 gezeigte monostabile Kippschaltung 252 in den stabilen Zustand zurückkehrt, bringt sie die monostabile Kippschaltung 254 in den instabilen Zustand und erzeugt dadurch den Taktimpuls D2, der die in Fig. 1 B gezeigte Torschaltung 256 öffnet und die in den wertniederen H' Bitstellcn des Eingangsregisters 200 gespeicherte Information parallel zum Decodier-Argumentrcgister 204 in Fig. IA überträgt. Der Taktimpuls Dl wird außerdem der in den Fig. IA und 12 gezeigten Leitung 84 zugeführt und bringt die Übefeinstimmungsanzeigcr 86 in den Assozialivspeicherstcuerschaltungen 80 in ilen 1-Zustand. Dadurch wird der Assoziativspeicher 20 auf eine Suchoperation an dem im Argumentregister 204 gespeicherten Argument vorbereitet.
Wenn die monostabile Kippschaltung 254 in den stabilen Zustand zurückkehrt, bringt sie die monostabile Kippschaltung 258 in den instabilen Zustand und erzeugt den Taktimpuls D3. Dieser Impuls wird der Assoziationsleitung für das Argumentregister 204 zugeführt und damit die Suchoperation eingeleitet. Jede Zellenzcilc im Assoziativspeicherteil 22, Fig. IA, 6
ίο oder 7, die kein Code wort speichert, welches mit dem Argument im Register 204 übereinstimmt, erzeugt ein Ungleichheiisignal auf der entsprechenden Leitung 90 in Fig. 12. Der zugehörige Übereinstimmungsanzeiger 86 wird daraufhin in den 0-Zustand rückgestellt.
»5 Das übereinstimmende Codewort, falls ein solches vorhanden ist, wird in der Zellenzeile gespeichert, dessen Übereinstimmungsanzeiger 86 im 1-Zustand bleibt.
Zu jedem in Fig.. 12 gezeigten Übereinstimmungs-
*o anzeiger gehört ein UND-Glied 260, dessen einer Eingang mit dem Ü-Ausgang des zugehörigen Ubereinstimmungsanzeigers verbunden ist. Wenn der Übereinstimmungsanzeiger in den 0-Zustand rückgesetzt wurde, wird dadurch das entsprechende UND-
»5 Glied 260 teilweise vorbereitet. Die möglichen Auswirkungen dieses Vorganges werden jetzt beschrieben.
Wenn die monostable Kippschaltung 258 in Fi g. 5 in den stabilen Zustand zurückkehrt, bringt sie die monostabile Kippschaltung 262 in den stabilen Zustand und erzeugt den Taktimpuls DA. Dieser Impuls wird der in den Fig. IA und 12 gezeigten Leseleitung 98 der Assoziativspeichersteuerschaltungen 80 zugeführt. Für jede Zeile von Speicherzellen im Assoziativspeicher 20 befindet sich entweder die eine oder die andere der beiden UND-Schaltungen 100 und 260, die dieser Zeile zugeordnet sind, im leitenden Zustand, abhängig von dem Zustand des zugehörigen Übereinstimmungsan?eigers 86. Wenn der Übereinstimmungsanzciger 86 im !-Zustand ist, wird die durch die von der Lcseleitung 98, das zugehörige UND-Glied 100 und die entsprechende Leseleitung 102 gebildete geschlossene Schaltung vervollständigt. Gleichzeitig wird der Taktimpuls DA der in Fig. IA dargestellten Torschaltung 264 zugeführt und dadurch das dem übereinstimmenden Codewon entsprechende decodiertc Wort aus dem Speicherteil 24 in das Decodier-Datenregister 206 ausgelesen. Das Datenregister 206 enthält also jetzt das decodierte Wort, welches dem Codewort im Argumentregister 204 entspricht.
Wie bereits gesagt wurde, ist nicht sichergestellt, daß das im Register 204 gespeicherte Argument mit einem der im Teil 22 gespeicherten Codewörter übereinstimmt. Wenn ein übereinstimmendes Codewon fehlt, wird das durch die Rückstellung aller in Fi g. I^ gezeigten Übercinstirnmungsanzeiger 86 in den 0-Zu stand angezeigt und dadurch alle UND-Glieder 26( durchgeschaltet. Unter diesen Umständen wird ein« Serienschaltung von der Leseleitung 98 über all« UND-Glieder 260 zu der die Nichtübereinstimmunj anzeigenden Leitung 266 hergestellt. Sobald die Lei tung 266 erregt wird, wird ein Pseudowort (Fig. ( oder 7) aus dem Speicherteil 24 in das in Fig. 1 / gezeigte Datenregister 206 ausgelesen. Im vorliegen den Beispiel soll dieses Pseudowort lauter Nullen ent halten, es kann jedoch auch ein beliebiges Bitmuste enthalten, welches keine Storunc des Systems verur
26
sacht.
Das decodierte Wort steht jetzt im Datenregister 206. Die Länge des decodierten Wortes wird durch den laufenden Wert im Längenzähler 34 angegeben. Jetzt müssen aus dem Datenregister 206 so viele Bits ausgelesen werden, wie durch den Zählerstand des Längenzählers 34 angegeben werden. Dementsprechend muß eine angemessene Anzahl neuer Bits aus dem codierten Bitstrom in das Eingangsregister 200 in F i g. 1 B eingegeben werden. Das Ausgeben der Bits aus dem Datenregister 206 und das Eingeben von Bits in das Eingangsregister 200 erfolgen so, dab für je ο Bits, die aus dem Register 206 ausgelesen werden, N Bits in das Eingangsregister 200 eingelesen werden. Dieses Verhältnis von Ausgabe- zu Eingabebits wird aufrechterhalten, bis das decodierte Wort vollständig aus dem Register 206 ausgelesen wurde. Dieses Verhältnis wird wiedergegeben durch die Beziehung zwischen dem laufenden Zählerstand des Ausgabebitzählers 36 zum laufenden Zählerstand des Eingabebitzählers 38, Fig.IB.
Aus Fig. 5 ist zu ersehen, daß bei Rückkehr der monostabilen Kippschaltung 262 in den stabilen Zustand ein Impuls über die entsprechenden ODER-Glieder 268, 270 bzw. 272 den monostabilen Kippschaltungen 274 und 276 zugeleitet und dadurch die Taktimpulse DS bzw. D8 erzeugt werden. Dadurch werden zwei Teil-Schrittfolgen eingeleitet, die aus den Schritten DSbis DlinFig. 3 bzw. D8bis DlObestehen und getrennt betrachtet werden.
Der Taktimpuls DS wird der in Fig. IA gezeigten Torschaltung 278 zugeführt und bewirkt das Ausgeben des ersten Bits des im Register 206 gespeicherten decodierten Wortes als Teil des decodierten Bitstromes. Wenn die in Fig. 5 gezeigte monostabile Kippschaltung 274 in den stabilen Zustand zurückkehrt, bringt sie die monostabile Kippschaltung 280 in den instabilen Zustand und erzeugt einen Taktimpuls Db. wodurch 3 Vorgänge ausgelöst werden. Zuerst erregt der Taktimpuls D6 eine Schiebeeinrichtung, die den Inhalt des Datenregisters 206 um ein Bit nach links verschiebt. Dann bewirkt der Taktimpuls, daß der Zählerstand des in Fig. IB gezeigten Ausgabebitzählers 36 und als drittes, daß der Zählerstand des Längenzählers34.beide in Fig. 1 B gezeigt, um 1 vermindert wird.
Wenn die in Fig. 5 gezeigte monostabile Kippschaltung 280 in den stabilen Zustand zurückkehrt, bringt sie die monostabile Kippschaltung 282 in den instabilen Zustand und erzeugt den Taktimpuls Dl. Dieser wird der in Fig. IB gezeigten Torschaltung 284 zugeführt, die den Ausgang des zum Ausgangsbitzähler 36 gehörenden Umsetzers 146 abfragt. Wenn der Zählerstand des Ausgabebitzählers gegenwärtig von 0 verschieden ist. gelangt das Signal auf der Ausgangsleitung 150 über die Torschaltung 284, eine in den Fig. IB und 5 gezeigten Leitung 286 und das ODER-Glied 270 zur monostabilen Kippschaltung 274. welche dadurch in den instabilen Zustand gelangt. Dadurch wird erneut die Reihenfolge der in Fig. 2 gezeigten Schritte 1)5 bis Dl eingeleitet. Dieser Zyklus wird wiederholt, bis der Zählerstand des Ausgabcbitzählcrs Null beträgt. Ist das der Fall, dann verursacht die nächste Erzeugung des Taktimpulses Dl einen Stromfluß von eier O-Ausgangslcitung 148 des Umsetzers 146 über die Torschaltung 284, die Leitung 288 und das ODER-Glied 290 /u einem der Eingänge de*. UND-Gliedes 292 in Fi e. I H Dicsci Vorgang bleibt jedoch ohne Wirkung, wenn der Zählerstand des Eingabebitzählers 38 noch nicht Null beträgt.
Wenn die monostabile Kippschaltung 276 in den instabilen Zustand gelangt, erzeugt sie den Taktimpuls D8, wie aus den Fig 2 und 5 zu ersehen ist. Dadurch wird die Schiebeeinrichtung für das Eingangsregisier 200in Fig. IB erregt und der Inhalt dieses Registers um 1 Bit nach links verschoben. Wenn die monostabile Kippschaltung 276 in den stabilen Zustand zurückkehrt, bringt sie die monostabile Kippschaltung 294 in den instabilen Zustand und erzeugt den Taktimpuls D9. Dieser Impuls wird einer in Fig. IB gezeigten Torschaltung 296 zugeführt und dadurch ein Bit aus
dem codierten Bitstrom in die niedrigste Stelle des Eingangsregisters 200 gebracht. Gleichzeitig wird der Taktimpuls D9 an die Dekrementiereinrichtung für den Eingabebitzähler 38 angelegt und dessen Zählerstand um 1 herabgesetzt.
Wenn die monostabile Kippschaltung 294 in den stabilen Zustand zurückkehrt, bringt sie die monostabile Kippschaltung 298 in den instabilen Zustand, die einen Taktimpuls DlO erzeugt und den Zählerstand des Eingabebitzählers 38 prüft. Wen N Informations-
a5 bits noch nicht in das Eingangsregister 200 eingegeben wurden, hat der EingLbebitzähler noch nicht die Stellung 0 erreicht. Daher wird die Ausgabeleitung 124 erregt und wenn der Taktimpuls DlO an die in Fig. IB gezeigte Torschaltung 300 angelegt wird.
wird das Signal auf der Leitung 124 über die Torschaltung 300, die Leitung 302. Fig. IB und 5, sowie das ODER-Glied 272 der monostabilen Kippschaltung zugeführt, die dadurch wieder in den instabilen Zustand gelangt. Dadurch wird erneut die Reihen-
folge der in F i g. 2 gezeigten Schritte D8 bis DlO eingeleitet und dieser Schrittzyklus wird wiederholt, bis der Eingabebitzähler die Stellung 0 erreicht hat. Wenn diese Bedingung erfüllt ist. sind Λ' Informationsbits in das Eingaberegister 200 eingegeben worden und
entsprechen rr Informationsbits, die aus dem Datenregister 206 ausgelesen worden sind.
Wenn der Taktimpuls DlO an die in Fig. IB gezeigte Torschaltung 300 zu einem Zeitpunkt angelegt wird, an welchem der Zählerstand des Eingabebitzäh-
lers 0 ist. so wird das Signal auf der Leitung 126 über die Torschaltung 300, Leitung 304 und das ODER-Glied 290 dem UND-Glied 292 zugeführt. Zu diesem Zeitpunkt sind die Ausgabebitzählerleitung 150 und die Eingabebitzählerlcitung 126 erregt und zeigen da-
mit an, daß beide Bitzähler auf 0 stehen. Das UND-Glied 292 schaltet daher durch und erregt die Leitung 306indenFig. 1 B und 5. die zur monostabilen Kippschaltung 308 führt. Die monostabile Kippschaltung kommt daher in den instabilen Zustand .;nd erzeugt
den Taktimpuls DIl zur Prüfung des Zählerstandes des Längenzähler 34 in Fig. 1 B.
Wenn der Längenzähler noch nicht auf 0 steht, bedeutet das. daß das Auslesen des decodierten Wortes noch nicht abgeschlossen ist. Somit muß ein weiterer
Satz von « Bits aus dem Datenregister 206 aus- und ein entsprechender Salz von V BiK in das Eingaberegister 200 eingelcscn werden. Wenn also der Taktimpuls DIl an die To'schaltung 310 in Fig. 1 H zu einem Zeitpunkt angelegt wird/an wekhem\iie Lei-
lung 66 des Längen/iihlei-Umset/crs 62 erregt istdann erhält die in Fig. 5 gezeigte irh-nostahile Kipp schaltung 314 über dij Torschaltung 310 und die Leitung 312 einen Impuls, der sie in den instabilen Yu-
and bi rzeugt. .ah I N i ieder ir sgeben. Die Ri erholt, en Wer ung des -eich em •ägt, ver ing i0und< ang318 elangt u ine Prü >b das U st
Aus Γ Datenrej Darstellt teilung) IcIt es sit en EDI :odiertei :ann jed ,atztabel ;ung kar lern, dal η das D; vünschtc lahmen EDD-D; icheinlic! ichtig in iteht dar mder au nid danr iiese Za Im vo! ;in EDU EDD-Dt V on der. jann en 1 -Eingan Flipflop ι Aird dies Forschali Beenden der Takt ;chaltunt tunu Wenn festgeste arzeugt ν seitc des tune das"ODI tung tu ng sie einer ein nein, nächsten richtig ir rc η wird wurde. Fig. die untei
ih- itand bringt und dadurch den Taktimpuls D12 '"- srzeugt. Durch den Impuls D12 wird wieder die Zahl N in den Eingabebitzähler 38 und die Zahl a en wieder in den Ausgabebitzähler 36 der Fig. IB einuls legeben.
■eh Die Reihenfolge der Schritte D5 bis D12 wird wieter ierholt, bis der Zählerstand des Längenzählers auf ;rs Jen Wert 0 heruntergezählt worden ist. Die Erzeuile »ung des Taktimpulses DIi zu einem Zeitpunkt, an k- Reichem der Zählerstand des Längenzählers 0 be-94 ciagt, veranlaßt, daß ein Signal auf der O-Ausgangsleiils t|ing 64 des Längenzählers 34 über eine Torschaltung en |lOunddie Leitung 316 der monostabilen Kippschalus fting 318 zugeleitet wird, die in den instabilen Zustand es gelangt und dadurch den Taktimpuls £>13 erzeugt und er eine Prüfung einleitet, mit welcher festgestellt wird, ür ob das letzte Wort der Nachricht decodiert worden r- isi.
Aus Fig. IA ist zu ersehen, daß zum Decodier-Mi Datenregister 206 eine Einheit 320 gehört, die die a- Darstellung des Endes des Datensatzes (EDD-Darie stellung) im Datenregister 206 feststellt. Hierbei hanid delt es sich um das decodierte Äquivalent der codicrs- ten EDD-Darstellung, die die Übertragung der :n codierten Daten beendet. Diese EDD-Darstellung 1- kann jedes der decodierten Wörter in der Codeum-.4 siitztabellc bilden (Fig. 6 oder 7). Eine Fehlerbedinn gung kann die EDD-Darstellung natürlich so verän- i. dorn, daß sie als solche nicht erkannt wird, wenn sie I- Γη das Datenregister 206 eingelesen wird. Diese uneris W linschte Bedingung kann durch verschiedene Maßg nahmen verhindert werden. Man kann z. B. mehrere η EDD-Darstellungen übertragen, wobei die Wahrisi heinlichkeit besteht, daß mindestens eine von ihnen richtig interpretiert wird. Eine andere Alternative bes s^cht darin, die Pseudowörter zu zählen, die nacheinn ander aus dem Datenregister 206 ausgelesen werden s und dann die Decodieroperationen zu beenden, wenn ] diese Zahl einen vorgegebenen Wert überschreitet. Im vorliegenden Beispiel wird angenommen, daß ι :i EDD-Code richtig interpretiert und durch den 1 DD-Detektor 320 in Fig. IA festgestellt wurde. [ \ on der Ausgangsleitung 322 des Detektors 320 läuft dann ein Signal über das ODER-Glied 184 zum 1 -Eingang des Endc-Flipflop 44 und bringt dieses Mipflop in den 1-Zustand. Unter diesen Umständen ι wird diesem ein Signal auf der Leitung 188 über die ! Torschaltung 324 einer geeigneten Einrichtung zum Beenden der Decodieroperationen zugeleitet, wenn der Taktimpuls D13 durch die monostabile Kippschaltung 318 in Fig. 5 erzeugt und an die Torschaltung 324 in Fig. IA angelegt wird.
Wenn der EDD-Code noch nicht zu dem Zeitpunkt festgestellt wurde, an welchem der Taktimpuls D13 erzeugt wird, gelangt ein Signal von der 0-Ausgangsscitc des Endc-Flipflop 44 in Fig. IA über die Leitung 186. die Torschaltung 324, die Leitung 326 und das ODER-Glied 250 zur monostabilcn Kippschaltung 252 in Fig. 5. Wenn die nionostahile Kippschaltung 252 in den instabilen Zustand gelangt, erzeugt sie einen neuen Taktimpuls Dl und leitet dadurch ein neues Dccodierverfahrcn zur Decodierung des nächsten Codewortes ein. welches jetzt in/wischen richtig im Iiingangsregistcr 200 steht. Dieses Verfahi en wird wiederholt, bis das letzte Codewort decodierl wurde.
Fig. 10 zeigt als Beispiel eine Decodieropciation. die unter erschwerten Bedingungen ausgeführt wurde.
Der (1,8) Code und die (1,8) Rahmen-Schaltung in Fig. 8 werden für dieses Beispiel benutzt. Wie im oberen Tei der Fig. 10 gezeigt ist, sind drei Fehler beim Erkennen der Bits aufgetreten. Der erste Fehler führt zur fälschlichen Interpretation eines sechs Bit großen Codewortes als zwei drei Bit große Codewörter. Die Synchronisation wird jedoch bei der zweiten Rahmen-Entscheidung wiederhergestellt. Sie geht wieder verloren auf Grund von zwei Fehlern, die die
ίο falsche Interpretation zweier drei Bit großer Codewörter als ein sechs Bit großes Codewort veranlassen. Die Synchronisation wird wiedergewonnen mit der dritten Rahmen-Entscheidung. Die durch das Eingangsregister durchgeführten Eingabe- und Schiebeoperationen sind tabellarisch im unteren Teil der Fig. K) dargestellt. Es wird angenommen, daß im Intervall 7Odas Eingangsregister lauter Nullen enthält. Die Rahmen-Schaltung (Fig. 8) interpretiert diese Stellung als ein neun Bit großes Codewort, um die ersten neun Bits der echten Codenachricht in das Eingangsregister zu bringen (Intervall T9). Es folgen dann die Rahmen-Entscheidungen, die den Bitstrom in Codewörter der Längen 3, 3, ft, 6 usw. aufteilen. Fig. 10 zeigt, daß die durch die Einheit 202 der
»5 Fig. IB und den Assoziativspeicher 20 der Fig. IA ausgeführten Decodierfunktionen während der Periode ausgesetzt werden, während der jeder neue Rahmen in die richtige Ausrichtung relativ zum Rahmenbezugspunkt gebracht wird, bevor er decodiert wird. Dadurch braucht das Bitmuster des neuen Rahmenswährend seinem schrittweisen Aufbau im Schieberegister 200 nicht immer wieder geprüft zu werden, wodurch wertvolle Zeit gespart wird. Die Rahmen-Entscheidung wird nur einmal pro Rahmen vorgenomrnen am Anfang der Decodieropcration. ohne daß diese dadurch irgendwie verzögert wird.
Fig. 11 zeigt eine Decodieroperation fur ein angenommenes Beispiel im (2,7) Code (Fig. 7 und 9). Durch zwei Fehler bei der Biterkennung wird tine Bitfolge, die nacheinander einen vier Bit-Code, einen sechs Bit-Code und einen acht Bit-Code enthält, in Rahmen von einem acht Bit-Code, einem folgenden sechs Bit-Code und wiederum einem vier Bit-Code eingeteilt. Nach der dritten Rahmen-Entscheidung ist die Synchronisation wiederhergestellt.
Die obigen Beispiele zeigen die Schnelligkeit, mit der die Wiedergewinnung der Synchronisation durch das vorliegende System erfolgt, auch unter Bedingungen, die sonst ungewöhnlich schwere Rahmen-Probleme aufwerfen. Diese Lösung ergibt sich aus dei Verwendung von Codes mit begrenzter Lauflänge ir dem hier beschriebenen eindeutigen Format mit ver änderlicher Länge.
Die Auswahl der Bitstcllen des Eingangsregister!
200, Fig. ti und 9. an denen die logischen UND- unc ODER-Prüfungcn durch die Einheit 202 vorgenommen werden, hängt ab von den im verwendeten Code system benutzten Wortende-Bitmustern. Die Festle gung dieser Prüfpunkte kann zumindest für den hie betrachteten (1,8) Code und den (2.7) Code folgen dermaßen verallgemeinert werden. Wenn Z d'\< Höchstzahl aufeinanderfolgender Nullen und V dii Mindestzahl aufeinanderfolgender Nullen ist. auf di ein Codewort im gegebenen Codesystem enden kanr wenn weiterhin Λ' die kleinste ganze Z^hI ist. ehe bt Division durch eine andere ganze Zahl (α) das Vei haltnis angibt, in welchem die Anzahl codierter Bit /ur Anzahl der Originalhits im jeweils verwendete
Code steht, wenn weiterhin eine Gruppe von Bitspei-Lherstellen im Eingangsregister 200 so definiert ist, daß jede Gruppe mit der St ;lle beginnt, deren Zahl N + i + (/-1) (Z- Y) ist und mit der Stelle endet, deren Zahl Z plus der besagten Anfangszahl ist, wobei »i« ein Glied eines Satzes von ganzen Zahlen einschließlich 1 und jeder höheren ganzen Zahl ist, deren Wert eine Anfangsstelle definiert, deren Zahl nicht den Wert W übersteigt (die Höchstlänge eines Codewortes im betrachteten Codesystem), dann ist für jede so definierte Gruppe eine UND-Prüfung festzulegen, deren Eingangssignale die entsprechenden Inversionen der in den V-niederwertigsten Stellen der entsprechenden Gruppe gespeicherten Bits zusammen mit dem Ergebnis der ODER-Verknüpfung der verbleibenden Bits innerhalb dieser Gruppe umfassen.
Wendet man die so festgelegte Regel auf die Einheit 202 für den (1,8) Code, Fig. 8 und 6, an, so ist zunächst festzustellen, daß die Höchstzahl Z der Endnullen in einem codierten Wort 3 beträgt und die Mindestzahl von Endnuilen 1. In diesem Codesystem ist das Verhältnis Ni a = 3:2; somit ist N = 3. Wenn in dem Ausdruck N + / + (/-1) (Z- Y) i = 1 ist, so ergibt sich als Startstelle für die erste Gruppe die Stelle Nummer 4. Die Endstelle dieser Gruppe ist 4+Z oder 7. Die Stellen 4 bis 7 des Eingangsregisters 200 in Fi g. 8 bilden also die erste Gruppe von Prüfsteilen. Die untersten Y Stellen dieser Gruppe (in diesem Fall die Stelle 4, da V = 1 ist) liefern die invertierten Eingangssignale für das UND-Glied 214. Die übrigen Stellen (Nummer 5, 6 und 7) dieser Gruppe liefern die ODER-verknüpften Eingangssignale für das UND-Glied 214. Ein Erfüllungssignal wird auf der Leitung B erzeugt, wenn diese UND-Prüfbedingu.ig durch eine 0 in Stelle 4 und eine 1 in mindestens einer der drei Stellen 5, 6 und 7 erfüllt ist.
Setzt man in dem Ausdruck N + i + (i— 1) (Z- V) für ι die Zahl 2 ein, so ist die zweite Gruppe von Prüfstellen im Register 200 definiert als die Gruppe, die mit der Stelle 7 beginnt und in Stelle 10 endet. Die Stelle 7 ist beiden Gruppen gemeinsam, in der zweiten Gruppe liefert sie jedoch das invertierte Bitsignal für das UND-Glied 210. Die Stellen 8. 9 und 10 liefern ODER-verknüpfte Bitsignale für das UND-Glied 210. Die Erfüllung dieser UND-Prüibedingung erzeugt ein Erfüllungssignal auf der Leitung A.
Im Falle des in den Fig. 9 und 7 gezeigten (2,7) Codes .-,ind die verschiedenen Parameter N — 2, Z ~- 3 und V = 2. Es ergeben sich drei entsprechende Gruppen von Prüfstellen, Stellen 3 bis 6, 5 bis 8 und 7 bis 10, deren Anfangsstellen dadurch definiert sind, daß man i nacheinander die Werte 1, 2 und 3 in dem Ausdruck « + / + (/- i) (Z- Y) einnehmen läßt. Ihre Endstellen sind definiert durch die Addition von Z = 3 zu jeder Startstelle. Die untersten V (oder 2) Stellen einer jeden Gruppe liefern im einzelnen invertierte Bitsignale an die entsprechenden UND-Glieder 228,236oder 240 in Fi g. 9, während die ODER-verknüpften Bitsignale von den übrigen Stellen der Gruppe die übrigen Eingänge zu dem jeweiligen UND-Glied liefern. Erfüllungssignale werden auf den Leitungen A, B und C erzeugt, wenn die entsprechenden UND-Prüfbedingungen erfüllt sind.
ίο Die Art der Umwandlung dieser Erfüllungssignale in Rahmen-Entscheidungen wurde oben erklärt und geht außerdem aus den in F i g. 8 und 9 gezeigten Rahmen-Entscheidungstabeilen hervor. Ahnliche Rahmen-Prüfungen können für andere Codes mit be-
grenzter Lauflänge entworfen werden, die vorgegebenen Wortendebeschränkungen nach dem Erfindungsgedanken entsprechen.
Zustandsabhängige Codierung und Decodierung
ao Der in den Fig. 6 bzw. 7 gezeigte (1.8) Code und der {2 J) Code ist zustandsunabhängig. d. h.. daß jedes der codierten Wörter in diesen Systemen neben irgendein anderes Wort desselben Systems gesetzt werden kann, ohne daß die (d, k) Lauflängenhegren-
»5 zungen verletzt werden. Bei anderen Codesystemen mit begrenzter Lauflänge, die für die vorliegende Erfindung auch ausgewählt werden können, hangt die Decodierung und/oder Codierung eines gegebenen Wortes vom Zustand des vorhergehenden Codewortes ab, damit die gewählten (d; /t)-Beschrankungen nicht verletzt werden. Derartige Codesysteme sind in dem obenerwähnten Artikel von P. A. Franaszek beschrieben.
Zustandsabhängige Codier- und Decodiei opera· lionen können unter Steuerung der Zustands-Wahlschaltungen 350 und 352 in Fig. 13 ausgeführt werden. Diese Schaltungen arbeiten ähnlich wie die Einheit 202 in dem in den Fig. 1 A bis 12 gezeigten Ausführungsbeispiel. Bei Verwendung eines zu· standsabhängigen Codesystems können separate Codier-Decodiereinrichtungen, wie die Assoziativspeicher 20/4 und 20 ß in Fig. 13, benutzt werden. Bei der Codierung eines jeden Wortes wird sein Endzustand durch die Schaltung 350 festgestellt, um zu bestimmen, welcher der beiden Assoziativspeicher 20.4 und 20 B für die nächste Codieroperation zu wählen ist. Wenn die Decodierfunktionen auch zustandsabhängig sind, kann zum Wählen des Assoziativspeichers eine geeignete Schaltung 352 vorgesehen werden, die dann bei der Decodierung entsprechend dem Endzustand des vorher decodierten Wortes benutzt wird. Die Zustandsabhängigkeit bei der Codierung bedeutet nicht unbedingt eine zustandsabhängige Decodierung, wenn eine geeignete Redundanz vornanden ist.
Hierzu 13 Blatt Zeichnungen

Claims (6)

Patentansprüche:
1. Schaltungsanordnung zur Umsetzung digitaler Daten, die aus originalen Bitfolgen unterschiedlicher Länge so codiert werden, daß jedes gültige Codewort eine bestimmte, das Wortende kennzeichnende Bitfolge besitzt, die aus mehreren solcher Folgen ausgewählt ist, und daß die Länge der Codewörter in einem festen Verhältnis zur Länge der originalen Bitfolgen steht, dadurch gekennzeichnet,
a) daß ein Assoziativspeicher (20) vorgesehen ist, von dessen in Zeilen angeordneten Speicherelementen zumindest einige auch einen »5 dritten, neutralen Zustand einnehmen können, daß der Assoziativspeicher in drei Teile (22,24,26) unterteilt ist, von denen der erste Teil (22), in dem die Codewörter unterschiedlicher Länge gespeichert sind, minde- stens so viele Speicherelemente pro Zeile enthält als das längste Codewort unterschiedlicher Länge Bits aufweist, daß der zweite Teil (24) des Assoziativspeichers, in dem die ursprünglichen Bitfolgen gespeichert »5 sind, pro 2'eile so viele Speicherelemente enthält als die längste der originalen Bitfolgen Bits aufweist, daß die in diesem Teil des Assoziativspeichers zur Speicherung von Bits nicht benötigten Speicherelemente sich in ihrem neutralen Zustand befinden, daß im dritten Teil (26) des Assoziativspeichers in jeder Zeile eine Längenangabe gespeichert ist, die die Anzahl der Bits der in der gleichen Zeile gespeicherten Bits der ursprünglichen Bitfolge bezeichnet,
b) daß ein als Schieberegister ausgebildetes Argumentregister (30) vorgesehen ist, dem die Bits eines originalen Bitstromes, der eine Reihe von Elitfolgen unterschiedlicher Länge enthält, seriell zugeführt werden und mit den im zweiten Speicherteil gespeicherten Bits verglichen werden,
c) daß für ein aus dem ersten Teil des Assoziativspeichers aus der gleichen Zeile, die die übereinstimmende Bitfolge enthält, ausgelesenes Wort ein als Schieberegister ausgebildetes Datenregister (32) vorgesehen ist, aus dem die parallel in dieses Register übertragenen Bits seriell ausgeschoben werden.
d) daß eine Steuerschaltung (34, 36, 38) vorgesehen ist, die auf Grund der im dritten Speicherteil gespeicherten Längenangabe den Ausgabevorgang aus dem Datenregister und die Eingabe in das Argumentregister so steuert, daß die Anzahl der seriell aus dem Datenregister ausgelesenen Bits der Längenangabe, multipliziert mit dem konstanten Verhältnis von codierten zu originalen Bits, entspricht und die Anzahl der seriell in das Argumentregister vor dem nachfolgenden Vergleich eingegebenen Bits der Längenangabe entspricht.
2. Schaltungsanordnung zur Rück-Umsetzung von Codewörtern unterschiedlicher Länge, von denen jedes eine bestimmte, das Wortende kennzeichnende Bitfolge besitzt, die aus mehreren soleher Folgen ausgewählt ist, in originale Bitfolgen, deren Länge in einem festen Verhältnis zur Länge der Codewörter steht, dadurch gekennzeichnet.
a) daß ein Assoziativspeicher (20) vorgesehen ist, von dessen in Zeilen angeordneten Speicherelementen zumindest einige auch einen dritten, neutralen Zustand einnehmen können, daß der Assoziativspeicher in zwei Teile (22, 24) unterteilt ist, von denen der erste Teil (22) mindestens so viele Speicherelemente pro Zeile enthält als das längste Codewort unterschiedlicher Länge Bits aufweist, daß die in diesem Teil des Assoziativspeichers zur Speicherung von Bits nicht benötigten Speicherelemente sich in ihrem neutralen Zustand befinden., daß der zweite Teil (24) des Assoziativspeichers pro Zeile so viele Speicherelemente enthält als die längste der decodierten Bitfolgen Bits aufweist.
b) daß ein als Schieberegister ausgebildetes Eingangsregister (200) vorgesehen ist, dessen Stufen fortlaufend numeriert sind und das einen sogenannten Rahmenbezugspunkt am Ende einer solchen Stufenfolge aufweist,
c) daß eine Eingabevorrichtung (296) vorgesehen ist zur seriellen Eingabe der Bits eines die Codewörter bildenden Bitstromes,
d) daß eine Schaltung (202) zur Entscheidung über die Rahmengröße vorgesehen ist, die das Vorliegen oder Fehlen von das Wortende kennzeichnenden Bitfolgen in speziell bezeichneten Gruppen von Bitstellen feststellt und eine Längenangabe entsprechend den abgefühlten Bitfolgen erzeugt, die einen bestimmten Satz von dem Rahmenbezugspunkt voraufgehenden Stellen des Eingangsregisters abgrenzt, in dem das gerade zu decodierende Bitmuster als gespeichert angenommen wird,
e) daß eine Decodierschaltungzum Decodieren des Bitmusters vorgesehen ist,
f) daß ein als Schieberegister ausgebildetes Datenregister (206) vorgesehen ist zur Aufnahme eines aus der Zeile im zweiten Teil des Assoziativspeichers ausgelesenen Bitmusters, die das übereinstimmende Codewort enthält oder zur Aufnahme eines speziellen Musters, wenn kein übereinstimmendes Codewort gefunden wird, und daß
g) eine Ausgabevorrichtung vorgesehen ist zur seriellen Ausgabe so vieler der Bits im Datenregister als die laufende Längenangabe angibt.
3. Schaltungsanordnung nach Anspruch 2, dadurch gekennzeichnet, daß eine Steuerschaltung (220.34) vorgesehen ist, die auf die von der Schaltung (202) zur Entscheidung über die Rahmengröße erzeugte laufende Längenangabe anspricht zum Bestimmen der Anzahl der Biteingabe- und Verschiebeintervalle, die während der Betätigung der Eingabevorrichtung zwischen der laufenden Operation zur Decodiereinrichtung und deren nächster Operation verstreichen sollen.
4. Schaltungsanordnung nach den Ansprüchen 2 und 3, dadurch gekennzeichnet, daß die Schaltung (202) zur Entscheidung über die Rahmengröße an die Ausgänge mehrerer Stufengruppen des Eingangsregisters (200), dessen Stufen
fv ei u u d ei d. lü
el S1 IL C ei
fi G B B D si. d; Iu
ordnu nalen ter u umgel Es: umdit platte beiten um di zuverl den k< genbe jede E benac trennt anzah rungci Übert der Si übcrsc »dk-b Erfind einricl rung ;
ilt
:n
ki
;i-
af-
:il
te-
en-
ur
aie
ilnht
id
ng
uiic
h-P-
fortlaufend numeriert sind, so angeschlossen ist, daß für die Nummer der ersten Stufe einer Gruppe gilt N+ i+(i— I)(Z- Y) und die Nummer der letzten Stufe der Gruppe um den Wert Z größer ist als die der ersten Stufe, wobei N die kleinste ganze Zahl ist, die, geteilt durch eine andere ganze Zahl ein festes Verhältnis bildet, das gegeben ist durch die Länge eines Codewortes zur Lauge der originalen Bitfolge, Z und Y die Maximal- und Minimalwerte aufeinanderfolgender Bits sind, die einen vorgegebenen Binärwert (z. B. ü) aufweisen und das Ende eines gültigen Codewortes bilden und / ein Element einer Menge ganzer Zahlen ist, die die Zahl 1 und jede höhere Zahl umfaßt, die einen Wert hat, der eine Anfangsstufe bezeichnet, deren Nummer die maximal mögliche Codewortlänge nicht überschreitet.
5. Schaltungsanordnung nach den Ansprüchen 2 bis 4, dadurch gekennzeichnet, daß die Schaltung zur Entscheidung über die Rahmenlänge für jede der Stufengruppen ein UND-Glied (210, 214, 228, 236) enthält, dessen Eingängen einmal die Komplemente der in den V niedrigstelligen Stufen einer Gruppe abgefühlten Bits zugeführt werden, und zum anderen über ein ODER-Glied (212, 216, 230) die restlichen abgefühlten Bits einer Gruppe und das ein Erfüllungssignal (A, B, C) abgibt, wenn die Bedingungen Tür das Durchschalten erfüllt sind, und daß weitere boolesche Schaltungen (220, 242) vorgesehen sind, die das durch das Vorliegen oder Fehler des Erfüllungssignals gebildete Muster in eine Längenangabe umsetzen.
6. Schaltungsanordnung nach Anspruch 5, dadurch gekennzeichnet, daß die weiteren booleschen Schaltungen bei Fehlen und Erfüllungssignalen (A, B, C) der UND-Glieder ein die maximale Länge angebendes Signal erzeugen.
Die Erfindung bezieht sich auf eine Schaltungsanordnung zur Umsetzung digitaler Daten, die aus originalen Bitfolgen unterschiedlicher Länge in Codewörter unterschiedlicher Länge codiert werden und umgekehrt.
Es sind verschiedene Wege vorgeschlagen worden, um die Dichte zu erhöhen, mit der Daten auf Magnetplatten oder ähnlichen Speichermedien datenverarbeitender Systeme aufgezeichnet werden können oder um die Geschwindigkeit zu erhöhen, mit der Daten zuverlässig über vorhandene Kanäle übertragen werden können. Ein solches Verfahren stellt die lauflängenbegrenzte Codierung dar, die es erfordert, daß jede Eins in einer codierten Bitfolge von der nächsten benachbarten Eins durch eine Anzahl von Nullen getrennt sein muß, die zumindest gleich einer Mindestanzahl d ist, um die Freiheit von gegenseitigen Störungen der Symbole beim Aufzeichnen oder bei der Übertragung sicherzustellen, die aber aus Gründen der Selbsttaktierung eine maximale Anzahl k nicht überschreiten sollte. Solche Codes werden auch als »dk-begrenzte« Codes bezeichnet. Die vorliegende Erfindung ist insbesondere auf solche Datenunmsetzeinrichtungen gerichtet, in denen diese Art der Codienino angewandt wird.
Bekannte Systeme für lauflängenbegrenzte Codierung sind auf der Voraussetzung entworfen worden, daß die aufgezeichnete oder übertragene Information in Verarbeitungseinheiten oder »Wörter« fester Länge verarbeitet wird. Eine wirksame Codierung erfordert, daß diese Wörter fester Länge eine bestimmte Länge aufweisen, wie sie z. B. dac aus acht Bits bestehende Standardwort, das als »Byte« bezeichnet wird, besitzt, wogegen kürzere Wörter viel weniger wirksam
ίο codiert werden können. Auf der anderen Seite wächst die Kompliziertheit der Codier- und Decodiergeräte sehr stark (d. h. exponentiell) mit der Wortlänge. Als ein Aspekt der vorliegenden Erfindung wurde gefunden, daß die gewünschte wirksame Codierung ohne ungebührliche Komplizierung des Entwurfs der Codier- und Decodiergeräte erreicht werden kann, wenn die codierte Information in der Form von Codewörtern unterschiedlicher Länge an Stelle von Codewörtern fester Länge verarbeitet wird. Die maximale
ao Wortlänge, die erforderlich ist, um einen vorgegebenen Grad der Datendichte zu erreichen, ist bei einem System, das mit unterschiedlicher Wortlänge arbeitet, beträchtlich geringer als die Wortlänge, die in einem System benötigt wird, das mit fester Wortlänge arbei-
tet und die gleiche Datendichte aufweist, und auch die Codier-Decodiergeräte sind in einem System, das mit unterschiedlicher Wortlänge arbeitet, längst nicht so kompliziert wie das in einem System der Fall ist, das mit fester Wortlänge arbeitet.
Die Anwendung einer Codierung mit Wörtern unterschiedlicher Länge kann jedoch andere Probleme aufwerfen. Da es in einem solchen System keine feste »Rahmenlänge« oder Codewortlänge gibt, müssen besondere Maßnahmen ergriffen werden, um sicher-
zustellen, daß der codierte Bitstrom an den richtigen Stellen unterteilt oder »gerahmt« wird, um die darin enthaltenen Codewörter abzugrenzen. Ein zu diesem Zweck vorgeschlagenes bekanntes System erfordert die Verwendung besonderer Markierbits, von denen
eins als Vorsilbe jedem zu decodierenden Codewort unterschiedlicher Länge zugefügt wird, um den Beginn dieses Wortes mit Sicherheit zu markieren. Dieses Codewort mit seinem Vorsilbenbit wird dann bitseriell als Argument einem Schieberegister zugeführt,
und mit dem Eintreffen jedes neuen Bits wird eine Prüfung vorgenommen, um festzustellen, ob das Bitmuster, das sich hinter dem Markierbit aufgebaut hat, ais ein vollständiges Codewort mit Hilfe eines Tabellenlese-Verfahrens erkannt werden kann. Die.; bcdeutet aber, daß eine Decodieroperation mit jedem neuen Fragment des Argumentes, das schrittweise in dem Argumentregister aufgebaut wird, versucht werden muß, bis eine Übereinstimmung gefunden wird. Ein Decodierverfahren dieser Art ist verhältnismäßig langsam.
Ein weiterer Nachteil der Codierung mit unterschiedlicher Wortlänge, wie sie gegenwärtig praktiziert wird, ist ihre Empfindlichkeit gegenüber Rahmenproblcmen, die dann entstehen, wenn das Bitmustcr eines Codewortes unrichtig dargestellt wird, beispielsweise auf Grund einer fehlerhaften Biterkennung. Um diesem Problem zu begegnen, ist es üblich, sich auf die statistische Wahrscheinlichkeit zu verlassen, daß ein nditiges Wollende mit fortschreitender Decodierung wahrscheinlich gefunden wird, ohne daß sich der Rahmenfehler ungewöhnlich weit in die nachfolgenden Teile des Bitstroms fortpflanzt. Verfahren /ur Codierung mit unterschiedlicher
DE2227148A 1971-06-07 1972-06-03 Schaltungsanordnung zur Umsetzung digitaler Daten Expired DE2227148C3 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US15031771A 1971-06-07 1971-06-07

Publications (3)

Publication Number Publication Date
DE2227148A1 DE2227148A1 (de) 1973-01-04
DE2227148B2 DE2227148B2 (de) 1975-03-27
DE2227148C3 true DE2227148C3 (de) 1975-11-06

Family

ID=22534004

Family Applications (1)

Application Number Title Priority Date Filing Date
DE2227148A Expired DE2227148C3 (de) 1971-06-07 1972-06-03 Schaltungsanordnung zur Umsetzung digitaler Daten

Country Status (8)

Country Link
US (1) US3689899A (de)
JP (1) JPS5321257B1 (de)
BE (1) BE784541A (de)
CA (1) CA969670A (de)
DE (1) DE2227148C3 (de)
FR (1) FR2140408A1 (de)
GB (1) GB1336824A (de)
IT (1) IT950859B (de)

Families Citing this family (68)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3753228A (en) * 1971-12-29 1973-08-14 Westinghouse Air Brake Co Synchronizing arrangement for digital data transmission systems
US3835467A (en) * 1972-11-10 1974-09-10 Ibm Minimal redundancy decoding method and means
US3906485A (en) * 1973-06-13 1975-09-16 Ibm Data coding circuits for encoded waveform with constrained charge accumulation
US3860907A (en) * 1973-06-21 1975-01-14 Ibm Data resynchronization employing a plurality of decoders
US3852687A (en) * 1973-07-02 1974-12-03 Ibm High rate digital modulation/demodulation method
US3914586A (en) * 1973-10-25 1975-10-21 Gen Motors Corp Data compression method and apparatus
US3886522A (en) * 1974-02-28 1975-05-27 Burroughs Corp Vocabulary and error checking scheme for a character-serial digital data processor
NL7508096A (nl) * 1975-07-08 1977-01-11 Philips Nv Inrichting voor het overdragen van digitale infor- matie.
US5253244A (en) * 1980-07-16 1993-10-12 Discovision Associates System for recording digital information in a pulse-length modulation format
DE3028734A1 (de) * 1980-07-29 1982-03-04 Siemens AG, 1000 Berlin und 8000 München Verfahren zur umwandlung von positiven linear codierten digitalen signalen sowie deren zweierkomplement in nichtlinear codierte digitale signale gemaess einer der a-gesetz gehorchenden mehrfachsegmentkennlinie
US4398225A (en) * 1981-04-24 1983-08-09 Iomega Corporation Combined serializer encoder and decoder for data storage system
US4451819A (en) * 1981-06-22 1984-05-29 Memorex Corporation Method and apparatus for decoding binary data
US4544962A (en) * 1981-07-06 1985-10-01 Matsushita Electric Industrial Co., Ltd. Method and apparatus for processing binary data
US4413251A (en) * 1981-07-16 1983-11-01 International Business Machines Corporation Method and apparatus for generating a noiseless sliding block code for a (1,7) channel with rate 2/3
EP0071680B1 (de) * 1981-08-07 1988-10-26 International Business Machines Corporation Datenaufzeichnungs- oder Übertragungssystem unter Verwendung von Codierung mit begrenzter Lauflänge
WO1983001141A1 (en) * 1981-09-25 1983-03-31 FURUKAWA, Teruo; Encoding and decoding system for binary data
US4488142A (en) * 1981-12-31 1984-12-11 International Business Machines Corporation Apparatus for encoding unconstrained data onto a (1,7) format with rate 2/3
US4463344A (en) * 1981-12-31 1984-07-31 International Business Machines Corporation Method and apparatus for generating a noiseless sliding block code for a (2,7) channel with rate 1/2
NL8203575A (nl) * 1982-09-15 1984-04-02 Philips Nv Werkwijze voor het coderen van een stroom van databits, inrichting voor het uitvoeren van de werkwijze en inrichting voor het decoderen van een stroom databits.
US4484176A (en) * 1982-11-24 1984-11-20 Storage Technology Corporation Run length limited data encoder
US4567464A (en) * 1983-01-28 1986-01-28 International Business Machines Corporation Fixed rate constrained channel code generating and recovery method and means having spectral nulls for pilot signal insertion
US4530088A (en) * 1983-02-15 1985-07-16 Sperry Corporation Group coding system for serial data transmission
JPS59167165A (ja) * 1983-03-11 1984-09-20 Toshiba Corp 可変長符号化復号化方式
US4644545A (en) * 1983-05-16 1987-02-17 Data General Corporation Digital encoding and decoding apparatus
US4538189A (en) * 1984-02-06 1985-08-27 Storage Technology Corporation (1,8) Data encoder/decoder
DE3583819D1 (de) * 1984-05-21 1991-09-26 Matsushita Electric Ind Co Ltd Verfahren und vorrichtung zur erzeugung eines lauflaengenbegrenzten kodes.
DE3587535T2 (de) * 1984-10-01 1994-01-20 Matsushita Electric Ind Co Ltd Verfahren und Vorrichtung zur numerischen Datenkodierung.
US4609907A (en) * 1984-10-31 1986-09-02 International Business Machines Corporation Dual channel partial response system
JPH07118657B2 (ja) * 1985-04-15 1995-12-18 三菱電機株式会社 2進デ−タ符号化及び復号化方式
CA1255390A (en) * 1985-06-13 1989-06-06 Wilson W. Fok Rll (1,7) encoder with single state bit
US4675652A (en) * 1986-04-11 1987-06-23 Quantum Corporation Integrated encoder decoder for variable length, zero run length limited codes
JPS62298234A (ja) * 1986-06-13 1987-12-25 インタ−ナショナル ビジネス マシ−ンズ コ−ポレ−ション 非対称ランレングス制限コ−ド化方法
JPH0656958B2 (ja) * 1986-07-03 1994-07-27 キヤノン株式会社 情報デ−タ復元装置
US4833470A (en) * 1986-07-15 1989-05-23 Matsushita Electric Industrial Co., Ltd. Code conversion apparatus
DE3632682A1 (de) * 1986-09-26 1988-03-31 Philips Patentverwaltung Schaltungsanordnung zur umcodierung eines datensignales
US4928187A (en) * 1987-02-20 1990-05-22 Laserdrive Limited Method and apparatus for encoding and decoding binary data
US4873680A (en) * 1987-03-13 1989-10-10 Laserdrive Ltd. Apparatus and method for detecting and compensating for pit extension in an optical disk recording system
US4804959A (en) * 1987-11-10 1989-02-14 International Business Machines Corporation Method and apparatus using multiple codes to increase storage capacity
JP2713574B2 (ja) * 1988-03-26 1998-02-16 株式会社日立製作所 アドレスマーク発生方法および回路
US5016258A (en) * 1988-06-10 1991-05-14 Matsushita Electric Industrial Co., Ltd. Digital modulator and demodulator
FR2641434B1 (fr) * 1988-12-30 1991-03-15 Thomson Csf Dispositif de transmission d'informations utilisant un codage statistique
US5184125A (en) * 1989-06-28 1993-02-02 Digital Equipment Corporation Data encoding and demodulation system
DE69026904T2 (de) * 1989-10-31 1997-01-02 Sony Corp Schaltung zur digitalen Modulation
WO1991011058A1 (en) * 1990-01-12 1991-07-25 Research Corporation Technologies, Inc. Method and apparatus for providing maximum rate modulation or compression encoding and decoding
GB2242104B (en) * 1990-02-06 1994-04-13 Digital Equipment Int Method and apparatus for generating a frame check sequence
US5034741A (en) * 1990-03-22 1991-07-23 United Technologies Corporation Variable length bit patterns for data representation
US5099237A (en) * 1990-07-10 1992-03-24 Research Corporation Technologies, Inc. Method and apparatus for providing maximum rate modulation or compression encoding and decoding
US5392168A (en) * 1990-08-31 1995-02-21 Matsushita Electric Industrial Co., Ltd. Method of recording digital video and audio data
NL9002841A (nl) * 1990-12-21 1992-07-16 Philips Nv Werkwijze en inrichting voor het langs optische weg inschrijven, uitlezen, en wissen van een meervlaks registratiedrager, en registratiedrager geschikt voor deze werkwijze en inrichting.
JP3427392B2 (ja) * 1992-05-25 2003-07-14 ソニー株式会社 符号化方法
JP3428039B2 (ja) * 1992-06-30 2003-07-22 ソニー株式会社 同期信号検出器、同期信号検出方法及び復号化装置
US5347276A (en) * 1992-07-13 1994-09-13 Trw Inc. Serial binary pattern generator
US5461631A (en) * 1992-12-15 1995-10-24 International Business Machines Corporation Method for bit resynchronization of code-constrained sequences
US5424881A (en) * 1993-02-01 1995-06-13 Cirrus Logic, Inc. Synchronous read channel
JP3127655B2 (ja) * 1993-03-22 2001-01-29 ソニー株式会社 変調装置及び復調装置
JPH0730431A (ja) * 1993-04-02 1995-01-31 Toshiba Corp データ変復調方式および変復調装置
US5561656A (en) 1994-11-18 1996-10-01 International Business Machines Corporation Pulse width modulation optical disk drive with pulsed laser preheating between marks
US5808998A (en) * 1995-12-27 1998-09-15 Lucent Technologies Inc Bit error rate reduction by reducing the run length of same-state pixels in a halographic process
US5931968A (en) 1996-02-09 1999-08-03 Overland Data, Inc. Digital data recording channel
US6167550A (en) * 1996-02-09 2000-12-26 Overland Data, Inc. Write format for digital data storage
US6543024B2 (en) 1996-02-09 2003-04-01 Overland Storage, Inc. Write format for digital data storage
US6597526B1 (en) 1998-08-14 2003-07-22 Overland Storage, Inc. Magnetic tape drive apparatus including a variable rate encoder
US6665359B1 (en) 1999-10-28 2003-12-16 Stmicroelectronics, Inc. Digital data separator
US6574773B1 (en) * 2000-03-09 2003-06-03 Stephen A. Turk Cost-effective high-throughput enumerative ENDEC employing a plurality of segmented compare tables
US7290184B2 (en) * 2001-08-23 2007-10-30 Seagate Technology Llc Emulation system for evaluating digital data channel configurations
US7864471B2 (en) * 2008-07-24 2011-01-04 Seagate Technology Llc Converting timing errors into symbol errors to handle write mis-synchronization in bit-patterened media recording systems
CN113037300B (zh) * 2021-03-04 2023-05-23 中国能源建设集团广东省电力设计研究院有限公司 电力传感器在线监测数据压缩方法、解压方法及监测系统
CN115037419B (zh) * 2022-08-11 2023-01-31 德州鲲程电子科技有限公司 用于芯片测试过程中的不定长编码数据串行传输的方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3016527A (en) * 1958-09-04 1962-01-09 Bell Telephone Labor Inc Apparatus for utilizing variable length alphabetized codes
US3051940A (en) * 1958-09-04 1962-08-28 Bell Telephone Labor Inc Variable length code group circuits
US3208049A (en) * 1960-08-25 1965-09-21 Ibm Synchronous transmitter-receiver
BE656364A (de) * 1963-11-29
US3457562A (en) * 1964-06-22 1969-07-22 Massachusetts Inst Technology Error correcting sequential decoder
US3444522A (en) * 1965-09-24 1969-05-13 Martin Marietta Corp Error correcting decoder
US3456234A (en) * 1966-12-16 1969-07-15 Cambridge Thermionic Corp Electric clip connector
US3576947A (en) * 1969-01-16 1971-05-04 Us Navy Rapid frame synchronism of serial binary data
BE754349A (fr) * 1969-08-07 1971-01-18 Burroughs Corp Procede et appareil de cadrage et de conversion de numeration

Also Published As

Publication number Publication date
JPS5321257B1 (de) 1978-07-01
DE2227148B2 (de) 1975-03-27
CA969670A (en) 1975-06-17
DE2227148A1 (de) 1973-01-04
GB1336824A (en) 1973-11-14
IT950859B (it) 1973-06-20
BE784541A (fr) 1972-10-02
US3689899A (en) 1972-09-05
FR2140408A1 (de) 1973-01-19

Similar Documents

Publication Publication Date Title
DE2227148C3 (de) Schaltungsanordnung zur Umsetzung digitaler Daten
DE2513862C2 (de) Vorrichtung zum Decodieren von Codes minimaler Redundanz und variabler Länge
DE2364212C3 (de) Schaltungsanordnung zur Codierung von Binärziffern
DE2508706C2 (de) Schaltungsanordnung zur Codierung von Datenbitfolgen
DE2210044C2 (de) Verfahren zum Umsetzen von Codewörtern
DE2139731C2 (de) Anordnung zur Code-Umsetzung
DE2519381C3 (de)
DE2204766C2 (de) Codeumsetzer für Datenverarbeitungssysteme
DE2614916A1 (de) Konverter zur codeumwandlung
CH656760A5 (de) Verfahren und anordnung zur sicherstellung der start-synchronisation eines aus bit-impulsfolgen bestehenden telegramms innerhalb eines empfaengers.
DE1232374B (de) Zusammenschaltung einer Mehrzahl datenverarbeitender Maschinen
DE1449765B2 (de) Einrichtung zur Abfrage eines assoziativen Speichers
DE2821348A1 (de) Digitales dialogsystem
DE2153517A1 (de) Anordnung zur Codeumsetzung
DE1223414B (de) Schaltungsanordnung fuer Codeuebersetzer in Empfangseinrichtungen fuer Nachrichten in fehlerkorrigierendem Code
DE3148099A1 (de) Verfahren und anordnung zum erkennen einer digitalfolge
DE1964570B2 (de) Verfahren zum wiederauffinden gespeicherter informationen
DE2900586C2 (de) Anordnung zum Decodieren von Codewörtern variabler Länge
DE2047868A1 (de) Schaltung zur Korrektur von Einzel fehlern in den Wortern eines zyklischen (n, k) Codes
DE102014105218A1 (de) Suchvorrichtung mit Verwendung von endlichen Automaten für Teilworte
DE2355786A1 (de) Verfahren und anordnung zur decodierung von codes mit minimaler redundanz
DE2460757C2 (de) Einrichtung zur Auswahl der richtigen Form eines bei der maschinellen Zeichenerkennung verstümmtelten Wortes
DE2559258A1 (de) Verfahren zum zeilenausschliessen in druckwerken durch vergroessern der wortabstaende
DE2936801C2 (de) Steuereinrichtung zur Ausführung von Instruktionen
DE2259702A1 (de) Verfahren und schaltung zur codierung von zeichen variabler laenge mit minimaler redundanz unter verwendung bekannter binaerer codebaumstrukturen

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