DE2205422C2 - Verfahren und Einrichtung zur Dekompression verdichteter Daten - Google Patents

Verfahren und Einrichtung zur Dekompression verdichteter Daten

Info

Publication number
DE2205422C2
DE2205422C2 DE2205422A DE2205422A DE2205422C2 DE 2205422 C2 DE2205422 C2 DE 2205422C2 DE 2205422 A DE2205422 A DE 2205422A DE 2205422 A DE2205422 A DE 2205422A DE 2205422 C2 DE2205422 C2 DE 2205422C2
Authority
DE
Germany
Prior art keywords
code
bits
decoding
line
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.)
Expired
Application number
DE2205422A
Other languages
English (en)
Other versions
DE2205422A1 (de
Inventor
John Mt. Kisco N.Y. Cocke
Jacques Henri Briarcliff Manor N.Y. Mommens
Josef Yorktown Heights N.Y. Raviv
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE2205422A1 publication Critical patent/DE2205422A1/de
Application granted granted Critical
Publication of DE2205422C2 publication Critical patent/DE2205422C2/de
Expired legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • H03M7/4025Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code constant length to or from Morse code conversion
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • H03M7/42Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code using table look-up for the coding or decoding process, e.g. using read-only memory
    • H03M7/425Conversion 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 for the decoding process only

Landscapes

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

Description

Die Erfindung bezieht sich auf ein Verfahren zur Dekompression verdichteter Daien nach dem Oberbegriff des Hauptanspruchs und eine Einrichtung zur Durchführung des Verfahrens.
Die Verdichtung von Daten bei ihrer Übertragung oder während sie in Langzeitspeichern abgespeichert sind kann über eine Codierung veränderlicher Länge vorgenommen werden. Ein Codierschema dieses Typs bewirkt, daß Bitreihen fest vorgegebener Länge in Bitreihen veränderlicher Länge umcodiert werden, wobei die häufiger vorkommenden Codes von Bltreihen dargestellt werden, die kürzer sind als die der Codes fest vorgegebener Länge. Diese Umverteilung von Codes fester Länge in Codes veränderlicher Länge ist als Huffman-Codierung bekannt (K. Steinbuch. Taschenbuch der Nachrichtenverarbeitung, Springer-Verlag, 1962, Seiten 83. 1020, 1023). Bei sehr sinnvoller Zuordnung von Codes veränderlicher Länge ergibt sich bei gegebenen Daten dann eine wesentlich geringere Länge derartiger Codes gegenüber den entsprechenden Codes fest «orgegebener Länge, obwohl viele Codes veränderlicher Länge wesentlich langer als die entsprechenden Codes fester Länge sind.
Während die Codierung auf der Basis veränderlicher Länge für eine Verdichtung der Daten sehr nützlich ist. müssen die in dieser Form codierten Daten, bevor sie von einem Datenprozessor verarbeitet werden können, wieder in eine Codeform mit fester Länge umgewandelt werden. Zu diesem Zweck sind Decodierschemata vorgeschlagen worden, die jedoch den Nachteil haben, daß sie spezielle Hardware erforderlich machen, die in konventionellen Datenprozessoren normalerweise nicht vorhanden ist. Es besteht die Notwendigkeit für ein günstiges Verfahren für die Verarbeitung von Codes veränderlicher Länge in konventionellen Datenprozessoren, ohne dafür konventionelle Hardware verwenden zu müssen und ohne bei der Verarbeitung dieser Daten einen wesentlichen Zeitverlust in Kauf nehmen zu müssen.
Der Erfindung liegt die Aufgabe zugrunde, ein Verfahren zur Dekompression verdichteter Daten der
iingangs genannten Art einzugeben, das auch von Datenprozessoren durchgeführt werden kann, deren Decodiermöglichkeit nur für die Verarbeitung von Code-Bitreihen fest vorgegebener Länge ausgelegt sind, die wesentlich kürzer als einige Code-Wörter veränder- ■> licher Länge sind; außerdem soll eine Einrichtung zur Durchführung des Verfahrens angegeben werden, die eine schnelle Decodierung ermöglicht.
Diese Aufgabe wird durch die in den Ansprüchen 1 und 2 gekennzeichnete Erfindung gelöst; Ausgestaltun- m gen der Erfindung sind in den Unteransprüchen gekennzeichnet.
Dei Decodiervorgang erfolgt in einem zweistufigen Prozeß, bei dem zuerst alle veränderlichen Codewörter, die kürzer oder gleich einer Mindestlänge sind, in die ΐΐ entsprechenden Codewörter fester Länge umgesetzt werden und alle übrigen Codewörter eine Vordecodierung erfahren; im zweiten Prozeßschritt wird mit Hilfe der Vordecodierung und dem Restteil des vordecodierten Codeworts das endgültige, entsprechende Codewort 2» fester Länge ermittelt Bei der Vordecodierung wird beispieisweise eine Basisadresse in einem Speicher mit den Codewörtern fester Länge ermittelt, die darch Addition mit dem Restteil des vordecodierten Codeworts die Adresse bestimmt, an der das Codewort fester >■> Länge gespeichert ist
Damit werden die Vorteile erzielt, daß für das Decodieren lediglich konventionelle Hardware verwendet werden kann, die keine speziellen Zusätze mehr erfordert. Es können Datenprozessoren benutzt wer- in den, deren Decodiermöglichkeiten auf die Verarbeitung von Code-Bitreihen fest vorgegebener Länge beschränkt sind. Die Verarbeitung geschieht ohne wesentliche Einbuße an der Leistungsfähigkeit des Systems als Ganzes. i=,
Ein Ausführubgsbeispiel der Erfindung ist in den Zeichnungen dargestellt und wird anschließend näher beschrieben. Es zeigt
Fig. 1 eine Tabelle mit einem einfachen Beispiel der konventionellen Huffman-Codierung zur Umwandlung -to von Codes :nit fester Länge in Codes mit veränderlicher Länge,
Fig. 2 eine Tabelle mit einem Beispiel einer neuen Form der Huffman-Codierung, worin die Codes, die eine bestimmte vorgegebene Länge (in diesem Fall 4 Bits) r> überschreiten, so eingeschränkt werden, daß der Vorgabeteil eines solchen Codes eindeutig die Codelänge bezeichnet,
Fig. 3 die in einem Primärzprozessor fund einem Sekundärprozessor 5 gespeicherten Decodiertabellen zur Decodierung von Codes mit veränderlicher Länge, die nach dem Codeschema in F i g. 2 erzeugt wurden,
Fig. 4 in einem Schaubild das Decodierschema und die Art, in welcher die beiden Prozessoren fund Szum Decodieren der einzelnen Codes mit unterschiedlicher Länge unabhängig voneinander benutzt werden. Diese Betriebsart wird nachfolgend als unabhängige Decodierung bezeichnet im Gegensatz zur abhängigen Decodierung (s. F i g. 8), bei der die Decodierung eines jeden Codes mit veränderlicher Länge bedingt wird durch das wj Decodicrergebnis des vorhergehenden Codes mit veränderlicher Länge,
F i g. 5 in einer Tabelle ein Beispiel für das abhängige Codierschema, worin die Codierung eines jeden Zeichens vort der des vorhergehenden Zeichens h-, abhängt,
Fig. 6 in einer Tabelle ein Beispiel der abhangigen Codierung,
Fig. 7 den aus dem Codebeispiel der Fig. 6 resultierenden Bitstrom und die Art der Analyse eines solchen Bitstromes nach der Erfindung,
Fig.8 in einem Diagramm den für ein abhängiges Decodierschema verwendeten Prozessor, der als eines seiner Bestandteile den in Fig.4 gezeigten unabhängigen Decodierer verwendet,
Fig.9 die im abhängigen Decodierer (Fig.8) zum Decodieren der Information, die nach dem in Fig.5 gezeichneten Schema codiert wurde, verwendeten Tabellen Dund D',
Fig. 10 in einem allgemeinen Blockdiagramm den unabhängigen Decodierer als Ganzes mit seinen verschiedenen Bauteilen,
Fig. 11 ein Ablaufdiagramm der unabhängigen Decodierung, die durch das Ausführungsbeispiel der F i g. 12 bis 16 ausgeführt wird,
Fig. 12—16 einzelne Schaltbilder eines unabhängigen Decodierers für die Ausführung der in F i g. 11 dargestellten Decodierung,
Fig. 17 ein allgemeines Blockdiaeramm des abhängigen Decodierers als Ganzes ii.it den einzelnen Bauteilen,
Fig. 18 ein Ablaufdiagramm der abhängigen Decodierung, die durch das in den Fig. 19 bis 21D in Verbindung mit dem in den Fig. 12, 13, 15 und 16 gezeigien Gerät dargestellte Ausführungsbeispiel ausgeführt wird und
Fi g. 19-21D detaillierte Schaltbilder von Teilen des abhängigen Decodierers zur Ausführung des in Fig. 18 gezeigten Decodierprozesses.
Allgemeine Beschreibung
(Fig. 1-9)
Für ein angemessenes Verständnis der Erfindung sind einige Vorkenntnisse der Codierung mit veränderlicher Länge wesentlich. Eine der bekanntesten Arten der Codierung mit veränderlicher Länge ist die Huffman-Codierung, von der ein Elementarbeispiel in F i g. 1 gezeigt ist. Mit gewissen Änderungen, die später genauer erklärt werden, wird diese Art der Codierung im vorliegenden illustrativen System benutzt. In diesem Beispiel wird angenommen, daß die ganze in Betracht kommende Datenbasis nur vier verschieden? Zeichen A, B, C und D enthält, die zur Darstellung von zu sendenden oder zu speichernden Informationen in verschiedener Weise angeordnet sind. Es wird weiter angenommen, daß von dieser Datenbasis am häufigsten das Zeichen A verwendet wird, wobei genau die Hälfte aller Zeichen in der Datenbasis durch ein solches A dargestellt wird, in der Häufigkeitsreihenfolge folgt in diesem speziellen Beispiel das Zeichen B, welches in der angenommenen Datenbasis ein Viertel aller Zeichen darstellt. Die übrigen Zeichen sind Cs und D's von denen angenommen wird, daß sie jeweils ein \chtel aller in der Datenbasis verwendete Zeichen bilden.
Da nur vier verschiedene Zeichen vorhanden sind, kann jedes dieser Zeichen in gewöhnlicher Notierung mit einem fes'^n Längencode durch ein anderes Codewort aus zwei Bits dargestellt werden. So kann z. B. das Ä durch das Bitpaar 00, B durch 01. C durch 10 und D durch 11 in der angenommenen 2 Bit großen Codenotierung mit fester Länge dargestellt werden, ir der nachfolgenden Beschreibung werden die Codes mit fester Länge oft .lh »ID'<-Codes oder Identitätscodes bezeichnet. Das soll heißen, sie sind mit Codes identisch, die in konventionellen Datenverarbeitungssystemen
benutzt werden.
Wenn eine Datenverdichtiing erreicht werden soll, dann werden die Zeichen A, B. C und D nicht durch Codes mit einer festen Länge von unveränderlich je 2 Bits dargestellt, sondern statt dessen durch Codes, deren Bitreihen unterschiedliche Längen von je I bis J Bits haben. Die Länge einer solchen Bitreihe wird umgekehrt in Beziehung gesetzt zu der Häufigkeit, mit der die entsprechenden Codes benutzt werden. Durch angemessene Zuordnung dieser Codes mit veränderlicher Länge (Vl.-Codes) zu den entsprechenden Zeichen kann die durchschnittliche der zur Darstellung der aus der Datenbasis abgeleiteten Zeichen verwendeten Codewörtcr kleiner als 2 Bits gehalten und dadurch die Ubertragungszeit sowie der Speicherplatz bei der Handhabung solcher Daten vor ihrer Verwendung in einem konventionellen Datenprozessor eingespart werden.
D;is Hiilfman-Codenrinzip wird ietzt im Zusammenhang mit dem einfachen Beispiel in F i g. I erklärt. Zur Codierung der Zeichen Λ. B. C und D im Huffman-Code werden diese zuerst in der Reihenfolge abnehmender F.rscheinungswahrscheinlichkeil geordnet, wie es in F i g. I durch die vertikale Anordnung von A. B. C und D in dieser Reihenfolge von oben nach unten wiedergegeben ist Der Code ist so aufgebaut, daß die Wahrscheinlichkeiten der beiden am wenigsten wahrscheinlichen Zeichen addiert werden und das Ergebnis in die Wahrscheinlichkeitsliste der anderen hineingemischt wird und dieses Verfahren fortgesetzt wird, indem immer die beiden geringsten Wahrscheinlichkeiten eingemischt werden, bis nur zwei Wahrscheinlichkeiten übrigbleiben. Jetzt läuft das Verfahren rückwärts um rechts nach links und ordnet erst die VL-Codes 0 und 1 den beiden Wahrscheinlichkeiten zu.die nach dem oben beschriebenen Mischverfahren übrigggeblieben sind. Dann werden die VL-Codes IO und Π entsprechend den beiden vorhergehenden Wahrscheinlichkeiten zugeordnet, deren Kombination die Wahrscheinlichkeit ergab, welcher soeben die 1 zugeordnet wurde. Dieses Verfahren läuft dann genauso weiter, bis man einen VL-Code für jedes der vier Zeichen A. B. C und D erhält, aus denen die angenommene Datenbasis ar.fgcbaut ist.
Durch diese Codierung wird das am häufigsten verwendete Zeichen A jetzt durch den 1 Bit großen VL-C. ode r> dargestellt, das am nächsthäufigsten verwendete Zeichen B durch den 2 Bit großen VL-Code I η und die beiden am wenigsten verwendeten Zeichen C und D durch 3 Bit große VL-Codes 110 und 1 Π gemäß Darstellung in F ι g. 1. Diese Codes mit veränderlicher Lange haben keinen Vorsatz, d. h. keiner dieser Codes kann den Anfang eines längeren Codes in diesem Satz bilden. Multipliziert man die Codelänge eines jeden Zeichens mit der Wahrscheinlichkeit des Auftretens dieses Zeichens und addiert dann die Ergebnisse, so erhält man eine durchschnittliche Codelänge von 1.75 Bits pro Zeichen, was weniger ist als eine Länge von 2 Bits der ID-Codes für diese Zeichen. Somit wurde eine Datenverdichtiing durch diese Codierung mit veränderlicher Länge erzielt.
Aus diesem Beispiel ist nicht zu schließen, daß die Huffman-Codierung einer bestimmten Datenbasis notwendigerweise für den am häufigsten auftretenden Code eine Länge von nur 1 Bit aufweist. Die Zuordnung von Codes verschiedener LäHtc λιϊ den verschiedene" Zeichen oder Datenelementen, die eine gegebene Datenbasis beiden, hängt ab von der jeweiligen Beziehung der zugehörigen Erscheiniingswnhrsehcin-Henkelten. In einigen Fällen kann die Erscheinungs- oder Auftrctungswahrscheinlichkcit so fein abgestuft sein, daß viele verschiedene Zeichen durch Codes mit derselben Länge dargestellt werden.
Bei der Huffman-Codierung kann kein Code den Anfang eines längeren Codes bilden, zwei verschiedene Codes derselben Länge können jedoch gemeinsam einen Vorsatzteil haben. In F i g. 1 stellen z. B. die J Bit langen Codes 110 und 111 die Zeichen C bzw. D dar und haben gemeinsam den 2 Bit großen Vorsatzteil 11. Bei der normalen Huffman-Codierung können Codes verschiedener Längen auch gemeinsame Vorsat/tcile haben, vorausgesetzt, daß dieser Vorsatzieil nicht ein ganzes Codewort darstellt. So haben z. B. in Fig. I die Codes 10 bzw. 110, welche die Zeichen B bzw. C darstellen, gemeinsam den 1 Bit großen Vorsatz 1.
I Im die vorliegende Erfindung zu praktizieren, wird der Huffman-Codierung eine besondere Beschränkung so auferlegt, daß keine zwei Codes unterschiedlicher Länge, welche N Bits überschreiten, denselben W-Bit-Vorsatz haben, worin N eine feste Zahl ist. welche /.. I). die Anzahl der Eingangscodebits angibt, die bequem durch den verfügbaren Speicher gleichzeitig verarbeitet werden können. Diese Beschränkung reduziert den erzielbarcn Verdichtungsgrad etwas, dieser Nachteil ist jedoch relativ klein im Vergleich zu gewissen später /ti beschreibenden Vorteilen, die sich auf diese Weise realisieren lassen. Mit diesen eingeschränkten Codes unterschiedlicher Länge ist jeder Λ/Bit-Vorsatz eindeutig einer bestimmten Codelänge zugeordnet. Dadurch wird die Art des hier betrachteten Decodierprozesscs stark vereinfacht, da Codes mit einer größeren Länge als N Bits bequem durch ein Gerät verarbeitet werden können, das gleichzeitig nur N Bits verarbeiten kann.
Ein spezifisches Beispiel der eingeschränkten Codierung mit veränderlicher Länge ist in F i g. 2 gegeben. In diesem Beispiel wird eine Datenbasis mit 32 verschiede nen Zeichen angenommen, die normalerweise durch ID-Codes mit einer festen Länge von 5 Bits dargestellt werden. Diese 32 Zeichen können z. B. aus den 26 alphabet! chen Zeichen und sechs nichtalphabetischen
1 C5ttllV.ll. v* 1
Die Aufiretenswahrscheinlichkeit der entsprechenden Zeichen wird so angenommen, daß ihre eingeschränkten Huffman-Codes zwischen 3 und 8 Bits Länge schwanken. Im vorliegenden Beispiel wird die Länge des Vorsatzes N angenommen mit 4 Bits (N muß nicht unbedingt genauso lang sein wie ein ID-Code). Für ein Codewort mit einer Länge von 4 Bits oder weniger enthält der 4 Bit lange Vorsatz das ganze Codewor· und vielleicht einen Teil des nächstfolgenden Codewortes. In solchen Fällen wird der 4 Bit lange Vorsatz nicht als Längenvorsatz behandelt. Wo die Codelänge 4 Bits überschreitet, geben die ersten vier Bits eindeutig die Codelänge an.
Die nach dem soeben beschriebenen neuen Codierkonzept aufgebaute Tabelle in F i g. 2 enthält 32 Codes mit veränderlicher Länge (VL-Codes), welche die 32 verschiedenen in dieser angenommenen Datenbasis verwendeten Zeichen darstellen und mit den zugehörigen Codelängen, den 4 Bit langen Vorsätzen und den Festlängen-ID-Codes in der Tabelle aufgeführt sind. Die 4 Bit großen Vorsätze werden nur dann als »Längenvorsätze« behandelt, wenn die Länge der VL-Codes fünf oder mehr Bits beträgt. Für einen kürzeren Code hat der 4 Bit große in der Tabelle gezeigte Vorsatz (der in manchen Fällen ein Bit vom nächstfolgenden VL-Code
enthalten kann) keine l.ängcnbcdcutung. Wo das Codeworl kleiner als 4 Bits ist, stellen die 4 Bit grollen in der Tabelle gezeigten Vorsätze alle möglichen Konfigurationen aus 4 Hits dar, die dieses Codcwort als gemeinsamen Vorderteil enthalten können.
Wie bereits erwähnt wurde, braucht der 4 Hn große Längenvorsatz eines größeren Codeworlcs (d.h. eines Codewortes mit mehr m|s 4 Bits Länge) nicht ι. nhcdingt eine dii^i<i numerische Darstellung der Codclänge zu sein. Die ein/ige Förderung besagt, daß dieser Vorsatz eine bestimmte Codelänge und keine andere darstellen muß. line gegebene ("odelüngc kann aber natürlich (lurch irgendeinen von verschiedenen l.ängcnvorsätzen dargestellt werden, von denen leder eine beslimmle Codelänge und keine andere wiedergibi. In der Tabelle der F ι g. 2 können z. B. Codewörter mit einer Länge von b BiIs jeden der l.ängenvorsälze 0011. (K)Ol und 0010 haben, die alle ausschließlich für b Bit große (Odcwörler reservicrl sind.
Das M'haiihiid in F ι g. 3 zeigt die Anlage iiei Tanem-ti in einem l'rimärprozessor /'und in einem Sekuiulärpro zessor S zur Decodierung von /.eichen, die nach dem in T i g. 2 gezeigten eingeschränkten Huffman-Code endiert wurden. I i g. 4 zeigt allgemein die Beziehung zwischen diesen beiden Prozessoren. Die /V Bit großen Vorsätze aller mil veränderlicher Länge codierten /eichendarslellungen werden durch den Primärpiuzessor /' decodiert. Wenn ein F.ingabccode mit seiner Länge /V Bits nicht überschreitet (für /V werden im vorliegenden Beispiel vier Bits angenommen).'icfcrt der l'nmärzprozessor P die fcrtigdecodierle Ausgabe. Wenn ein Eingabecode eine größere Länge als 4 Bits hai. erfolgt die Decodierung in zwei Stufen. In der ersten Stufe des Dccodierprozesses wird der l.ängenvorsatz (die ersten vier Bits) des F.ingabecodes decodiert und daraus der Basisieil einer Adresse in dem Sekundärprozessor S gewonnen. Zu dieser Basisadresse wird ein Verschiebungswert addiert, der durch die übrigen Stellen des Fingangscodes dargestellt ist. Die fertigdecodierte Ausgabe, ein 5 Bit großer ID-Code, findet sich an der durch die Kombination dieser beiden Adreßteile angegebenen Adresse. Die Kombination dieser Adreßteile br^'-I'jhl ^.?'η'Λ arithmpi icrhp AHrtitinn rrit K.\rh 711 bringen. Sie läßt sich erreichen durch serielle Zuführung und Verschiebung von Adreßbus gemäß späterer Erklärung.
Strukturell können die in den F i g. 3 und 4 gezeigten Primär- und Sekundärprozessoren P und .9 aus konventionellen Speichereinheiten (oder Teilen solcher Einheiten) bestehen, die für diese Decodierfunktionen speziell zugeordnet sind. Obwohl es sich bei diesem Speichertyp um konventionelle Bauelemente handelt, ist ihre Betriebsweise zur Erzielung der oben beschriebenen F.rgebnisse hier eindeutig. Um das Konzept der vorliegenden Erfindung auszuführen, weist die in dem Primärprozessor Pgespeicherte Tabelle drei Felder auf. die entsprechend mit AB. L und C bezeichnet sind. Das AB-FeId speichert die Codes mit fester Länge, die abhängig von der Länge des eingegebenen VL-Codes in einigen Fällen den decodierten ID-Ausgang und in anderen eine teilweise decodierte Adresse für den Sekundärprozessor 5 darstellen. Das L-FeId speichert binäre Darstellungen, die sich auf die zugehörigen Codelängen beziehen. Im vorliegenden Beispiel ist L um den Zahlenwert 1 kleiner als die Codelänge im Fall aller Codes, deren Länge 4 Bits nicht übersteigt (da in diesem Beispiel /Vden Wert von 4 Bits hat). Wo die Codelänge 4 Bits nicht übersteigt, isi L um den Zahlenwert 1 kleiner als die Differenz zwischen der ( Odelänge und den 4 Bits. Das C-IeId des Primärprozessors /'speichert ein I-BiI, wenn die COdelänge 4 Bits übersteigt und speichert ein 0-Hit, wenn die Codelänge 4 BiIs nicht Überschreilei.
Der Sekundärprozessor .V, Fig. ? und 4. enthält eine Tabelle der verschiedenen 5 Bit großen IDCodes, die allen VL-Codes einsprechen, deren Länge 4 Bits überschreitet. 25 der 32 möglichen I D-Codes sind in der Tabelle .Vgespeichert. Die übrigen ID-Codcs sind in der Tabelle /' gespeichert, da sie entsprechend den sieben VL-Codes zugeordnet sind, deren Länge 4 BiIs nicht überschreitet. In der Tabelle S sind die ID-Codes in (iruppen angeordnet. Diejenigen ID-Codes, welche in den Stellen 0 bis 10 gespeichert sind, einsprechen den elf möglichen VL(OiIeS. deren Länge H Bus (I ig. 2) belrägl. Diejenigen ID-Codes. die in den Stellen 12 bis 2 I der 1 libelle .Vgespeichert sind, entsprechen den zwölf Vl ( Odes, deren I .äuge fi Bits belrägl. Die in den Stellen 24 und 2r) der Tabelle S gespeicherten ID-Codes
Cllf>|MClli0rt llili /VV C ι Π".!'.),.rC
Länge r> Bits hehägt. Die übrigen Adressen in Tabelle .V werden im diesem speziellen Beispiel nicht benutzt. Die Bedeutung dieser einzelnen IDCOde ( iruppen in der Tabelle .S'geht aus der späteren Beschreibung hervor.
letzt werden als Beispiel einige Decodieroperationen unter Bezug auf die F i g. 2. 3 und 4 beschrieben. Als erstes Beispiel wird ein Lingabc-Vl.Code OOIOOI angenommen. Die ersten vier Bits. 0010. stellen den l.angenvorsai/ dar. da N — 4. In diesem speziellen Codierschema gibt der Vorsatz 0010 die Codelänge eindeutig mil b Bits an. Der 4 BiI große Vorsalz wird seriell in das 4 Bit-Adreßregister 10 tier T' i g. 4 geleitel, wo er eine Stelle in der Speichereinheil des Primärprozessors /'adressiert, die der Zahl 2 in der Tabelle /'der F i g. 3 entspricht. An dieser Speicherstelle speichert das AB TcId die binäre Darstellung 00100; das L-FeId die binäre Darstellung 01 und das C-FeId in 1 - Bit und gibt damit eine Fingangscodelänge von mehr als 4 Bits an. Somit ist eine Dccodieroperaiion in zwei Schritten erforderlich. Im ersten Schritt wird die Eintragung im AB-FcId 00100 ausgelesen in ein Dalenregister 20. von welchem sie in ein 5-Bit-Adreßregisier 24 im Sekundiirnriv/pssnr \ in F i e. 4 übertragen wird. Die L-Fcldein tragung 01 wird ausgelesen und um 1 erhöhl, um die Anzahl der zusätzlichen Vl.-Codebits anzugeben, die in das Register 24 zu leiten sind. In diesem Tall werden zwei weitere VL-Codebils benötigt, nämlich die beiden verbleibenden wertniederen Bits Ol des Eingabe VL-Codes 001001. Da diese beiden zusätzlichen Bits in das Register 24 vom wertniederen Ende her hincingelangcn. wird der vorhandene Inhalt des Registers 24 um zwei Positionen zum oberen Ende dieses Registers verschoben, wodurch die werthöchstens Bits 00 der Anfnngsadresse 00100 ausfallen. Durch diese serielle Eingabe und Verschiebung speichert das Register 24 jetzt die binäre Adresse 10001 oder in Dezimalschreibweise 17. An der Stelle 17 der Tabelle 5 in Fig. 3 findet sich der 5 Bit große I D-Code 10010. Dieser wird aus dem in F i g. 4 gezeigten Speicher 26 des Sekundärprozessors ausgelesen in ein Datenregister 28. wo er als AusgabeTD-Code wiedergewonnen wird, der dem Eingabe-VL-Code 001001 entspricht.
Wenn in obigem Beispiel die aus dem Speicher 12 ausgelesene Eintragung 00100 im AB-FeId anschließend aus dem Datenregister 20 der Fig.4 in das Adreßregister 24 übertragen und dann um zwei Stellen nach links im Register 24 verschoben wurde, so wird dadurch effektiv auf eine Basisadresse 10000 (oder 16) im
Speicher 2β des Sekundä'rprozessors .S' hingewiesen. Zum Zeitpunkt dieser Linksversehiebung wurden die beiden übrigen Hits 01 des Vl.-Codes jedoch an die verkettete Hitreihe 100 angehängt, die übrigblieb, nachdem die beiden ersten Hits 00 aus dem Register 24 geschoben wurden, so dall die Lndadressc lOOOI (oder 17) um 1 gegenüber der Ilasisadresse verschoben war. Dasselbe Lr.febnis kann man erzielen, indem aus dem AH leid lic- J'rimärprozessorspeichers 12 cm Wert 10000 ausgelesen wird, der direkt eine Hasisadresse darstellt und dann hierzu der. Verschiebungswerl 00001 arithmetisch addiert, ohne ilen Inhalt des Adreßregisters 24 /U verschieben. Das zuerst beschriebene Verfahren wird jedoch bevorzugt, weil hierbei eine arithmetische Addition vermieden wird.
Sobald der Inhalt des Datenregisters 20 in das Adreßregister 24 übertragen und die übrigen Hits des laufenden VI.-Codes in das Register 24 geschoben wurden, kann die Decodierung des nächstfolgenden VI.-Code beginnen, indem die Bits dieses neuen Vl.-Codes in das Register 10 übertragen werden. Während also der Sekuruliirprozessor .S' noch an der Vervollständigung der Decodierung eines Vl.-Codes arbeitet, kann bereits die Decodierung des nächsten VI.Codes im Primärpro/cssor /'beginnen. Auf diese Weise können l'.ingabc-Vl.-Codes, deren Länge großer als N Hits sind, ungefähr mit derselben Geschwindigkeit decodien werden, wie Vl.-Codes decodiert werden, deren Länge N Hits nicht übersteigt, obwohl die lungeren Codes einen zusätzlichen oder zweiten Dccodierschritt erfordern.
letzt wird ein Heispiel beschrieben, in welchem der Hingabe-Vl.-Code eine Lange von nur drei Hits oder ein Hit weniger als N hat. Dieser VL-Code sei mit 110 angenommen. Da das Adreßregister 10 vier Hitpositionen hat. speichert es den hereinkommenden 3 Bit großen Code !'0 in den drei werthöchsten Positionen und die vierte Position wird mit dem ersten Hit des nächstfolgenden VI.-Codes (der 1 oder 0 sein kann) aufgefüllt. In diesem Lall muß der Speicher 12 so angeordnet sein, dal! der Ausgabe-ID-Code sich an einer von zwei binären Adressen findet. 1100 oder 1101, v!. h.. Cm:".vc;!^t ;:" ύ"·; V.!· -L1 '-h! !2 ■>■!«·· 2" d"r Adreßzahl 1 3 der Tabelle /'in F i g. 3. In jedem Lall wird der 5 Hit große Code 00010 in das Datenregister 20 als der I D-Code ausgelesen, der dem 3 Bit großen Vl. Code 110 entspricht. In diesem Lall speichert das CLeId ein 0- Bit und zeigt dadurch an. daß keine zweite Decodieroperation erforderlich ist. Das L-LeId speichert die binäre Darstellung 10 (oder 2). die bei Lrhohung um I die Zahl der Bits angibt (3). die aus dem Adreßregister 10 ausgeschoben werden, um den nächstfolgenden VL-Code in die für die Decodierung richtige Lage zu bringen.
Der bisher im Zusammenhang mit den Fig. 2—4 beschriebene Decodierprozeß behandelt diesen Eingabe VL-Code oder jedes Zeichen als einzelne zu decodierende F.inheit ohne Bezug auf einen anderen Code oder ein anderes Zeichen im hereinkommenden Informationsstrom. Diese Betriebsart wird unabhängige Decodierung genannt, da sie unabhängig von der an benachbarten Zeichen vorgenommenenen Decodierung ausgeführt wird. Wie oben jedoch schon ausgeführt wurde, läßt sich eine höhere Datenverdichtung oft dadurch erreichen, daß die Eingabezeichen in Sätzen (z. B. in Paaren) verarbeitet werden. Wenn z_ B. dar Zeichen »U« unabhängig von benachbarten Zeichen codiert wird, ergibt sich ein ziemlich langer VL-Code.
Hei Codierung in Kombination mit seinem vorhergehenden Zeichen weist es jedoch einen sehr kurzen Vl.-Code auf. sobald vorher ein Konsonant steht wie z. H. »Q«. Ils ist daher vorteilhaft, /.eichen in Siit/en und nicht einzeln zu codieren und zu decodieren. Solche Codier- und Decodicroperationen werden hier als abhängige Codierung und Decodierung bezeichnet. Die abhängige Codierung odei Decodierung kann dasselbe Gerät benutzen, das für die unabhängige Codierung oder Decodierung erfordeilich ist zusammen mit einem zusätzlichen Gerät zur Übernahme einiger weniger I iinktioncn, die bei dieser Betriebsart benötigt werden I i g. ri zeigt in einer tabellarischen Darstellung ein abhängiges Codierschenni. weli lies für eine beispielhafte Datenbasis mit \l verschiedenen Zeichen (2h alphabetische /eichen und b nichtalphabetische Zeichen: l.eerschritt. '.'. .. J. 1- und *) aufgestellt wi"de. ledes /eichen kann jeder eit in eine der drei Gruppen 0. I und 2 entsprechend dem ihm in der in Frage konnmmien Aufzeichnung ;:dcr N;:chr:c!i! v;;rhergehenden Teil eingeordnet werden. Zur Illustration sind diese drei Gruppen wie folgt definiert:
Gruppe 0 enthält das erste /eichen einer Aufzeichnung und jedes einem Vokal folgende /eichen.
Gruppe 1 enthält jedes einem nichtalphabetischen Zeichen (l.eerschritt. ? S. S, + oder *) folgende Zeichen.
Gruppe 2 enthält jedes Zeichen nach einem Konsonaten.
Zur Codierung eines Zeichens gehört zue. st seine Kinteilung in die entsprechende Gruppe 0. 1 oder 2 gemäß obiger Definition in Abhängigkeit von dem vorhergehenden Zeichen. Innerhalb jeder dieser Ciruppen erhält das zu codierende Zeichen eine bestimmte Zahl (nach der Tabelle in F i g. 5) zur Bezeichnungseiner Rangordnung relativ zu anderen Mitgliedern dieser Gruppe auf der Basis der Auftrittswahrscheinlichkeit, je niedriger diese Zahl ist um so höher ist die Auftrittswahrscheinlichkeit dieses ZeicHns innerhalb <i.*r j.'u.'1'iliijpn Gruppe. Die dem Zeichen zugeordnete Zahl bestimmt dann den Code mit veränderlicher Länge, der diesem Zeichen nach der in F i g. 2 aufgestellten Tabelle zugeordnet wird.
Das soeben beschriebene Codierprinzip läßt sich am besten an einem Beispiel zeigen. Es sei angenommen, daß der Name »C. BRICE« im abhängigen Schema zu codieren ist. F i g. b zeigt die Codierung dieses Namens nach der Tabelle in F i g. 5. Vor dem ersten Zeichen »C« steht kein anderes Zeichen und somit wird es in Gruppe 0 eingeordnet und erhält in dieser Gruppe die Rangordnung 2. Um den diesem Zeichen zugeordneten VL-Code zu finden, wird jetzt auf die in F i g. 2 gezeigte Tabelle für die unabhängige Codierung Bezug genommen, aus Λ-elcher hervorgeht, daß die Ziffer 2 dargestellt wird durch den VL-Code UO. Ein ähnliches Verfahren wird im Fall aller nachfolgenden Zeichen befolgt, und die resultierende Zuordnung von VL-Codes zu dem als Beispiel gewählten Zeichensatz ist in F i g. 6 gezeigt. Wenn der codierte Name »C. BRICE« übertragen oder aus dem Speicher ausgelesen wird, erscheint er als die Folge von VL-Codebits, die in F i g. 7 gezeigt ist.
Noch einmal zur Wiederholung: Bei der abhängigen Codierung wird jeder VL-Code auf der Basis 1. der Art oder Identität des Zeichens codiert, welches dem gerade codiert werdenden Zeichen vorhergeht (z. B. ein Vokal.
<2
oin r.onsonant oder nichialphabetisches /eichen) und 2. der Wahrst. heiiilkhkeit.daO el us laufende /eichen einen solchen vorhergehenden /eichen in der verwendeten Datenbiiiis folgt. Alle diese Aiiflrittswahrseheinlichkei-Ifii müssen für die in Trage kommende jeweilige Datenbasis vorher bestimmt werden. Der W.ihrscheinlichkcitsrang des Zeichens innerhalb der Gruppe (I' i g. 5) bestimmt seine Vl.-Codezuordnung nach der in I·' i g. 2 gezeigten Tabelle.
Eine Besonderheit der abhängigen Codierung besteht darin, daß derselbe VL-C'ode zu verschiedenen /eilen unterschiedliche /eichen darstellen kann. So stellt der Vl.-Code I IO in F i g. b /.. FJ. in einem Fall das /eichen »I« und in einem anderen Fall das /eichen »C« dar. wobei diese beiden /eichen allerdings in verschiedenen Gruppen liegen
Dm eine Folge von Vl.-Codebits zu decodieren, die im abhängigen Betrieb gebildet wurden, wie es z. B. in ΙΊ g. 7 gezeigt ist. wird jedes /eichen in der Hitreihe /iiiTsi il:ir;nifhin untersucht, ob es im unabhängigen Betrieb (!'ig. 7) codiert wurde und wird dann entspreeh nd decodiert. Die Ausgabe diciCi unabhängigen Decodierung wird jedoch nicht direkt verwendet. Sie wird weiter daraufhin decodiert, welches /eichen vorhergegangen ist, und die endgültige Ausgabe ist das Frgebnis dieser weiteren Decodieroperation. Diese Betriebsart lallt .ich besser im Zusammenhang mit F i g. 8 verstehen, die allgemein die abhängige Decodierung zeigt und im Zusammenhang mit F i g. 9. die fragmentarisch die Anlage der Decodierlabelle P und P' zeigt, die im abhängigen Prozessor verwendet werden.
Nach der Darstellung in F i g. 8 übernimmt der in F i g 4 gezeigte unabhängige Decodierer die erste Decodierung im abhängigen Dccodicrprozeß. Die Ausgabe des unabhängigen Decodierers ist ein ID-Code. der als /wischenfunktion zur Erzielung des endgültigen ID-Codes dient. Dieser /wischen-ID-Code (im vorliegenden Beispiel fünf Bits) wird in den wertniederen Positionen eines Adreßregisters 34 gespeichert, welches zu einem Speicher 36 gehört, in dem die Tabelle D(F i g. 9) gespeichert ist.
Zuerst werden die werthohen Positionen des Registers 34 mit Nullen gefüllt und das erste aus dem Speicher }6 bei jedem neuen Decodierlauf ausgelesene Stück ist ein ID-Code. der in der Gruppe 0 gespeichert w ird. Das erste Zeichen C in dem Beispiel der F i g. 6 hat z. B. einen VL-Code 110. der zu einem ID-Code 00010 durch den in F i g. 3 und 4 gezeigten unabhängigen Decodierer decodiert wird. Dieser ID-Code wird in die fünf unteren Stellen des Registers 34 gesetzt und. da. die höchsten Stellen (zwei Stellen) gegenwärtig mit Nullen gefüllt sind, ist die resultierende Adresse 0000010 oder 2. Aus Fig.9 ist zu ersehen, daß die Tabelle D unter der Adresse 2 den ID Code 00010 speichert, der dann der endgültige ID-Code wird, welcher in das Datenregister 38 der F i g. 8 ausgelesen wird. In diesem Fall sind der Zwischencode und der endgültige ID-Code einmal identisch, das ist jedoch nicht immer der Fall.
Bei der Decodierung des nächsten VL-Ccde 01000. der das Zeichen ».« darstellt, erhielt der unabhängige Decodierer beim vorliegenden Codierschema (Fig. 5 und 2) den Zwischen-ID-Code 00111. Dieser wird jetzt in die fünf wertniedersten Stufen des Adreßregisters 34 in Fig. 8 gesetzt. In der Zwischenzeit wird der in das Datenregister 38 ausgelesene vorhergehende ID-Code (00010. der das vorhergehende decodiene Zeichen »C« darstellt) zur Adresse für eine in der Tabelle D(F i g. 9).
die im Speicher 40 der F i g. 8 gespeicher; ist. ausgeführte .Suchoperation. An dieser Adresse (00010 oder 2) in Tabelle D'istder2 Bil große Gruppencode 10 gespeichert. Dieser Gruppencode 10 wird jetzt in die beiden werthohen Positionen des Adreßregisters 34 ge'ctzt. wo er mit dem Zwischen-ID-Code 001 11 in den fünf unteren Positionen kombiniert wiro und die 7 Bit große Adresse 1000111 odei die /.ahl 71 liefert. An der Adreßzahl 71 in Tabelle D (Fig. 9) findet sich der ID-Code 11100. der bei dem vorliegenden Codiersc^ema dem Zeichen ».« zugeordnet ist. Dieser ID-Code 11100 wird dann in das Datenregister 38 als endgültiger ID-Code ausgelesen. Fr wird außerdem als neue Adresse (28) benutzt, um in der Tabelle P'den richtigen Gruppencode (01) für die Decodierung des nächstfolgenden Vi.-Codes nach obiger Beschreibung zu suchen. Die obige Beschreibung, welche erklärt, wie die ersten beiden Vl.Codes im Bitstrom der I·'i g. 7 zu ID-Codes decodiert werden, welche die Zeichen »C« und ».« darstellen, zeigt die Art, in welcher die librigcn Vl.-Codes dieses Stromes im abhängigen Decodierschcma decodiert werden. F i g. 7 zeigt außerdem, wie der unabhängige Decodierer diesen Bitstrcm in die ihn bildenden VL-Codes zerlegt. Die horizontalen Klammern (wie 5, 6 und 7) in dieser Figur zeigen die 4 Bit großen »Fenster«, durch welche der Primärprozessor /' des unabhängigen Decodierers (F i g. 3 und 4) diesen Bitstrom betrachtet. Die vertikalen Pfeile, wie z. B. der Pfeil 8 in F i g. 7 zeigt auf die Bits im Strom, die im Sekundärprozessor .S' in den Decodieroperationen benutzt werden, in denen dieser Prozessor verwendet werden muß. Die Bits, die zwischen dem linken Fnde einer Fensterklammer und dem linken der folgenden F'ensterklammer (oder dem Ende des Bitstromes) stehen, sind die Bits eines VL-Codes. Sonnt liegen zwischen dem linken Ende der ersten Klammer 5 in F i g. 7 und im linken Ende der nächsten Klammer 6 die drei Bits 110 des VL-Codes (Fig. b). der in diesem Beispiel benutzt wird. Zwischen dem linken Fnde der Klammer 6 und dem linken Ende der Klammer 7 liegen die fünf Bits 01000 des zweiten VL-Codes. von denen sich nur vier in der Klammer 6 befinden. Der Pfeil 8 zeigt auf das fünfte Bit 0. mit welchem im Sekundärprozessor \ die unabhängige Uecoaierung aiii ciiesen zweiten VL-Code vervollständigt wird. 1 . g. 7 zeigt außerdem die den verschiedenen Codes während der abhängigen Decodierung zugeordneten Gruppenzahlen sowie die endgültig decodierten Zeichen.
Die vorstehende allgemeine Beschreibung basiert auf den F i g. 2 bis 9 und nimmt ein Beispiel an. in welchem nur 32 verschiedene Zeichen in der Datenbasi vorhanden sind. Diese Zeichenzahl kann dargestellt werden durch 5 Bit große iD-Codes und durch VL-Codes. die nicht langer als 8 Bits sind. Der Vorsatz /V wurde bisher mit einer Länge von 4 Bits angenommen. In der Praxis sind diese Parameter jedoch unbequem. Die meisten Datenverarbeitungssysteme sind auf die Verarbeitung von Einheiten aus acht Bits, sogenannte Bytes ausgelegt. Somit ist es praktischer, sich iD-Codes mit einer Länge von 8 Bits oder 1 Byte vorzustellen. Für die praktische Verwendung muß die Datenbasis außerdem viel mehr als 32 verschiedene Codes enthalten. In einem solchen System haben die VL-Codes in vielen Fällen eine größere Länge als 8 Bits. Diese Forderungen wurden bei der obigen aligemeinen Beschreibung nicht berücksichtigt, um diese nicht zu kompliziert zu machen, im verbleibenden Teil der Beschreibung, der sich mit Ausführungsbeispielen der
Erfindung befaßt, werden jedoch diese praktischen Betriebsbedingungen angenommen.
Genaue Beschreibung der Ausführungsbeispiele
Ausführungsbeispiele für das unabhängige und das abhängige Decodiersohema sind in den Fi g. 10 bis 21D gezeigt. Im Gegensatz zu den in den F i g. 3 bis 9 gezeigten einfacheren Decodierschemata sind diese Decodierschemata auf folgenden Annahmen aufgebaut:
ID Codelänge
VL-Codelänge
Vorsatz N
= 8 Bits
= 1 bis 16 Bits
= 8 Bits
!m Prinzip arbeitet das in den Fig. 10 bis 21D gezeigte Gerät genauso wie das in den Fig. 3 bis 9 gezeigte zur Decodierung von Codes mit veränderlicher Länge (VL-Ccdes) in entsprechende Codes mit fester Länge (I D-Codes). Daher befaßt sich die folgende Beschreibung mehr mit der spezifischen Funktion der gezeigten Schaltung als mit dem hier zugrundeliegenden Arbeitspnnzin, welches aus der vorhergehenden Beschreibung als bekannt vorausgesetzt wird.
Bei der anschließenden genaueren Beschreibung tvird zuerst angenommen, daß nur unabhängige Decodieroperationen auszuführen sind und eine derartige Operation wird im Zusammenhang mit den Fig. 10 bis 16 beschrieben. Daran anschließend wird eine abhängige Derodieroperation im Zusammenhang mit dem in Fife.. 17 bis 21D gezeigten System beschrieben. Der Betrieb des unabhängigen Deccdierers ist notwendigerweise eine Vorphase dieses abhängigen Decodierprozesses.
Unabhängige Decodierung
(Fig. 10-16)
Daf Gerät zur Ausführung dieser Funktion ist allgemein in Fig. 10 gezeigt. Es umfaßt einen Primärprozessor, der in Fig. 12 dargestellt ist, und den in F i g. 13 gezeigten Sekundärprozessor, die unabhängige in den Fig. 14—14C gezeigte Steuerlogik, den in Fig. 15 gezeigter. Primär-Impulsgenerator und den in Fig. 16 gezeigten Sekundär-Impulsgenerator. Die unabhängige Steuerlogik der Fig. 10 spricht auf Taktimpulse an, die durch die primären und sekundären Impulsgeneratoren geliefert werden und steuert den Betrieb des Primär- und des Sekundärprozessors. Die gegenseitigen Beeinflussungen dieser verschiedenen Einheiten werden jetzt erklärt.
Bekanntlich wird vorausgesetzt, daß jeder durch den Decodierprozeß erzeugte ID-Code 8 Bits oder 1 Byte lang ist. Es wird angenommen, daß die Anzahl von in einem bestimmten Decodierlauf zu erzeugenden decodierten Informationsbytes vorher bekannt ist. Im ersten Schritt einer Decodieroperation wird daher die Gesamtzahl der zu erzeugenden decodierten Bytes in einen Bytezähler 50 in F i g. 14B eingegeben. Ein Impuls wird dann auf eine Startleitung 52 in Fig. 15 gelegt, um den Decodierprozeß einzuleiten.
F i g. 11 zeigt in einem Ablaufdiagramm den unabhängigen Decodierprozeß. Die verschiedenen Kästen oder Schritte in diesem Ablaufdiagramm sind dureli Zeichen wie PI, 51 usw. bezeichnet, die ebenfalls für die verschiedenen Leitungen verwendet werden, die von den entsprechenden monostabilen Kippschaltungen MK der in den F i g. 15 und 16 gezeigten Impulsgencr;!- toren kommen. Pas Anlegen eines Impulses an eine dieser Leitungen leitet den durch die entsprechende Zahl im Ablaufdiagramm der F i g. 11 bezeichneten Operationsschritt ein. Um die Arbeitsweise der hier beschriebenen Schaltung besser verstehen zu können, sollte dauernd auf dieses Ablaufdiagramm Bezug genommen werden.
Der an die Leitung 52 in Fig. 15 angelegte Startimpuls wird übei das ODER-Glied 54 an die monostabile Kippschaltung 56 weitergeleitet. Dadurch wird ein Unterprogramm begonnen, welches aus den Schritten Pl bis P5 besteht (Fig. 11) und acht Datenbils in den Primärprozessor einleitet. Wenn die monostabile Kippschaltung 56 einschaltet, legt sie einen Impuls auf eine Leitung P1, der über das Kabel 58 in den Fig. 15,14C, 14Bund HA und von dort durch das Kabel 60 in den Fig. HA und 12 an eine Einheit läuft und die Eingabe der binären Menge 111 (dezimal 7) in einem Zähler 62 im Primärprozessor der Fig. 12 veranlaßt. Dieser Zähler 62 ist eigentlich ein Teil des in F i g. 4 gezeigten Datenregisters 20, welches zum Primärprozessor P gehört und empfängt in nachfolgenden Operationen die Längendarstellen (L), die aus dem Speicher 12 ausgelesen werden. Aus diesem Grunde wird er auch gelegentlich als Längenzähler bezeichnet.
Die Einstellung des Zählers 62 in Fig. 12 wird durch den Konverter 64 entweder in ein O-Ausgangssignal auf der Leitung 66 oder ein Nicht-0-Ausgangssignal auf der Leitung 68 umgewandelt. Diese Leitungen 66 und 68 laufen durch das Kabel 70 in den Fig. 12 und HA zu einem Tor 72, welches zum gegenwärtigen Zeitpunkt zur Leitung von Sigr.alen nicht vorbereitet ist.
Wenn die monostabile Kippschaltung 56 in Fig. 15 abschaltet, legt sie ein Signal über das ODER-Glied 74 an die monostabile Kippschaltung 76, die eingeschaltet wird und einen Impuls auf die Leitung P2 leitet, welcher überdas Kabel58in Fig. 15und HC, HB und HA läuft und vein dort durch das ODER-Glied 78 in F i g.HA und die Ader 80 in Kabel 60 in den Fig. HA und 12 zu einer nich" dargestellten Schiebeeinheit, so daß der Inhalt des Adreßregisters 10 in Fig. 12 um 1 Bit nach links verschoben und dadurch die wertniederste Position des Registers 10, welches mit einer Kapazität von 8 Bits angenommen wird, zum Empfang eines hereinkommenden Bit ve -bereitet wird.
w»nn ι ie monostabile Kippschaltung 76 in Fig. 15 ausschaltet, schaltet sie die monostabile Kippschaltung 82 ein, die einen Impuls auf die Leitung P3 setzt, die zum ODER-Glied 84 in Fig. HA führt und einen Impuls über die Leitung 86 in den Fig. HA und 12 zu einem Tor 88 leitet, um ein neues Bit in das Adreßregister 10 an dessen wertniederem Ende einzugeben. Gleichzeitig wird die Erregung über eine Verzögerungseinheit 90 in Fi. 12 auf die Eingabeeinheit ausgedehnt, so daß ein neues Bit zur Einleitung beim nächsten Mal bereitsteht, wenn das Tor 88 gepulst wird.
Wenn die monostabile Kippschaltung 82 in Fig. 15 ausschaltet, schaltet sie die monostabile Kippschaltung 92 ein, so daß ein Impuls durch die Ader P4 in den Fig. 15 und HA zum oben erwähnten Tor 72 läuft, an welches auch das Ausgangssignal des Konverters 64 in Fig. 12 angelegt wird. Wenn die Einstellung des Zählers 62 nicht 000 ist, wird die Schaltung weitergeführt durch die Ader 94 in Kabel 96 der F i g. HA, HB. I4C und 15 zu einer monostabilcn Kippschaltung 98. um diese einzuschalten. Es wird angenommen, daß dieser Vorgang im vorliegenden Beispiel abläuft. Wenn die monostabile Kippschaltung 98 einschaltet, legt sie einen Impuls über die Ader P4 in den F i g. 15 und HA an das ODER-Glied 100 und die Ader 102 in den Fig. HA und 12 «in eine Rückschaiteinheil für den Zähler 62. Dadurch
wird die Einstellung des Zählers 62 um 1 zurückgeschaltet
Wenn die monostabile Kippschaltung 98 in Fig. 15 abschaltet, erweitert sie den Stromkreis rückwärts durch eine Ader 104 und das ODER-Glied 74 zur monostabilen Kippschaltung 76, die sie wieder erregt. Die oben beschriebenen Schritte zur Erregung der Leitungen P2, P3 und P4 werden dann nacheinander wiederholt. Wenn der Impuls PA- angelegt wird, wird die Stellung des Zählers 62 in Fi g. 12 wieder geprüft und wenn sie von 000 verschieden ist, ein weiterer Zyklus der Schritte PS, P2, Pi und PA ausgeführt Die verschiedenen zur Erzeugung der Impulse PI bis PS gehörenden Aktionen sind unten aufgeführt:
P2 Inhalt des Argumentenregisters 10 um 1 Bit nach
links schieben.
P3 Ein Bit von der Eingabeeinheit in die niederste
Stelle des Registers 10 einleiten.
PA Stellung des Zählers 62 prüfen. Wenn von 000
verschieden, nach PS gehen, sonst nach P6. PS Stellung des Zählers 62 um 1 erniedrigen. Zurück nach P 2 gehen.
Wenn schließlich acht Bits in das Adreßregister 10 der Fig. 12 eingeleitet wurden, ist die Einstellung des Zählers 62 zurück auf 000 erfolgt. Wenn unter diesen Umständen die Leitung PA in den F i g. 15 und 14A zur Betätigung des Tores 72 einen Impuls erhält, läuft das 000-Ausgangssignal vom Konverter 64 in F i g. 12 durch die Ader 66 und das ODER-Glied 72 sowie die Leitung 10€ in Kabel 96 und von dort durch das ODER-Glied 108 in Fig. 15 zur monostabilen Kippschaltung 110. Damit wird angezeigt, daß die acht Datenbits in das Adreßregister 10 eingegeben wurden und der Primärprozessor ist jetzt zum Beginn der Decodierung dieser Information bereit.
Wenn die monostabile Kippschaltung 110 in Fig. 15 einschaltet, leitet sie einen Impuls über die Leitung P6 zur Einleitung des entsprechenden Schrittes P6 im Ablaufdiagramm der Fig. 11. Der Impuls auf der Leitung 6 wird durch die Kabel 58 und 60 in den F i g. 15 und 12 zu Einrichtungen zur Ausführung eines Lesezugriffs des Speichers 12 im Primärprozessor geführt. Dadurch wird die im Speicher 12 an der im Register 10 angegebenen Adresse gespeicherte Information in das Datenregister 20 ausgelesen. Dieses Datenregister 20 besteht aus drei Teilen, die entsprechend zu den Feldern C. L und AB des Speichers 12 gehören. Das aus dem C-FeId ausgelesene einzelne Bit wird in ein Flip-Flop 112 gegeben, welches ein Teil des Registers 20 ist. Der Inhalt des L-Feldes an der adressierten Stelle wird im vorliegenden Beispiel mit drei Datenbits angenommen und in den im Register 20 enthaltenen Zähler 62 eingegeben. Der aus dem AB-FeId ausgelesene Teil besteht aus einem 8 Bit großen Code und wird in einem Coderegister 114 gespeichert, welches den dritten Teil des Datenregisters 20 bildet.
Wenn die Leitung Pft in den Fig. 15 und 14A einen Impuls zur Einleitung der gerade beschriebenen Ausleseaktion erhielt, so wurde dadurch auch eine Leitung 114 in den Fig. HA und 14B erregt, um den Bytezähler 50 zurückzuschalten. Für den vorliegenden Fall wird angenommen, daß diese Aktion den Bytezähler nicht auf 0 zurückstellt. FJn in Fig. I4B gezeigter Konverter 116, der zum Bytezählcr 50 gehört, liefert ein 0- oder ein Nicht-O-Aiisgangssignal in Abhängigkeit von der /iihlcreinstelliing. Die Auswirkungen dieses Ausgangssignales werden jetzt beschrieben.
Wenn die monostabile Kippschaltung 110 in Fig. 15 abschaltet, sendet sie einen Impuls über das ODER-Glied 118 zu einer monostabilen Kippschaltung 120, die eingeschaltet wird und die Leitung Pl in den Fig. 15 und 14A erregt. Dadurch wird ein Tor 122 zur Weiterleitung des Ausgangssignales eines Flip-Flops 124 vorbereitet, dessen Einstellung angibt, ob die im
ίο Schritt P6 (Fig. 11) ausgeführte Lese-Zugriffsoperation abgeschlossen ist oder nicht Wenn die Einstellung des Flip-Flops 124 eine 1 ist heißt das, daß der Zugriff nicht beendet ist und dadurch wird ein Stromkreis weitergeführt über das Tor 122 und die Leitung 126 in den Fig. 14A und 15 zur monostabilen Kippschaltung 128, weiche eingeschaltet wird und den Stromkreis weiterführt über eine Leitung PS und ein ODER-Glied 118 zurück zur monostabilen Kippschaltung 120. Dadurch wird sichergestellt, daß diese eingeschaltet bleibt, bis die Lese-Zugriffsoperation abgeschlossen ist Wenn diese Operation abgeschlossen ist liefert der Speicher J2 in Fig. 52 ein Signa! auf die Leitung 132 in den Fig. 12 und 14A, um das Flip-Flop 124 auf 0 zurückzustellen. Das Tor 122 leitet jetzt das Signal über eine Leitung 134 in den Fig. 14A und 15 auf eine monostabile Kippschaltung 36 zur Einleitung des nächsten Schrittes (P9) der Operation.
Wenn die monostabile Kippschaltung 136 einschaltet, Hefen sie einen Impuls auf die Leitung P9 in den Fig. 15 und 14B zur Betätigung eines Tores 138, welches als Eingangssignale über die Leitungen 140 oder 142 in den Fig. 14B und 12 das 0-Ausgangssignal oder das 1-Ausgangssignal des Flip-Flops 112 empfängt, welches das einzelne C-Bit speichert. Wenn das C-Bit eine 1 ist, heißt das bekanntlich, daß der gegenwärtig zu decodierende VL-Code eine Länge von mehr als 8 Bits hat Wenn das nicht der Fall ist, hat das Flip-Flop 112 in Fig. 12 eine 0 gespeichert. Für den vorliegenden Fall wird angenommen, daß der laufende VL-Code eine
■to Länge von 8 Bits nicht überschreitet und somit ist das C-Bit 0 und demzufolge wird die Leitung 140 in den Fig. 12 und 14B erregt. Unter diesen Umständen wird durch das Signal auf der Leitung P9 das Tor 138 so erregt, daß ein Signal auf die Leitung 144 in den Fig.
14B und 15 gegeben wird, welches dann über das ODER-Glied 146 zur monostabilen Kippschaltung 148 weiterläuft.
Wenn die monostabile Kippschaltung 148 einschaltet, gibt sie einen Impuls auf die Leitung P10 in den Fig. 15 und I4B und betätigt ein Tor 150. Durch diese Einleitung einer Prüfung soll festgestellt werden, ob die Operation des Sekundärprozessors abgeschlossen wurde. Wenn der Sekundärprozpssor zur Decodierung eines vorhergehenden VL-Codes mit einer Länge von mehr als 8 Bits in Betrieb genommen wurde, muß sichergestellt werden, daß er diese Decodierung abgeschlossen hat, bevor der Betrieb des Primärprozessors wieder aufgenommen wird. Im vorliegenden Fall wurde ja angenommen, daß der Sekundärprozessor vorher nicht in Betrieb war.
to Trotzdem muß die Prüfung ausgeführt werden, da sie ein Teil des Verfahrens ist. Es wird angenommen, daß das Flip-Flop 152 in Fig. HB, welches den Betriebszustand des Sekundärprozcssors anzeigt, die 0-Einstellung aufweist. Dadurch wird ein Signal über das Tor 150 und
<*'' die Leitung 154 in den Fig. 14B und 15 auf eine monostabile Kippschaltung 156 geleitet. Wenn der Sekunclarprozessor in Betrieb war, ist jedoch das Flip-Flop 152 in Fig. HB auf I gesU'llt und veranlaßt so
'•8
ein Signal über das Tor 150 und die Leitung 158 in den Fig. 14B und 15 und schaltet eine monostabile Kippschaltung 160 ein, die dann einen Impuls auf die Leitung Pll gibt Dadurch bleibt eine monostabile Kippschaltung 158 erregt und der Impuls PlO wird so lange gehalten, wie der Sekundärprozessor noch arbeitet.
Wenn jetzt angenommen wird, daß der Sekundärprozessor nicht arbeitet und die monostabile Kippschaltung 156 in Fig. 15 eingeschaltet wurde, dann wird ein Impuls über die Leitung P12inden Fig. 15 und 14Can das Tor 162 gegeben. Durch die Erregung des Tores 162 wird der im Teil 114 des Datenregisters 20 in Fig. 12 gespeicherte ID-Code über die Kabel 163,70 und 164 in den Fig. 12 und 14C an eine Ausgabeeinheit geleitet. Hierbei handelt es sich um die Ausgabe einer Decodieroperation, die durch den Primärprozessor P ausgeführt wurde, wenn der eingegebene VL-Code höchstens 8 Bits lang war.
Wenn am Ende der soeben beschriebenen Ausgabeoperation die monostabile Kippschaltung 156 ausschaiiei, schaltet sie die nächste monostabile Kippschaltung 166 ein, die dann Impulse auf die Leitung P13 in den Fig. 15 und 14B gibt. Dadurch wird ein Tor 168 eingeschaltet und stellt mit einer Prüfung fest, ob die Bytezählereinstellung auf 0 zurückgestellt wurde. Ist das der Fall, wird mit einem erzeugten Signal angezeigt, daß das Ende des Programmes erreicht ist Wenn die Bytezählereinstellung nicht auf 0 zurückgestellt wurde, läuft die Operation zum nächsten Schritt weiter. Das Nicht-0-Signal vom Decodierer 116 läuft über das Tor 168 zur Leitung 1Ό in den Fig. 14Bund 15 und über das ODER-Glied 172 zur monostabil^ Kippschaltung 174, die dadurch eingeschaltet wird und einen Impuls auf die Leitung P14 gibt. Jetzt wird eine Reihe von in den Fig. 11 bis 14 gezeigten Schritten P14 bis P17 ausgeführt, um den nächstfolgenden VL-Code in Decodierposition zu bringen. Zu dieser Schrittfolge gehört die Verschiebung des Inhaltes des Adreßregisters 10 in Fig. 12 nach links um eine Anzahl Bitpositionen, die gleich der Länge des soeben decodierten VL-Codes ist. Dadurch wird der nächste VL-Code in die werthöchsten Positionen des Registers 10 gesetzt
Durch einen an die Leitung P14 in den Fig. 15 und 14A gelegten Impuls wird die Erregung durch das ODER-Glied 78 und die Leitung 80 in den F i g. 14A und 12 auf die Links-Schiebeeinrichtung für das Adreßregister 10 im Primärprozessor Pübertragen. Der Inhalt des Registers 10 wird daraufhin um eine Bitposition nach links geschoben. Eine monostabile Kippschaltung 174 in Fig. 15 schaltet ab und dadurch die monostabile Kippschaltung 176, die einen Impuls auf die Leitung P15 in den Fig. 15 und 14A gibt. Dieser Impuls läuft dann durch das ODER-Glied 84 und die Leitung 86 in den F i g. I4A und 12 zu den Eingabeeinrichtungen 88 bis 90 und leitet dadurch ein neues VL-Codebit in die wertniederste Position des Adreßregisters 10.
Wenn der Speicher 12 des Primärprozessors in Fig. 12 während des Schrittes P6 (Fig. 11) gemäß obiger Beschreibung adressiert wurde, wurde der Inhalt der Felder C. L und AB an der gewählten Adresse in das Datenregister 20 ausgelesen. Zu diesem Zeitpunkt wurde der L- Wert im Zähler 62 gespeichert, der einTeil des Registers 20 ist Im vorliegenden Ausführung\beispicl ist der L-Wcrt um 1 kleiner als die Länge des VL-Codes. wenn diese Codelänge H Hits ΐ· J·: überschreitet (Die Bedeutung des L bei einer y, rcn Codelänge als 8 Bit wird später erklärt) Somit speichert der in F i g. 12 gezeigte Zähler 62 jetzt den L-Wert des VL-Codes der gerade decodiert und aus dem Coderegister 114 im Schritt P12 der Fig. 11 ausgelesen wurde.
Dieser L-Wert bestimmt die Anzahl der Linksverschiebungen, die im Argumentenregister 10 durchgeführt werden muß, um den nächstfolgenden VL-Code in die richtige Registrierung zur Decodierung zu bringen.
Eine Linksverschiebung wurde bereits aufgrund der
ίο Erregung der monostabilen Kippschaltung *74 in Fig. 15 und der Leitung P14 vorgenommen, und ein neues Datenbit wurde in das Adreßregister eingegeben aufgrund der Erregung der monostabilen Kippschaltung 176 und der resultierenden Pulsbeaufschlagung der
is Leitung P15. Wenn jetzt die monostabile Kippschalung 176 ausschaltet, schaltet sie eine monostabile Kippschaltung 178 ein und gibt dadurch einen Impuls auf die Leitung P14 in den Fig. 15 und 14C. Dadurch wird ein Tor 180 zur Leitung eines Signales vorbereitet, welches entweder auf der Leitung 66 oder auf der Leitung 68 in den Fig. 14C und 12 erscheint, abhängig davor, ob die Einstellung des Längenzählers 62 000 beträgt oder nicht. Steht der Zähler nicht auf diesem Wert setzt der Konverter 64 in Fig. 12 ein Signal auf die Leitung 68 und dieses läuft durch das Tor 180 in Fig. 14C auf eine Leitung 182 und erregt die monostabile Kippschaltung 184. Infolgedessen wird die Leitung P17 in den "Pi g. 15 und 14A erregt und dieser Impuls läuft dann durch das ODER-Glied 100 und die Leitung 102 in den F i g. 14A und 12 zu einer Einheit zur Zurückstellung des Längenzählers 62 um 1.
Eine monostabile Kippschaltung 184 (Fig. 15) schaltet aus und legt einen Impuls über die Leitung 186 und das ODER-Glied 172 an die monostabile Kippschaltung 174, wodurch die Folge der Schritte P14 und folgende wieder eingeleitet wird. Diese Folge wird so oft wiederholt bis die Rückstellung des Längenzählers 62 auf 000 erfolgt ist. Im Laufe dieser Aktionen wurde der Inhalt des Adreßregisters 10 in Fig. 12 um L-M Bitpositionen geschoben aufgrund dcrTatsache, daß die erste Verschiebung erfolgt, bevor die Einstellung des Längenzählers das erste Mal geprüft und zurückgestellt wird.
Schließlich erfolgt die Einstellung des Längenzählers 62 in Fig. 12 auf 000, wenn die Rückstelloperation (Schritt P17) oft genug ausgeführt wurde. Danach folgen noch ein Verschiebeschritt (P 14) und ein Einleitungsschritt (P 15). Während dann die monostabile Kippschaltung 178 wieder einschaltet, um die Leitung P16 in den Fig. 15 und 14C zu erregen, wird das Tor 180 vorbereitet zur Leitung des O-Ausgangssignales von der Leitung 66 in den Fig. 12 und 14C. Dieses 0-Signal läuft dann über eine Leitung 188 und ein ODER-Glied 108 in Fig. 15 zu einer monostabilen Kippschaltung 110, schaltet diese ein und erregt die Leitung P6. Aus den Fig. 11 und 12 ist zu ersehen, daß die Erregung der Leitung P6 einen neuen Zugriff auf den Primärprozessorspeicher 12 einleitet. Der erste Teil des neuen VL-Codes wurde jetzt in die höchsten Positionen des Adreßregisters 10 verschoben und das Sytem ist daher startbereit für die Decodierung dieses neuen VL-Codes. Das Unterprogramm, welches die Schritte P14 bis P 17 in Fig. Il umfaßt, kann folgendermaßen zusammengefaßt werden:
/'14 Linksvcrschiebung des Inhaltes des Adreßregisters 10 um 1 Bit.
P15 Ein Bit in Adreßregister 10 einleiten.
P16 Einstellung des Längenzahlers 62 prüfen. Wenn nicht 000, Weiterführung mit Sehritt P17. Wenn 000, Weilerführung mit Schritt P%.
PYl Längenzählereinstellung um 1 herabsetzen. Weiterführung mit Schritt P14.
In dieser genauen Beschreibung wurde nur der Fall betrachtet, in welchem die Länge des VL-Codes 8 Bits nicht überschreitet Die Decodierung eines solchen VL-Codes benötigt den Sekundärprozessor S in den F ig. 4 bis 13 nicht
Anschließend wird ein Fall betrachtet, in welchem der VL-Code länger als 8 Bits ist Die ersten 8 Bits dieses VL-Codes werden im Adreßregister 10 in Fig. 12 gespeichert Dieser aus 8 Bits bestehende Vorderteil des VL-Codes wird am Anfang durch den Primärprozessor P so behandelt als ob er einen ganzen aus 8 Bits bestehenden VL-Code bildete. Das heißt, der Primärprozessor führt die Schritte P6 bis />9 in Fig. 11 genauso aus wie für jeden anderen VL-Code. In diesem Fall ist jedoch das im Flip-Flop 112 gespeicherte C-Bit 1 und nicht 0. Der L-Wert ist jetzt nicht um 1 kleiner als die Codelänge, sondern um 1 kleiner als die Differenz zwischen der Codelänge und 8 Bits, und dieser Wert ist im Längenzähler 62 gespeichert Der aus dem AB-FeId gelesene und im Coderegister 114 gespeicherte Wert ist in diesem Fall nicht ein vollständig decodierter I D-Code, sondern ein Wert, der zusammen mit neuen Daten zu einer neuen Adresse zur Lokalisierung des ID-Codes im Sekundärprozessorspeicher 26 der Fig.4 und 13 umgewandelt werden kann.
Aus der vorhergehenden Beschreibung ist bekannt, daß bei Erreichen des Schrittes P9 im Ablaufdiagramm der Fig. 11 die Leitung P9 in den Fig. 15 und 14B einen Impuls erhält und das Tor 138 vorbereitet zur Leitung entweder eines O-Ausgangssignales oder eines 1-Ausgangssignales vom das C-Bit speichernden Flip-Flop 112 in Fig. 12. Im vorliegenden Fall, wo der VL-Code länger als 8 Bits ist, hat das C-Bit den Wert 1. Somit wird die von der 1-Seite des Flip-Flops 112 kommende Leitung 142 erregt und das Signal auf dieser Leitung 142 läuft jetzt durch das Tor 138 in Fig. 14B zu einer Leitung 190, die über ein ODER-Glied 192 in Fig. 15 mit dem Eingang der monostabilen Kippschaltung 194 verbunden ist Diese monostabile Kippschaltung schaltet jetzt ein und erregt die Leitung P18 in den F i g. 15 und 14B und bereitet dadurch ein Tor 1% vor zur Leitung des 1 Signales oder 0-Signales vom Flip-Flop 152 gemäß obiger Beschreibung. Der Zustand des Flip-Flops 152 zeigt den Betriebsstatus des Sekundär- so Prozessors in einer anschießend beschriebenen Weise an. WeRn der Sekundärprozessor noch von einer vorhergehenden Decodiercperation her in Betrieb ist, steht im Flip-Flop 152 eine 1. Unter diesen Umständen wird das 1-Signal jetzt durch das Tor 196 in Fig. 14Bauf 5ί eine Leitung 198 gsieitet und schaltet eine monostabile Kippschaltung 200 in Fig. 15 ein. Das Ausgangssignal von der monostabilen Kippschaltung 200 erscheint auf einer Leitung P19, von wo es durch das ODER-Glied 192 zur monostabilen Kippschaltung 194 zurückläuft und dadurch die Ausgangsleitung P18 und die monostabile Kippschaltung 194 so lange erregt hält, wie der Status des Flip-Flops 152 in Fig. 14B auf I stehen bleibt, d. h. so lange dec .Sekundärprozessor noch von einer vorhergehenden Pecodieroperation her in Betrieb μ ist.
Jetzt wird angenommen, daß sich der Sekundärprozessor Sim Leerlauf befindet und das Flip-Flop 152 auf 0 steht. Zu dem Zeitpunkt, an welchem die Leitung P18 erregt wird, leitet das Tor 196 in Fig. 14B das O-Ausgangssignal vom Flip-Flop 152 über eine Leitung 202 in der. Fig. 14B und 15 zu einer monostabilep Kippschaltung 204, welche eingeschaltet wird und einen Impuls auf die Leitung P20 in den Fig. 15 und 14C gibt. Dieser Impuls bereitet ein Tor 206 in Fig. I4C zur Übertragung des Inhaltes des Coderegisters 114 im Datenregister 20 der F i g. 12 vor au:f das Adreßregister 24 des Sekundärprozessors S in den Fig. 13 und 14. Verfolgt man diese Operation im einzelnen, so werden die im Coderegister 114 gespeicherten acht Bits parallel über die Kabel 163 und 70 in den Fi g. 12, 14A, 14B und 14C übertragen und laufen von dort über ein Kabel 208 zum Tor 206 und die Kabel 210 und 212 zum Kabel 214 in F i g. 13, welches zum Adreßregister 24 im Sekundärprozessor S führt. Wie bereits gesagt handelt es sich hierbei um eine parallele Bitübertragung, in welcher aller aus dem Coderegister 14 der Fig. 12 ausgelesenen acht Bits gleichzeitig in das Adreßregister 24 der F i g. 13 eingegeben werden.
Somit wird der aus dem Register ; 14 aufgrund der ersten acht Bits des laufenden VL-Coaes ausgelesene S Bit große Code jetzt zur Basisadresse für die Lokalisierung des endgültigen ID-Codes im Sekundärprozessor 5. Die durch den Sekundärprozessor S ausgefüllte Decodieroperation beginnt mit dem Abschalten der monostabilen Kippschaltung 204 in Fig. 15, wodurch ein Impuls auf die Leitung PTQ' in F i g. 15 und 14B gegeben wird. Durch diesen Impuls auf der Leitung PTO' wird einmal das Status-Flip-Flop 152 auf 1 gesetzt und dadurch angezeigt daß der Sekundärprozessor jetzt in Betrieb ist. Weiterhin läuft die Leitung PTO' über ein Kabel 220 in den Fig. 14B, 14C und 16 zu einer ODER-Schaltung 222 und zu einer monostabilen Kippschaltung 224 im Sekundär-Impulsgenerator der F i g. 16. Die Pulsierung der Leitung P20' resultiert also im Einschalten der monostabilen Kippschaltung 224, wodurch ein Impuls auf die Leitung S1 gelegt wird, die über das Kabel 225 in den F i g. ;6 und 14C und von dort über ein Kabel 212 weiterführt zu einer Schiebeeinrichtung für das in Fig 13 gezeigte Adreßregister 24 im Sekundärprozessor S. Dadurch beginnt eine Folge von Schritten 51 bis S 4 in Fi g. 11 zur Einleitung der verbliebenen L+ 1 Bits des laufenden VL-Codes in das in Fig. 13 gezeigte Adreßregister 24.
Durch den Impuls auf der Leitung 51 wird der inhalt des Adreßregisters 24 um 1 Bit nach links geschoben. Wenn dann die monostabile Kippschaltung 224 im Sekundär-Impulsgenerator der Fig. 16 abschaltet, schaltet die monostabile Kippschaltung 228 ein und gibt einen Impuls auf die Leitung 52 in den Fig. 15 und 14C, der weiterläuft über die Kabel 226 und 212 zur Einleiteinrichtung für den Sekundärprozessor 5 in Fig. '.3, welche aus einem Tor 230 und einer Verzögerungsschaltung 232 besteht. Die Erregung des Tores 230 gestauet den Durchlauf des nächsten Codebits von der Eingabeeinheit in die wertniederste Position des Adreßregisters 24. Über die Verzögerungsleitung 232 erhalt die Eingabeeinheit dann Impulse derart, daß das nächste VL-Codebit zur Eingabe in das Adreßregister 24 bereit steht, wenn das Tor 230 beim nächsten Mal erregt wird.
Wenn die monostabile Kippschaltung 228 in Fig. 16 ausschaltet, schaltet die monostabile Kippschaltung 234 ein und gibt einen Irrouls auf die Leitung S3, welche ein Tor 236 in Fig. 14C zum Durchlassen entweder eines O-Ausgangssignals oder eines Nicht-O-Ausgangssignalcs
vom Konverter 64 in Fig. 12 vorbereitet, der zum Längenzähler 62 im Datenregister 20 des Primärprozessors P gehört. Die im Zähler 62 registrierte Zahl ist der laufende L-Wert, der im vorliegenden Beispiel um I kleiner ist als die Anzahl der Bits, um welche der laufende VL-Code die 8 Bits überschreitet, die bereits teilweise decodiert wurden. Wenn angenommen wird, daß der Längenzähler 62 gegenwärtig einen von 0 verschiedenen Wert (d. h. einen anderen Wert als 000) enthält, so wird die Leitung 68 erregt und diese Erregung durch das Tor 236 in Fig. I4C weitergeführt über die Leitung 238 in den Fig. HC und 16 zur monostabilen Kippschaltung 240, welche einschaltet und einen Impuls auf die Leitung 54 in den Fig. 16 und 14A gibt. Der Impuls auf der Leitung 54 läuft weiter durch das ODER-Glied 100 und die Leitung 102 in den Fig. I4A und 12 zu einer Rückschalteinheit im Längenzähler 62 und reduziert die Einstellung dieses Zählers um 1.
Wenn die monostabile Kippschaltung 240 in I■ ι g. Ib abschalte!, sendet sie einen Impuls über die Leitung 242 und das ODER-Glied 222 zurück zur Eingangsseite der monostabilen Kippschaltung 224, die dann einschallet und eine neue Folge der Schritte ab 5 1 einleitet, die gerade beschrieben wurde. Diese Folge wird so oft wiederholt, bis die übrigen L+l Bits des vorliegenden VL-Codes in das Adreßregister 24 in Fig. 13 gebracht und der Inhalt dieses Registers um denselben Betrag nach links geschoben ist. wie diese Bits eingegeben wurden. Zum Schluß speichert das Adreßregister 24 den Rest des 8-Bitcode, der am Anfang aus dem Coderegister 114 in Fig. 12 übertragen wurde (nachdem die ersten L+l Bits aus dem Register 24 geschoben wurden), und die L+l Bits, die im laufenden VL-Eingabecode gelassen wurden, nachdem dessen erste acht Bits im Primärprozessor P verarbeitet worden waren. Das Register 24 speichert also effektiv jetzt eine Kombination aus einer Basisadresse und einem relativen Adreßwert. wie oben erklärt wurde. Die im 'Xdreßregister 24 jetzt registrierte Menge ist die \dresse im Speicher 26. bei welcher der endgültige ID-Codc zu finden ist.
Längenzählers 62 in Fig. 12 auf 000 reduziert. Unter dieser Bedingung wird bei Pulsierung der Leitung 5 3 in Fig. 16 das Tor 236 in F i g. 14C vorbereitet zum Durchlassen des O-Ausgangssignales von der Leitung 66 in den F; \ g. 12 und 14C auf eine Leitung 244 in den F i g. MC und 16. die zu einer monostabilen Kippschaltung 246 fuhren. Wenn diese monostabile Kippschaltung einschaltet, gibt sie einen Impuls auf die Leitung 55 in den Fig. \h und UB und erregt ein Tor 248 zur Prüfung der Einstellung des Bytezählers 50. Dieser Schritt ist in Fig. i! als Schritt 55 dargestellt. Es wird angenommen, daß die Einstellung des Bytezählers nicht auf 0 reduziert wurde, und dann läuft ein Nicht-0-Ausgangssignal vom Konverter 116 über das Tor 248 und die Leitung 250 in den Fig. !4B und 15 zum ODER-Glied 54 und zur Eirigangsseite der monostabilen Kippschaltung 56 im Primär Impulsgenerator. Dieselbe Leitung 250 ist auch über em ODER-Glied 252 in Fig. 16 mit der Eingangsseite einer monostabilen Kippschaltung 254 im Sekundär-Impulsgenerator der Fig. 16 verbunden. Im Ablaufdiagramm der Fig. M ist dieser Vorgang durch die FluQlinien dargestellt, die vom »NEIN«-Ausgang des Schrittes S 5 in den F.ingängen der Schritte Pi und 56 führen. Diese Doppelaktion hat folgender, Grund:
Wie oben erklärt wurde, kann Betriebszeit eingespart
werden, wenn der Primärprozessor mit der Decodierung des nächsten VL-Codes bereits beim Eingeben des Bitstroms beginnen kann, während der Sekundärprozessor 5 noch arbeitet. Nachdem die übrigen L+ I Bits des laufenden VL-Codes in den Sckundärprozessor eingeleitet wurden (Schritte 5 1 bis 54 in F" i g. Il), kann der Primärprozessor die nächsten acht VL-Codebits in dem Bitstrom empfangen, und seine Tätigkeit stört nicht die übrige Operation des Sekundärprozessors. Auf diese Weise wird eine teilweise Überlappung in den entsprechenden Operationen des Primär- und des Sekundärproz.essors erreicht und dadurch eine beträcht liehe Menge Betriebszeit eingespart.
Die in Fig. 16 gezeigte monostabile Kippschaltung 254 schaltet ein. wenn ein Impuls über die Leitung 56 zur Lese-Zugriffseinrichtung weitergeführt wird, die zum Speicher 26 in F ig. 13 des Sekundärprozessors 5 gehört. Damit beginnt die Adressierung des Speichers des Sekundärprozessors zur Lokalisierung des durch die jetzt im Register 24 stehende Adresse Hiigt-gcucucti I D-Codes. Um dem Rest des Systems anzuzeigen, daß diese Adressieroperation abläuft, wird das in Fig. 14C gezeigte Flip-Flop 256 auf I gesetzt aufgrund des Impulses auf der Leitung 56.
In obiger Beschreibung wurde angenommen, daß die Einstellung des Bytezählers 50 in Fig. I4B von 000 verschieden war. wenn er im Schritt 55 der Fig. 11 geprüft wurde. Wenn die Einstellung des Bytezählers 0 war (in,J damit angezeigt wurde, daß der letzte eingegebene VL-Code jetzt gerade decodiert wird), ist die soeben beschriebene Operation genau dieselbe, jedoch wird kein nsues Startsignal zu dem Primärprozessor zurückgesendet. Durch Betätigung des in F i g. 14B gezeigten Tores 248 unter diesen Umständen wird ein O-Signal vom Decodierer 116 über eine Leitung 248 zur ODER-Schaltung 252 in F i g. 16 geleitet, die zu der monostabüen Kippschaltung 254 gehört. Die Auswirkung auf die monostabile Kippschaltung 254 ist also dieselbe ungeachtet dessen, ob die Leitung 250 oder die Leitung 258 erregt ist. Wenn die Leitung 250 jedoch nicht erregt wird, wird der Betrieb des Primärimpulsgenerators in F g. 15 verhindert, so daß der Primärpro-70r.ccr 'jri'.erdi?'1·"1 ' 'm«tänr1en im Leerlauf verbleibt.
Wenn der in Fig. 13 gezeigte Speicher 26 des Sekundärprozessors adressiert wird (Schritt 56 in Fig. 11). wird der der im Register 24 gespeicherter Adresse entsprechende ID-Code in ein Datenregister 2f im Sekundärprozessor 5 gelesen. Wie bereits gesagt steht zu diesem Zeitpunkt das Status-Flip-Flop 256 ir Fig. 14C auf 1. Wenn die monostabile Kippschaltung 254 in F i g. 16 ausschaltet, sendet sie einen Impuls übei das ODER-Glied 260 zum Einschalten der monostabiler Kippschaltung 262. Diese gibt einen Impuls auf die Leitung 57 in den Fig. 16 und 14 C zur Erregung des zi dem Ausgang des Flip-Flops gehörenden Tores 264 Während der in F i g. 13 gezeigte Speicher 26 zum Leser adressiert wird, liefert das Flip-Flop 256 ein !-Aus gangssignal, welches durch das Tor 264 und über die ir den Fig. 14 C und 16 gezeigte Leitung 266 zu dei monostabüen Kippschaltung 268 läuft. Wenn diesi monostabile Kippschaltung einschaltet, sendet sie einer Impuls über die Leitung 58 und das Oder-Glied 26< zurück zum Eingang der monostabüen Kippschaltuni 26Z Somit wird die Leitung 56 so lange erregt, wie de Lesezugriff abläuft.
Bei Beendigung des Lesezugriffs wird ein Impuls übe die Leitung 270 in den Fig. 13 und 14C zu den Flip-Flop 256 gesendet und dieses dadurch auf ι
zurückgestellt. Das O-Ausgangssignal vom Flip-Flop 256 läuft jetzt über das Tor 264 und die Leitung 272 zur monostabilen Kippschaltung 274 in Ii g. lh. clic einschaltet und einen Impuls auf die Leitung .V 9 gibt. Durch diesen Impuls wird das Tor 276 erregt /ur Übertragung des Inhaltes des in den I" ig. 13 und 4 dargestellten Datcnregisicrs 28 an eine Ausgabeeinheit, die im Ablaufdiagramm der Γ i g. 11 gezeigt ist. Insbesondere wird der jetzt im Datenregister 28 der I" i g. 13 «"!.speicherte ID-Code als fertigdceodierter Ausgang UDcr die Kabel 278 und 271 in den I' i g. 13 und HC und von dort über das Tor 278 auf ein Kabel 278 geleitet, welches zu der Ausgabeeinheit führt.
Wenn die in Fig. \b gezeigte monosüibile Kippschaltung 274 ausschaltet, schallet sie die monostabile Kippschaltung 280 ein. die dann einen Impuls auf die Leitung V 10 in den I' ig. Ib und I4B gibt. Dadurch wird das Status-Ilip-Ilop 152 auf O zurückgestellt und angezeigt, daß die Operation des Sckundärprozessors S beendet ist. Diese Information wird au verschiedenen Punkten im Opcralionsablauf des l'rimärprozessors während der nachfolgenden Dccodicmperation hcno tigt (d. h. in den Schritten /'IO und P 18 in Fig. 11). Die F.rrcgung der Leitung .VIO liefert gemäß obiger Beschreibung auch einen der Fingänge zu dem mit zwei Eingängen versehenen in F-" i g. 141? dargestellten UND Glied 284. Der andere Eingang zu diesem UND-Glied 284 wird durch den Decodierer 116 geliefert, wenn die F'.instellung des Bytez.ählers 50 auf 0 reduziert und dadurch angezeigt wird, daß keine weiteren VL-Codes zu decodieren sind. Wenn diese ßcciingungen vorliegen, wird ein Signal »Progranimende« an der Ausgangsseitc des UND-Gliedes 284 geliefert. Wenn die Linsteilung des Bytezählers jedoch noch nicht auf 0 reduziert wurde, hat der F.ingangssignalimpuls auf der Leitung .S" 10 zum UND-Glied 284 keine Auswirkungen.
Bei der laufenden Decodierung ist der Betrieb des Sekundärprozessors jetzt beendet. Wenn weitere VL-Codes vorhanden sind, erfolgt in der Zwischenzeit die Decodierung des nächstfolgenden VL-Codes im Primärprozessor. Sobald der Sekundärprozessor .9 für eine Decodierung gebraucht wird, beginnt die nächste Decodieroperation mit dem Linlcitcn von acht neuen Vl.-Codebits in den Primärprozessor /'(Schritte Pl bis r j in ι ι 5. ι ι;. «c;, ...Ic cc... ":.'.. i.\: :::" r.r.'.zr.g ::-.-. /-"-Adreßregister 10 in Cig. 12 gespeichert sind, zur Bildung einer neuen Adresse zwecks Lokalisierung des Ausgabe-ID-Codcs im .Sekundärprozessor 5 benutzt werden und keine neuen VL-Codebits an den Prozessor P geliefert werden können, bis seine Operation nach dem Schritt .55 (Fig. 11) in der Operation des Sekundärprozessors zurückgestellt ist. Wenn der Betrieb des Prozessors S jedoch nicht betroffen ist. kann der Primärprozessor P über die Schritte Pd bis P17 in F i g. 11 unter Auslassung der Schritte /' I bis P5 selbst zurücklaufen. Wenn der letzte Vl.-Code in der Reihe kürzer als °> Bits ist. wird im Schritt P13 das Signal »Programmende« erzeugt, welches sons! im Schritt S 10 erzeugt wird.
Abhängige Decodierung
(Fig. 17 bis 21C)
Fig. 17 zeigt in einem Blockdiagramm die Komponenten, die in einem erfindungsgemäßen abhängigen Decodierschema benutzt werden. Dieses Schema benutzt die folgenden Komponenten der unabhängigen Decodienme. die nhrn beschrieben wurden: Primärprozessor (Fig. 12), .Sekundärprozessor (I ig. I )). Primär Impulsgenerator (F ig. 15) und Sckundär-Impulsgencrator (Fig. lh). Außerdem verwendet der abhängige Decodierer einen abhängigen Prozessor (I ig. 14) und einen abhängigen Impulsgenerator (F i g. 20). Mit einer Steucrlogik. Fig. 21A bis 2ID. die eine erweiterte Version der in den Fig. 14A bis I4C gezeigten .Steuerlogik ist. werden im abhängigen Prozessor die Operationen der verschiedenen oben erwähnten Linheil gesteuert.
Im abhängigen Betrieb folgt eine Operation des abhängigen Prozessors einer Operation des Sekundärprozessors in den Fällen, in denen dieser benutzt wird, und in ilen Fällen, in denen nur der Primärpro/rcssor benutzt wird, folgt dessen Operation unmittelbar einer ()pcration des abhängigen Prozessors.
I i g. 18 zeigt das Ablaufdiagramm des abhängigen Decodierprozesses. Die Operation des abhängigen Prozessors (F i g. 19) wird durch die Schritte D\ bis Dl an der rechten Seite der Fig. 18 bezeichnet. Diese Ablaufdiagrammschritte, deren Bezeichnungen die Vorsätze »ijp« oder »i/.S« tragen. nLv.iein.-ii Sicii auf dic-Operationen d<-s Primär- und Sekundärprozessors (Fig. 12 und 13) im abhängigen Decodierschema. In diesen Prozessoren oder ihren zugehörigen Impulsgeneratoren sind für deren Benutzung im abhängigen Decodierschema keinerlei strukturelle Änderungen erforderlich. Irgendwelche Unterschiede zwischen den »D/VSchrilten oder den »/^«-Schritten im Ablaufdiagramm der Fig. 18 und den entsprechend numerierten Schritten mit den Vorsätzen in »P« oder »Sk im unabhängigen Dccodier-Ablaufdiagramm der F i g. 11 sind ausschließlich auf die Steuerungen zurückzuführen, die von der in den Fig. 21A bis 2ID gezeigten Steuerlogik ausgeführt werden, wie aus der nachfolgenden Beschreibung hervorgeht.
Die grundsätzliche Atbeitsweise der abhängigen Codierung und Decodierung ist an den Fig. 5 —9 erläutert worden wie auch die grundlegende Arbeitsweise des Primär- und Sekundärprozessors und wird in der gegenwärtigen detaillierten Beschreibung als bekannt vorausgesetzt. Daher werden anschließend hauptsächlich die Merkmale und F.inrichtungen der abhängigen Decodierung beschrieben, die sich von den EinrichU"^0" ""^ Merkmalen der oben beschriebenen unabhängigen Decodierung unterscheiden oder zu diesen hinzukommen. In allen anderen Fällen ist auf die im Zusammenhang mit den Fig. 10 bis 16 gegebene Beschreibung Bezug zu nehmen.
Um die F.lemente der unabhängigen Steuerlogik in den Fig. I4A bis I4C mit den entsprechenden F.lementen der abhängigen Steuerlogik in den F i g. 21A bis 21ID in Beziehung zu setzen, sind die F.lemente in den beiden Logikdiagrammen mit ähnlichen Bezugszahlen bezeichnet. In einigen Fällen ist jeder dieser Bezugszahlen in den Fi g. 21Λ bis 21 F) der Zusatz »Z> < angehängt. Das Kabel 70D in F i g. 21A entspricht z. B. dem Kabel 70 in den Fig. 12 und 14A bis I4C. In anderen Fällen wird ein Zusatz »/>.· verwendet im Zusammenhang mit einigen in den Fig. 18 bis 21D benutzten Bezugszeichen. Sobald ein Element in den F.inzelzeichnungen des abhängigen Decodiersystems (Fig. 19 bis 21D) gezeigt ist. welches kein Gegenstück im unabhängigen Decodiersystem (Fig. 12 bis 16) hat. ist es mit einer Bezugszahl bezeichnet, die größer als 299 ist.
Fig. 18 zeigt das Ablaufdiagramm für den abhängigen Decodierprozeß und die Operation beginn! mit den Schritten DP 1 bis DP5. worin die ersten acht Datenbits
in (his Adreßregister für den Prmiärprozessor geleitet werden. Diese lietriebsphase summt üherem mit den Sehnten /'I his /'5 der l-'ig. It. die oben im /usa.nmenhang mit der unabhängigen Decodierung beschrieben wurden In ähnlicher Weise sind die Schrille Dfb bis I)PH der Hg. 18 identisch mil ilen Schritten l'r bis /'9 di-'r I ig Il und weiden daher hier genauer beschrieben.
Im Schritt Dl") wird eine Entscheidung darüber getroffen, ob der lietneb des Sekundarpp izessors betroffen ist oder nicht, und /war hängt diese Entscheidung d;ivon ab. ob der eingegebene laufende Vl.-(Ode langer ist als K Hits oder nicht Wenn lur Jen vorliegt- -den lall angenommen wild, dal! der Vl. C Ode nicht lunger ist .ds H Hits, limit der Vorgang weiter /um Sfhr it t /VIO in Cig. IH. An diesem Tunkt muli ic -.igestelIt werden, ob der Sekundarpro/essor oder der abhänyine l'ro/essi>r noch von einem \orhergehenden I )ci 'oilierpro/el.l her n1 llclneb is· /u diesem /weck IM die Schaltung so angeordnet, dall der Taktimpuls auf der leitung />/'IO in 1 ig. J'( em I or 300 erregt, um die Stellung der I lip I lops 1)2// und 302 /u prüfen I )as I lip I lop I ΐ2/' u lid wie das t lip I lop 152 in i ig. 1411 auf I gc'-etzl. uahrend der Sekiindäi prozessor arbeitet und aiii 0 /iiruckgesiuii. wenn die Arbeit des Sckund.n pro/Lssoi s endet. In ähnlicher Weise und ..\,\· l-'lip Mop !02 auf I gesei/t. wahrend der abhangige l'nvc1 οι arbeitet und aiii <· zurückgestellt, wenn diese Opei.ition beendet ist Wenn eines tier beiden Mip I tops 152/' und 302 auf I steht, lault dessen •Nusgangssign.il
ODIK Cdied 304 und ein I or
300 auf einet I ellung IiK/'. die dieselbe I unktion hat wie .lie I .ellung I 58 ir. den 1 ι g. MB iiiul I ">. n.imlich das Durchlaiiieii tier aus den Schrillen DP I I und /'/'IO in lig. IK bestellenden Schleife so lange, wie de: Sekundarpro/e'sor oder der abhangige l'ro/essor arbeiten.
Wenn angenommen mi,! d,ill der Sekundär- und de abhänt-:ge l'ro/essor nicht arbeiten, veranlaßt die I rregung des Tores i()0 in Γ ig. 2IC durch den Impuls : aus dem Schrill /'/'10 cm 0 Ausgangssignal \on den I lip- I IO|1S [ 52/ ' CIlLl >(ii, V\ LIL MCI VIUI V 11 L 11 I V ' N W V tiivü 306 und ein lot 300 zur I.eining 154/) lauft, die der in den I ι g. I4B ur.d 15 gezeigten Leitung 154 entspricht Dadurch lauft die Operation vom Schritt /'/'IO in : l"ig. IS weiter /um Scheut /'/'12. Im lalle eines unabhängigen Decodierpn izes^e-. stünde der Ausgabe ID (Ode i'M/i zur Verfügung. Da es sich hier aber um einen abhängigen Decodierpro/el! handelt, muß der durch lIcii Pnmärprozessor erzeugte H Bn grolle /wischen ID Code in das Adreßregister des abhangigen Prozessors geleitet werden, um dort bei der Bildung einer neuen Adresse benutzt /u werden, auf wek her der endgültige Ausgabe-ID-Code /u finden ist.
Der /.ei'geberimpuls auf der Leitung /J>/'I2 in .-. lig. 21C erregt ein Tor 308. welches dei vom Primärpro/essor erzeugten Zwischen-ID-Code vom Ausgangskabel 70D des Priniärpro/essors auf das Eingangskabel 310 leitet, weiches /υ dem in fig. 14 gezeigten abhängigen Prozessor führt. Von dort wird ->■ dieser Zwischen-ID-Code über ein Kabel 312 in Fig. 19 weitergeleitet und läuft in die acht niedersten Bitpositionen des 12 Bit großen Adreßregisters 314 im abhängigen Prozessor. Für die vier höchsten Bitposiüoneu des Adreßregisters 3!4 wird angenommen, daß siv ■■'■■ am Anfang durch geeignete nicht dargestellte Einrichtungen auf 000 zurückgestellt wurden. Gleichzeitig mit diese. Eingabe in das Adreßregister 314 wird der /ei ti in puls a ι der 1 .ellung Dl' 12 in I ι g. JIC über eine Verzögerungseinrichtung 31h und ein ODI"R-C died 318 auf den l.ing.'ng des Slaliis-1 lip I lops 302 geleitet und dadurch dieses auf I gesetzt und angezeigt, daß der abhängige Prozessor arbeitet. Dieser verzögerte Impuls wird außerdem üb< ■ cine I eitiing 320 in lig. 2IC und ein Kabel 322 in den I ig. 2ID uod 20 auf eine monostable Kippschaltung 324 im abhängigen Impulsgenerator geleitet und dadurch der Betneb des abhängigen Prozessors eingeleitet. Die detaillierte Operation des abhängigen Prozessurs w Ii (! nachfolgend erklart.
Wenn der in I ig IS gezeigte SlIhUI DP 12 beendet ist. isi vier l'rimarpi o/esso! Irei zum Beginn der Verarbeitung ,!l's nächsten \ I ( odes Als Vorausset zung hierfür vv erden zuerst die Schrille /)/' Π bis /;/-' 17 ausi.'eliihri. Im Schritt /'/'Ii wird die Einstellung des lUie/ahlers 50/' in I ι l*.J 1 Ii :_epriift. Ist diese I.Misk'iiung voi Ii ν ist (lieden. so wird daiiurch angezeigt, d.dl muh wei'ere I ir.gabe Vl.-Codes zu decodieren sind. Wenn das \ichl () Aii^iMiigssignal vom Deiiul.erer I lh/' und lUi /eiiiinpuK auf der l.eiiiing /;/'l! im l'NDCIied 310 in Hl1JIH gleu-hzeilig aultreten, wird ein Impuls .in! die Leitung 170/'gelegt, die diese !lie I u"kin>n hai wie die I .ei lung 170 in I ig. I "). d.h. die ': rregung dei Leitung 170/'in ! ig. JlB leitet die folgenden S1InH1C />/' 14 bis /'/'17 in I ig. IH ein. Bei der \usluhrung .lieser Schritte werden 1.4 ' neue DaU'nbils in das \dreHrei.· Mcr des Pnmarpro/essors geleilet und der Inhalt dieses Adreßregisters um einen einsprechenden Iteir.ig geschoh n. um Jen nächsten \ 'I.Code in I k\ ■■ vherposüion Hn Primarpro/essoi" zu bringen.
Wenn die Hv lczahleremsielliing auf 0 reduziert war. ist die I rregiiiiL* der Leitung /'/'13 in Hg. 2113 ohne Auswirkung In diesem I all sind keine weiteren Vl. Codes zu decodieren und eine weitere Operation des Primarpru/essors nicht erforderlich. Das Signal ''Prograiiinicide" wird ledoch erst erzeugt, wenn der Hetneb des abhängigen PriiZessors abgeschlossen lsi.
In der obigen Beschreibung wurde an, jnonimcn. il.iß
WlL ! ,iii-v. v!v V! (',-.Je U ü '" m'-v...-,._-|irill uwlllt
vier Pnmarp'-ozessor die Schritte I)I'U) bis /'/'17 in I ι L'. IH ausführte und dadurch ι\κ:ν aus dem Primärprozessor ausL'elesene ID-( ode zum Lingabecoile des abhangigen Prozessor», wurde (Schritt /.'/'12) Wenn der Vl.-Cüde ledoch langer als 8 Bus lsi. verzweigt die Operation vom ScHitt Df") zum Schritt DP 18. Win diesem Punkt an isi die Operation dieselbe wie für eine unabhängige Decoilieroperation bis zum Schritt DSb in 1 ι g. IH.
Im Schritt DS 7 wird nicht nur geprüft, ob die l.esezuüriffsoperaiion vies Sekundarpro/essorspeichers beendet ist. sondern auch der Betriebszustand des abhängigen Prozessors. Zu diesem Zweck wird der Taktimpuls auf der Leitung DS7 in F i g. 21 D an ein Tor 332 gelebt, welches Eingangssignale von einem UND-Glied 334 und einem ODER-Glied 336 empfängt. Dss UND-Glied 334 empfängt Eingangssignale von der 0-Seite des Status-Fhp-F lops 256Dfür den Speicher des Sekundarprozessors und über die Leitung 338 von der 0-Seite des Status-Fiip-Flops 302 in Fig. 21C für den abhängigen Prozessor. Das ODER-Glied 336 in Fig. 21D empfängt Eingaben von der I-Seite des Flip-Flops 256D und über die Leitung 340 von der !■Seite des Flip-Flops 302 in Fig. 21C. Wenn eines dieser Flip-Flops auf 1 steht und dadurch anzeigt, daß der Speicher des Sekundärprozessors noch adressier;
und oder der abhängige Prozessor noch arbeitet, lei.et das Tor 3 32 ein Signal auf die Leitung 22h in I ι jr. 211). welches denselben Lffekt ha! wie die Erregung der !.(.■llung 226 in den Fig. 14C und Ib. niiml'.ch das Durchlaulen der aus den Schritten DSl und DSE in ·, I i g. 18 bestehenden Schleife, sol.inge diese Ik'dingung herrscht.
Wenn beide Flip-Flops 302 und 256/)mden Fig. 2IC und 21t) auf 0 zurückgestellt sind, leitet das 'IOr 332 ein Signal auf die Leitung 2121). welches sich genauso ,,, auswirkt wie das Signal auf der Leitung 272 m den Fig. 14t und lh und die Operation /um n.k listen Schritt />.S'9 in Fig. IK weiterfuhrt. Dieser Schrill unterscheide! sich jedoch \otn Schult S 9 in Fig. II. Anstatt lediglich den 8 llit grollen ll)-( ode .ms dem -. Sekundär prozessor als endgültigen -Viisga'oecode auszugeben, erregt der Impuls aiii der Leitung /).S'9 in I Il'. 211.) ein lor 542. wodurch dieser II) ( ode \om Alisg.m^sk.'bel 27] Is des Nl kni'idai pi ι'/C'ssv'is ,iiir ii.i'i Eingangskabel 310 ties abhängigen Prozessor'- in Fig. I1' i,iiift. Von dort gelangen die acht Kits des ID ( oile über ein Kabel 512 in die acht w erimedersten llilposiiioiien des Adreßregisters il4 im abhangigen Prozessor
Der Schritt DS IO m I ι >_'. 18 zeigt tuch; nur das Ende des Betriebes des .lekundarprozessors .m. sondern leitet auch den Betrieb des abhängigen Prozessors ein. In I ig. 21t ist zu sehen, wie der laktimpuls auf der Leitung /ASIO durch da ODER-Glied 118 zum Flip-Flop 502 lauft, dieses auf 0 ■ e'.z; und dann! das Ende des Betriebes ties Sekundiirprozessors anzeigt und außerdem auf die Leitung 320. die genial obiger Erk arung zur ersten monostabilen Kippschaltung 324 in ! ι g. 20 im abhängigen Impulsgenerator fuhrt. Dadurch wird der Betrieb ties abhangigen Prozessors gestartet und dieser Vorgang ist in den Schritten D I bis Dft des Ahlaufdiagrammes in Fig. 18 wiedergegeben.
Wenn die monostabil kippschaltung 324 in Fig. Jn arbeitet, gibt sie Impulse auf die Leitung D I im kabel !46 der !Ί g. 20 und 21 D. Dadurch wird das Status-Flip- ; Flop 346 t'ur den abhängigen Prozessor auf 1 gesetzt und .iniTi'/i'uM t|;iH iiiptpr Prozessor .irheitel Dt1T [nmnls ,nit der Leitung D\ läuft außerdem über das kabel 310 m den F ι g. JlD und 19 zur l.esezugi iffsschaltung !Ur Acn Speicher 350 des abhängigen Prozessors, die die labelie ·., D (siehe F ι g. 8 und 4) speichert. Im Laufe dieser l.esezugrilisoperalion wird der ID -Code, w either .in tier Adresse im Speieher .350 gespeichert ist. die durch die Linsteilung des Adreßregisters 314 angegeben ist. in tlas zum abhängigen Prozessor gehörende Datenitgister 352 ausgelesen.
Wenn die monostabile kippschaltung 324 in [■" i g. 20 ausschaltet, sendet sie ein Signal über das ODER-Glied 354 und schaltet die monostabile kippschaltung 356 ein. Dies ergibt einen Impuls auf die Leitung D2 in den ,-· F i g. 20 und 21D. schaltet ein Tor 358 durch und prüft so. ob die Lesezugriffsoperation abgeschlossen ist. Wenn das Status-Flip-Flop 346 noch auf 1 steht, wird dadurch angezeigt, daß der Lesezugriff noch nicht beendet ist, und es wird ein Signal von der 1-Seite des Flip-Flops 346 ..,, über das Tor 358 auf die Leitung 360 in den F i g. 21 B und 20 geleitet. Dadurch wird die monostabile Kippschaltung 362 eingeschaltet, die einen Impuls auf die Leitung D3 gibt und dadurch die Erregung durch das ODER Giied 354 auf die monostabile Kippschal- -ö tung 356 ziirüct führt. Somit wird die aus den Schritten DT. und Dj in Fig. 18 basierende Schleife so lange durchlaufen, bis die Lesezueriffsoperation abgeschlossen ist.
Am Ende tier l.esezugriffsoperation im abhängigen Prozessor wird ein Bcendigungssignal durch den Speicher 350 in Fig. 14 über eine Leitung 3b4 in den I ι g. 14 und 2ID auf das Flip-Flop 346 gesendet und these auf 0 zurückgestellt. Dadurch läuft ein Signal vom Flip-Flop 346 durch tlas lor 358 auf eine in den F ι g. 21 D und 20 gezeigte Leitung 366 und schallet die monostabile Kippschaltung 368 zur Einleitung J.'s Schrittes D 4 in Fig. 18 ein.
Der Impuls auf der Leitung D4 in (\cn F i g. 20 und JID hat verschiedene Effekte. Zuerst wird ein 'lor 370 in I ig. 21D durchgeschaltet und läßt den Ausgahe-ID-( otle vom Datenregister 352 ties abhängigen Prozessors in I ι g. 14 über die kabel 372 und 374 in den I ig. 14 iiiHl 2IA bis 211) m\ die Ausgabeeinheit durch. Dieser (Ode ist die fettigdecodierte Ausgabe ties abhängigen Prozessors. Das Signal auf tier Leitung D4 leite: .■;;;!.!er;!·,::;: e:ne:: Lese/ugriff eiües Speicher«· i76 ein. der die Tabelle D im abhängigen Prozessor der I ig |4 speichert. Gleichzeitig mit dem Auslesen ties ID ( odes aus dem D.ilenregistcr 352 in tile Ausgabeeinheit w lid dieser ( ode auch über die kabel 372 und 378 in Fig. 14 als eine Adresse an den Speicher 376 wc-iiergeleitei. An der durch diese Adresse im Speicher 37β bezeichneten Stelle wird ein 4 Bit großer Code ausgelesen und über ein kabel 380 den vier werthöchsten Stellen ties Adreßregisters 314 zugeführt, das zum Speieher 350 gehört Dieser 4 Bit große Code bildet einen I'eil der neuen 12 Bit großen Adresse, die bei tier nächsten Decodiei operation zum Speicher 350 geleitet wird. Bei tier ibhangigen Decodierung wird bekanntlich der tertige Ausgabe -ID-Code aus einer Stelle im Speicher 350 ausgelesen, die teilweise durch den /wischen-ID-Code bestimmt wird, der dem laufenden VE-Code entspricht und teilweise durch den endgültigen ID-(HtIe. der aus tier Decodierung ties vorhergehenden VE-Codes resultierte. Die Beschreibung wurde im Zusammenhang mr I ι g. 8 gegeben
Die dritte Folge tier Erregung der Leitung DA in IΊ g. 2! 1) besteh; tiarm.daß das Status! lip-l Io ρ 382 auf I besetzt und damn angezeigt wird, daß cm Lesezugriff zum Speicher 376 in Fig. !9 erfolgt. Wenn die monostable kippschaltung 368 in Fig. 2d ausschaltet, sendet sie einen Impuls über das ODER-Glied 384 und schaltet die monostabile kippschaltung 38h ein. die die Leitung D 5 ;n den I ι g. 20 und 21 D erregt. Dadurch wird ein Tor 388 betätigt und der Ausgang des Status! lip-llops :182 geprüft. Wenn dieser Ausgang ein I-Signa1 ist. wird ein Signal durch tlas Tor 388 auf dL Leitung 390 in den rig. 21 D und 20 geleite; und eine mcnostabile kippschaltung 392 eingeschaltet. Dadurch wird ein Impuls über die Leitung Dk und das ODER-Glied 384 auf die monostabile kippschaltung 386 geleitet, die die Leitung D5 erregt. So wird die aus den Schritten D5 und D6 in Fig. 18 bestehende Schleife so lange durchlaufen, wie der Speicher 376 in Fig. 19 adressiert wird.
Wenn die adressierte Information vollständig aus dem Speicher 376 ausgelesen worden ist. w ird ein Signal für die Beendigung des Lesezugriffs über die Leitung 394 in den Fig. ?9 und 21D an das Flip-Flop 382 gegeben und dieses dadurch auf 0 zurückgestellt. Jetzt wird ein Signal über das Tor 388 und die Leitung 396 in den F i g. 21 D und 20 an die monostabile Kippschaltung 398 geleitet, die einschaltet und die Leitung Dl erregt.
Durch die Erregung der Leitung Dl wird einmal das Status-Flip-Flop 302 in Fig. 21C auf 0 zurückgestellt
■ta
und dadurch das Ende des Betriebes des abhängigen Prozessors angezeigt. Diese Information wird in bestimmten Schritten der nachfolgenden Operationen gebraucht (z.B. bei den Schritten DPlO und DS7 in Fig. 18).
Außerdem wird durch die Erregung der Leitung D 7 die Stellung des Byteiahlers 5OD geprüft. Wurde diese Einstellung auf 0 reduziert, wird damit angezeigt, daß keine weiteren VL-Codes mehr zu decodieren sind, und
wenn das O-Ausgangssignal vom Decodierer 116D und der Impuls auf der Leitung Dl gleichzeitig auftreten, wird das UND-Glied 400 in Fig.21B veranlaßt, das Signal »Programmende« weilerzuleiten. Wenn die Bytezählereinstellung noch nicht auf 0 reduziert wurde, wird kein derartiges Signal abgegeben. Die folgende Operation im unabhängigen Prozessor wird jetzt eingeleitet, da die Operationen des abhängigen und des unabhängigen Decodierers überlappt sind.
Hierzu 21 Blatt Zcichnunuen

Claims (1)

  1. Patentansprüche:
    1. Verfahren zur Dekompression verdichteter Daten, mit dem Huffman-Codewörter variabler Länge in Codewörter fester Länge umgesetzt werden, dadurch gekennzeichnet, daß in einem ersten Verarbeitungsschritt mit einer Verarbeilungsbreite von /V-Bits jeweils /V-Bits des Bitstroms verarbeitet werden, um Huffman-Codewörter mit höchstens TV-Bits in die entsprechenden Codewörter fester Länge umzusetzen und um Huffman-Codewörter mit mehr als A/-Bits vorzudecodieren und um die Länge aller Huffman-Codewörter zu bestimmen und daß in einem zweiten Verarbeitungsschritt das Ergebnis der Vordecodierung zusammen mit dem Restteil des zugehörigen Huffman-Codewortes zur endgültigen Decodierung der Huffman-Codewörter mit mehr als /V-Bits in die entsprechenden Codewörter fester Länge verwendet wird.
    2. Einrichtung zur Durchführung des Verfahrens nach Anspruchs 1, dadurch gekennzeichnet, daß in einem Primärprozessor zur Durchführung des ersten Verarbeitungsschrittes eine erste Speichereinrichtung (12, F i g. 4) mit einem /V-Bit-Adreßregister (10) und einem Datenausgangsregister (20) vorgesehen ist, daß in einem ersten Abschnitt (AB) der ersten Speichereinrichtung die Codewörter fester Länge für die Huffman-Codewörter mit höchstens /V-Bits und außerdem Information zur weiteren Decodierung (Vordccodierinformation) für Huffman-Codewörter mit mehr als ΛΖ-Bits p-^peichert sind, daß in weiteren Abschnitten der ersten Speichereinrichtung Angaben über die Länge 'i.) von Huffman-Co· dewörtern mit mehr als /V-Bits und Steuerinformation (C) zur Kennzeichnung von derartigen Huffman-Codewörtern enthalten sind, daß in einem Sekundärprozessor zur Durchführung des zweiten Verarbeitungsschrittes eine zweite Speichereinrichtung (26) mit einem L-Bit-Adreßregister (24) und einem Datenausgangsregister (28) vorgesehen ist, in der die Codewörter fester Länge für Huffman-Codewörter mit mehr als N-Bits gespeichert sind und die durch Verknüpfung der aus der ersten Speichereinrichtung ausgelesenenen Vordecodierinformation mit Teilen des betreffenden Huffman-Codeworts adressiert wird.
    3. Einrichtung nach Anspruch 2, dadurch gekennzeichnet, daß die Adreßregister (IO bzw. 24) beider .Speichervorrichtungen als Schieberegister ausgebildet sind und Anschlüsse zur Aufnahme von Teilen des Bitstroms variabler Codewörter aufweisen.
    4. Einrichtung nach Anspruch 3, dadurch gekennzeichnet, daß das Datenausgangsregister (20) der ersten Speichereinrichtung (12) mit dem Adreßregister (24) der zweiten Speichereinrichtung (26) verbunden ist, daß die aus der ersten Speichereinrichtung ausgclesene Vordecodierinformation für Huffman-Codewörter mit mehr als /V-Bits in das Adreßregister der zweiten Speichereinrichtung übertragen wird und daß entsprechend der Länge des /u dccodierendcn Huffman-Codeworts Teile dieses Codeworts in die niedrigstelligcn Positionen des Adreßregisters(24)der zweiten Speichereinrichtung gebracht werden.
    ri. Einrichtung nach einem der Ansprüche 2 bis 4 /ur Decodierung eines entsprechend der abhängigen
    ι:.
    Huffman-Codierung codierten Bitstroms, dadurch gekennzeichnet, daß das Ausgangssignal der Datenausgangsregister (20 bzw. 28, F i g. 4) zusammen mit dem Gruppencode des unmittelbar vorher decodierten Zeichens dem Adreßregister (34, Fig.8) einer Speichereinrichtung (36) zugeführt wird, in der Decodiertabellen für jede Gruppe von Huffman-Codewörtern (Gruppe 0,1,2) enthalten sind.
    6. Einrichtung nach einem der Ansprüche 2 bis 5, dadurch gekennzeichnet, daß die Zahl der im Primärprozessor verarbeiteten Bits /V = 8 gewählt wird.
    7. Einrichtung nach einem <ier Ansprüche 2 bis 6, dadurch gekennzeichnet, daß zur Steuerung von Primär- und Sekundärprozessor eine Steuerlogik (Fig. 14) sowie primäre (Fig. 15) und sekundäre (F ig. 16) Impulsgeneraloren verwendet werden.
    8. Einrichtung nach Anspruch 7, dadurch gekennzeichnet, daß zur Decodierung abhängiger Huffman-Codes ein weitere? Prozessor (abhängiger Prozessor, Fig. 19) und ein weiterer Impulsgenerator (abhängiger impulsgenerator, F i g. 20) verwendet werden.
DE2205422A 1971-02-08 1972-02-05 Verfahren und Einrichtung zur Dekompression verdichteter Daten Expired DE2205422C2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US11347371A 1971-02-08 1971-02-08

Publications (2)

Publication Number Publication Date
DE2205422A1 DE2205422A1 (de) 1972-08-24
DE2205422C2 true DE2205422C2 (de) 1981-09-17

Family

ID=22349650

Family Applications (1)

Application Number Title Priority Date Filing Date
DE2205422A Expired DE2205422C2 (de) 1971-02-08 1972-02-05 Verfahren und Einrichtung zur Dekompression verdichteter Daten

Country Status (6)

Country Link
US (1) US3701111A (de)
JP (1) JPS5223706B1 (de)
DE (1) DE2205422C2 (de)
FR (1) FR2141000A5 (de)
GB (1) GB1328061A (de)
IT (1) IT946994B (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE2513862A1 (de) * 1974-03-28 1975-10-02 Western Electric Co Vorrichtung zum dekodieren

Families Citing this family (50)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3914586A (en) * 1973-10-25 1975-10-21 Gen Motors Corp Data compression method and apparatus
US4044347A (en) * 1975-05-19 1977-08-23 International Business Machines Corporation Variable-length to fixed-length conversion of minimum-redundancy codes
US4099257A (en) * 1976-09-02 1978-07-04 International Business Machines Corporation Markov processor for context encoding from given characters and for character decoding from given contexts
JPS54170409U (de) * 1978-05-23 1979-12-01
US4506325A (en) * 1980-03-24 1985-03-19 Sperry Corporation Reflexive utilization of descriptors to reconstitute computer instructions which are Huffman-like encoded
JPS5755668A (en) * 1980-09-22 1982-04-02 Nippon Telegr & Teleph Corp <Ntt> Decoding method for run-length code
US4398225A (en) * 1981-04-24 1983-08-09 Iomega Corporation Combined serializer encoder and decoder for data storage system
JPS59148467A (ja) * 1983-02-14 1984-08-25 Canon Inc デ−タ圧縮装置
CA1228925A (en) * 1983-02-25 1987-11-03 Yoshikazu Yokomizo Data decoding apparatus
EP0145396B1 (de) * 1983-12-08 1990-04-04 Crosfield Electronics Limited Coderwörter-Decodierer
US4837634A (en) * 1984-06-05 1989-06-06 Canon Kabushik Kaisha Apparatus for decoding image codes obtained by compression process
US4899149A (en) * 1986-02-28 1990-02-06 Gary Kahan Method of and apparatus for decoding Huffman or variable-length coees
FR2608806B1 (fr) * 1986-12-23 1989-03-17 Valero Robert Procede et appareil programmable pour le transcodage de chaines de caracteres
FR2640096A1 (fr) * 1988-12-06 1990-06-08 Trt Telecom Radio Electr Dispositif de decodage de mots statistiques a longueur variable
JPH03106127A (ja) * 1989-09-20 1991-05-02 Fujitsu Ltd 可変長符号化回路
US5034741A (en) * 1990-03-22 1991-07-23 United Technologies Corporation Variable length bit patterns for data representation
US5173695A (en) * 1990-06-29 1992-12-22 Bell Communications Research, Inc. High-speed flexible variable-length-code decoder
JP3123792B2 (ja) * 1991-11-05 2001-01-15 株式会社リコー 算術符号を用いる符号化装置および復号化装置
US5233348A (en) * 1992-03-26 1993-08-03 General Instrument Corporation Variable length code word decoder for use in digital communication systems
JPH0583383U (ja) * 1992-04-13 1993-11-12 日東工器株式会社 ポンプ用リード弁
JP3003894B2 (ja) * 1992-07-29 2000-01-31 三菱電機株式会社 可変長復号器
JP3008685B2 (ja) * 1992-08-03 2000-02-14 日本電気株式会社 可変長符号の復号化回路
DE69329092T2 (de) * 1992-10-13 2001-03-22 Nec Corp., Tokio/Tokyo Huffman-Kode-Decodierungsschaltung
US5446916A (en) * 1993-03-26 1995-08-29 Gi Corporation Variable length codeword packer
US6408102B1 (en) * 1993-12-20 2002-06-18 Canon Kabushiki Kaisha Encoding/decoding device
KR0152038B1 (ko) * 1994-10-17 1998-10-15 김광호 상대 주소를 이용한 가변장 복호화 장치
US5872599A (en) * 1995-03-08 1999-02-16 Lucent Technologies Inc. Method and apparatus for selectively discarding data when required in order to achieve a desired Huffman coding rate
US5850260A (en) * 1995-03-08 1998-12-15 Lucent Technologies Inc. Methods and apparatus for determining a coding rate to transmit a set of symbols
US5696563A (en) * 1995-03-08 1997-12-09 Lucent Technologies Inc. Apparatus and methods for performing huffman coding
JP3406440B2 (ja) * 1995-10-30 2003-05-12 Smk株式会社 パルス変調方法とパルス変調装置及びパルス復調装置
US5721891A (en) * 1995-12-15 1998-02-24 International Business Machines Corporation Detection of N length bit serial communication stream
US5870631A (en) * 1995-12-15 1999-02-09 International Business Machines Corporation System for operating system software providing input buffer for receiving variable-length bit stream with a header containing synchronization data recognized by universal serial controller
US5745504A (en) * 1996-06-25 1998-04-28 Telefonaktiebolaget Lm Ericsson Bit error resilient variable length code
US5954806A (en) * 1996-09-30 1999-09-21 Lsi Logic Corporation Method to handle SCSI messages as a target
US6018524A (en) * 1997-09-09 2000-01-25 Washington University Scalable high speed IP routing lookups
US6449256B1 (en) 1998-05-07 2002-09-10 Washington University Fast level four switching using crossproducting
US6212184B1 (en) 1998-07-15 2001-04-03 Washington University Fast scaleable methods and devices for layer four switching
US20010030615A1 (en) * 2000-03-03 2001-10-18 Minhua Zhou Variable length decoding system and method
US6731686B1 (en) * 2000-05-31 2004-05-04 Sun Microsystems, Inc. Apparatus and method for pipelining variable length decode and inverse quantization operations in a hybrid motion-compensated and transform coded video decoder
GB2367459A (en) * 2000-09-28 2002-04-03 Roke Manor Research Method of compressing data packets
US6958715B2 (en) * 2001-02-20 2005-10-25 Texas Instruments Incorporated Variable length decoding system and method
US20020118885A1 (en) * 2001-02-27 2002-08-29 Bernard Smeets Font compression and retrieval
US7193541B2 (en) * 2001-12-04 2007-03-20 Sun Microsystems, Inc. Representation of sign in encoding scheme
CN1331360C (zh) * 2004-02-24 2007-08-08 上海交通大学 可变长码解码方法
US7702883B2 (en) * 2005-05-05 2010-04-20 Intel Corporation Variable-width memory
US9086871B2 (en) 2013-09-26 2015-07-21 International Business Machines Corporation Reordering the output of recirculated transactions within a pipeline
CN106076759A (zh) * 2016-07-25 2016-11-09 铜陵海源超微粉体有限公司 粉体涂装装置
US10558704B2 (en) * 2017-07-20 2020-02-11 Sap Se Smart rollover
KR102103392B1 (ko) 2017-12-15 2020-04-22 주식회사 포스코 정련방법 및 강재
US10541954B1 (en) * 2018-08-05 2020-01-21 Gideon Samid Cyber companion: attaching a secondary message to a primary one

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE1249924B (de) * 1962-07-17
US3331056A (en) * 1964-07-15 1967-07-11 Honeywell Inc Variable width addressing arrangement
US3422405A (en) * 1966-03-25 1969-01-14 Burroughs Corp Digital computer having an indirect field length operation
US3593309A (en) * 1969-01-03 1971-07-13 Ibm Method and means for generating compressed keys
US3618027A (en) * 1970-03-27 1971-11-02 Research Corp Associative memory system with reduced redundancy of stored information

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE2513862A1 (de) * 1974-03-28 1975-10-02 Western Electric Co Vorrichtung zum dekodieren

Also Published As

Publication number Publication date
GB1328061A (en) 1973-08-30
US3701111A (en) 1972-10-24
JPS5223706B1 (de) 1977-06-25
DE2205422A1 (de) 1972-08-24
IT946994B (it) 1973-05-21
FR2141000A5 (de) 1973-01-19

Similar Documents

Publication Publication Date Title
DE2205422C2 (de) Verfahren und Einrichtung zur Dekompression verdichteter Daten
DE2139731C2 (de) Anordnung zur Code-Umsetzung
DE2210044C2 (de) Verfahren zum Umsetzen von Codewörtern
DE68924138T2 (de) Daten-kompressions/dekompressionsanordnung.
DE2614916C2 (de) Konverter zur Codeumwandlung
DE60035171T2 (de) Verfahren und Schaltungen zum schnellen Auffinden des minimalen / maximalen Wertes in einer Menge von Zahlen
DE2756890C2 (de) Schaltungungsanordnung zur Steuerung der Datenübertragung zwischen einer zentralen Verarbeitungseinheit und einer Mehrzahl peripherer Einheiten
DE3545125C2 (de)
DE3606869A1 (de) Vorrichtung zur datenkompression
DE1524239A1 (de) Verfahren zur Lokalisierung eines Fehlers in einer Anlage mit mindestens zwei parallel arbeitenden Rechengeraeten
DE2346525B2 (de) Virtuelle Speichereinrichtung
DE2153517A1 (de) Anordnung zur Codeumsetzung
DE2227148A1 (de) Verfahren zur verarbeitung digitaler daten
DE2208664A1 (de) Verfahren zur Decodierung eines vorsatzfreien Verdichtungscodes veränderlicher Länge
DE3485824T2 (de) Verfahren zur datenkompression.
DE3030255A1 (de) Verfahren zur uebermittlung von woertern und nachrichtenuebertragungssystem zu seiner durchfuehrung
DE1499225B2 (de) Schaltungsanordnung zur reduzierung von datenwortlaengen
DE2133638A1 (de) Verfahren zum Betreiben eines lernenden Rechensystems und Rechensystem
DE2900586C2 (de) Anordnung zum Decodieren von Codewörtern variabler Länge
DE1115488B (de) Datenverarbeitungssystem
DE1964570B2 (de) Verfahren zum wiederauffinden gespeicherter informationen
DE2355786A1 (de) Verfahren und anordnung zur decodierung von codes mit minimaler redundanz
DE3921646A1 (de) Verfahren zu einer codierung einer elementfolge und einrichtung zur durchfuehrung des verfahrens
DE10048478A1 (de) Verfahren zum Zugriff auf eine Speichereinheit bei der Suche nach Teilzeichenfolgen sowie zugehörige Speichereinheit
DE1474017C3 (de) Datenverarbeitungsanlage

Legal Events

Date Code Title Description
OD Request for examination
D2 Grant after examination
8339 Ceased/non-payment of the annual fee