DE2227148C3 - Schaltungsanordnung zur Umsetzung digitaler Daten - Google Patents
Schaltungsanordnung zur Umsetzung digitaler DatenInfo
- 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
Links
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/40—Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
- H03M7/4025—Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code constant length to or from Morse code conversion
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/10—Digital recording or reproducing
- G11B20/14—Digital recording or reproducing using self-clocking codes
- G11B20/1403—Digital recording or reproducing using self-clocking codes characterised by the use of two levels
- G11B20/1423—Code representation depending on subsequent bits, e.g. delay modulation, double density code, Miller code
- G11B20/1426—Code representation depending on subsequent bits, e.g. delay modulation, double density code, Miller code conversion to or from block codes or representations thereof
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/40—Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
- H03M7/42—Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code using table look-up for the coding or decoding process, e.g. using read-only memory
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. 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-
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
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.
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
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-
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.
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-
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
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
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.
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
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.
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
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
den
ist,
auf
den
rei-Dabits
nen
ein
ierder
sses
auf
den
rei-Dabits
nen
ein
ierder
sses
PP-hrt,
UU
UU
etzt
wei
■itig
EU
ster
ireitte
Dairczeijtig
beung
sleen-
wei
■itig
EU
ster
ireitte
Dairczeijtig
beung
sleen-
:rappikt-IA
nks
114
ngt
ibi-Das
ang
:reind
uncn-
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.
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-
ier-
>en.
nk-
\nde-
in
mit
Jen
eils
em
en-
mit
Jen
eils
em
en-
die
illt
illt
nis
νιο η
n-
;rt
uf
νιο η
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!
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·
aal·
Hip·
Ji
Ji
iac*
Φ
Φ
ßoc
is·
BH-It?
rH
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)
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
:n
ki
;i-
;i-
af-
:il
te-
en-
:il
te-
en-
ur
aie
aie
ilnht
id
ng
id
ng
uiic
h-P-
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
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)
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)
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 |
-
1971
- 1971-06-07 US US150317A patent/US3689899A/en not_active Expired - Lifetime
-
1972
- 1972-03-29 IT IT22532/72A patent/IT950859B/it active
- 1972-04-11 JP JP3580972A patent/JPS5321257B1/ja active Pending
- 1972-04-14 GB GB1725672A patent/GB1336824A/en not_active Expired
- 1972-05-24 FR FR7219228A patent/FR2140408A1/fr not_active Withdrawn
- 1972-06-03 DE DE2227148A patent/DE2227148C3/de not_active Expired
- 1972-06-05 CA CA143,830A patent/CA969670A/en not_active Expired
- 1972-06-07 BE BE784541A patent/BE784541A/xx unknown
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 |