DE2227148A1 - Verfahren zur verarbeitung digitaler daten - Google Patents
Verfahren zur verarbeitung digitaler datenInfo
- Publication number
- DE2227148A1 DE2227148A1 DE2227148A DE2227148A DE2227148A1 DE 2227148 A1 DE2227148 A1 DE 2227148A1 DE 2227148 A DE2227148 A DE 2227148A DE 2227148 A DE2227148 A DE 2227148A DE 2227148 A1 DE2227148 A1 DE 2227148A1
- Authority
- DE
- Germany
- Prior art keywords
- bit
- bits
- register
- word
- length
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- 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
Aktenzeichen der Anmelderin: YO 971 012
Die Erfindung bezieht sich auf ein Verfahren und eine Vorrichtung zur Verarbeitung digitaler Daten, die aus originalen Bitfolgen
unterschiedlicher Länge in Codewörter unterschiedlicher Länge codiert wurden.
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 sol-
209881/0622
2227H8
ehe Datenverarbeitungssysteme gerichtet, in denen diese Art der
Codierung angewandt wird.
Bekannte Systeme für lauflängenbegrenzte Codierung sind auf der Vorraussetzung entworfen worden, daß die aufgezeichnete oder übertragene
Information in Verarbextungseinheiten 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. das 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 anstelle von Codewörtern fester Länge verarbeitet wird. Die
maximale 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 arbeitet 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 sicherzustellen, daß
der codierte Bitstrom an den richtigen Stellen unterteilt oder "gerahmt" wird, um die darin enthaltenen Codewörter abzugrenzen.
Ein zu diesem Zweck vorgeschlagenes bakarntes System erfordert
die Verwendung besonderer j-ferkierbius, von denen eins als Vorsil-
209881/0622
YO 971 012
2227U8
be 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, als ein vollständiges Codewort mit Hilfe eines Tabellenlese-Verfahrens erkannt werden kann. Dies bedeutet 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 Rahmenproblemen, die dann entstehen, wenn das Bitmuster
eines Codewortes unrichtig dargestellt wird, beispielsweise aufgrund einer fehlerhaften Biterkennung. Um diesem Problem zu begegnen,
ist es üblich, sich auf die statistische Wahrscheinlichkeit zu verlassen, daß ein richtiges Wortende mit fortschreitender
Decodierung wahrscheinlich gefunden wird, ohne daß sich der Rahmenfehler ungewöhnlich weit in die nachfolgenden Teile des
Bitstroms fortpflanzt. Verfahren zur Codierung mit unterschiedlicher 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 Aufzeichnungsoperationen
erwiesen haben. Aus diesen und anderen Gründen wird der-;srtar:-
tistische Weg zur Begrenzung der Fehlerfortpflanzung nicht aMge-
209881/0622
YO 971 012
2227U8
mein als günstig angesehen.
Der Erfindung liegt die Aufgabe zugrunde, ein Verfahren anzugeben,
das eine raschere Verarbeitung von digitalen Daten gestattet als dies die bekannten Verfahren ermöglichen und bei dem außerdem
die Fehlerfortpflanzung eingeschränkt ist.
Die genannte Aufgabe wird gelöst mit Hilfe eines Verfahrens zur Verarbeitung digitaler Daten, die aus originalen Bitfolgen unterschiedlicher
Länge in Codewörter unterschiedlicher Länge derart codiert wurden, daß jedes gültige Codewort in einer bestimmten,
ein Wortende kennzeichnenden Bitfolge endet, 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, das durch folgende Verfahrensschritte gekennzeichnet ist:
a) serielle Eingabe der Bits eines eine Reihe von Codewörtern unterschiedlicher Länge enthaltenden Bitstromes in ein
Schieberegister,
b) Abfragen derjenigen Bitstellen, die sich in einer oder mehreren
Gruppen speziell bezeichneter Bitstellen befinden, zur Feststellung, ob eine ein Wortende kennzeichnende Bitfolge
sich in ihnen befindet, wobei die betreffenden Bitstellen, die eine Gruppe bilden, eine Funktion der verschiedenen Längen
der Codewörter sind,
c) Erzeugen eines "Erfüllungs"-Signals für jede Bitstellengruppe,
die eine Wortende-Bitfolge speichert,
d) Abgrenzen eines ausgewählten Satzes der Schieberegisterstellen während bestimmter ausgewählter Intervalle zwischen aufeinanderfolgender
Verschiebungen als ein "Rahmen", der ein zu decodierendes "Codewort unterschiedlicher Länge enthält, wobei die
Anzahl der Bitstellen eines Rahmens in jedem Augenblick durch das Vorliegen oder Fehlen von "Erfüllungs"-Signalen der abgefragten
Gruppen von Bitstellen bestimmt wird und
e) Decodieren des in dem ausgewählten Satz von Bitstellen gerade gespeicherten Bitmusters.
209881/0622
2227 HS
Ein Ausführungsbeispiel der Erfindung ist in den Zeichnungen dargestellt und wird anschließend näher beschrieben. Es zeigen:
Fign. IA und IB ein allgemeines Schaltbild eines Codier-Deco-
diersystems, nach der Erfindung, das für die Verarbeitung von zustandeunabhängigen Codes geeignet
ist
Fig. 2 in einem allgemeinen Ablaufdiagramm ein Codierverfahren,
welches mit dem in den Fign. IA und IB gezeigten System ausgeführt werden kann
Fig. 3 in einem allgemeinen Ablaufdiagramm ein Decodier-
verfahren, welches mit dem in den Fign. IA und IB
gezeigten System ausgeführt werden kann
Fig. 4 ein Schaltplan eines Codiertaktgebers oder Impulsgenerators,
der die Taktimpulse für die durch das System nach den Fign. IA und IB ausgeführten
Codierfunktionen liefert
Fig. 5 einen Schaltplan eines Decodiertaktgebers oder
Impulsgenerators, der die Taktimpulse für die von dem in den Fign. IA und IB gezeigten System
ausgeführten Decodierfunktionen liefert
Fign. 6 bzw. 7 Codeumsetzungstabellen, die von einem System
der in Fign. IA und IB gezeigten Art benutzt werden
für Codier- und Decodieroperationen in Systemen zur Codierung von dk-begrenzten Wörtern
unterschiedlicher Länge, worin die (d, k) Begrenzungen (1,8) bzw. (2,7) sind,
Fign. 8 und 9 Schaltbilder der durch das in den Fign. IA und IB
gezeigte System verwendeten Rahmenlogik zum Tref-
YO971012 · 209881/0622
fen der Rahmenentscheidungen im Hinblick auf dkbegrenzte Codes mit unterschiedlicher Länge, in
welchen die (d, k) Beschränkungen (1,8) bzw.
(2.7) sind
Fign. 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 Verarbeitung
von ζustandsabhängigen Codes.
In Verbindung mit der in den Fign. 4 und 5 gezeigten Taktgeberschaltung
zeigen die Fign. IA und IB 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 Fign. 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 voneinander getrennt sind, wobei 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 da-
209881/0822
YO 971 012
22271Αβ
durch 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 praktischen Durchführung der Verfahren, durch welche Information nach den
obengezeigten 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 individuell
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.
209881/0622
YO 971 012
2227U8
Die in den Fign. 6 und 7 gezeigten Codeumsetzungstabellen zeigen die Art des hier verwendeten Codierschemas. Die in Fig. 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
Bits 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 zwischen 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 N/a, wobei N und a die kleinsten
ganzen Zahlen sind, die dieses Verhältnis ausdrücken. (Die beiden Symbole haben hier dieselbe Bedeutung wie in dem obenerwähnten
Artikel.)
Ein wichtiger Punkt der gemäß der Erfindung aufgebauten 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 aufgrund 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 gleichwertige Codier- und Decodierfunktio-
2Ü9881/0622
YO 971 012
2227H8
nen erforderlichen Gerätes enorm zu. Wie in den obenerwähnten Artikeln auf Seite 380 ausgeführt wird, hat ein (4,9) Code ein
Codewörterbuch von 512 Wörtern bei einem Format fester Länge, jedoch von nur sechs Wörtern bei einem Format mit unterschiedlicher
Länge.
In den Fign. 6 und 7 sind die Codetabellen in der Form wiedergegeben,
die sie bei einer Speicherung in den in Fig. IA gezeigten Assoziativspeicher 20 hätten. Dieser Speicher enthält Speicherzellen
mit drei Zuständen in seinen Teilen 22 und 24, in welchen die codierten Wörter bzw. Originalwörter gespeichert werden. Das
Zeichen 11X" in Fign. 6 und 7 bezeichnet eine Speicherzelle mit
drei möglichen Zuständen in ihrem drittem oder X-Zustand, in welchen sie versetzt wird, wenn sie keines der wertdarstellenden
Bits eines Wortes speichert. Jede Speicherzelle 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 ein O-Bit abgefragt wird, erzeugt jedoch kein Ausgangssignal, wenn sie durch ein 1-Bit
abgefragt wird.
2. Im O-Zustand erzeugt die Zelle ein Ungleichheits-Signal,
wenn sie durch ein 1-Bit abgefragt wird, erzeugt jedoch kein Ausgangssignal, wenn sie durch ein O-Bit abgefragt
wird.
3. Im X-Zustand kann die Zelle kein Ungleichheits-Signal erzeugen ungeachtet der Abfrage durch ein 1-Bit oder ein 0-Bit.
In diesem Zustand ist die Zelle für die Abfrage effektiv maskiert.
Die spezielle Konstruktion des Assoziativspeichers 20 mit seinen Speicherzellen, die drei Zustände einnehmen können, wird
hier nicht im einzelnen beschrieben, da solche Speicher allgei/ain
ΪΟ971οΐ2 · 209881/0622
2227H8
bekannt sind. Der Vorteil solcher Speicherzellen für drei Zustände
besteht darin, daß sie individuell für die Abfrage maskiert werden können, ohne daß alle anderen Zellen in derselben Spalte
maskiert werden.
Der dritte Teil 26 des in Fig. IA gezeigten Assoziativspeichers
20 speichert Längenanzeiger L, mit denen bei der Codierung die Anzahl der Wert darstellenden Bits im Originalwort angegeben
wird. So gehört z. B. in Fig. 6 zum Originalwort 00 die binäre Längenangabe (L) von 010 oder 2 in Dezimalnotierung, die besagt,
daß zwei Bits in diesem Originalwort stehen. Da das Verhältnis (Ν/<χ) der codierten zu den originalen Bits in diesem speziellen
Codesystem 3 : 2 beträgt, ist die Länge des entsprechenden Codewortes (010) drei Bits. Die Längenangabe L wird nur bei Codieroperationen
gebraucht. Bei Decodieroperationen wird die benötigte Wortlängeninformation abgeleitet aus der Rahmenfunktion.
Das Codierverfahren wird im Zusammenhang mit den Fign. IA und IB,
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 Systemes für diese Art der zustandsabhängigen Codierung werden später
kurz beschrieben.
Das Codierverfahren wird folgendermaßen durchgeführt: Die zu codierenden Informationsbits werden seriell in ein xn Fig. IA ge-
209881/0622
YO 971 012
2227H8
zeigtes Argumentregister 30 eingegeben. Am Anfang wird in das
Register eine Anzahl von Bits eingegeben, die gleich ist aW/N und der Maximallänge der im Speicherteil 24 gespeicherten Wörter
entspricht. Die Assoziation wird aufgrund 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
ausgelesen und in einen in Fig. 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ählers 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 aus, um ein Codewort mit der maximalen Länge L aufzunehmen. Wenn das während der durch den
Speicher 20 ausgeführten Assoziation ausgelesene Codewort eine kleinere Länge als W hat, wird nur die entsprechende Anzahl von
Bits aus dem Register 32 in den codierten Bitstrom ausgelesen. Auf jeden Fall muß das Verhältnis zwischen der Anzahl der aus dem
209881/0622
YO 971 012
2227H8
Register 32 ausgelesenen Bits und der in das Register 30 eingegebenen
Bits konstant auf dem Wert Ν/α gehalten werden. Das bedeutet anders ausgedrückt/ daß für jede Menge von α Bits, die in das
Argumentregister 30 eingegeben werden, N Bits aus dem Datenregister 32 ausgelesen werden müssen. Dieses Verhältnis wird aufrechterhalten,
indem man zwei Bitzähler 36 und 38 in Fig. IB auf die entsprechenden Werte einstellt. Der Zähler 36, der hier als Ausgabebitzähler
bezeichnet wird, wird bei der Codieroperation am Anfang auf den Wert N eingestellt und jeweils um eins heruntergezählt,
wenn ein Bit aus dem Datenregister 32 ausgegeben 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 Argumentregister 30 gelangt.
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ächstfolgenden
Gruppe von α Bits in das Register 30 wird verzögert, bis die laufende Gruppe von N codierten Bits aus dem Datenregister
32 ausgelesen wurde. Wenn der Zählerstand des Ausgabebitzählers 36 dann auf den Wert 0 reduziert wurde/ werden die beiden
Bitzähler 36 und 38 wieder auf N bzw. α eingestellt und steuern die Eingabe von α Bits in das Register 30 sowie die Ausgabe von
N Bits aus dem Register 32, bis das laufende Codewort ganz aus dem Register 32 ausgelesen wurde. Diese Tatsache wird dadurch
angezeigt, daß der Zählerstand des Längenzählers 34 auf 0 reduziert wurde.
Während neue Bits in das Argumentregister 30 eingegeben werden, wird der Inhalt dieses Registers entsprechend nach links verschoben.
Die Einstellung des Längenzählers bestimmt die Anzahl der Linksverschiebungen, die entsprechend der Länge der Bitgruppe
oder Bitreihe, die gerade codiert wurde, vorgenommen wird. Wenn das letzte Bit der alten Gruppe also aus dem Argumentregister
20988T/0622
2227H8
ausgeschoben wurde, gelangt demzufolge das erste Bit der neuen Gruppe an die Stelle, die für eine durch den Assoziativspeicher
20 auszufü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
"E" gekennzeichnet (z. B. El, E2r E3 usw.). 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 Fig. 4 gezeigte monostabile Kippschaltung 40 aufgrund eines an
die Leitung 42 angelegten Startimpulses in den instabilen Zustand geschaltet oder eingeschaltet wird, erzeugt sie einen
Taktimpuls auf der Leitung El. Dadurch wird der in Fig. 2 mit El
bezeichnete Schritt des Codierverfahrens eingeleitet, in welchem der Längenzähler 34 in Fig. IB auf den Anfangswert aW/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 El an eine in Fig. IA gezeigte Torschaltung
46. Dadurch wird diese Torschaltung durchgeschaltet, so daß sie einen vorgewählten Anfangswert aW/N dem Längenzähler 34 der Fig.
IB zuleitet. Außerdem wird der Impuls El auch an den O-Eingang
des Ende-Flipflop 44 in Fig. IA anlegt.
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 einschaltet wird
und den Taktimpuls E2 zur Einleitung des Schrittes E2 des Codierverfahrens (Fig. 2) erzeugt. Aus der gemeinsamen Betrachtung der
Fign. IA und 2 ist zu ersehen, daß der Impuls E2 einer Einrichtung
zugeführt werden kann, die eine Linksverschiebung des Inhaltes
des Argumentregisters 30 um eine Bit-Position bewirkt
· 209881/0622
2227U8
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 E3. Dadurch wird der in Fig. 2 gezeigte Schritt E3 eingeleitet,
in welchem der Impuls E3 einer in Fig. IA gezeigten Torschaltung 54 zugeführt und dadurch ein Bit dem Argumentregister 30 zugeleitet
wird. Gleichzeitig wird der Taktimpuls E3 auch über ein in Fig. IB gezeigtes ODER-Glied 56 an eine Einrichtung angelegt,
welche den Zählerstand des Längenzählers 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 Kippschaltung 52 in den stabilen Zustand zurückkehrt, gelangt die monostabile Kippschaltung
58 in den instabilen Zustand und erzeugt so den Taktimpuls E4. Dieser leitet eine Prüfung des Zählerstandes des Längenzählers
ein, um festzustellen, ob er zu Null reduziert wurde. Der Impuls E4 wird an die in Fig. IB gezeigte Torschaltung 60 angelegt
und leitet das O-Ausgangssignal oder das Nicht-O-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 Ausgangs leitung 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 E4
eine in den Fign. IB 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 E2 erzeugt.
Dadurch wird, wie aus Fig. 2 zu ersehen ist, wieder die Reihenfolge der Schritte E2, E3 und E4 eingeleitet, in welcher
im Argumentregister 30 eine Linksverschiebung erfolgt, ein neues
209881/0622
YO 971 012
2227U8
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 E2,
E3 und E4 wiederholt sich so lange, bis der erste Satz von aW/N 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 E4, daß der Zählerstand
den Wert 0 erreicht hat.
Wenn der Torschaltung 60 der Taktimpuls E4 zugeführt wird, während
die 0-Ausgangsleitung 64 des Umsetzers 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 E5
erzeugt. Dieser leitet eine neue Reihenfolge von Schritten E5, E6 und E7 ein, die in Fig. 2 gezeigt ist und während welcher die eigentliche
Decodierung erfolgt.
Wenn also der Taktimpuls E5 erzeugt wird, setzt er die verschiedenen
Übereinstimmungs-Anzeiger der in den Fign. IA und 12 gezeigten
Assoziativspeichersteuerschaltungen 80 in den Eins-Zustand. Der Taktimpuls E5 gelangt über ein in Fig. IA gezeigtes ODER-Glied
82 auf eine in Fig. 12 gezeigte Leitung 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 E6 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 Argumentregisters 30 übereinstimmt. Eine Übereinstimmung tritt auf, wenn das Muster der
wertdarstellenden Bits in einem der im Speicherteil 24 gespeicher-
209881/0622
YO 971 012
2227U8
ten 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 Argumentregisters 30 Nullen enthalten, dann besteht eine Übereinstimmung
zwischen diesem Argument und dem obersten Wort des in Fig. 6 gezeigten Speicherteiles 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 X-Zustand
befinden. Somit wird eine Übereinstimmung festgestellt zwischen dem Argument 00 und dem gespeicherten Wort 00 ungeachtet
der ü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
vorhanden ist, die ein aus lauter Nullen bestehendes Pseudowort enthält. Dieses Pseudowort gehört jedoch zu einer anderen Kategorie
und stellt eine fehlende Übereinstimmung 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 Argument 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 Wort, so wird dadurch ein Signal auf der Ungleichheit anzeigenden
Leitung 90 für diese Zellenzeile erzeugt. Dieses Ungleichheit anzeigende Signal wird dem O-Eingangsanschluß des zugehörigen über-
209881/0622
2227U8
einstimmungsanzeige-Flipflop 86 zugeführt und dieses dadurch auf
0 rü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 Übereins timmungs anzeiger 86 im E ins-Zustand,' die
anderen werden in den Null-Zustand rü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 E7, der über ein ODER-Glied
96 in Fig. IA der in Fig. 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. 2A 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 E7 nach obiger Beschreibung erzeugt wird, wird er auch einer Torschaltung 104
in Fig. 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.
209881/0622
YO 971 012
2227U8
Durch den Taktimpuls E7 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 Fig. 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 E8. Wie im Ablaufdiagramm der Fig. 2 gezeigt ist,
wird dadurch der Eingabebitzähler 38 in Fig. 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ückkehrt, sendet sie einen Impuls über die
ODER-Glieder 110 und 112 an eine monostabile Kippschaltung 114 und einen zweiten Impuls über die ODER-Glieder 110 und 116 an
die monostabile Kippschaltung 118. Jetzt folgt eine Phase der Codieroperation, in welcher zwei Schrittfolgen E9 bis Eil und
E12 bis E14 gleichzeitig ausgeführt werden. Während der Schritte E9 bis Eil werden α Datenbits seriell in das Argumentregister
in Fig. IA eingegeben und dessen Inhalt entsprechend nach links verschoben. Während der Schritte E12 bis E14 werden N Datenbits
seriell aus dem Datenregister 32 ausgelesen und dessen Inhalt entsprechend 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 3O zu bringen und
YO 971 012 209881/0622
das Auslesen 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 Fig. 4 beim Einschalten
einen Taktimpuls E9, welcher den Inhalt des in Fig. IA gezeigten Argumentregister 30 um ein Bit nach links verschiebt.
Wenn die monostabile Kippschaltung 114 in Fig. 4 in den stabilen Zustand zurückkehrt, bringt sie die monostabile Kippschaltung
in den instabilen Zustand und erzeugt den Taktimpuls ElO. Das hat drei Auswirkungen. Erstens wird die Torschaltung 54 in Fig. IA
betätigt und ein Bit in das Argumentregister 30 eingegeben. Zweitens wird der Zählerstand des Eingabebitzähler 38 in Fig. IB um
eins heruntergezä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 instabilen Zustand und erzeugt dadurch den Taktimpuls Eil. Durch diesen Impuls wird der Zählerstand des
Eingangsbitzählers 38 in Fig. IB 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ählers 0 beträgt. Der Taktimpuls Eil wird einer in Fig. IB 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 Fign. IB und 4 gezeigte Leitung 132 und über ein ODER-Glied
112 zu der monostabilen Kippschaltung 114. Daher wird die Schrittfolge E9 bis Eil 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.
IA eingegeben wurden, beträgt der Zählerstand des Eingabebit-
YO 97X012 209881/0622
2227U8
Zählers 38 in Fig. IB Null. Wenn unter diesen Umständen der Taktimpuls
Eil erzeugt wird, liefert die Torschaltung 130 einen Ausgangsimpuls
über eine Leitung 134 und das ODER-Glied 136 zu einem Eingang eines in den Fign. 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 138
schaltet jedoch erst durch, wenn ihm ein drittes Eingangssignal dann zugeführt wird, wenn der Zählerstand des Ausgabebitzählers
36 den Wert 0 erreicht. Die Rückführung des Zählerstandes des Eingabebitzählers zum Wert 0 unterbricht also die weitere Ausführung
der Schritte E9 bis Eil in Fig. 2, hat jedoch keinen weiteren Einfluß, bis der Zählerstand des Ausgabebitzählers auf
0 reduziert wurde.
Wenn die in Fig. 4 gezeigte monostabile Kippschaltung 118 gemäß obiger Beschreibung in den instabilen Zustand gelangt, erzeugt
sie den Taktimpuls E12 zum Ausgeben eines Bits aus dem Datenregister 32, indem der Taktimpuls E12 der in Fig. 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 monostabile Kippschaltung 142 in den
instabilen Zustand und erzeugt den Taktimpuls El3. 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 Fig. IB 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 E14. Dadurch wird der Zählerstand des in Fig. IB 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
209881/0622
und auf der Leitung 150, wenn der Zählerstand des Ausgabebitzählers
den Wert 0 hat. Der Taktimpuls E14 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 Fign. IB und 4 und ein ODER-Glied 116 zu einer monostabilen
Kippschaltung 118 weitergeführt wird. Dadurch wird die Reihenfolge der Schritte E12 bis E14 in Fig. 2 wiederholt, und
zwar so lange, bis N Datenbits aus dem Datenregister 32 ausgegeben und der Zählerstand des Ausgabebitzählers auf 0 reduziert
wurde.
Wenn der Zählerstand des in Fig. IB gezeigten Ausgabebitzählers
36 auf 0 reduziert wurde, führt das Anlegen des Taktimpulses E14
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 vom ODER-Glied
136. Somit wird der Ausgangsimpuls des UND-Gliedes 138
über die Leitung 160 in den Fign. IB und 4 der monostabileis
Kippschaltung 162 im Taktimpulsgenerator zugeleitet.
Wenn die monostabile Kippschaltung 162 in den instabilen Zustand gebracht wird, erzeugt sie den Taktimpuls E15, welcher der Torschaltung
164 in Fig. IB zugeführt wird. Wenn der Zählerstand des Längenzählers einen von 0 verschiedenen Wert hat, wird ein
entsprechendes Signal auf der Ausgangsleitung 66 über die Torschaltung
164 und eine Leitung 170 der monostabilen Kippschaltung 172 in Fig. 4 zugeleitet.
Wenn die monostabile Kippschaltung 172 in den instabilen Zustand gebracht wird, erzeugt sie den Taktimpuls E16 und aus den Fign.
2 und IB ist zu ersehen, daß dadurch der Eingabebitsähler 38 wieder auf den Wert α und der Ausgabebitzähler 36 auf den Wert
N eingestellt werden. Wenn die in Fig. 4 gezeigte monostabile Kippschaltung 172 in den stabilen Zustand zurückkehrt, sendet
sie einen Impuls über die ODER-Glieder 110,, 112 und 116 su den
so 971 ol2 · 209881/0622
2227U8
monostabilen Kippschaltungen 114 bzw. 118, wodurch die beiden
Schrittfolgen E9 bis Eil und E12 bis E14 in Fig. 2 wieder einge
leitet werden. Infolgedessen wird eine weitere Gruppe von α Bits seriell in das Argumentenregister 30 der Fig. IA eingegeben und
eine weitere Gruppe von M Bits seriell aus dem Datenregister ausgelesen.
Die Reihenfolge der in Fig. 2 gezeigten Schritte E9 bis E16 wird
wiederholt, bis der Zählerstand des Längenzählers auf 0 reduziert
ist. Wenn diese Bedingung erreicht wird, heißt das, daß L neue Bits in das Argumentregister 30 gelesen und eine damit in Beziehung
stehende Anzahl von Bitsf nämlich ML/a, aus dem Datenregister
32 ausgelesen wurde. Somit isc ein ganzes der Codewörter
unterschiedlicher Länge aus dem Datanregister 32 ausgelesen und eine nachfolgende zu codierende Bitreihe an die für die Assoziation
im Argumentregister 30 richtige Steile gesetzt worden. Wenn
unter diesen Umständen der Taktimpuls E15 erzeugt wird, fließt ein Strom von der O-Ausgangsleitung 64 des Umsetzers 62 des Längenzählers
in Fig. IB über die Torschaltung 164 und die Leitung 176 zu der in Fig. 4 gezeigten monostabilen Kippschaltung 178.
Wenn diese in den instabilen Zustand gelangt, erzeugt sie einen Taktimpuls E17 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, dal? jede su codierende Aufzeichnung oder
Nachricht in einem erkennbare Code "Ende des Datensatzes (EDD)"
endet. Als solcher kann z. B, eines der ±m Assoziativspeicherteil
22 gespeichertem codierten Wörter angesehen werden. Der originale Bitstrom endet in einer Reihe von Bits, die in die-se
EDD-Darstellung umgesetzt werdenc Siisn. Datenregister 32 gehört
ein Detektor 180 für das codierte EDD, Pig. IA. Wenn ein EDD-Code
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 "1"-Zustand bringt.
YO971O12 2Ü9881/0622
Wenn das Ende-Flipflop 44 im "1"-Zustand ist, erscheint ein Ausgangssignal
auf der Leitung 188. Ist das Ende-Flipflop 44 im "0"-Zustand, erscheint ein Signal auf der Leitung 186. Die Erregung
einer der beiden Leitungen 186 oder 188 hängt davon ab, ob der Detektor 180 einen EDD-Code im Datenregister 32 festgestellt hat
oder nicht. Wenn das Ende des Datensatzes zum Zeitpunkt des Taktimpulses E17 noch nicht erreicht ist, wird die Leitung 186 erregt,
sonst die Leitung 188.
Der Taktimpuls E17 wird zum entsprechenden Zeitpunkt der in Fig. IA 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 19 2 und das in Fig. 4 gezeigte
ODER-Glied 72 zu der monostabilen Kippschaltung 74. Diese kommt dadurch in den instabilen Zustand und erzeugt einen Taktimpuls
E5 und leitet dadurch eine neue Codierfolge ein, die mit dem in Fig. 2 gezeigten Schritt E5 beginnt. Das System codiert dann
das neue Argument weiter, welches jetzt im Argumentregister 30 steht.
Diese neue Codieroperation beginnt also erst, wenn alle Bits des vorher codierten Wortes aus dem Datenregister 32 ausgelesen worden
sind und sie beginnt außerdem, sobald das letzte Bit des alten Codeworts ausgelesen wurde. Zwischen der Codierung aufeinanderfolgender
Codewörter besteht also keinerlei Verzögerung.
Wenn der Taktimpuls E17 zu einem Zeitpunkt erzeugt wird, an welchem
das Ende-Flipflop im "1"-Zustand ist, heißt das, daß ein EDD-Codewort erzeugt wurde. Dann führt die Torschaltung 190 in
Fig. IA den Strom auf der Leitung 188 einer zur Beendigung der 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.
Das Decodierverfahren wird anschließend im Zusammenhang mit
den Fign. IA, IB, 3 und 5 bis 12 beschrieben.
YO 971 012 2 Ü9 88 1/062 2
Wie ist 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 Register 200 ist ein Schieberegister und sein Inhalt wird intermittierend um jeweils eine Bitstelle
nach links verschoben (mit Blickrichtung auf Fig. IB), 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 W gleich acht Bits. Der Punkt
im Register 200, der zwischen der Bitstelle W und der Bitstelle W+l liegt, 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. 8 dargestellt ist, und für den (2,7) Code zwischen der achten und neunten Bitstelle,
wie das in Fig. 9 dargestellt ist. Dieser Rahmenbezugspunkt markiert effektiv die Vorderkante eines aus W Bits bestehenden Decodierargumentes,
welches zu gegebener Zeit in das Argumentregister 204 des Assoziativspeichers 20 der Fig. IA übertragen wird.
Alle Bits im Eingangsregister, die zu dieser Zeit rechts vom Rahmenbezugspunkt stehen, werden in dieses Argument eingeschlossen,
auch wenn die Rahmenlänge kleiner als W ist.
Zum Eingangsregister 200 gehört eine mit Rahmen-Logik bezeichnete
Schaltung 202 in Fig. IB. Diese Einheit 202 enthält logische Schaltungen für die Rahmenentscheidungen, die in bezug auf den
hereinkommenden Bitstrom getroffen werden müssen, d. h., die Schaltungen entscheiden, an welchen Punkten der Bitstrom unterteilt
werden muß, um die Anfänge und Enden der diesen Strom bil-
YO 971 012 209881/0622
2227U8
denden Codewörter zu markieren. Die Schaltung stellt in Wirklichkeit die Länge eines jeden der Rahmen mit unterschiedlicher Länge
fest, die die entsprechenden Codewörter enthalten. Die in der Einheit 202 jeweils verwendeten logischen Schaltungen hängen von dem
Code ab, der benutzt wird. Fig. 8 zeigt die Rahmen-Logik für den (1,8) Code und Fig. 9 für den (2,7) Code.
Die Einheit 202 stellt vorher die Länge fest, die 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 Codewortes. Dann liefert die Einheit 202 an ihrem Ausgang eine binäre Anzeige für die durch das Verhältnis N/& der
codierten Bits zu den originalen Bits dividierte Rahmenlä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 Fig. IA gezeigte Argumentregister 204 zwecks
Benutzung als Decodierargument. Mit diesem W Bits umfassenden
Decodierargument wird dann eine Assoziation ausgeführt, um ein übereinstimmendes Codewort im Abschnitt 22 des Assoziativspeichers
20 zu finden. Wenn eine Übereinstimmung gefunden ist, wird das entsprechende decodierte Wort aus dem Speicherabschnitt 24
in ein Datenregister 206 ausgelesen, aus dem es anschließend bitseriell ausgelesen wird.
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 2O2r gesteuert. Beide Aktionen
YO 971 012
209881/062 2
2227U8
- 26 laufen unter Steuerung durch den Längenzähler ab.
In der Zeit, in welcher die Bits des decodierten Wortes aus dem Datenregister 206 ausgelesen und neue Bits in das Eingangsregister
200 eingegeben werden, wird vom Assoziativspeicher 20 weder
eine Decodierfunktion 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 Codewort ersetzt wird. Diese Rahmenprüfung wird durchgeführt, wenn dieses neue Codewort am
Rahmenbezugspunkt registriert wurde (Fig. 8 oder Fig. 9).
Wenn das im Eingangsregister 200 registrierte Codewort aufgrund falscher Codierung oder Biterkennung falsch dargestellt wird,
trifft die Einheit 202 trotzdem eine Entscheidung, die die beste Wahl darstellt, welche unter den gegebenen Umständen getroffen
werden kann. Wenn zwischen dem falschen Codewort und einem der im Speicherteil 22 der Fig. IA gespeicherten codierten Wörter
keine Übereinstimmung festgestellt werden kann, wird ein Pseudowort (welches angenommenermaßen aus lauter Nullen bestehen soll)
aus dem Datenregister 206 ausgelesen. Ein neues Codewort wird zur Prüfung in das Eingangsregister 200 gebracht und die Decodieroperation
läuft weiter, als ob gerade eine gültige Decodierung stattgefunden hätte. Das Feststellen des ersten gültigen Wortendes,
welches dem fehlerhaften Teil der hereinkommenden Nachricht folgt, stellt die Synchronisation wieder her.
Die interne Schaltung der Einheit 202 in Fig. IB ist nach dem jeweils
verwendeten Codierschema ausgelegt. Fig. 8 zeigt die logischen Schaltungen der Einheit 202 bei der Verwendung eines (1,8)
Codes mit begrenzter Lauflänge, d. h. eines Codes, in welchem
der Wert für d = 1 und für k = 8 ist. Fig. 9 zeigt die 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 in-
209881/0622
YO 971 012
2227U8
nerhalb 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 der Einheit 202 für den (1,8) Code und Fig. 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 9 steht, wird vernünftigerweise angenommen, daß eines der drei Bit großen Codewörter in diesem System gegenwärtig
in den Bitstellen 7, 8 und 9 des Eingangsregisters 200 gespeichert ist. Die in Fig. 8 gezeigte Schaltung erkennt diese
Tatsache. Somit wird das O-Ausgangssignal von der Bitstelle 7
durch einen Inverter 208 invertiert und als 1-Eingangssignal einem
UND-Glied 210 zugeleitet. Das 1-Ausgangssignal von der Bitstelle
8 oder 9 durchläuft ein ODER-Glied 212 und wird als zweites Eingangssignal dem UND-Glied 210 zugeleitet. Unter diesen
Umständen wird auf der Ausgangsleitung A des UNDrGMedes 210 ein
Signal erzeugt, welches hier als "Erfüllungs"-Signal; bezeichnet,-
209 8817 0 62 2
YO 971 012
2227U8
Wenn mit Bezug auf die in Fig. 6 gezeigte Codier-Tabelle in Bitstelle
4 in Fig. 8 gegenwärtig eine 0 und in den Bitstellen 5, 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 O-Ausgangssignal der Bitstelle 4
durch den in Fig. 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 B-Leitung erzeugt, welches hier ebenfalls
als "Erfüllungs"-Signal bezeichnet wird.
Mit den drei Bitstellen 1, 2 und 3 des Eingangsregisters 2OO sind keine logischen Schaltungen verbunden. Wenn auf der A-Leitung
oder der B-Leitung kein 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 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 Wortende 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-Entscheidungstabelle1
bezeichnet die Rahmen-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,
209881/0622
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 Fig. 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ängenzähler um, der in diesem Fall 2/3 der angegebenen Rahmenlänge beträgt. Der Wert im Längenzähler gibt bekanntlich
die Länge des decodierten Wortes an, und beim (1,8) Code mit begrenzter Lauflänge ist nach der vorliegenden Erfindung die decodierte
Wortlänge immer zwei Drittel der Länge des entsprechenden codierten Wortes. Bei der Decodieroperation wird das Ausgangssignal
der Schaltung 218 zum geeigneten Zeitpunkt über eine Torschaltung 220 in den Längenzähler 34 eingegeben. Wenn z. B. die
angegebene Rahmenlänge sechs Bits beträgt, dann wird der binäre
Wert 100 oder dezimal 4 in die drei untersten Bitstellen 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 Registerstelle 10 immer eine 0. Steht in Stelle IO jedoch einmal eine 1* so bedeutet das,
daß entweder das Bit falsch ist oder daß ein Rahmenfehler aufge-
209881/0622
YO 971 012
2227ΊΑ8
treten ist, durch welchen die 1 in dieser Stelle erscheint. Unter diesen Umständen kann man nicht sicher sein, daß das in Stelle
gespeicherte Bit tatsächlich der Anfang eines neuen Codewortes ist. Wenn z. B. angenommen wird, daß die Bitfolge OOIQOO in den
Stellen 9 bis 4 des Registers 200 gespeichert ist und daß eine 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 4 endet. 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 fü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. Fig. 9 zeigt die Einheit
202 für 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
V0 971 012 209881/0622
Fehler 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 gespeicherte
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 geprüft, da in jedem Fall die in den Stellen 1 bis 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 Fig. 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 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.
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üllungssignales
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
YO 971 012 2U988 1/0622
2227U8
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 1st. Die Rahmenlänge 4 entspricht einer
Längenzählereinstellung 2.
Der Teil der in Fig. 9 mit 242 bezeichneten Schaltung wandelt die Erfüllungssignale auf den Leitungen A, B und C in äquivalente
Werte für den Längenzähler 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 Ar
wenn in den Stellen 7 und 8 Nullen 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-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-3 normalerweise
als ein 6 Bit großes Codewort interpretiert, welches ein Erftillungssignal 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 Schaltung 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 decodierten Codegruppe ein Fehler aufgetreten ist und daß die Registerstellen 1 bis 8 nicht ein Codewort
mit einer Länge von 4 oder 6 Bits enthalten. Es besteht die Möglichkeit, daß ein Codewort mit einer Länge von 8 Bits in die-
209881/0622
YO 971 012
sen 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 Rahmenlänge 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 A-Signales betroffen
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.
Das Decodierverfahren wird anschließend genauer im Zusammenhang mit dem in Fig. 3 gezeigten Ablaufdiagramm beschrieben. Um das
Decodierverfahren einzuleiten, wird ein Startimpuls über ein in Fig. 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
α in den Ausgabebitzähler in Fig. IB eingegeben. Für alle aus dem Decodier-Datenregister 206 ausgelesenen α 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 rückgestellt und dann wird der Dl-Taktimpuls der in den
Fign. IB, 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 gespeicherten Information, festgestellt wurde.
An diesem Punkt sollte erklärt werden, daß das Eingangsregister 200 am Ende eines Decodierlaufes 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 Zu-
209881/0622
YO 971 012
2227H8
stand 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 Pign. 8 und 9 ist zu
ersehen, daß das Fehlen des Erfüllungssignales 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. IB gezeigte Torschaltung 256
öffnet und die in den wertniederen W Bitstellen des Eingangsregisters 200 gespeicherte Information parallel zum Decodier-Argumentregister
204 in Fig. IA überträgt. Der Taktimpuls D2 wird außerdem der in den Fign. IA und 12 gezeigten Leitung 84 zugeführt
und bringt die Übereinstimmungsanzeiger 86 in den Assoziativspeichersteuerschaltungen
80 in den 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 Zellenzeile im Assoziativspeicherteil 22, Fign. IA, 6 oder 7, die kein Codewort
speichert, welches mit dem Argument im Register 204 übereinstimmt, erzeugt ein Ungleichheitsignal auf der entsprechenden
Leitung 90 in Fig. 12. Der zugehörige Übereinstimmungsanzeiger 86 wird daraufhin in den O-Zustand rückgestellt. Das übereinstimmende
Codewort, falls ein solches vorhanden ist, wird in der Zellenzeile gespeichert, dessen Übereinstimmungsanzeiger 86 im
209831 /0622
YO 971 012
2227U8
1-Zustand bleibt.
Zu jedem in Fig. 12 gezeigten Übereinstimmungsanzeiger gehört
ein UND-Glied 260, dessen einer Eingang mit dem O-Ausgang des
zugehörigen Übereinstimmungsanzeigers verbunden ist. Wenn der übereinstimmungsanzeiger in den O-Zustand rückgesetzt wurde, wird
dadurch das entsprechende UND-Glied 260 teilweise vorbereitet. Die möglichen Auswirkungen dieses Vorganges werden jetzt beschrieben.
Wenn die monostabile Kippschaltung 258 in Fig. 5 in den stabilen Zustand zurückkehrt, bringt sie die monostabile Kippschaltung
in den instabilen Zustand und erzeugt den Taktimpuls D4. Dieser Impuls wird der in den Fign. IA und 12 gezeigten Leseleitung
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 und 260, die dieser Zeile zugeordnet sind, im leitenden Zustand,
abhängig von dem Zustand des zugehörigen Übereinstimmungsanzeigers 86. Wenn der Übereinstimmungsanzeiger 86 im 1-Zustand ist, wird
die durch die von der Leseleitung 98, das zugehörige UND-Glied 100 und die entsprechende Leseleitung 102 gebildete geschlossene
Schaltung vervollständigt. Gleichzeitig wird der Taktimpuls D4 der in Fig. IA dargestellten Torschaltung 264 zugeführt und dadurch
das dem übereinstimmenden Codewort entsprechende decodierte 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
Codewort fehlt, wird das durch die Rückstellung aller in Fig. gezeigten Übereinstimmungsanzeiger 86 in den O-Zustand angezeigt
und dadurch alle UND-Glieder 260 durchgeschaltet. Unter diesen
Umständen wird eine Serienschaltung von der Leseleitung 98 über
vo97io12 209881/0622
2227H8
alle UND-Glieder 260 zu der die Nichtübereinstimmung anzeigenden
Leitung 266 hergestellt. Sobald die Leitung 266 erregt wird, wird ein Pseudowort (Fig. 6 oder 7) aus dem Speicherteil 24 in das in
Fig. IA gezeigte Datenregister 206 ausgelesen. Im vorliegenden Beispiel soll dieses Pseudowort lauter Nullen enthalten, es kann
jedoch auch ein beliebiges Bitmuster enthalten, welches keine Störung des Systems verursacht.
Das decodierte Wort steht jetzt im Datenregister 206. Die LMnge
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 Fig. IB eingegeben werden. Das Ausgeben
der Bits aus dem Datenregister 206 und das Eingeben von Bits in das Eingangsregister 200 erfolgen so, daß für je α Bits, die
aus dem Register 206 ausgelesen werden, N Bits in das Eingangsregister 200 eingelesen werden. Dieses Verhältnis von Ausgabezu
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 D5 bzw. D8 erzeugt werden. Dadurch werden zwei Teil-Schrittfolgen eingeleitet,
die aus den Schritten D5 bis D7 in Fig. 3 bzw. D8 bis DlO bestehen und getrennt betrachtet werden.
Der Taktimpuls D5 wird der in Fig. IA gezeigten Torschaltung
zugeführt und bewirkt das Ausgeben des ersten Bits des im Register 206 gespeicherten decodierten Wortes als Teil des decodier-
209881/0622
YO 971 012
_ 37 - 2227H8
ten 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 D6, wodurch 3 Vorgänge ausgelöst werden. Zuerst erregt der Taktimpuls D6 eine Schiebeeinrichtung, die den Inhalt
des Datenregister 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ählers 34, beide in Fig. IB 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 D7. 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 Fign. 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 D5 bis D7 eingeleitet. Dieser Zyklus
wird wiederholt, bis der Zählerstand des Ausgabebitzählers Null
beträgt. Ist das der Fall, dann verursacht die nächste Erzeugung des Taktimpulses D7 einen Stromfluß von der O-Ausgangsleitung
des Umsetzers 146 über die Torschaltung 284, die Leitung 288 und das ODER-Glied 290 zu einem der Eingänge des UND-Gliedes 29 2 in
Fig. IB. Dieser 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 Fign. 2 und
zu ersehen ist. Dadurch wird die Schiebeeinrichtung für das Eingangsregister 200 in Fig. IB erregt und der Inhalt dieses Registers
um 1 Bit nach links verschoben. Wenn die monostabile Kipp-
Yo 971 012 209881/0622
2227U8
— 3σ —
schaltung 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. Wenn N Informationsbits
noch nicht in das Eingangsregister 200 eingegeben wurden, hat der Eingabebitzähler noch nicht die Stellung 0 erreicht. Daher wird
die Ausgäbeleitung 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 276 zugeführt, die dadurch wieder in den instabilen Zustand gelangt. Dadurch wird erneut die Reihenfolge der in
Fig. 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 N Informationsbits in das Eingaberegister 200 eingegeben worden
und entsprechen α 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ählers 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ählerleitung 126 erregt und zeigen damit an, daß beide Bitzähler auf 0 stehen. Das UND-Glied
292 schaltet daher durch und erregt die Leitung 306 in den
209881/0622
YO 971 012
2227U8
Fign. IB und 5r die zur monostabilen Kippschaltung 308 führt.
Die monostabile Kippschaltung kommt daher in den instabilen Zustand und erzeugt den Taktimpuls DIl zur Prüfung des Zählerstandes
des Längenzählers 34 in Fig. IB.
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
aus- und ein entsprechender Satz von N Bits in das Eingaberegister 200 eingelesen werden. Wenn also der Taktimpuls DIl an die Torschaltung
310 in Fig. IB zu einem Zeitpunkt angelegt wird, an welchem die Leitung 66 des Längenzähler-Umsetzers 62 erregt ist,
dann erhält die in Fig. 5 gezeigte monostabile Kippschaltung über die Torschaltung 310 und die Leitung 312 einen Impuls, der
sie in den instabilen Zustand bringt und dadurch den Taktimpuls D12 erzeugt. Durch den Impuls D12 wird wieder die Zahl N in den
Eingabebitzähler 38 und die Zahl α wieder in den Ausgabebitzähler 36 der Fig. IB eingegeben.
Die Reihenfolge der Schritte D5 bis D12 in Fig. 2 wird wiederholt,
bis der Zählerstand des Längenzählers auf den Wert 0 heruntergezählt worden ist. Die Erzeugung des Taktimpulses DIl zu einem
Zeitpunkt, an welchem der Zählerstand des Längenzählers 0 beträgt, veranlaßt, daß ein Signal auf der O-Ausgangsleitung 64
des Längenzählers 34 über eine Torschaltung 310 und die Leitung 316 der monostabilen Kippschaltung 318 zugeleitet wird, die in
den instabilen Zustand gelangt und dadurch den Taktimpuls D13 erzeugt und eine Prüfung einleitet, mit welcher festgestellt
wird, ob das letzte Wort der Nachricht decodiert worden ist.
Aus Fig. IA ist zu ersehen, daß zum Decodier-Datenregister 206
eine Einheit 320 gehört, die die Darstellung des Endes des Datensatzes (EDD-Darstellung) im Datenregister 206 feststellt. Hierbei
handelt es sich um das decodierte Äquivalent der codierten EDD-Darstellung,
die die übertragung der codierten Daten beendet. Diese EDD-Darstellung kann jedes der decodierten Wörter in der
209881/0622
-40- 2227H8
Codeumsetztabelle bilden (Fig. 6 oder 7). Eine Fehlerbedingung kann die EDD-Darsteilung natürlich so verändern, daß sie als
solche nicht erkannt wird, wenn sie in das Datenregister 206 eingelesen wird. Diese unerwünschte Bedingung kann durch verschiedene
Maßnahmen verhindert werden. Man kann z.B. mehrere EDD-Darstellungen übertragen, wobei die Wahrscheinlichkeit besteht,
daß mindestens eine von ihnen richtig interpretiert wird. Eine"andere Alternative besteht darin, die PseudoWörter zu zählen,
die nacheinander aus dem Datenregister 206 ausgelesen werden und dann die Decodieroperationen zu beenden, wenn diese Zahl einen
vorgegebenen Wert überschreitet.
Im vorliegenden Beispiel wird angenommen, daß ein EDD-Code richtig
interpretiert und durch den EDD-Detektor 320 in Fig. IA festgestellt
wurde. Von der Ausgangsleitung 322 des Detektors 320 läuft
dann ein Signal über das ODER-Glied 184 zum 1-Eingang des Ende-Flipflop
44 und bringt dieses Flipflop in den 1-Zustand. Unter diesen Umständen wird die ein Signal auf der Leitung 188 über die
Torschaltung 324 einer geeigneten Einrichtung zum Beenden der Decodieroperationen zugeleitet, wenn der Taktimpuls Dl3 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 O-Ausgangsseite des Ende-Flipflop 44 in Fig. IA über die
Leitung 186, die Torschaltung 324, die Leitung 326 und das ODER-Glied 250 zur monostabilen Kippschaltung 252 in Fig. 5. Wenn die
monostabile Kippschaltung 252 in den instabilen Zustand gelangt, erzeugt sie einen neuen Taktimpuls Dl und leitet dadurch ein neues
Decodierverfahren zur Decodierung des nächsten Codewortes ein,
welches jetzt inzwischen richtig im Eingangsregister 200 steht. Dieses Verfahren wird wiederholt, bis das letzte Codewort decodiert
wurde.
Fig. 10 zeigt als Beispiel eine Decodieroperation, die unter
YO 971 012 209881/0622
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 Teil 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 wieder hergestellt. Sie geht wieder verloren aufgrund 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. 10 dargestellt. Es
wird angenommen, daß im Intervall TO das 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, 6, 6 usw. aufteilen.
Fig. 10 zeigt, daß die durch die Einheit 202 der 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 Rahmenbezügspunkt gebracht wird, bevor er decodiert wird; Dadurch braucht das Bitmuster
des neuen Rahmens wä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 vorgenommen am Anfang der pecodieroperation, ohne
daß diese dadurch irgendwie verzögert wird.
Fig. 11 zeigt eine Decodieroperätion für ein angenommenes Beispiel
im (2,7) Code (Fig. 7 und 9). Durch zwei Fehler bei der Biterkennung wird eine 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-
ϊο 97X0X2 209881/(1622
_ 42 - 2227H8
Code und wiederum einem vier Bit-Code eingeteilt. Nach der dritten
Rahmen-Entscheidung ist die Synchronisation wieder hergestellt.
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 der Verwenduha
von Codes mit begrenzter Lauflänge in dem hier beschriebenen eindeutigen
Format mit veränderlicher Länge.
Die Auswahl der Bitstellen des Eingangsregisters 200, Fign. 8 und 9, an denen die logischen UND- und ODER-Prüfungen durch die Einheit
202 vorgenommen werden, hängt ab von den im verwendeten Codesystem
benutzten Wortende-Bitmustern. Die Festlegung dieser Prüfpunkte kann zumindestens für den hier betrachteten (1,8) Code und
den (2,7) Code folgendermaßen verallgemeinert werden. Wenn Z die
Höchstzahl aufeinanderfolgender Nullen und Y die Mindestzahl aufeinanderfolgender Nullen ist, auf die ein Codewort im gegebenen
Codesystem enden kann, wenn weiterhin N die kleinste ganze Zahl ist, die bei Division durch eine andere ganze Zahl (α) das Verhältnis
angibt, in welchem die Anzahl codierter Bits zur Anzahl der Originalbits im jeweils verwendeten Code steht, wenn weiterhin
eine Gruppe von Bitspeicherstellen im Eingangsregister 200 so
definiert ist, daß jede Gruppe mit der Stelle beginnt, deren Zähl
N+i+(i-l) (Z-Y) ist und mit der Stelle endet, deren Zahl Z plus der besagten Anfangszahl 1st, 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 be- '^n
trachteten Codesystem), dann ist für jede so definierte Gruppe eine UND-Prüfung festzulegen, deren Eingangssignale die entsprechenden
Inversionen der in den Y-niederwertigsten Stellen der
entsprechenden Gruppe gespeicherten Bits zusammen mit de» Ergebnis der ODER-Verknüpfung der verbleibenden Bits innerhalb dieser
Gruppe umfassen.
971 oi2 209881/062.2
2227H8
Wendet man die so festgelegte Regel auf die Einheit 202 für den
(1,8) Code, Fign. 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 Endnullen 1* In diesem Codesystem ist das
Verhältnis Ν/α =3:2; somit ist H =3. Wenn in dem Ausdruck N+i+(i-l) (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
Fig. 8 bilden also die erste Gruppe von Prüfstellen. Die untersten Υ Stellen dieser Gruppe (in diesem Fall die Stelle 4, da Y = 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üfbedingung
durch eine O 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-l) (Z-Y) für i 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-Prtifbedingung
erzeugt ein Erfüllungssignal auf der Leitung A.
Im Falle des in den Fign. 9 und 7 gezeigten (2,7) Codes sind .
die verschiedenen Parameter N = 2, Z = 3 und Y = 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 n+i(i-l) (Z-Y) einnehmen läßt. Ihre Endstellen.,sind definiert
durch die Addition von Z =3. zu jeder Startstelle* Die untersten. Y (oder 2) Stellen einer jeden Gruppe liefern im einzelnen invertierte
Bitsignale an die entsprechenden UND-Glieder 228, 236 oder 240 in Fig. 9, während die ODER-verknüpften Bitsignale von den
2227H8
ü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 Fig. 8 und 9 gezeigten Rahmen-Entscheidungstabellen hervor.
Ähnliche Rahmen-Prüfungen können für andere Codes mit begrenzter Lauflänge entworfen werden, die vorgegebenen Wortendebeschränkungen
nach dem Erfindungsgedanken entsprechen.
Der in den Fign. 6 bzw. 7 gezeigte (1,8) Code und der (2,7) 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ängenbegrenzungen
verletzt werden. Bei anderen Codesystemen mit begrenzter Lauflänge, die für die vorliegende Erfindung auch ausgewählt werden
können, hängt die Decodierung und/oder Codierung eines gegebenen Wortes vom Zustand des vorhergehenden Codewortes ab, damit die
gewählten (d; k)-Beschränkungen nicht verletzt werden. Derartige Codesysteme sind in dem obenerwähnten Artikel von P. A. Franaszek
beschrieben.
Zustandsabhängige Codier- und Decodieroperationen 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 Fign. IA bis 12 gezeigten Ausführungsbeispiel. Bei Verwendung eines zustandsabhängigen Codesystems
können separate Codier-Decodiereinrichtungen, wie die Assoziativspeicher 2OA und 2OB 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
2OA und 2OB für die nächste Codieroperation zu wählen ist.
YO 971 012
209881/0622
2227U8
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
vorhanden ist.
209881/0622
Claims (1)
- 2227U8PATENTANSPRÜCHEVerfahren zur Verarbeitung digitaler Daten, die aus originalen Bitfolgen unterschiedlicher Länge in Codewörter unterschiedlicher Länge derart codiert wurden, daß jedes gültige Codewort in einer bestimmten, ein Wortende kennzeichnenden Bitfolge endet, die aus mehreren solcher Folgen ausgewählt ist, unddaß die Länge der Codewörter in einem festen Verhältnis zur Länge der originalen Bitfolgen steht, gekennzeichnet durch folgende Verfahrensschritte:a) serielle Eingabe der Bits eines eine Reihe von Codewörtern unterschiedlicher Länge enthaltenden Bitstromes in ein Schieberegister,b) Abfragen derjenigen Bitstellen, die sich in einer oder mehreren Gruppen speziell bezeichneter Bitstellen befinden, zur Feststellung, ob eine ein Wortende kennzeichnende Bitfolge sich in ihnen befindet, wobei die betreffenden Bitstellen, die eine Gruppe bilden, eine Funktion der verschiedenen Längen der Codewörter sind,c) Erzeugen eines "Erfüllungs"-Signals für jede Bitstellengruppe, die eine Wortende-Bitfolge speichert,d) Abgrenzen eines ausgewählten Satzes der Schieberegisterstellen während bestimmter ausgewählter Intervalle zwischen aufeinanderfolgender Verschiebungen als ein "Rahmen" , der ein zu decodierendes Codewort unterschiedlicher Länge enthält, wobei die Anzahl der Bitstellen eines Rahmens in jedem Augenblick durch das Vorliegen oder Fehlen von "Erfüllungs"-Signalen der abgefragten Gruppen von Bitstellen bestimmt wird unde) Decodieren des in dem ausgewählten Satz von Bitstellen gerade gespeicherten Bitmusters.YO 971 012209881/06222227H82. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß die Anzahl der Verschiebeoperationen, die zwischen jeder Durchführung der Verfahrensschritte d) und e) und ihrer nächsten Durchführung erfolgt, in jedem Augenblick durch die Anzahl der Bitstellen des zuletzt abgegrenzten Rahmens bestimmt wird.3. Verfahren nach den Ansprüchen 1 und 2, dadurch gekennzeichnet, daß die im Schritt b) abgefragten Gruppen von Bitstellen des Schieberegisters so angeordnet sind, daß jede Gruppe mit einer Stelle beginnt, deren relative Ntunmer innerhalb der Schieberegisterstellen N+i+(i-l)(Z-Y) beträgt, und mit einer Stelle endet, deren Nummer Z plus der Anfangsnummer ist, wobei:"N" die kleinste ganze Zahl ist, die, durch eine andere ganze Zahl dividiert, das erwähnte feste Verhältnis ergibt, "Z" und "Y" die maximalen und minimalen Zahlen aufeinanderfolgender Bits mit einem gegebenen Binärwert (z. B. 0) sind, die das Ende eines gültigen Codewortes bilden können , undi einem Satz ganzer Zahlen angehört, der die Zahl 1 und alle höheren Zahlen einschließt, wobei i einen Wert besitzt, der die Startstelle definiert, deren Nummer die maximal zulässige Codewortlänge nicht übersteigt.4. Verfahren nach den Ansprüchen 1 bis 3, dadurch gekennzeichnet, daß die Abfrage im Schritt b) für jede Bitgruppe mittels einer UND-Verknüpfung erfolgt, für die die invertierten Bits der Y niedrigsten Stellen der Gruppe zusammen mit dem Ergebnis einer ODER-Verknüpfung der restlichen Bits der Gruppe herangezogen werden, und daß für jede Gruppe, für die die UND-Bedingung erfüllt ist, ein "Erfüllungs"-Signal erzeugt wird.5. Verfahren nach den Ansprüchen 1 bis 4, dadurch gekennzeich-Y0 971 012 209881/06222227H8net, daß der besondere Satz von Schieberegisterstellen, der jedesmal im Schritt d) ausgewählt wird, als höchste Stelle die Stelle W einschließt, wobei W die maximal zulässige Codewortlänge ist.6. Verfahren nach den Ansprüchen 1 bis 5, dadurch gekennzeichnet, daß beim Vorliegen eines Rahmens der Länge W keine der abgefragten Gruppen von Schieberegisterstellen ein "Erfüllungs"-Signal liefert.7. Verfahren nach den Ansprüchen 1 bis 6, dadurch gekennzeichnet, daß beim Codieren auch die Lauflänge in jedem Codewort in der Weise berücksichtigt wird, daß jede 1 der Bitfolge von der benachbarten 1 durch eine Anzahl von Nullen getrennt ist, die innerhalb eines vorgegebenen Bereichs ganzer Zahlen fällt.8. Verfahren nach Anspruch 7, dadurch gekennzeichnet, daß der Bereich der ganzen Zahlen sich von 1 bis 8 einschließlich erstreckt.9. Verfahren nach Anspruch 7, dadurch gekennzeichnet, daß der Bereich der ganzen Zahlen sich von 2 bis 7 einschließlich erstreckt.10. Vorrichtung zur Durchführung des Verfahrens nach den Ansprüchen 1 bis 9, dadurch gekennzeichnet,a) daß ein Assoziativspeicher (20; Fig. IA) vorgesehen ist, von" dessen in Zeilen angeordneten Speicherelementen zumindest einige auch einen drii.--i-.--n, 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, mindestens soviele Speicherelemente pro Zeile enthält, als das längste Codewort unterschiedlicher209881/0622YO 971 0122227H8Länge Bits aufweist,daß der zweite Teil (24) des Speichers, in dem die ursprünglichen Bitfolgen gespeichert sind, pro Zeile soviele Speicherelemente enthält als die längste der originalen Bitfolgen Bits aufweist, daß die in diesem Teil des Speichers zur Speicherung von Bits nicht benötigten Speicherelemente sich in ihrem neutralen Zustand befinden, daß im dritten Teil (26) des Speichers 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; Fig. IA) 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) daß für ein aus dem ersten Teil des Speichers 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; Fig. IB) vorgesehen ist, die aufgrund 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, entspricht und die Anzahl der seriell in das Argumentregister vor dem nachfolgenden Vergleich eingegebenen Bits der Längenangabe entspricht.YO 971 012 · 209881/06222227U8lL Vorrichtung nach Anspruch 10 zur Umsetzung eines eine Reihe von Codewörtern unterschiedlicher Länge enthaltenden Bitstromes in eine Reihe decodierter Bitfolgen, deren Längen ein konstantes Verhältnis zu den Längen der entsprechenden Codewörter bilden, von denen jedes in einer von mehreren unterschiedlichen Wortende-Bitfolgen endet, dadurch gekennzeichnet, daßa) ein als Schieberegister ausgebildetes Eingangsregister (200; Fig. IB) vorgesehen ist, dessen Stufen fortlaufend numeriert sind und das einen sog. Rahmenbezugspunkt am Ende einer solchen Stufenfolge aufweist,b) eine Eingabevorrichtung (296) vorgesehen ist zur seriellen Eingabe der Bits eines Bitstromes,c) eine Schaltung (202) zur Entscheidung über die Rahmengröße vorgesehen ist, die das Vorliegen oder Fehlen von Wortende-Bitfolgen in den 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,und daß Mittel zum Decodieren des Bitmusters vorgesehen sind.12. Vorrichtung nach den Ansprüchen 10 und 11, dadurch gekennzeichnet, daß eine Steuerschaltung vorgesehen ist, die auf die von der Schaltung zur Entscheidung über die Rahmengröße anspricht zum Bestimmen der Biteingabe- und Verschiebeintervalle, die während der Betätigung der Eingabevorrichtung zwischen der laufenden Operation der Decodiereinrichtung und deren nächster Operation verstreichen.yo 971 012 209881/0622
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 true DE2227148A1 (de) | 1973-01-04 |
DE2227148B2 DE2227148B2 (de) | 1975-03-27 |
DE2227148C3 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 |
US4502036A (en) * | 1981-09-25 | 1985-02-26 | Mitsubishi Denki Kabushiki Kaisha | Encoding and decoding systems 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 |
EP0162558B1 (de) * | 1984-05-21 | 1991-08-21 | Matsushita Electric Industrial Co., Ltd. | Verfahren und Vorrichtung zur Erzeugung eines lauflängenbegrenzten 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 |
US6543024B2 (en) | 1996-02-09 | 2003-04-01 | Overland Storage, Inc. | Write format for digital data storage |
US6167550A (en) * | 1996-02-09 | 2000-12-26 | Overland Data, 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 |
---|---|---|---|---|
US3051940A (en) * | 1958-09-04 | 1962-08-28 | Bell Telephone Labor Inc | Variable length code group circuits |
US3016527A (en) * | 1958-09-04 | 1962-01-09 | Bell Telephone Labor Inc | Apparatus for utilizing variable length alphabetized codes |
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 |
---|---|
DE2227148C3 (de) | 1975-11-06 |
CA969670A (en) | 1975-06-17 |
DE2227148B2 (de) | 1975-03-27 |
BE784541A (fr) | 1972-10-02 |
US3689899A (en) | 1972-09-05 |
IT950859B (it) | 1973-06-20 |
FR2140408A1 (de) | 1973-01-19 |
JPS5321257B1 (de) | 1978-07-01 |
GB1336824A (en) | 1973-11-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE2227148A1 (de) | Verfahren zur verarbeitung digitaler daten | |
DE2540472C3 (de) | Verfahren und Schaltungsanordnungen zur Codierung binärer Daten unter Anwendung eines abgewandelten Null-Modulationscodes | |
DE2508706C2 (de) | Schaltungsanordnung zur Codierung von Datenbitfolgen | |
DE2364212C3 (de) | Schaltungsanordnung zur Codierung von Binärziffern | |
DE2513862C2 (de) | Vorrichtung zum Decodieren von Codes minimaler Redundanz und variabler Länge | |
DE2210044C2 (de) | Verfahren zum Umsetzen von Codewörtern | |
DE1082435B (de) | Addierwerk | |
DE2205422A1 (de) | Verfahren zur Verarbeitung verdichteter Daten | |
DE2139731A1 (de) | Anordnung und Verfahren zur Code Um Setzung mit einem Assoziativ Speicher | |
CH656760A5 (de) | Verfahren und anordnung zur sicherstellung der start-synchronisation eines aus bit-impulsfolgen bestehenden telegramms innerhalb eines empfaengers. | |
DE2264090B2 (de) | Datenverdichtung | |
DE2614916A1 (de) | Konverter zur codeumwandlung | |
DE2153517A1 (de) | Anordnung zur Codeumsetzung | |
DE2735319A1 (de) | Schaltungsanordnung zur zusammenhaengenden codierung von zeichen und zur zeichendecodierung der ursprungszeichen | |
DE2805294C2 (de) | Codierende Übertragungsanlage für Faksimile-Signale | |
DE3303269C2 (de) | ||
DE2047868A1 (de) | Schaltung zur Korrektur von Einzel fehlern in den Wortern eines zyklischen (n, k) Codes | |
DE3137704A1 (de) | Vorrichtung zum decodieren eines baumfoermigen codes variabler laenge | |
DE2000565A1 (de) | Fehlerkorrigierendes System zur Korrektur mehrfacher,zufaelliger Fehler | |
DE1119567B (de) | Geraet zur Speicherung von Informationen | |
DE2826454C3 (de) | Faksimilesignal-Codiersystem | |
DE3329023A1 (de) | Einrichtung zum pruefen logischer schaltwerke | |
DE1562051B2 (de) | Schaltungsanordnung zur erzeugung einer eindeutigen gruppe von m x n bits | |
DE2645621A1 (de) | Blockfolgenverarbeitender prozessor fuer nicht gleichmaessig kodierte digitale daten | |
DE2525394C3 (de) | Verfahren und Schaltungsanordnung zum Übertragen, Einspeichern und Ausspeichern von binärcodierten Datenblöcken |
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 |