DE2900586A1 - Anordnung zum decodieren von codewoertern variabler laenge - Google Patents
Anordnung zum decodieren von codewoertern variabler laengeInfo
- Publication number
- DE2900586A1 DE2900586A1 DE19792900586 DE2900586A DE2900586A1 DE 2900586 A1 DE2900586 A1 DE 2900586A1 DE 19792900586 DE19792900586 DE 19792900586 DE 2900586 A DE2900586 A DE 2900586A DE 2900586 A1 DE2900586 A1 DE 2900586A1
- Authority
- DE
- Germany
- Prior art keywords
- memory
- elements
- code
- variable length
- input register
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 230000015654 memory Effects 0.000 claims description 64
- 239000004020 conductor Substances 0.000 description 10
- 238000010586 diagram Methods 0.000 description 6
- 230000000873 masking effect Effects 0.000 description 5
- 238000000034 method Methods 0.000 description 4
- 230000004913 activation Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000003550 marker Substances 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000001356 surgical procedure Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M3/00—Automatic or semi-automatic exchanges
- H04M3/42—Systems providing special services or facilities to subscribers
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/40—Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
- H03M7/42—Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code using table look-up for the coding or decoding process, e.g. using read-only memory
- H03M7/425—Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code using table look-up for the coding or decoding process, e.g. using read-only memory for the decoding process only
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Description
Die Erfindung betrifft eine Anordnung zum Decodieren einer Eingangsfolge von Codeelementen, welche
Codewörter variabler Länge bilden, welche aus einer Gruppe von Codewörtern variabler Länge ausgewählt sind.
In Datenverarbeitungsgeräten und -anlagen werden Binärcodes zur Darstellung von Daten bzw. Informationen,
wie beispielsweise alphanumerischen Zeichen, Rechnerbefehlen, Nachrichteninformationen und verschiedenen
graphischen Symbolen, verwendet. Aufgrund der festen Größe der Speicherstellen innerhalb der in den Datenverarbeitungsgeräten
verwendeten Speicher und der einfacherer en Realisierung von Decodierern mit fester Länge
besitzen diese Codes üblicherweise eine bestimmte vorgegebene Länge. Es hat sich jedoch gezeigt, daß bei Verwendung
von Codewörtern mit variabler Länge eine wirtschaftlichere Darstellung (weniger Binärziffern) möglich
ist, als bei Codewörtern mit fester Länge. Dies gilt insbesondere für die digitale Datenverarbeitung, wo die
Verwendung Bit-adressierbarer Speichersysteme in Verbindung mit Codewörtern variabler Länge zu einer wesentlichen
Verminderung des Speicherraumbedarfs für das Verarbeitungssystem
führt.
Die Decodierung von in einem Speicher enthaltenen Codewörtern variabler Länge ist nicht ganz einfach,
da es bei einer codierten Nachricht erforderlich ist, festzustellen,
wo das erste Codewort endet und das nächste Codewort beginnt. Dies kann durch die Verwendung von Codes
erreicht werden, welche die Eigenschaft aufweisen, daß kein vollständiges Wort des Codes als Präfix, d. h. als
Anfang irgendeines anderen Codewortes auftreten darf (Präfixeigenschaft). Ein Beispiel eines solchen Codes
22. Dezember 1978 9 0 9 8 2 9/0699
ist der redundanzsparende oder optimale Code, welcher
von D. A. Huffman in Proceedings of IRE, Band 40, Seiten 1C98 - 1101, September 1952, unter dem Titel
"A Method for the Construction of Minimum-Redundancy Codes" beschrieben wurde.
Es ist bereits eine Anordnung der eingangs genannten Art bekannt, mit welcher solche Präfixeigenschaften
aufweisende Codes decodiert werden können. Die bekannte Anordnung verwendet eine Codebaum-Suchtechnik,
bei welcher eine Vielzahl von Verknüpfungsbausteinen nach Art eines Codebaummusters miteinander verbunden
sind.
Diese bekannte Anordnung weist den Nachteil auf, daß die Arbeitsgeschwindigkeit aufgrund der in
der Vielzahl von pyramiden- oder baumartig angeordneten Verknüpfungsbausteinen auftretenden Verzögerungen stark
begrenzt wird.
Der Erfindung liegt deshalb die Aufgabe zugrunde, eine Decodieranordnung anzugeben, in welcher
die genannten Nachteile nicht auftreten, d.h. in welcher eine Decodierung von Codewörtern variabler Länge
mit relativ hoher Geschwindigkeit möglich ist.
Diese Aufgabe wird durch die im Patentanspruch 1 definierte Erfindung gelöst. Zweckmäßige Ausgestaltungen
derselben ergeben sich aus den Unteransprüchen.
Ein weiterer Vorteil der erfindungsgemäßen Anordnung besteht auch darin, daß sie preisgünstig herzustellen
ist.
22. Dezember 1978
90982 9/0699
Ein Ausführungsbeispiel der Erfindung wird im folgenden anhand von Zeichnungen im einzelnen beschrieben.
In diesen zeigt
Fig. 1 eine Anordnung zum Decodieren von Codewörtern variabler Länge;
Fig. 2 ein Blockschaltbild eines Teils der in Fig. 1 dargestellten Decodieranordnung;
Fig. 3 eine Ausgangssignal-Tabelle für die in dem in Fig. 2 dargestellten Blockschaltbild verwendeten
Verknüpfungsglieder bzw. Speicherelemente;
Fig. 4 ein Blockschaltbild für eine andere Ausführungsform der Ausgangsverbindungen für das in
Fig. 2 dargestellte Blockschaltbild; und
Fig. 5 ein Blockschaltbild für eine weitere Ausführungsform der Ausgangsverbindungen für das in
Fig. 2 dargestellte Blockschaltbild.
Die erfindungsgemäße Anordnung wird in Verbindung mit der Decodierung eines Codeworts variabler
Länge beschrieben, welches eine bestimmte bei der Steuerung einer zentralen Verarbeitungseinheit auftretenden
bzw. verwendeten Operation oder Routine darstellt. In der Tabelle I ist eine begrenzte Anzahl von Rechneroperationen
aufgeführt, denen jeweils die entsprechende Huffman-Code-Darstellung
zusammen mit deren Länge und der Adresse bezüglich der Lage innerhalb der Tabelle zugeordnet ist.
22. Dezember 1978
909829/0699
Operation | Adresse |
Addieren | 1 |
Laden | 2 |
Vergleichen | 3 |
Multiplizieren | 4 |
Dividieren | 5 |
Verschieben | 6 |
Speichern | 7 |
Verzweigen | 8 |
Codewort
000
001
0100
0101
0110
0111
1000
1010
Das vorliegende Ausführungsbeispiel des
Decodierers decodiert jedes in einem Register gespeicherte Codewort durch Erzeugen eines Signals, welches die Adresse
des in der Tabelle I gefundenen Codeworts darstellt, wobei diese Adresse bei einem Tabellen-Aufsuchverfahren dazu verwendet
wird, die durch das Codewort dargestellte Information zu erzeugen, wie sie in bekannter Weise beim Betrieb
eines Rechners benötigt wird.
Unter Bezugnahme auf die ein Ausführungsbeispiel des erfindungsgemäßen Decodierers darstellende
Figur 1 sei darauf hingewiesen, daß eine Eingangsfolge mit maximal η Bits, welche ein Codewort variabler Länge
enthält, seriell in ein n-Bit-Eingangsregister 20 eingegeben wird, und zwar über einen Leiter 22, wobei das
stellenwertmäßig niedrigste Bit des Codeworts variabler Länge zuerst eingegeben wird. Allerdings ist es auch möglich,
ohne Änderung der Arbeitsweise des Decodierers das stellenwertmäßig höchste Bit des Codeworts variabler Länge
zuerst in das Register 20 einzugeben. Nachdem die das
22. Dezember 1978
909829/0699
Codewort variabler Länge enthaltende Eingangsfolge unter Steuerung von über einen Leiter 24 von einer
nicht gezeigten Taktsignalquelle kommenden Taktimpulsen in bekannter Weise in das Register 20 eingespeichert
wurde, bewirkt ein von einer nicht gezeigten Steuereinheit über einen Leiter 26 übertragenes Steuersignal die
gleichzeitige Übertragung der Bits oder Datenelemente von dem Register 20 über Leiter 28 zu einer Logikschaltung
38.
Die Anordnung enthält einen Codespeicher und einen Maskierspeicher 32. Die Speicherzellen 34
des Codespeichers 30 können aus Flip-Flops, Magnetkernen usw. bestehen, in welchen Bits oder Datenelemente
gespeichert sind, welche die in der Tabelle I dargestellten Codewörter variabler Länge bilden, wobei jeweils
ein solches Codewort variabler Länge in jeweils einer horizontalen Reihe oder Adresse 31 (im folgenden
auch als "Ebene" bezeichnet) gespeichert ist, welche jeweils einen Speicherplatz des Codespeichers 30 bildet.
Die Speicherzellen 36 des MaskierSpeichers 32 können den
gleichen Aufbau besitzen, wie die Speicherzellen 34 und enthalten Bits, welche die Länge jeweils desjenigen
Codeworts variabler Länge definieren, das in der korrespondierenden Ebene 31 des Codespeichers 30 enthalten
ist, wie dies im folgenden noch beschrieben wird. Nimmt man an, daß jede Ebene des Codespeichers
30 η Speicherzellen 3 4 aufweist, welche ein Codewort variabler Länge mit i Bits enthalten, dann werden die
η - i Speicherzellen 34, welche den das Codewort enthaltenden
Zellen folgen (d.h. links von diesen liegen), auf Null gesetzt. Ist beispielsweise das Codewort
variabler Länge 001, wodurch die Laden-Operation gemäß Tabelle I dargestellt wird, dann enthalten die ersten
22. Dezember 1978
909829/0699
drei Speicherzellen 34 am rechten Ende der zweiten Ebene des Codespeichers 30 das Codewort 001, während
die restlichen Speicherzellen links von den durch das Codewort belegten Zellen auf Null gesetzt werden. Die
örtlich dieser Lage entsprechenden η - i Speicherzellen 36 der gleichen Ebene des Maskierspeichers 32 werden
auf Eins gesetzt, während die i Speicherzellen 36, welche den Bit-Positionen des gespeicherten Codeworts
variabler Länge entsprechen, auf Null gesetzt werden. Somit definieren die Null-Bits enthaltenden Speicherzellen
des Maskierspeichers 32 die Länge des zugeordneten in dem Codespeicher 30 gespeicherten Codeworts.
Wie dies im einzelnen später noch beschrieben wird, wird beim Betrieb des Decodierers jedes in dem Eingangsregister
20 gespeicherte Bit mit einem entsprechenden Bit in der gleichen Bit-Position in jeder Ebene des
Codespeichers 30 unter Steuerung des entsprechenden Bits in der gleichen Bit-Position jeder Ebene des Maskierspeichers
32 verglichen, wobei dieser Vergleich in einer Logikschaltung 38 (Fig. 1) durchgeführt wird,
welche in einer später noch näher beschriebenen Weise jeweils ein binäres Bit erzeugt, das in einem Ausgangsoder
Ergebnisregister 40 gespeichert wird. Die Lage des binären Eins-Bits im Ergebnisregister 40 zeigt die
Adresse des Codeworts variabler Länge in dem Codespeicher an, wobei diese Adresse der Adresse des aus der Tabelle I
gefundenen Codeworts variabler Länge und somit der Information oder dem Befehl, welche bzw. welcher durch das
genannte Codewort dargestellt wird, entspricht.
In Fig. 2 sind die in der in Fig. 1 allgemein dargestellten Logikschaltung 38 enthaltenen Verknüpfungsglieder zunt Vergleich der Bits des Codeworts variabler
Länge, welches in dem Register 20 gespeichert ist, mit
22. Dezember 1978
9 09829/06 99
2900588
entsprechenden in den Speicherzellen 34 des Codespeichers gespeicherten Bits im einzelnen dargestellt. Jede Verknüpfungsschaltung
enthält vorzugsweise ein UND-Glied 42, dessen Eingänge invertiert sind und jeweils mit einer bestimmten
Speicherstufe 44 des Eingangsregisters 20 und
mit einer entsprechenden Speicherzelle 34 des Codespeichers 30 verbunden sind. Der Ausgang der Stufe 44 des Registers 20 und der Ausgang jeder Speicherzelle 34 des Codespeichers 30 sind ferner jeweils mit den Eingängen eines UND-Gliedes 46 verbunden. Der Ausgang des UND-Gliedes 42 und der Ausgang des UND-Gliedes 46 sind mit den Eingängen eines ODER-Gliedes 48 verbunden, welches noch einen weiteren Eingang aufweist, an welchen ein von der zugeordneten Speicherzelle 36 des Maskierspeichers 32 kommendes Ausgangssignal angelegt wird. Die in Fig. 3 dargestellte Funktionstabelle
zeigt jeweils den logischen Ausgangspegel für das ODER-Glied 48 in Bezug auf diejenigen Bits an, welche in der
Stufe 44 des Registers 20, in den Speicherzellen 34 des
Codespeichers 30 und in den Speicherzellen 36 des Maskierspeichers 32 gespeichert sind. Aus Fig. 3 ist ferner ersichtlich, daß der Ausgang des ODER-Gliedes 48 immer dann eine binäre Eins ist, wenn eine Übereinstimmung zwischen
den in dem Register 20 und in dem Codespeicher 30 gespeicherten Bits besteht oder wenn an dieser Stelle in dem
Maskierspeicher eine binäre Eins gespeichert ist. Die
Ausgänge aller ODER-Glieder 48, welche einer Ebene der
Speicher 30 und 32 zugeordnet sind, werden über entsprechende Leiter 49 einem UND-Glied 50 zugeführt, dessen
Ausgang mit einer entsprechenden Stufe 52 des Ergebnisregisters 40 verbunden ist. Um am Ausgang des UND-Gliedes 50 ein binäres Eins-Bit zu erhalten, ist es erforderlich, daß alle in der gleichen Ebene der Code- und Markierspeicher 30 bzw. 32 durchgeführten Bit-Vergleiche ein binäres Eins-Ausgangssignal ergeben haben. Da festgelegt wurde,
mit einer entsprechenden Speicherzelle 34 des Codespeichers 30 verbunden sind. Der Ausgang der Stufe 44 des Registers 20 und der Ausgang jeder Speicherzelle 34 des Codespeichers 30 sind ferner jeweils mit den Eingängen eines UND-Gliedes 46 verbunden. Der Ausgang des UND-Gliedes 42 und der Ausgang des UND-Gliedes 46 sind mit den Eingängen eines ODER-Gliedes 48 verbunden, welches noch einen weiteren Eingang aufweist, an welchen ein von der zugeordneten Speicherzelle 36 des Maskierspeichers 32 kommendes Ausgangssignal angelegt wird. Die in Fig. 3 dargestellte Funktionstabelle
zeigt jeweils den logischen Ausgangspegel für das ODER-Glied 48 in Bezug auf diejenigen Bits an, welche in der
Stufe 44 des Registers 20, in den Speicherzellen 34 des
Codespeichers 30 und in den Speicherzellen 36 des Maskierspeichers 32 gespeichert sind. Aus Fig. 3 ist ferner ersichtlich, daß der Ausgang des ODER-Gliedes 48 immer dann eine binäre Eins ist, wenn eine Übereinstimmung zwischen
den in dem Register 20 und in dem Codespeicher 30 gespeicherten Bits besteht oder wenn an dieser Stelle in dem
Maskierspeicher eine binäre Eins gespeichert ist. Die
Ausgänge aller ODER-Glieder 48, welche einer Ebene der
Speicher 30 und 32 zugeordnet sind, werden über entsprechende Leiter 49 einem UND-Glied 50 zugeführt, dessen
Ausgang mit einer entsprechenden Stufe 52 des Ergebnisregisters 40 verbunden ist. Um am Ausgang des UND-Gliedes 50 ein binäres Eins-Bit zu erhalten, ist es erforderlich, daß alle in der gleichen Ebene der Code- und Markierspeicher 30 bzw. 32 durchgeführten Bit-Vergleiche ein binäres Eins-Ausgangssignal ergeben haben. Da festgelegt wurde,
22. Dezember 1978
909829/0699
daß kein vollständiges Wort des Codes ein Präfix irgendeines anderen Codeworts sein kann, ist das Ergebnis eines
wirksamen Vergleichs des Inhalts des das Codewort variabler Länge enthaltenden Eingangsregisters 20 mit den in
dem Code- und Maskenspeicher 30 bzw. 32 gespeicherten Codewörtern höchstens eine einzige binäre Eins von einem der
UND-Glieder 50, welche in das Ergebnisregister 40 eingespeichert wird. Die entsprechende Speicherstelle des
binären Eins-Bits im Register 40 entspricht der Position oder Adresse des Codeworts in einer Bezugstabelle, wie·
beispielsweise der Tabelle I, wobei die Lage des Codeworts innerhalb der Tabelle der Speicherebene des Codespeichers
entspricht, in welcher das Codewort gespeichert ist.
Aufgrund der Tatsache, daß die betreffende Adresse des Codeworts in Tabelle I die tatsächliche Länge
des Codeworts anzeigt, wenn in dem Register 20 mehrere benachbarte Codewörter gleicher oder unterschiedlicher
Länge enthalten sind, kann aufgrund des Bekanntseins der
Länge des ersten Codeworts das zweite ebenfalls in dem Register 20 gespeicherte Codewort in bekannter Weise in
bezug auf Fig. 1 weiter nach rechts geschoben werden, um auf diese Weise aufeinanderfolgende Codewörter in die
für aufeinanderfolgende Decodiervorgänge erforderliche richtige Lage zu bringen.
In den Fällen, wo es unerwünscht·ist, eine Stufe in einem Register, beispielsweise dem Register 40,
zu setzen, um dadurch die durch ein Codewort variabler Länge dargestellte Information anzuzeigen, kann das Ausgangssignal
jedes UND-Gliedes 50 über einen Leiter 54 (Fig. 4) dem Eingang eines weiteren einer Gruppe von
UND-Gliedern 56 zugeführt werden, dessen anderer Eingang mit dem Ausgang eines Registers 57 verbunden sein kann.
22. Dezember 1978 g0g82g/0699
2900588
In diesem Falle enthält das Register 57 die Adresse eines Mikroprogramms, welches in bekannter Weise in der
Lage ist, das einen Rechnerbefehl darstellende Codewort zu interpretieren, wobei die Adresse dieses Rechnerbefehls
der Ebene oder der Adresse entspricht, in welcher das Register 57 liegt. Wenn somit über den Leiter 54 vom
UND-Glied 50 (Fig. 2) ein binäres Eins-Bit an eines der UND-Glieder 56 gelangt, welches durch den Ausgang des
zugeordneten Registers 57, in welchem die Adresse des Mikroprogramms gespeichert ist, aktiviert wird, dann wird
die in diesem Register gespeicherte Adresse über einen Leiter 58 und ein ODER-Glied 60 zu einem Steuer-Speicher-Adressenregister
62 übertragen, wonach die Adresse des durch das Codewort variabler Länge dargestellten
Mikroprogramms dazu verwendet wird, die Operation eines Rechners in an sich bekannter Weise zu steuern.
In Fig. 5 ist ein Teil der in Fig. 2 dargestellten Decodierschaltung gezeigt, in welchem ein
Längenregister 64 hinzugefügt wurde, um der Decodierschaltung auch dann ein einwandfreies Arbeiten zu ermöglichen,
wenn die in einem System verwendete Anzahl von Codewörtern variabler Länge geringer ist als die
Anzahl der in dem Code- und Maskierspeicher 30 bzv/. 32 gespeicherten Codewörter. Der Ausgang jeder Stufe des ·
Längenregisters 64 wird über einen Leiter 66 einem der UND-Glieder 50 zugeführt, an welche außerdem die Ausgänge
der ODER-Glieder 48 (Fig. 2) über jeweils einen Leiter 49 angelegt werden. Jede Stufe des Längenregisters
64, welche mit einem UND-Glied 50 verbunden ist, das einer solchen Ebene des Codespeichers 30 zugeordnet
ist, welche ein gültiges Codewort enthält, wird auf eine binäre Eins gesetzt, so daß dadurch die Aktivierung des
betreffenden UND-Gliedes 50 ermöglicht wird. Die rest-
22. Dezember 1978
909829/0699
Claims (1)
- NCR CORPORATION Dayton, Ohio (V.St.A.)P atentanmeldungUnser Az.: Case 2470/GERANORDNUNG ZUM DECODIEREN VON CODEWÖRTERN VARIABLER LÄNGEP atentansprüche:Anordnung zum Decodieren einer Eingangsfolge von Codeelementen, welche Codewörter variabler Länge bilden, welche aus einer Gruppe von Codewörtern variabler Länge ausgewählt sind, gekennzeichnet durch ein Eingangsregister (20) zur Speicherung einer Vielzahl der genannten Codeelemente, durch einen ersten Speicher (3O), welcher eine Vielzahl von ersten Speicherstellen {31) zur Speicherung der Codewörter der genannten Gruppe enthält, durch einen zweiten Speicher (32) mit einer Vielzahl von zweiten Speicherstellen (33) , welche jeweils entsprechenden der ersten Speicherstellen (31) zugeordnet sind und jeweils ein Längendefinitionswort zum Definieren der Länge des in der zugeordneten ersten Speicherstelle (31) gespeicherten Codeworts enthalten, und durch eine Logikschaltung (38) zum Vergleichen des Inhalts des genannten Eingangsregisters (20) mit dem Inhalt der genannten Vielzahl von ersten Speicherstellen (31) unter Steuerung durch den Inhalt der genannten Vielzahl von zweiten Speicherstellen <32), wobei die genannte Logikschaltung (38) ein Ausgangssignal zu erzeugen vermag, welches zumindest einen Teil des Inhalts des Eingangsregxsters (20) als ein identifiziertes Wort aus der genannten Gruppe von Wörtern29Q05862. Anordnung nach Anspruch 1, gekennzeichnet durch ein mit der genannten Logikschaltung (38) gekoppeltes Ausgangsregister (4Oj mit einer Vielzahl von Ausgangsregisterstufen (52), welche den genannten ersten Speicherstellen (31) entsprechen, wobei die genannte Logikschaltung {38) das genannte Ausgangssignal an diejenige der genannten Ausgangsregisterstufen (52) abgibt, welche dem identifizierten Codewort entspricht.3. Anordnung nach Anspruch 2, dadurch gekennzeichnet, daß die Logikschaltung (38) eine Vielzahl von Verknüpfungsgliedern (42, 46, 48, 50) enthält, deren Eingänge jeweils mit dem genannten Eingangsregister(20) und mit dem genannten ersten und zweiten Speicher (30, 32) und deren Ausgänge jeweils mit dem genannten Ausgangsregister {40) verbunden sind..4. Anordnung nach Anspruch 3, dadurch gekennzeichnet, daß das Eingangsregister (20) eine vorbestimmte Anzahl von Eingangsregisterstufen (44) enthält, und daß jede der Vielzahl von ersten und zweiten Speicherstellen (31, 33) eine vorbestimmte Anzahl von ersten (34) bzw. zweiten {36) Speicherelementen aufweist, und daß die Eingänge der genannten Verknüpfungsglieder jeweils mit einer entsprechenden der Eingangsregisterstufen (44) , mit einem entsprechenden der ersten Speicherelemente (34) und mit einem entsprechenden der zweiten Speicherelemente (36) und der Ausgang jeweils mit einer entsprechenden der Ausgangsregisterstufen (52) verbunden ist.22. Dezember 19783$982$5- Anordnung nach Anspruch 4, dadurch gekennzeichnet, daß "ie die Länge definierenden Wörter in denjenigen der zweiten Speicherelemente (36> , welche denjenigen der genannten ersten Speicherelementen (34) entsprechen, die Ziffern der genannten Gruppe von Codewörtern mit variabler Länge speichern, Binärziffern einer ersten Art (z.B. 11O") .enthalten, während die restlichen der zweiten Speicherelemente (36) Binärziffern der zweiten Art (z.B. "1") speichern.6. Anordnung nach Anspruch 5, dadurch gekennzeichnet, daß die genannten Verknüpfungsglieder erste (42) und zweite (46) UND-Glieder enthalten, daß das erste UND-Glied (42) invertierte Eingänge aufweist, welche mit einer'entsprechenden der ersten Eingangsregisterstufen (44) und mit einem entsprechenden der ersten Speicherelemente (34) verbunden sind, daß das zweite UND-Glied (46) nic.at-invertierte Eingänge aufweist, die mit einer entsprechenden der ersten Eingangsregisterstufen (44) und mit einem entsprechenden der ersten Speicherelemente (34) verbunden sind, und daß die genannten Verknüpfungsglieder ferner ein ODER-Glied (48) aufweisen, dessen Eingänge mit den Ausgängen jeweils des ersten und zweiten UND-Gliedes (42, 46) und mit einem entsprechenden der zweiten Speicherelemente (36) verbunden sind, wobei die Ausgänge derjenigen ODER-Glieder (48) der Verknüpfungsglieder, welche denjenigen Speicherelementen zugeordnet sind, die eine der genannten Speicherstellen (31, 33) bilden, mit einem zugeordneten von einer Vielzahl dritter UND-Glieder (50) verbunden sind.22. Dezember 1978909 8 2 9/06997. Anordnung nach Anspruch 6, dadurch gekennzeichnet, daß die dritten UND-Glieder (50) entsprechende zusätzliche Eingänge (66) aufweisen, welche in Übereinstimmung mit der Anzahl der der genannten Gruppe zugeordneten Codewörter aktiviert werden können.22. Dezember 1978909829/0699
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US05/869,961 US4188669A (en) | 1978-01-13 | 1978-01-13 | Decoder for variable-length codes |
Publications (2)
Publication Number | Publication Date |
---|---|
DE2900586A1 true DE2900586A1 (de) | 1979-07-19 |
DE2900586C2 DE2900586C2 (de) | 1981-12-10 |
Family
ID=25354513
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE2900586A Expired DE2900586C2 (de) | 1978-01-13 | 1979-01-09 | Anordnung zum Decodieren von Codewörtern variabler Länge |
Country Status (5)
Country | Link |
---|---|
US (1) | US4188669A (de) |
JP (1) | JPS5498543A (de) |
DE (1) | DE2900586C2 (de) |
FR (1) | FR2414828A1 (de) |
GB (1) | GB2012462B (de) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0045075A1 (de) * | 1980-07-29 | 1982-02-03 | Siemens Aktiengesellschaft | Verfahren zur Umwandlung von linear codierten digitalen Signalen in nichtlinear codierte digitale Signale gemäss einer dem A-Gesetz gehorchenden Mehrfachsegmentkennlinie |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4463342A (en) * | 1979-06-14 | 1984-07-31 | International Business Machines Corporation | Method and means for carry-over control in the high order to low order pairwise combining of digits of a decodable set of relatively shifted finite number strings |
US4506325A (en) * | 1980-03-24 | 1985-03-19 | Sperry Corporation | Reflexive utilization of descriptors to reconstitute computer instructions which are Huffman-like encoded |
US4475174A (en) * | 1981-09-08 | 1984-10-02 | Nippon Telegraph & Telephone Public Corporation | Decoding apparatus for codes represented by code tree |
FR2600223B1 (fr) * | 1986-01-13 | 1988-08-19 | Thomson Cgr | Procede de formattage et de deformattage de donnees resultant du codage d'informations numeriques a l'aide d'un code a longueur variable, et dispositif de mise en oeuvre |
FR2601833B1 (fr) * | 1986-07-17 | 1992-12-31 | Brion Alain | Procede de decodage d'un signal binaire code par un code de plages a longueur variable |
US5243701A (en) * | 1987-09-17 | 1993-09-07 | Mitsubishi Denki Kabushiki Kaisha | Method of and system for processing data having bit length variable with modes of operation |
FR2627337B1 (fr) * | 1988-02-17 | 1990-06-08 | Thomson Csf | Procede de codage et procede de decodage a longueur variable, dispositif de codage et dispositif de decodage pour la mise en oeuvre de ce proced |
JPH0795269B2 (ja) * | 1988-11-04 | 1995-10-11 | 富士通株式会社 | 命令コードのデコード装置 |
US5249273A (en) * | 1989-01-17 | 1993-09-28 | Fujitsu Limited | Microprocessor having a variable length instruction format |
US5173695A (en) * | 1990-06-29 | 1992-12-22 | Bell Communications Research, Inc. | High-speed flexible variable-length-code decoder |
US5280349A (en) * | 1992-02-13 | 1994-01-18 | Industrial Technology Research Institute | HDTV decoder |
JP3532975B2 (ja) * | 1993-09-27 | 2004-05-31 | 株式会社ルネサステクノロジ | マイクロコンピュータおよびそれを用いて命令を実行する方法 |
US8004431B2 (en) * | 2008-12-09 | 2011-08-23 | Qualcomm Incorporated | Fast parsing of variable-to-fixed-length codes |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3918047A (en) * | 1974-03-28 | 1975-11-04 | Bell Telephone Labor Inc | Decoding circuit for variable length codes |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3675212A (en) * | 1970-08-10 | 1972-07-04 | Ibm | Data compaction using variable-length coding |
US3675211A (en) * | 1970-09-08 | 1972-07-04 | Ibm | Data compaction using modified variable-length coding |
US3701108A (en) * | 1970-10-30 | 1972-10-24 | Ibm | Code processor for variable-length dependent codes |
US3717851A (en) * | 1971-03-03 | 1973-02-20 | Ibm | Processing of compacted data |
US3771139A (en) * | 1971-05-03 | 1973-11-06 | D Digby | Associative memory method of performing simultaneous content searches |
GB1492260A (en) * | 1974-10-29 | 1977-11-16 | Int Computers Ltd | Data processing systems |
-
1978
- 1978-01-13 US US05/869,961 patent/US4188669A/en not_active Expired - Lifetime
- 1978-12-21 GB GB7849585A patent/GB2012462B/en not_active Expired
-
1979
- 1979-01-09 DE DE2900586A patent/DE2900586C2/de not_active Expired
- 1979-01-10 JP JP77879A patent/JPS5498543A/ja active Pending
- 1979-01-12 FR FR7900807A patent/FR2414828A1/fr active Granted
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3918047A (en) * | 1974-03-28 | 1975-11-04 | Bell Telephone Labor Inc | Decoding circuit for variable length codes |
Non-Patent Citations (1)
Title |
---|
US-Z.: Proceedings of the IRE, 40 (1952), Sept., S. 1098-1101 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0045075A1 (de) * | 1980-07-29 | 1982-02-03 | Siemens Aktiengesellschaft | Verfahren zur Umwandlung von linear codierten digitalen Signalen in nichtlinear codierte digitale Signale gemäss einer dem A-Gesetz gehorchenden Mehrfachsegmentkennlinie |
Also Published As
Publication number | Publication date |
---|---|
GB2012462A (en) | 1979-07-25 |
FR2414828A1 (fr) | 1979-08-10 |
DE2900586C2 (de) | 1981-12-10 |
FR2414828B1 (de) | 1982-06-18 |
JPS5498543A (en) | 1979-08-03 |
GB2012462B (en) | 1982-03-03 |
US4188669A (en) | 1980-02-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE2457312C3 (de) | Anordnung zur Durchführung arithmetischer oder logischer Operationen an ausgewählten Gruppen aufeinanderfolgender Bits in einer Datenverarbeitungsanordnung | |
DE2751097C2 (de) | Schaltungsanordnung zum Erzeugen eines Kennsignals | |
DE2515696C2 (de) | Datenverarbeitungssystem | |
EP0010195B1 (de) | Vorrichtung zur Adressumwandlung in einer Datenverarbeitungsanlage | |
DE1499722C2 (de) | Einrichtung zur Modifizierung von Informationswörtern | |
DE602004010922T2 (de) | Speicher und stromeffizienter mechanismus für schnelles tabellennachschlagen | |
DE2346525A1 (de) | Virtuelle speichereinrichtung | |
DE2900586C2 (de) | Anordnung zum Decodieren von Codewörtern variabler Länge | |
DE2536622C2 (de) | Verzweigungssteuerung mit flexibler Auswahl von Steuerworten | |
DE2208664A1 (de) | Verfahren zur Decodierung eines vorsatzfreien Verdichtungscodes veränderlicher Länge | |
DE2735319A1 (de) | Schaltungsanordnung zur zusammenhaengenden codierung von zeichen und zur zeichendecodierung der ursprungszeichen | |
DE3689006T2 (de) | Mikroprogrammsteuersystem. | |
DE3618136C2 (de) | ||
DE2718110A1 (de) | Datenverarbeitungseinheit | |
DE2926322C2 (de) | Speicher-Subsystem | |
DE2421130C2 (de) | ||
DE2458525B2 (de) | Speicheranordnung mit Haupt- und Pufferspeicher | |
DE69122860T2 (de) | Multiplexer | |
DE2403039C2 (de) | Einrichtung zur Befehlsausführung in einer adressenerweiterten elektronischen Datenverarbeitungsanlage | |
DE3000012A1 (de) | Schaltungsanordnung zur ausfuehrung eines uebertragungsbefehls in einer datenverarbeitungsanlage | |
DE2164718A1 (de) | Verfahren und Datenverarbeitungsanlage zur Steuerung einer Vielzahl von Eingabe/Ausgabe-Einheiten mittels einer Zentraleinheit | |
DE2233164B2 (de) | Schaltungsanordnung zur uebertragung von aufeinanderfolgenden bitstellen zwischen zwei registern | |
EP0427884B1 (de) | Verfahren und Anordnung zum Komprimieren und Dekomprimieren von Daten | |
DE69815656T2 (de) | Rechnersystem mit einem mehrfach Sprungbefehlzeiger und -Verfahren | |
DE1474090B2 (de) | Datenverarbeitungsanlage |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OD | Request for examination | ||
D2 | Grant after examination | ||
8339 | Ceased/non-payment of the annual fee |