DE2139731C2 - Anordnung zur Code-Umsetzung - Google Patents
Anordnung zur Code-UmsetzungInfo
- Publication number
- DE2139731C2 DE2139731C2 DE2139731A DE2139731A DE2139731C2 DE 2139731 C2 DE2139731 C2 DE 2139731C2 DE 2139731 A DE2139731 A DE 2139731A DE 2139731 A DE2139731 A DE 2139731A DE 2139731 C2 DE2139731 C2 DE 2139731C2
- Authority
- DE
- Germany
- Prior art keywords
- code
- code word
- line
- length
- gate
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired
Links
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/40—Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
- H03M7/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
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M5/00—Conversion of the form of the representation of individual digits
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Description
Die Erfindung betrifft eine Anordnung zur Code-Umsetzung
nach dem Oberbegriff des Hauplanspruchs.
Durch Codierung mit variabler Codewonlänge kann man eine gegebene Datenmenge, die durch Dateneinheiten mit festem Format dargestellt ist, zur Speicherung oder Übertragung reduzieren. Dabei werden den
häufiger vorkommenden Bytes oder Wörtern die kürzeren Codewörter zugeordnet, wodurch im Ganzen
eine durchschnittliche Codewortlänge erreicht wird, die kleiner als die feste Codewortlänge ist. Die Auswahl und
Zuordnung wird aufgrund einer statistischen Analyse
ίο des betreffenden Datenmaterials gemacht. Wenn die
Daten z. B. als Bytes zu je 8 Bits vorliegen, kann man
dem am häufigsten vorkommenden Byte ein Codewort von nur einem Bit. dem zweithäufigsten ein Codewort
aus zwei Bits, usw, zuordnen. Vorzugsweise ist keines
der Codewöner im Code variabler Länge identisch mit dem Anfang irgendeines anderen Codewortes. damit
eine eindeutige Unterscheidung möglich ist: ein Code mit dieser Eigenschaft ist z. B. der sogenannte
Huffman-Code.
λ» Obwohl eine Codierung der Daten in Codewörtem
variabler Länge für Speicherung und Übertragung vorteilhaft ist. muß man sie zur Verarbeitung meist
wieder in eine Darstellungsform mit fester Länge der Dateneinheiten umsetzen. Der Vorteil, den man durch
>< Codierung mit variabler Wortlänge erzielt, könnte also
wegen der notwendigen Umsetzungen wieder verlorengehen. Wenn die Umsetzung aber beschleunigt und mit
einer günstigen Anordroing durchgeführt werden kann,
wird die Anwendung der Codierung mit variabler
«ι Wortlänge dadurch stark gefördert.
Eine Anordnung zur Codeumsetzung ist beispielsweise aus der deutschen Auslegeschrift 12 88 143 bekannt,
bei der alle Codewörter der beiden ineinander umzusetzenden Codes in jeweils einem umlaufenden
r> Speicher angeordnet sind: jedes eintreffende Zeichen
wird mit den Codewörtern im ersten Speicher verglichen und bei Übereinstimmung das entsprechende
Codewort aus dem zweiten Speicher ausgegeben. Diese Einrichtung ist jedoch nur für Codewörter fester Länge
■in vorgesehen und ist für Codeworte variabler Länge nicht
geeignet. In der US-Paicnisciirift 34 48 436 ist ein assoziativer Verglcichsschaltkreis zum Auffinden von
Informalionsdarsicllungcn variabler Länge beschrieben,
die eingegebene Zeichen variabler Länge mit gcspei-
4-, cherten Zeichen vergleicht: zur Unterscheidung der
Zeichen variabler Länge sind zwischen den gespeicherten Zeichen spezielle Trcnnkennzeichen angeordnet.
Bei der Speicherung großer Datenmengen führen diese Trenn/eichen zu einer nicht unbeträchtlichen Erhöhung
ν des gesamten Speicherbedarfs. Aus der US-Patentschrift
32 57 646 ist weiterhin bekannt, daß zum schnellen Vergleichen eines vorgegebenen Zeichens mit
einer Gruppe von weiteren Zeichen ein assoziativer Speicher zur Aufnahme der Gruppe von Zeichen
v, vorteilhaft ist; bei Verwendung von Zeichen variabler
Länge muß dabei das Ende eines jeden Zeichens durch ein besonderes Trennkennzeichen angezeigt werden.
Außerdem sind besondere Maßnahmen zur Ausrichtung des zu vergleichenden Zeichens mit den Spoiehcrstellon
ν) des Asso/.iativspeiehcrs erforderlich.
Die vorliegende Erfindung stellt sich daher die Aufgabe, eine Anordnung /ur Cmlciiimct/tinf! der
eingangs genannten An anzugeben, die bei einfachem
Aufbau die Codeumsetzung in beiden Richtungen
(" (Codierung und Decodierung) mit hoher Arbeitsgeschwindigkeit
ermöglicht und in der Lage ist. aufeinanderfolgende
Zeichen variabler Lange /n decodieren, die ohne spezielles Trennkcnnzeichen unmittelbar aiifein-
anderfolgend zur Codeumsetzung (Decodierung) eintreffen.
Diese Aufgabe wird durch die im Hauptanspruch gekennzeichnete Erfindung gelöst; Ausgestaltungen der
Erfindung sind in den Unteranspröchen gekennzeichnet Bei der hier vorgeschlagenen Anordnung zur
Codeumsetzung werden zwei Vergleichseinrichtungen verwendet, mit denen jeweils ein Codewort fester
Länge mit allen Codewörtern fester Länge oder jeweils ein Codewort variabler Länge mit allen derartigen
Codewörtern verglichen wird. Zur Durchführung des letztgenannten Vergleichs sind die Codewörter variabler
Länge rechtsbündig in den Einträgen eines TabeUenfelds enthalten,, die mit dem in der Vergleichseinrichtung ebenfalls rechtsbündig eingeschriebenen
Codewort verglichen werden. Bei Codewörtern, die kürzer sind als der Tabelleneintrag, werden die
überflüssigen Stellen des Tabelleneintrags so ausgelegt, daß sie beim Vergleichsvorgang immer Obereinstimmung
anzeigen. Da der Code variabler Länge so ausgelegt ist, daß kein Codewort mit dem Beginn eines
längeren Codeworts übereinstimmt, liefert die so ausgestaltete Vergleichseinrichtung für Codewörter
variabler Länge eindeutig das gesuchte Codeyort in der Tabelle. In besonders vorteilhafter Weise werden die
Vergleichseinrichtungen als Teile eines assoziativen Speichers ausgelegt, wobei die überzähligen Speicherstellen
in den Tabelleneinträgen für Codewörter variabler Länge durch spezielle Schaltungen so
eingestellt werden, daß sie beim assoziativen Vergleich immer Übereinstimmung anzeigen. Die Anzahl der
Speicherplätze im assoziativen Speicher und die Länge der Tabelleneinträge für Codewörter variabler Länge
können reduziert werden, wenn nicht alle Codewörter gespeichert werden, sondern nur die häufigeren (und
damit kürzeren); die restlichen Codewörter werden dann nicht codiert, sondern mit einem kennzeichnenden
Vorspann direkt in die Folge der Codewörter kopiert, die an sich variable Länge aufweisen.
Ausführungsbeispiele der Erfindung sind in den Zeichnungen dargestellt und werden nachfolgend näher
beschrieben Es zeigt
F i g. 1 eine allgemeine Darstellung eines Assoziativspeichers, der Speicherzellen mit drei Zuständen
enthält, mit Speicherplätzen für je ein Paar einander zugeordneter Codewörter und eine zugehörige Längenangabe.
F i g. 2 eine schematische Darstellung einer in dem in
F i g. 1 gezeigten Assoziativspeicher verwendeten Speicherzelle und der zugehörigen Steuerung,
F i g. 3A und 3B ein genaueres Schaltbild eines Assoziativspeichers gemäß F i g. 1 und der zugehörigen
Steuereinrichtungen,
Fig.4 ein Ablaufdiagramm, welches die Operation
der in den Fig.3A und 3B gezeigten Anordnung im Codierbetrieb zeigt,
F i g. 5 ein Ablaufdiagramm, welches die Arbeitsweise der in den Fig.3A und 3B gezeigten Anordnung im
Decodierbetrieb zeigt,
F i g. 6 eine allgemeine Darstellung eines Assoziativ-Speichers, der ähnlich dem in F i g. 1 gezeigten ist,
jedoch Modifikationen zum »Kopieren« von Codewörtern enthält,
F i g. 7 Einzelheiten eines Teils der Steuerung für einen Assoziativspeicher gemäß F i g. 6,
F i g. 8A, B, C ein Schaltbild einer Anordnung, welche einen modifizierten Assoziativspeicher reduzierter
Größe mit Kopiereinrichtung verwendet, F ι g, 9 ein Ablaufdiagramm, welches die Arbeitsweise
der in den Fig,8A bis 8C gezeigten Anordnung im
Codierbetrieb zeigt, und
F i g. 10 ein Ablaufdiagramm, welches die Arbeitsweise
der in den F i g, 8A bis 8C gezeigten Anordnung im Decodierbetrieb zeigt
Die Fig, 1 bis 5 zeigen ein Ausführungsbeispiel der Erfindung, in welchem ein Assoziativspeicher 11 je
einen Speicherplatz (eine Reihe von Zellen) für jedes
in mögliche Codewort fester Länge (ID-Codewort) aufweist
Wenn man annimmt daß die feste Codewort-Länge acht Bits oder ein Byte beträgt so gibt es 256
mögliche Codebitkombinationen, und somit werden 256 Informationswörter in verschiedenen Stellen im Assoziativspeicher
11 gemäß Darstellung F i g. 1 gespeichert Das Feld für Codewörter veränderlicher Länge
(VL-Codewörter) wird lang genug gehalten, um das längste vorkommende Codewort aufnehmen zu können,
das in diesem speziellen Beispiel mit 16 Bits angenommen wird. Diese VL-Felder des A ssoziativspeichers
werden mit Codewörtern veränderlicher Länge geladen, weiche Codewörtern fester Länge zugeordnet
sind, die jeweils in demselben Speicherplatz im ID-FeId
gespeichert sind. Die VL-Codewörter Srnd einwandfrei
unterscheidbar; keines dieser Codewörter veränderlicher Länge stellt den Anfang eines längeren Codewortes
dar.
Die VL-Codewörter werden rechtsbündig gesetzt so daß die signifikanten Bits eines jeden Codewortes die
jo äußersten rechten Positionen des VL-Feldes belegen.
Die Speicherzellen in diesem Feld, weiche nicht zur Speicherung signifikanter Bits benutzt werden, werden
gemäß nachfolgender genauerer Beschreibung in den X-Zustand versetzt, der in F i g. 1 auch durch ein X
r, dargestellt ist Im ersten Speicherplatz sind im VL-FeId
eine 1 und eine 0 und 14X in der Reihenfolge von rechts
nach links angeordnet Das entsprechende ID-Codewort wird für dieses Beispiel mit 00000000 angenommen.
Das Längenfeld enthält eine aus vier Bits bestehende Eintragung 0010, die angibt, daß zwei
signifikante Bits in der zugehörigen VL-Codeeintragung enthalten sind. In ähnlicher Weise gibt im letzten
Speicherplatz die Eintragung im Längenfeld an, daß 14 signifikante Bits in der VL-Codeeintragung vorhanden
r, sind. Die Eintragungen in den Speicherplätzen des
Assoziativspeichers brauchen relativ zueinander nicht in einer gegebenen Reihenfolge vorgenommen zu werden.
Für die Verwirklichung der Erfindung kann jede
beliebige Form eines Assoziativspeichers verwendet
*> werden, vorausgesetzt, daß er im VL-Speicherteil
Speicherzellen mit drei möglichen Zuständen enthält. Für die vorliegende Erfindung reicht ein Assoziativspeicher
aus, wie ei im USA-Patent Nr. 33 17 898 beschrieben und in F i g. 2 der vorliegenden Anmeldung
V) so modifiziert dargestellt ist, daß der ^-Zustand nur in
den Zellen des Speichers vorgesehen ist, die diese Eigenschaft wirklich brauchen.
In F i g. 2 ist in dem gestrichelten Rechteck 20 eine
Assoziativspeicherzelle mit drei Zuständen gezeigt
3d Diese Zelle 20 enthält ein Flipflop 22 zum Speichern
einer binären 1 oder einer binären 0. Wenn das . gespeicherte Bit signifikant ist, wird ein anderes Flipflop
24 in seinen 1-Zustand gesetzt; ist das gespeicherte Bit jedoch nicht signifikant (d. h. wenn die Zelle 20 im
>5 X-Zustand steht), wird das Flipflop 24 auf 0 zurückgestellt.
Um Informationen in die Zelle 20 zu schreiben, wird
eine von den drei Schreib-Eingangsleitungen 26,28 und
30 dieser Bitposition zusammen mit einer Schreib-Wahlleitung 32 erregt, die zu dem Speicherplatz gehört, in
welchem die Zelle 20 liegt Wenn die Leitungen 26 und 32 gleichzeitig erregt sind, erzeugt das Zusammentreffen dieser Signale am UND-Glied 34 ein Signal zum
Setzen des Flipflops 22 auf 1. Wenn die Leitungen 28 und 32 gleichzeitig erregt sind, wird ein Signal über das
UND-Glied 36 zum Setzen des Flipflops 22 auf 0 erzeugt. Jedesmal wenn ein Signal durch das Tor 34 oder
das Tor 36 zum Flipflop 22 geleitet wird, läuft dieses Signal auch durch das ODER-Glied 38 und wird an das
Flipflop 24 angelegt, um es auf 1 zu setzen. Die 1-Ausgangssignale der Flipflops 22 und 24 werden an
das mit drei Eingängen versehene UND-Glied 40 angelegt. Das O-Ausgangssignal vom Flipflop 22 und das 1 --,
1-Ausgangssignal vom Flipflop 24 werden an das mit drei Eingängen versehene UND-Glied 42 angelegt. Der
dritte Eingang zum UND-Glied 40 kommt von einer Verzweigung der O-Abfrageleitung 44, während der
dritte Eingang zum UND-Glied 42 von einer Verzwei- 2η gung der 1-Abfrageleitung 46 kommt. Die Abfrageleitungen
44 und 46 werden wahlweise mit einem Impuls beaufschlagt, abhängig davon, ob die jeweilige Bitposition
auf eine 1 oder eine 0 hin abgesucht wird.
Die Ausgangssignale der beiden UND-Glieder 40 und 42 werden auf eine »Nichtübereinstimmungsw-Leitung
48 geleitet, wobei eine derartige Leitung für jeden Speicherplatz des Assoziativspeichers vorgesehen ist.
Im erregten Zustand stellt die Leitung 48 den Übereinstimmungsanzeiger 50 für dieses Wort auf 0 in
zurück. Eine Nicht-Übereinstimmung kann auftreten, wenn die Zelle 20 eine 0 speichert und auf die
zugehörige 1-Signal-Leitung 46 ein Impuls gegeben wird, oder wenn die Zelle 20 eine 1 speichert zu einem
Zeitpunkt, zu welchem die zugehörige 0-Leitung 44 einen Impuls führt, vorausgesetzt, daß die Zelle nicht im
X-Zustand steht. Die resultierende Koinzidenz der Eingangssignale entweder am UND-Glied 40 oder am
UND-Glied 42 setzt ein Ausgangssignal auf die Leitung 48.
Um in die Zelle in den A"-Zustand zu versetzen, wird
die Schreibeingangsleitung 30 gleichzeitig mit der Schreiowahlleitung 32 erregt. Dadurch wird mit einem
durch das UND-Glied 52 geleiteten Signal das Flipflop 24 auf 0 zurückgestellt Wenn das Flipflop 24 im
0-Zustand steht, fehlt je eines der Eingangssignale zu jedem der beiden UN D-Glieder 40 und 42. und dadurch
werden diese beiden Tore so gesperrt, daß sie kein Signal auf die Leitung 48 weiterleiten können. Wenn die
Zelle 20 in ihrem X-Zustand und das Flipflop 24 auf 0 =>o
stehen, wirkt die Zelle 20 immer so, als ob eine Übereinstimmung vorläge, ungeachtet dessen, ob die
Zelle über die zugehörigen Leitungen 46 oder 44 auf 1 oder 0 abgefragt wurde, wodurch die Zelle 20 effektiv
von der Abfrage maskiert wird.
Die Assoziativspeichersteuerung ist in dem gestrichelten Rechteck 56 in F i g. 2 so weit fragmentarisch
dargestellt, wie sie für die vorliegende Beschreibung benötigt wird. Weitere Einzelheiten dieser Steuerung
sind in dem USA-Patent Nr. 33 17 898 beschrieben, ω
Wenn Daten in einen bestimmten Speicherplatz des Assoziativspeichers geschrieben werden sollen, wird
eine Schreibleitung 58 erregt, um ein Eingangssignal zu Schreibwahltoren 60 zu liefern, von denen für jeden
Speicherplatz eines vorgesehen ist. Wenn ein Wortwarnsignal an den anderen Eingang dieses Tores gelegt
wird, wird die entsprechende Schreibwahlieitung, wie 7. B. die Leitung 3Z erregt um die Speicherzellen dieses
Speicherplatzes zum Empfang von Daten von den Schreibeingangsleitungen 26, 28 und 30 vorzubereiten.
Wenn eine Abfrage- oder Suchoperation auszuführen ist, werden die Übereinstimmungsanzeiger 50 aller
Speicherplätze zuerst durch einen auf eine Rückstelleitung 62 gegebenen Impuls in den 1 -Zustand zurückgesetzt Dann werden auf die verschiedenen Abfrageleitungen, wie die Leitungen 44 und 46, wahlweise zur
Abfrage der zugehörigen Speicherzellen Impulse gegeben. Wenn eine oder mehrere Zellen in einem Wort
ein Nicht-übereinstimmungssignal auf der entsprechen
den Leitung 48 erzeugen, wird der Übereinstimmungsanzeiger 50 für diese1 Wort auf 0 gesetzt und dadurch
ein Eingangssignal vom Lesewahltor 64 beendet und verhindert, daß das entsprechende Wort aufgrund der
Abfrage ausgelesen wird.
Um ein übereinstimmendes Wort auszulesen, wird die Leseleitung 66 erregt. Beim übereinstimmenden Wort
empfängt der Übereinstimmungsanzeiger 50 kein Nicht-Übereinstimmungssignai und bleibt demzufolge
im 1-Zustand, in den er am Anfang versetzt wurde, und das Lesewahltor 64 wird daher vorbereitet, um das
Lesesignal von der Leitung 66 auf die Lese-Wahlleitung 68 weiterzuleiten. Das Signal auf der Leitung 68 bereitet
zwei UND-Glieder 70 und 72 vor zum Lesen der Daten aus allen Speicherzellen des gewählten Speicherplatzes.
Abhängig vom Zustand des Flipflops 22 wird ein Signal durch eines oder das andere der beiden UND-Glieder
70 und Tl auf die 1-Leseausgangsleitung 74 oder die
0-Leseausgangsleitung 76 geleitet.
Wenn die Zelle 20 im X-Zustand steht (Flipflop 24 auf
0 gesetzt), hat diese Einstellung keinen Einfluß auf das Auslesen der im Flipflop 22 gespeicherten Daten. Der
gerade im Flipflop 22 gespeicherte Wert (0 oder 1) wird ungeachtet dessen ausgHesen, ob die Zelle 20 im
X-Zustand steht oder nicht. Andere noch zu beschreibende Anordnungen sind vorgesehen, um die Bits zu
übergehen, die aus den Zellen ausgelesen werden, die im -Y-Zustand stehen. Die X-Stellung sperrt lediglich die
Tore 40 und 42. Sie beeinflußt die Auslesetore 70 und 72 nicht
Codierung
Die Arbeitsweise der in den Fig.3A und 3B gezeigten Einrichtung wird im Zusammenhang mit den
Ablaufdiagrammen der F i g. 4 und 5 beschrieben. Zuerst wird die Codieroperation betrachtet, bei der ein
1 D-Codewort (Code mit fester Länge) in ein zugeordnetes
VL-Codewort (Code mit veränderlicher Länge) umgewandelt wird. Es wird angenommen, daß der in
Fig.3A gezeigte Assoziativspeicher 11 vorher mit Paaren von I D-Code Wörtern und zugeordneten VL-Codewörtern
zusammen mit den zugehörigen Längeneintragungen (zur Bezeichnung der Anzahl signifikanter
Bits im betreffenden VL-Codewort) geladen wurde.
Wie bereits gesagt, wird als Beispiel angenommen, daß die 1 D-Codewörter eine Länge von 8 Bits oder
einem Byte haben, und daß die VL-Codewörter eine Länge von ein Bit bis zu 16 Bits haben können Um eine
Längenzahl von bis zu 16 Bits darzustellen (wobei 0000 eine 16 darstellt), genügen 4 Bits. Dementsprechend hat
der in F i g. 3A gezeigte Assoziativspeicher 11 ein 16 Bit
großes Feld zur Speicherung von VL-Codewörtern, ein 8 Bit großes Feld zur Speicherung der ID-Codewörter,
von denen jedes ein Byte lang ist, und ein 4 Bit großes Feld zu Lär.ger.angabe für das VL-Codewort In dem
Ausführungsbeispiel der Fig.3A und 3B wird weiter angenommen, daß der Assoziativspeicher für alle
möglichen ID-Bytekombinationen (insgesamt 256) Platz
hat.
Bevor die Codieroperation beginnt, wird die Anzahl der zu codierenden ID-Bytes in den Bytezähler 80 der
F i g. 3B eingegeben. Eine Datenquelle oder Eingabeein- ί
heit für die Lieferung dieser Bytezahl wird angenommen. Wenn die Eingabeeinheit mit einer anderen
Geschwindigkeit arbeitet als der Assoziativspeicher, kan>
entsprechend gepuffert werden. Die Einstellung des Bytezählers 80 wird schrittweise heruntergesetzt,
während die Bytes codiert werden, und die laufende Einstellung wird durch einen Decodierer 82 zu »Null«
oder »Nicht Null« decodiert. Ein O-Ausgangssignal vom
Decodierer 82 beendet die Codieroperation, was nachfolgend genauer beschrieben wird. ι -,
Die Codieroperation wird im Zusammenhang mit den F i g. 3A, 3B und 4 beschrieben. Die schematisch in den
Fig. 3A und 3B gezeigte Einrichtung dient nur als Ausführungsbeispiel. Es braucht nicht unbedingt diese
Form zu sein, in welcher die Erfindung für kommerzielle Zwecke hergestellt wird. Die Codieroperation wird
eingeleitet durch einen Startimpuls auf der Leitung 90, der zu einer Codier-Taktschaltung führt. Der Startimpuls
läuft über ein ODER-Glied 92 auf eine monostabile Kippschaltung 94 und schaltet diese zur Erzeugung :ϊ
eines Impulses auf der Leitung £1 ein, welcher über ein Kabel 96 in den Fig.3A und 3B läuft. Der Impuls auf
Leitung EI wird an ein in Fig.3A gezeigtes Tor 98
angelegt und schaltet dieses so ein, daß ein Byte von der nicht dargestellten Eingangseinheit zum ID-Argument- j<
> register 100 geleitet wird. Das Argumentregister 100 ent'ält jetzt das Byte, welches gegenwärtig zu codieren
ist. Derselbe Impuls wird außerdem von der Leitung E 1 über eine Verzögerungsschaltung 102 einer Eingabeeinheit
zugeführt, damit diese das nächste ID-Codebyte auf )5
die zum Tor 98 führenden Eingabeleitungen gibt. Der Impuls auf der Leitung E\ läuft außerdem über ein
ODER-Glied 106 in F i g. 3A zur Leitung 62, die auch in Fig.2 gezeigt ist, und stellt so die Übereinstimmungsanzeiger in der Assoziativspeichersteuerung 56 auf 1. 4η
letzt ist das Gerät zur Codierung bereit.
Wenn die monostabile Kippschaltung 94 in Fig. 3B abfällt, schaltet sie die monostabile Kippschaltung 108
ein. Dadurch wird ein Impuls auf der Leitung £2 erzeugt, welcher über das Kabel % zum Argumentregister
100 läuft, um ein dem Inhalt des ID-Argumentregisters 100 entsprechendes Muster von Einsen und Nullen
auf die Leitungen 110 zu geben. Diese abfragenden Leitungen 110 übernehmen eine ähnliche Funktion wie
die Abfrageleitungen 44 und 46, die oben im Zusammenhang mit F i g. 2 beschrieben wurden. Mit den
Signalen auf den Leitungen 110 werden die gespeicherten
I D-Codewörter abgefragt, um den Speicherplatz zu finden, der ein ID-Codewort enthält, das dem Inhalt des
Argumentregisters 100 entspricht. 5;
Wenn die monostabile Kippschaltung 108 in F i g. 3B abfällt, schaltet sie die nächste monostabile Kippschaltung
114 ein, die einen Impuls auf der Leitung £3 im Kabel 96 erzeugt. Der Impuls auf der Leitung £3 wird
über ein ODER-Glied 116 in F i g. 3A zur Leseleitung 66
der Assoziativspeichersteuerung 56 in den F i g. 3A und 2 weitergeführt Durch die Erregung der Leitung 66
wird der gesamte Inhalt des Speicherplatzes, bei dem Übereinstimmung im ID-FeId festgestellt wurde, über
ein Kabel 118 in Fig.3A auf das Datenregister 120
ausgelesen. Diese Information umfaßt die 16 Bits im VL-FeId zuzüglich der acht Bits im ID-Feid sowie die
vier Bits im Längenfeld dieses Wortes. Gleichzeitig mit
dieser Aktion wird der Impuls auf der Leitung £3 auch über ein ODER-Glied 122 geführt und schaltet den
Bytezähler 80 um eine Einheit herunter.
Wenn die monostabile Kippschaltung 114 abfällt, sendet sie einen Impuls über das ODER-Glied 124 und
schaltet die monostabile Kippschaltung 126 ein. Diese
Kippscahltung sendet einen Impuls auf die Leitung £4, der zum Tor 128 in Fig.3A weiterläuft und dieses
dadurch zur Übertragung des äußersten rechten Bits von vom VL-FeId des Datenregisters 120 auf die
Ausgabeeinheit vorbereitet.
Wenn das äußerste rechte Bit des VL-Codewortes auf diese Weise ausgegeben wurde, muß der Inhalt des
VL-Feldes im Datenregister 120 um eine Bitspeicherposition nach rechts verschoben werden. Das geschieht,
wenn die monostabile Kippschaltung 126 abfällt, wodurch die monostabile Kippschaltung 130 eingeschaltet
wird und einen Impuls auf der Leitung £5 erzeugt. Dieser Impuls auf der Leitung £5 wird an eine
nicht-dargestellte Verschiebeeinrichtung angelegt, um
eine Rechtsverschiebung der im VL-FeId des Datenregisters 120 gespeicherten Bits um ein Bit zu bewirken, wie
es durch den Pfeil der Linie £5 in F i g. 3A gezeigt ist.
Der Teil des Datenregisters 120, der die 4-Bit-Längenangabe
speichert, wird als Längszähler benutzt. Für jede Rechtsverschiebung der im VL-FeId des Registers
120 gespeicherten Bits wird diese Längenzahl um eine Einheit reduziert Dieses Herunterzählen des Längenzählers
erfolgt im vorliegenden Beispiel durch den Impuls £5, der durch ein ODER-Glied 132 zu einer
Leitung 134 läuft, die zu der nicht-dargestellten Einrichtung zum Herunterzählen des im Längenzähler
(die letzten vier Bits des Datenregisters 120) gespeicherten Wertes führen.
Mit einer Prüfung wird jetzt festgestellt, ob die Längenangabe auf 0 reduziert wurde, d. h. ob alle
signifikanten Bits des VL-Codewortes aus dem Datenregister 120 geschoben wurden. Wenn die monostabile
Kippschaltung 130 abfällt (F i g. 3B), wird die monostabile Kippschaltung 136 eingeschaltet und gibt einen
Impuls auf die Leitung £6, die zum Tor 138 in Fig.3B
führt. Die Anzeigeleitungen für Null (0) und Nicht-NuÜ (0) werden zum Tor 138 weitergeführt von einem
UND-Glied 140, an welches die Null-Ausgänge aller vier Stellen des Längenzählers angelegt werden. Wenn
das UND-Glied 140 kein Ausgangssignal hat, bedeutet das, daß mindestens eines der Bits im Längenzähler auf
1 steht, und dann gibt ein Inverter 142 ein entsprechendes Signal auf die Nicht-Null-Anzeigeleitung 144 und an
das Tor 138. Bei einer Einstellung des Längenzählers mit lauter Nullen wird die Null-Anzeigeleitung 146 zum Tor
138 erregt Wenn für den vorliegenden Fall angenoml.ien
wird, daß mehr als ein Codebit aus dem VL-FeId des Datenregisters 120 zu entnehmen ist, empfängt das
Tor 138 ein Nicht-Null-Anzeigesignal und erregt dadurch eine vom Tor 138 kommende Ausgangsleitung
147. Die Leitung 147 läuft durch die Kabel 148 und 150
zum ODER-Glied 124, wodurch der Impuls für »Nicht-Null« auf die monostabile Kippschaltung 126
gegeben wird. Dadurch wird ein neuer Operationszyklus eingeleitet, zu welchem welchem die aufeinanderfolgende
Erregung der monostabilen Kippschaltungen 126, 130 und 136 gehört Während dieser Aktion wird
ein anderes Bit aus der äußersten rechten Position des VL-Feldes des Datenregisters 120 ausgelesen und
resultiert in einer Rechtsverschiebung der übrigen Bits in diesem Feld um ein BiI und einer Prüfung der
Längenzählereinstellung auf lauter Nullen.
Die Operationsschritte, die die Erregungen der monostabilen Kippschaltungen 126, 130 und 136 sowie
die resultierende Erregung der Leitungen EA, E5 und EB umfassen, werden so oft wiederholt, bis die
Längenangabe auf 0 reduziert ist. Zu diesem Zeitpunkt ist das letzte signifikante Bit aus dem VL-FeId des
Datenregisters 120 entnommen worden, und die in diesem Feld verbleibenden Bits sind ohne Interesse, da
sie von Speicherzellen kamen, die im X-Zustand
standen, oder da sie anderweitig während des ersten Schiebeprozesses in das Register eingeführt wurden.
Die Operation läuft jetzt aus der Routine für die Rechtsverschiebung heraus. Wenn das in Fig.3B
gezeigte Tor 138 durch den Impuls auf der Leitung £6
betätigt wird, und die Null-Anzeigeleitung 146 aufgrund , -, der Gesamt-Null-Anzeige des Längenzählers erregt ist,
wird die Ausgangsleitung 154 vom Tor 138 auch erregt und gibt ein Eingangssignal auf jedes der UND-Glieder
156 und 158 in F i g. 3B. Ein zweites Eingangssignal zum UND-Glied 156 wird durch eine Null-Ausgangsleitung ,„
160 vom Decodierer 82 nur geliefert, wenn der Bytezähler 80 auf 0 reduziert wurde. Wenn die
Einstellung des Bytezählers 80 von 0 verschieden ist, liefert der Decodierer ein Ausgangssignal auf der
Leitung 162 zum UND-Glied 158. Wenn jetzt ,-angenommen wird, daß die Bytezählereinstellung von 0
verschieden ist, bedeutet das, daß zusätzliche ID-Bytes
zu decodieren sind, und das Zusammentreffen der Eingangssignale am UND-Glied 158 bewirkt einen
Impuls auf der Leitung 164, der durch die Kabel 148 und tl,
150 zum ODER-Glied 92 läuft, welches dann einen Impuls zur monostabilen Kippschaltung 94 weiterführt.
Damit beginnt -^n neuer Codierzyklus gemäß der
Darstellung in F i g. 4 mit den Schritten E1 bis £6.
Der oben beschriebene Codierzyklus wird so oft j-, wiederholt, bis der Bytezähler 80 ganz auf 0 steht. Wenn
das letzte ID-Byte codiert wurde und die Einstellung des Bytezählers 0 wird, liefert der Decodierer 82 ein
Null-Ausgangssignal an das UND-Glied 156. Wenn dann die Längenzählereinstellung 0 wird und anzeigt.
daß die letzte codierte Stelle aus dem Datenregister 120 ausgelesen wurde, erzeugt die gleichzeitige Erregung
der Eingänge des UND-Gliedes 156 einen Impuls zur Beendigung der Systemoperation.
Decodierung 4'
Wenn die Einrichtung im Decodierbetrieb betrieben wird, werden die Bits des zu decodierenden VL-Codewortes
sequentiell in ein VL-Argumentregister 178 in Fig.3A gegeben, welches über 16 Bitspeicherstellen -)fl
verfügt. Die Anzahl der VL-Codewörter. die in diesem Register 178 zu irgendeinem Zeitpunkt gespeichert sind,
ist unbestimmt. Zu Anfang einer jeden Decodieroperation muß jedoch das erste Bit eines neuen VL-Codewortes
in die am weitesten rechts liegende Stelle des Argumentregisters 178 gesetzt werden.
Die Decodieroperation des Systems wird nun im Zusammenhang mit den F i g. 3A, 3B und 5 beschrieben.
Im Ablaufdiagramm der F i g. 5 entsprechen die verschiedenen Schritte D1, D 2, usw., den durch Impulse eo
auf den verschiedenen Leitungen Dl, D2, usw.
ausgelösten Operationen gemäß nachfolgender Beschreibung. Die Decodieroperation beginnt durch
Anlegen eines Impulses an die Startleitung 180 zur Betätigung der monostabilen Kippschaltung 182 im
Decodiertaktgeber. Wenn die monostabile Kippschaltung 182 eingeschaltet wird, sendet sie einen impuis
über die Leitung D1 und die Kabel 184 und 96 in den
F i g. 3A und 3B zu einer Rückstelleinrichtung für den Längenzähler, der die vier äußersten rechten Bitspeicherpositionen
im Datenregister 120 umfaßt. Der Impuls auf der Leitung D1 stellt den Längenzähler auf
Gesamtnull zurück und bereitet ihn dadurch zum Zählen der ersten 16 Informationsbits vor, die sequentiell in das
Argumentregister 178 eingegeben werden. Bevor die Decodieroperationen beginnen können, muß mit Hilfe
des Längenzählers festgestellt werden, daß 16 Informationsbits in das Argumentregister 178 eingegeben
wurden.
Wenn die monostabil Kippschaltung 182 abfällt, sendet sie einen Impuls durch das ODER-Glied 186 an
die monostabile Kippschaltung 190, die dann einen Impuls auf der Leitung D 2 erzeugt. Dieser Impuls auf
der Leitung D2 läuft durch ein ODER-Glied 192 in F i g. 3A und eine Leitung 194 zu einem Tor 196, welches
dadurch so eingeschaltet wird, daß das erste Bit von der Eingabeeinheit in die äußerste linke Bitspeicherposition
des Argumentregisters 178 geleitet wird. Der Impuls auf der Leitung 194 läuft außerdem über eine Verzogerungsschaltung
198 in die Eingabeeinheit, damit das nächste Bit zur Übertragung zur Verfügung gestellt
wird. Das gerade in das Argumentregister 178 eingegebene Bit muß schließlich nach rechts verschoben
werden, bis es die äußerste rechte Bitspeicherposition in diesem Register einnimmt. Der Impuls D 2 läuft
außerdem über das ODER-Glied 132 in F i g. 3A auf die Leitung 134 und vermindert den Inhalt des Längenzählers
um eine Einheit. Wenn der Längenzähler am Anfang auf 0000 stand, wird seine Stellung durch den
ersten Abzählschritt auf 1111 geändert.
Wenn die monostabile Kippschaltung 190 in Fig.3B
abfällt, wird die monostabile Kippschaltung 200 eingeschaltet und erzeugt einen Impuls auf der Leitung
D3. Dieser D3-Impuls wird an ein Tor 202 angelegt,
welches ein Eingangssignal von der zum Längenzähler gehörenden Nicht-Null-Anzeigeleitung 144 oder der
Null-Anzeigeleitung 146 empfängt. Wenn der Längenzähler wie im vorliegenden Beispiel nicht auf 0 steht,
läuft ein Signal von der Leitung 144 durch das Tor 202 zur Leitung 204, die zu der in Fig.3B gezeigten
monostabilen Kippschaltung 208 führt.
Wenn die monostabile Kippschaltung 208 einschaltet, setzt sie einen Impuls auf die zeitung D4, der dann
durch ein ODER-Glied 210 in F i g. 3A auf eine Leitung 212 läuft, die zu einer nicht dargestellten Verschiebeeinrichtung
des Argumentregisters 178 führt. Dadurch wird der Inhalt des Argumentregisters 178 um eine
Bitspeicherposition nach rechts verschoben, so daß die äußerste linke Bitspeicherstelle dieses Registers zum
Empfang eines neuen Eingabebits bereit ist.
Wenn die monostabile Kippschaltung 208 abfällt, sendet sie einen Impuls über die Leitung 216 und das
ODER-Glied 186 zur monostabilen Kippschaltung 190 und schaltet diese dadurch ein. Die Reihenfolge der
Schritte D2 und D3 in Fig.5 wird jetzt wiederholt,
während die monostabilen Kippschaltungen 190 und 200 nacheinander erregt werden. Beim Schritt D 3 wird
wieder die Einstellung des Längenzählers geprüft, und wenn sie nicht 0000 ist, wird die monostabile
Kippschaltung 208 eingeschaltet zur Ausführung des Schrittes D 4, wodurch der Inhalt des Argumentregisters
178 nach rechts verschoben wird.
Diese Reihenfolge der Eingabe eines Informatic-nsbits
in das Argumentregister 178 - Vermindern des Längenzähierinhalts, Prüfung der Längenzählerstellung
und Rechtsverschiebung des Inhalts des Argumentregi-
Il
siiTs !78 - w-ird wiederholt, bis die Prüfung im Schritt
D 3 schließlich ergibt, daß die Längenzählstellung 0000
ist. Dadurch wird angezeigt, daß die ersten 16 inform.itionsbits in das Argumentregisler 178 geleitet
wurden und das erste Bit des ersten VL-Codewortes jetzt in der äußersten rechten Stelle des Registers 178
steht. Wenn an diesem Punkt der D3-Impuls aul'dasTor
202 in Fi g. 3B gegeben wird, läuft die Erregung weiter
von der Null-Anzeigeleitung 146 des Längenzählers durch das Tor 202 zu einer Leitung 220, die zum
ODER-Glied 222 in Fig. 3B führt, wodurch die Erregung weitergeführt wird zur monostabilen Kippschaltung
224. Wenn die monostabile Kippschaltung 224 eingeschaltet wird, gibt sie einen Impuls auf eine Leitung
D 5. der über die Kabel 184 und % zum ODER-Glied 106 in Flg. 3A und die Übereinstimmungsanzeiger-Rückstelleitung
62 weitergeführt wird und dadurch die Übcrcinstimmungsanzcigcr in der Speichersteuerung 56
in den F i g. 3A und 2 auf I zurückstellt. Wenn die mcmos'abile Kippschaltung 224 abfällt, schaltet sie die
monosiabiie Kippschaltung 226 ein, und die Leitung DG
erhält einen Impuls. Dadurch wird ein Impuls auf das Argumentregister 178 in Fig. 3A gegeben und eine
Abfrageoperation eingeleitet, in welcher der Inhalt des Argumentregisters 178 über die Abfrageleitungen 230
an die VL-Felder des Assoziativspeichers übertragen wird. Die Abfrageleitungen 230 umfassen Leitungen wie
die Abfrageleitungen 44 und 46 in F i g. 2 zur Abfrage der Speicher/eilen, die die VL-Codewörter im Assoziativspeicher
enthalten. Speicherzellen, die im A'-Zustand stehen, können keine Signale für Nicht-Übereinstim-.1Uing
erzeugen. Eine Speicherzelle, die weder im Y-Zustand sieht noch einen Bilwert speichert, welcher
mit dem Signal auf der zugehörigen Abfrageleitung (230 in Fig. 3A) übereinstimmt, erzeugt ein Nicht-Übereinsiimmungssignal
und setzt damit den entsprechenden Übereinstiiiinuingsanzeiger auf 0.
Wie bereits gesagt wurde, stimmt kein VL-Codewort
mit dem Beginn eines anderen VL-Codeworts überein. Somit stimmen die Bits im Argumentregister 178 nur
mit einem Codewort im Assoziativspeicher überein, und zwar mit dem Codewort. dessen signifikante Bits genau
mit der entsprechenden Anzahl Bits übereinstimmen, die am rechten Ende des Argumentregisters 178 stehen.
Das gilt ungeachtet der Anzahl anderer VL-Codewörter. die in den übrigen Positionen des Argumentregisters
178 gespeichert sind.
Wenn die monostabile Kippschaltung 226 abfällt, wird die monostabile Kippschaltung 232 eingeschaltet
und erzeugt einen Impuls auf der Leitung D 7. der über die Kabel 184 und % zum ODER-Glied 116 in F i g. 3A
weiterläuft. Dieser Impuls wird dann über das ODER-Glied 116 auf die Leseleitung 66 der Assoziativspeichersteuerung
56 gegeben. Der Übereinstimmungsanzeiger, der dann auf 1 steht, bezeichnet den
Speicherplat im Assoziativspeicher, der das übereinstimmende VL-Codewort enthält. Der gesamte Inhalt
dieses Speicherplatzes wird aus dem Assoziativspeicher über die Ausgangsleitungen 118 auf das Datenregister
120 ausgelesen. Diese Daten umfassen das gesuchte I D-Codewort und auch eine Längenangabe. Der Impuls
D 7 wird außerdem durch das ODER-Glied 122 in F i g. 3A weitergeführt und vermindert den Inhalt des
Bytezählers 80 in F i g. 3B um eine Einheit.
Wenn die monostabile Kippschaltung 232 abfällt, schaltet sie eine monostabile Kippschaltung 236 ein.
Diese erzeugt einen Impuls auf der Leitung D 8. der an
ein Tor 238 in Fig.3A angelegt wird und dieses zur
Übertragung des acht Bit umfassenden I D-Code Wortes aus dem Datenregister 120 an die Ausgabeeinheit
veranlaßt.
Zu diesem Zeitpunkt enthält der Vier-Bit-Längenzähler (die ι echten vier F'.iiitionen des Datenregisters 120
in Fig.3A) die Anzahl der in dem gerade decodierten
VL-Codewort enthaltenen signifikanten BiK Der Inhalt des Argumentregisters muß jetzt um diese Bit-Anzahl
nach rechts verschoben werden, um das erste Bit des nächstfolgenden VL-Codewortes in die äußerste rechte
Position des Argumentregisters zu bringen. Das geschieht auf folgende Weise:
Wenn die monostabile Kippschaltung 236 abfällt. überträgt sie einen Impuls über das ODER-Glied 240
/um Einschalten an die monosiabiie Kippschaltung 242. Diese erzeugt einen Impuls auf der Leitung D9 in den
F i g. 3B und 3A, der über das ODER-Glied 210 auf die Verschiebeleitung 212 gelangt. Dadurch wird der Iniialt
des Argumentregisters 178 um ein Bit nach rechts verschoben. Gleichzeitig läuft der Impuls auf der
Längenzähler-Dekrementierleitung 134 und vermindert den Inhalt des Längenzählers um eine Einheit.
Wenn die monostabile Kippschaltung 242 abfällt, schaltet sie die monostabile Kippschaltung 244 ein und
erzeugt dadurch einen Impuls auf der Leitung D 10. Dieser Impuls läuft durch das ODER-Glied 192 und die
Leitung 194 zum Tor 196 in F i g. 3A, um das nächste Bit in die äußerste linke Stelle des Argumentregisters 178
einzugeben. Gleichzeitig läuft der Impuls durch die Verzögerungseinheit 198 weiter zur Eingabeeinheit, so
daß sie ein neues Bild für die Eingabeseite des Tores 196 zur Verfügung stellen kann.
Wenn die monostabile Kippschaltung 244 abfällt, schaltet sie die monostabile Kippschaltung 246 ein.
welche dann einen Impuls auf die Leitung D 11 gibt, der an das in Fig. 3B gezeigte Tor 248 weiterläuft und den
Zustand des Längenzählers prüft. Wenn der Längenzähler noch nicht auf 0 reduziert wurde, leitet das Tor 248
einen Impuls von der Nicht-Null-Anzeigeleitung 144 auf eine Leitung 250, die zum in Fig. 3B gezeigten
ODER-Glied 240 führt. Die Folge davon ist die erneute Einschaltung der monostabilen Kippschaltung 244 und
der erneute Beginn der in F i g. 5 gezeigten Reihenfolge der Schritte D9, DlO undf DIl. Somit wird t c-r Inhalt
des Argumentregisters 178 progressiv nach rechts verschoben, bis die laufende Zahl im Längenzähler auf 0
reduziert ist. Wenn diese Bedingung erreicht wird, ist das Bit in der ersten Stelle des nächstfolgenden
VL-Codewortes an das rechte Ende des Argumentregisters 178 gesetzt worden, und die Einrichtung ist dann
zur Ausführung einer neuen Abfrageoperation mit diesem VL-Codewort bereit.
Wenn die Längenangabe auf 0 reduziert und die monostabile Kippschaltung 246 eingeschaltet ist, wird
die Erregung von der Null-Anzeigeleitung 146 über das Tor 248 auf eine Leitung 255 ausgedehnt, die jeweils
einen Eingang zu den beiden UND-Gliedern 254 und 256 bildet. Wenn der Bytezähler 80 zu diesem Zeitpunkt
noch nicht auf 0 steht, liefert der Decodierer 82 ein Signal auf der Leitung 162, welches durch das
UND-Glied 254 zu einer Leitung 260 und von dort durch das in F i g. 3B gezeigte ODER-Glied 222 zur monostabilen
Kippschaltung 224 läuft und diese einschaltet. Daraufhin werden die in dem Ablaufdiagramm der
Fig.5 gezeigten Schritte D5 bis DIl wiederholt
Dieser Vorgang läuft weiter, bis der Bytezähler auf Null
steht. Wenn dann die in Fig.3B gezeigte monostabile
Kippschaltung 246 einschaltet, wird das UND-Glied 256
aktiv und erzeugt ein Signal zur Beendigung der Decodieroperation.
Die anhand der F i g. 1 bis 5 beschriebene Codier-Decodiereinrichtung arbeitet mit einem Assoziativspeicher, der für jedes mögliche I D-Codewort samt dem
zugeordneten CL-Codewort einen eigenen Speicherplatz enthält In dem zur Darstellung gewählten Beispiel
haben die Codewörter eine Länge von einem Byte (8 Bits), und der Assoziativspeicher muß daher für alle
möglichen Bytekombinationen eine Kapazität von 256 Wörtern haben. Es gibt jedoch viele Situationen, in
denen für einen kleinen Teil der gesamten Daten die Verdichtung (Codierung mit Codewörtern variabler
Länge) geopfert werden kann, um einen großen Teil der Speicherkosten zu sparen. Eine Analyse der in der
Praxis wahrscheinlich auftretenden Datenbasen kann zeigen, daß nur für einen sehr kleinen Anteil der Daten
die Verdichtung verlorengeht, wenn nur die I5Ö häufigsten I D-Codewörter in eindeutige Codewörtsr
eines Codes mit veränderlicher Länge umgewandelt werden. Die übrigen 106 ID-Codewörter, die wesentlich
seltener auftreten als die ersten 150 Codewörter, können dann ohne die übliche Codierung und
Decodierung verarbeitet werden. Die längeren VL-Codewörter werden normalerweise den ID-Codewörtern
zugeordnet, die nicht so häufig auftreten, so daß man durch ihre Verwendung ohnehin nur eine relativ kleine
Verdichtung erreicht Sobald eines dieser weniger häufigen ID-Codewörter auftritt, kann es in geeigneter
Weise gemäß vorliegender Beschreibung gekennzeichnet und durch das System nicht codiert, sondern
»kopiert«, d.h. einfach unverändert übernommen werden. Diese Betriebsart wird in der vorliegenden
Beschreibung als »Kopierbetrieb« bezeichnet
Für den Kopierbetrieb wird das mit den F i g. I bis 5 erläuterte System zu einer Einrichtung gemäß Darstellung in den Fig.6 bis 10 modifiziert Ein Vergleich der
F i g. 6 mit der F i g. 1 zeigt die erforderlichen Änderungen. In diesem Ausführungsbeispiel hat der Assoziativspeicher 11' in Fig.6 eine Speicherkapazität von 150
Plätzen (für je ein ID-Codewort und ein zugeordnetes
VL-Codcwort); dazu kommt ein weiterer Speicherplatz,
welcher ein Kopierkennzeichen in seinem VL-FeId enthält Der Inhalt des ID-Feldes in diesem zuletzt
genannten Speicherplatz spielt so lange keine Rolle, als er nicht mit einem der in den 150 übrigen Speicherplätzen enthaltenen ID-Codewörter identisch ist. Die
nachfolgend noch zu beschriebende Assoziativspeicher' steuerung bewirkt, daß in den Fällen, wo keine
Übereinstimmung mit einem der 150 im Assoziativspeicher gespeicherten ID-Codewörter festgestellt wird, das
Kopierkennzeichen automatisch abgegeben wird. Das »codierte« Ausgangswort besteht schließlich aus den
Kopierkennzeichen-Bits und den unmittelbar anschließenden Bits des unveränderten I D-Code Wortes. Dadurch entsteht zwar ein »VL-Codewort«, das länger ist
als die normalen ID-Codewörter; da dies jedoch relativ eo selten eintritt, wird die Gesamtdatenverdichtung nicht
wesentlich beeinflußt.
Die Größe des VL-Feldes kann so gewählt werden, daß sie für die längsten VL-Codewörter ausreicht, die
unter normalen Codierbedingungen ausgegeben werden. In dem vorliegenden Beispiel wird für die
Darstellung ein VL-FeId von 9 Bits Länge angenommen. Bei Verwendung dieses Schemas spart man somit sieben
Speicherzellen pro Wort Durch die Modifikation spart man also nicht nur an der Anzahl der im Assoziativspeicher 11' zu speichernden Wörter, sondern auch an der
Anzahl der in jedem solchen Wort enthaltenen Bits. Eine Modifikation der Anordnung, die ein Kopieren
ermöglicht, gestattet daher eine genügende Datenverdichtung und erfordert nur einen Assoziativspeicher
bescheidener Größe.
Das Kopierkennzeichen erfordert nicht unbedingt die mögliche Höchstzahl von Bits. Es muß aber von den
andern VL-Codewörtern verwechslungsfrei unterscheidbar sein. Das Kopierkennzeichen stellt effektiv
alle 106 ID-Codewörter dar, die im vorliegenden Beispiel ohne normale Codierung behandelt werden.
Diese Gruppe von ID-Codewörtern kann als eine Einheit in der Reihe der Häufigkeit zusammen mit den
übrigen 150 ID-Codewörtem rangieren, und die Häufigkeit, mit der Glieder dieser Codegruppe auftreten, bestimmt die Länge des zu ihrer gemeinsamen
Darstellung verwendeten Kopierkennzeichen. Unter diesen Umständen kann das Kopierkennzeichen eine
Länge (d. h. eine Anzahl signifikanter Bits) haben, die
beträchtlich unter der Höchstlänge von 9 Bits der normalen VL-Codewörter liegt
Wenn die in Fig.6 gezeigte Einrichtung als
Decodierer arbeitet, werden die hereinkommenden Codewörter (die in einigen Fällen auch eine Kombination von Kopierkennzeichen und ID-Codewort sein
können) sequentiell dem VL-Argumentregister zugeführt Jedes Kopierkennzeichen leitet eine Sonderoperation ein, in welcher die Bits des Kopierkennzeichens
aus dem Argumentregister geschoben und die folgenden acht Bits des ID-Codewortes in die acht am
weitesten rechtsstehenden Positionen dieses Argumentregisters gebracht werden. Diese acht Bits des
ID-Codewortes werden dann parallel aus dem VL-Argumentregister ausgelesen, und nicht wie sonst aus dem
Daten-Decodierregister. Anschließend wird das ID-Codewort aus dem VL-Argumentregister ausgeschoben,
um das nächstfolgende VL-Codewort in Decodierposition zu bringen.
Wenn ein ID-Codewort, das im ID-Argumentregister
steht, bei einer Codieroperation kein übereinstimmendes ID-Codewort im Assoziativspeicher 11' findet,
erfolgt eine Sonderoperation, durch die das Kopierkennzeichen aus dem Assoziativspeicher in das
Datencodierregister gelesen wird, von wo die Bits dieses Kopierkennzeichen dann sequentiell ausgelesen
werden. Unmittelbar anschließend werden die acht Bits des ID-Codewortes aus dem ID-Argumentregister
sequentiell ausgelesen und an die Reihe der Kopierkennzeichen-Bits angehängt, um eine aus Kopierkennzeichen-Bits und ID-Codewort-Bits zusammengesetzte
Bitfolge der oben beschriebenen Art zu bilden.
Fig.7 zeigt einen Teil der Schaltung in der Assoziativspeichersteuerung 56' für dieses zweite
Ausfuhrungsbeispiel der Erfindung. In dieser sowie in den zugehörigen F i g. 6 und 8A bis 10 tragen die Teile,
die Elementen des in den F i g. 1 bis S gezeigten ersten Ausführungsbeispiels entsprechen, dieselben Bezugs·
zahlen, an welche jedoch noch ein Strich (') angehängt wurde. In dem in F i g. 7 gezeigten Steuerschema sind
eine Nicht-Übereinstimmungsleitung 48' und ein Übereinstimmungsanzeiger 50' jedem der Speicherplätze im
Assoziativspeicher 11' der F i g. 6 zugeordnet, angenommen den einen Speicherplatz, welcher das Kopierkennzeichen enthält. Von jedem JD-ArgumentCodewort,
das keinem der 150 normal zu codierenden Wörter
entspricht, wird angenommen, daß es zur Gruppe der
I D-Codewörter gehört, die gemeinsam durch das Kopierkennzeichen bezeichnet sind Wenn das ID-Argumentcodewort während einer Codieroperation mit
keinem der Wörter übereinstimmt, zu denen Obereinstimmungsanzeiger 50' gehören, werden alle diese
Obereinstimmungsanzeiger in den O-Zustand zurückversetzt. Dadurch wird ein Schaltungsweg von der
Leseleitung 66' in Fig,7 über eine Reihe von
UND-Gliedern 290 (von denen jedes ein Eingangssignal von der O-Ausgangsseite des entsprechenden Obereinstimmungsanzeigers 50' empfängt) zu einer Lese-Wahlleitung 292 Tür das Kopierkennzeichen hergestellt,
woraufhin das Kopierkennzeichen als erster Teil des Ausgabe-Codewortes in das Datenregister übertragen
wird. Gleichzeitig wird das Erregungssignal durch die Leitung 292 und 294 auf ein Kopier-Flipflop 296
weitergeführt und dieses dadurch auf 1 gesetzt Dadurch werden die im ID-Argumentregister gespeicherten
I D-Codebits sequentiell als zweiter Teil des Ausgabe-Codewortes ausgelesen. Somit bewirkt die Eintragung
eines der nicht im Assoziativspeicher enthaltenen I D-Codewörter in das ID-Argumentregister beim
Codieren eine zusammengesetzte Codebitreihe, die aus einem Kopierkennzeichen und einem anschließenden
I D-Codewort besteht. Dabei spielt es keine Rolle, ob das ID-Argument-Codewort mit dem ID-FeId im Kopierkennzeichenspeicherplatz übereinstimmt oder nicht
Das Kriterium besteht in der Nicht-Obereinstimmung mit allen I D-Code Wörtern, die in den anderen
Speicherplätzen des Assoziativspeichers IV gespeichert sind.
Während einer Decodierung stimmt das als Argument verwendete VL-Codewort entweder mit einem
der 150 gespeicherten VL-Codewörter überein, oder mit
dem gespeicherten Kopierkennzeichen. Wenn das Argument ein Kopierkennzeichen ist werden alle
Übereinstimmungsanzeiger 50' in Fig. 7 auf 0 zurückgestellt, und die Leseschaltung wird von der Leitung 66'
über die UND-Glieder 290 und die Leitungen 292 und 294 zum Kopier-Flipflop 296 weitergeführt und dieses
auf I gesetzt Bei einer Decodierung werden die Kopierkennzcichen-Bits aus dem Argumentregister
ausgeschoben, und die Bits des folgenden I D-Codewortes so plaziert daß sie gemäß Darstellung in Fig.6
direkt aus dem Argumentregsiter ausgelesen werden können.
Das Schaltbild in den Fig.8A bis 8C und die Ablaufdiagramme in den Fig.9 und 10 zeigen genauer
Aufbau und Arbeitsweise der modifizierten Assoziativspeicher-Anordnung, mit der auch Codewörter kopien
werden können. In diesen Figuren sind die Schaltelemente mit den gleichen, nur durch einen Strich (')
erweiterte/) Bezugszeichen versehen wie die entsprechenden Elemente im ersten AusfUhrungsbeispiel
(F i g. 2 bis 5). Um die Ablaufdiagramme der F i g. 9 und 10 mit der in den F i g. 8A bis 8C gezeigten Einrichtung
in Beziehung zu setzen, sind die Schritte in den Ablaufdiagrammen mit den gleichen Bezugszeichen
versehen wie die Leitungen, welche die Taktimpulse führen, die diese Schritte einleiten. Der Schritt EV in
F i g. 9 wird z. B. eingeleitet durch einen Taktimpuls, welcher über die Leitung EV in den Fig.8C und 8B
angelegt wird. Wie bereits gesagt wurde, hat der in F i g. 8A gezeigte Assoziativspeicher 11' eine wesentlich
kleinere Kapazität als der in Fig.3A gezeigte Assoziativspeicher 11, da im vorliegenden Ausführungsbeispiel der Assoziativspeicher nicht dazu benötigt wird,
eine Codeumwandlungsfunktion for jede mögliche Codebitkombination auszuführen. Die häufiger auftretenden I D-Codewörter (von denen im vorliegenden
Beispiel angenommen wird, daß für sie eine VL-Code
form von 9 Bits ausreicht), werden im wesentlichen
genauso behandelt, wie es oben im Zusammenhang mit den F i g. 1 bis 5 beschrieben wurde. Deshalb werden die
solche Codewörter betreffenden Codier- und Decodieropera(ionen hier nicht mehr genauer beschrieben. Hier
ίο werden nur die Operationen beschrieben, welche die
weniger häufig auftretenden ID-Codewörter betreffen, solche also, für die bei normaler Codierung VL-Codewörter verwendet würden, die eine Länge von 9 Bits
überschreiten. Für solche ID-Codewörter wird ein
besonderes Code-Kopierverfahren angewendet, welches jetzt genauer beschrieben wird.
Im vorliegenden Fall wird angenommen, daß ein großer Teil der möglichen 8-Bit-Kombinationer in die
Kategorie der weniger häufig auftretenden ID-Code-
2« Wörter fällt, für welche das Kopierverfahren benutzt
werden solL Allen Codewörtern in dieser Gruppe wird
derselbe Wahrscheinlichkeitsdrang zugeordnet, und sie werden kollektiv durch ein gemeinsames Kopierkennzeichen dargestellt, das im codierten Format vor dem
I D-Codewort steht und dieses als ein Codewort kennzeichnet, das nicht umgewandelt, sondern einfach
kopien wurde. Außerdem wird jedem Codewort in dieser Gruppe dieselbe Längenzahl entsprechend der
Anzahl der signifikanten Bits im Kopierkennzeichen
jo zugeordnet Länge und Format des Kopierkennzeichens
hängen vom Wahrscheinlichkeitsrang der Codewörter dieser Sondergruppe relativ zu den anderen Codewörtern ab.
Im Zusammenhang mit den Fi g. 8A bis 8C und 9 wird
J5 nun eine Codieroperation beschrieben. Der Bytezähler
80' in Fig.8B wird auf die Anlage der ID-Codewörter
gesetzt, die zu codieren sind. Ein Startimpuls wird auf die Leitung 90' in Fi g. 8C gegeben, um die Operation
des Codiertaktgebers einzuleiten. Im Schritt EV
(Fig.9) wird das zu codierende ID-Codewort in das
Argumentregister 100' in Fig.8A eingegeben. Die Übereinstimmungsanzeiger 50' (F i g. 7) in der Assoziativspeichersteuerung werden auf 1 zurückgestellt Im
vorliegenden Ausführungsbeispiel wird durch den
4) £ !Taktimpuls eine zusätzliche Funktion übernommen.
über ein ODER-Glied 300 auf das Kopier-Flipflop 296
geleitet und stellt dieses auf 0 zurück.
>o Abfrage (Suchoperation) mit dem ID-Codewort im
Argumentregister vorgenommen, um ein übereinstimmendes Wort zu finden. Wenn ein übereinstimmendes
Wort im Speicher 1 ϊ' gefunden wird, wird das in diesem
Speicherplatz enthaltene VL-Codewort ausgelesen und
in das Datenregister 120' in F i g. 8A eingegeben. Wenn
kein übereinstimmendes Wort gefunden wird, erregt die Assoziativspeichersteuerung 56' in Fig.7 die Lese*
Wahlleitung für das Kopierkennzeichen um dieses auszulesen und in das VL-FeId Das Datenregsiters 120'
einzugeben. Gleichzeitig leitet die Assoziativspeichersteuerung die Erregung über die Leitung 294 zum
Kopier-Flipflop 296 in Fig. 8B und setzt dieses Flipflop
in den !-Zustand. Der Inhalt des Bytezählers 80' wird dann um eine Einheit vermindert.
Der aus den in Fig.9 gezeigten Schritten EV, E5'
und £6' bestehende Zyklus wird so oft wiederholt, wie es zum sequentiellen Auslesen der in dem neun Bit
großen VL-FeId des Datenregisters 120' (Fig.8A)
gespeicherten signifikanten Codebits erforderlich ist.
Das gilt ungeaehtev dessen, ob die in diesem Feld gespeicherte Bitfolge ein VL-Codewort oder em
Kopierkennzeichen ist Wenn das letzte signifikante Bit
ausgelesen wird, ist der Inhalt des Längenzählers (die vier rechten Positionen des Datenregisters 120') auf 0
reduziert Zu diesem Zeitpunkt ist das Tor 138' in F i g. 8B, an welches der Taktimpuls £6' angelegt wurde,
zur Weiterführung der Erregung von der Null-Anzeigeleitung 146' des Längenzählers Ober eine Leitung 302 an ι ο
die drei UND-Glieder 304,305 und 306 vorbereitet
Wenn das Kopier-Flipflop 296 auf 1 gesetzt ist und damit anzeigt daß ein Kopierkennzeichen ausgelesen
wurde, muß eine Folge von Sonderschritten eingeleitet werden, um die Bits des im Argumentregister
gespeicherten ID-Codewortes sequentiell unmittelbar nach dem letzten Bit des Kopierkennzeichens zu
übertragen. Diese Folge von Sonderschritten ist in Fig.9 mit El bis £10 bezeichnet und wird eingeleitet
wenn Erregungssi^t.ale gleichzeitig an beide Eingänge
des UND-Gliedes 3ö4 angelegt werden, d, h, wenn der
Längenzähler auf 0 reduziert ist (Schritt £6'), während das Kopier-Flipflop auf 1 steht Durch das UND-Glied
304 wird daraufhin ein Signal über die Leitung 310 geleitet die gemäß Darstellung in den F i g. 8B und SC
durch ein Kabel 150' zu einer monostabilen Kippschaltung 312 läuft welche dann durch das Signal
eingeschaltet wird und einen Taktimpuls auf der Leitung El erzeugt Dieser Taktimpuls El stellt den Längenzähler auf 1000 (Dezimal 8) ein. Dadurch wird der jo
Längenzähler auf die Steuerung des Auslesevorganges der 8 Bits des im Argumentregister 100' in Fig.8A
gespeicherten I D-Codewortes vorbereitet
Wenn die monostabile Kippschaltung 312 abfällt liefert sie einen Impuls Ober ein in Fi^. 8C gezeigtes
ODER-Glied 314 an eine monostabile Kippschaltung 316, die dadurch eingeschaltet wird und einen
Taktimpuls auf der Leitung £8 erzeugt Dadurch wird die Erregung an ein Tor 320 in Fig.8A weitergeführt
und daß äußerste rechte Bit vom Argumentregister 100' an die Ausgabeeinheit übertragen.
Danach wird eine in F i g. 8C gezeigte monostabile Kippschaltung 322 eingeschaltet und auf diese Weise ein
Taktimpuls auf der Leitung £9 erzeugt. Dieser Taktimpuls erregt einmal die Schiebeimpulsleitung für
das ID-Argumentregister 100' in F i g. 8A und setzt zum
anderen den Inhalt des Längenzählers um eine Einheit herunter. Danach wird die in Fig.8C gezeigte
monostabile Kippschaltung 324 eingeschaltet und so ein Taktimpuls auf der Leitung £10 erzeugt der ein in ίο
Fi g. 8B gezeigtes Tor 326 zur Prüfung des Längenzähler-lnhalts vorbereitet
Wenn der Längenzähler nicht auf 0 steht (was bedeutet daß weitere Codebits aus dem ID-Argumentregister auszulesen sind), wird der Erregungsimpuls von
der Niclrt-Null-Anzeigeleitung 144' des Längenzählers
über das Tor 326 zu einer Leitung 330 und von dort durch ein in Fig.8C gezeigtes ODER-Glied 314 zur
monostabilen Kippschaltung 316 weitergeleitet. Dadurch wird die Reihenfolge der Schritte £8, £9 und
£ 10 (F i g. 9) erneut eingeleitet und das nächste Codebit aus dem ID-Argumentregister ausgeschoben. Dieser
Zyklus wird so oft wie nötig wiederholt, um alle I D-Codebits aus dem Argumentregister auszuschieben.
Da acht ID-Codebits aus dem Argumentregister &5
auszulesen sind und der Längenzähler am Anfang im Schritt El auf den Wert acht (1000) gesetzt wurde, wird
durch das Auslesen des letzten ID-Codebits die
Einstellung des Längenzählers auf 0000 reduziert Somit
veranlassen die Prüfungen im Schritt £10 jetzt das in Fig,8B gezeigte Tor 326 zur Weiterleitung des
Erregungsimpulses von der Nicht-Null-Anzeigeleitung 146' zu einer Leitung 332, die zu den UND-Gliedern 334
und 335 führt Wenn angenommen wird, daß zu diesem Zeitpunkt die Bytezählereinstellung von 0 verschieden
ist wird der Erregungsimpuls vom UND-Glied 334 über eine Leitung 336 und ein ODER-Glied 92' nxx
monostabilen Kippschaltung 94' weitergeführt wodurch eine neue Codierfolge eingeleitet wird, die mit
dem Schritt EV (Fig.9) beginnt Zu diesem Zeitpunkt
sind die acht Bits des ID-Codewortes aus dem Argumentregister 100' der Fig.8A ausgelesen, und
zwar anschließend an die Kopierkennzeichenbits, die vorher aus dem neun Bit großen VL-FeId des
Datenregisters 120' ausgelesen worden waren. Somit wurde eine zusammengesetzte Folge aus Kopierksnnzeichenbits und ID-Codewortbits erzeugt
Jetzt wird die oben beschriebene Reihenfolge der Schritte £1' bis £6' wiederholt Wenn das nächstfolgende im Argumentregister 100' gespeicherte ID-Codewort nicht in die Kopier-Sonderkategorie fällt behält
das Kopier-Flipflop 296 in Fig.8B seine Anfangseinstellung 0 bei. Unter diesen Umständen gibt das
UND-Glied 334 (F i g. 8B und 9) ein Signal zur erneuten Einleitung des Schritte?. EV ab, sobald das letzte
signifikante Bit aus dem VL-FeId des Datenregisters ausgelesen wurde, sofern die Bytezählereinstellung:
noch nicht auf 0 reduziert wurde. Die bei 0-Stellung des
Kopier-Flipflops ablautenden Vorgänge sind die normale Codierung und Decodierung, wie sie im Zusammenhang mit dem ersten in den F i g. 1 bis 5 gezeigten
Ausführungsbeispiel beschrieben wurden.
Wenn der Bytezähler auf 0 reduziert ist und da» Kopier-Flipflop zu diesem Zeitpunkt ebenfalls auf 0
steht gibt das UND-Glied 335 einen ENDE-Impuls ab,
wenn das letzte Codebit aus dem Datenregister gelesen worden ist Wenn das Kopier-Flipflop jedoch zu diesem
Zeitpunkt auf I steht, bedeutet das, daß nur die Kopierkennzeichenbits ausgelesen, wurden und die
ID-Codebits, die hinter dem Kopierkennzeichen stehen sollen, noch ausgelesen werden müssen. In diesem Fall
wird das UND-Glied 304 (Fig.8B und 9) erregt und leitet die durch die Schritte El bis £10 dargestellte
Verzweigungsoperation ein, in welcher die ID-Codebits
ausgelesen werden. Wenn das letzte ID-Codebil ausgelesen worden ist und der Bytezähler dann auf Ci
steht, wird das UND-Glied 335 eingeschaltet und erzeugt einen ENDE-Impuls zur Beendigung der
Operation.
Die Decodieroperation des modifizierten Systems; wird anschließend unter Bezug auf Fig. 10 im
Zusammenhang mit den Fig.8A bis 8C beschrieben!.
Wenn eine hereinkommende Bitfolge aus einem Kopiefkennzeichen und einem anschließenden ID-Codewort besteht muß das Kopierkennzeichen bekanntlich unbeachtet bleiben, und die nachfolgenden acht Bits,
des ID-Codewortes werden dann direkt als Ausgangsbyte ausgelesen, wobei die normale Decodierung
umgegangen wird. Für alle anderen empfangenem Bitfolgen erfolgt die normale Decodierung, wie si«:
bereits oben im Zusammenhang mit dem in den F i g. I bis 5 gezeigten Ausführungsbeispiel beschrieben wurde.
Die Decodieroperation wird eingeleitet durch Anlegen eines Startimpulses an die Leitung 180'. der eine
monostabile Kippschaltung 182' einschaltet (siehe F i g. 8C). Der Bytezähler 80' wurde mit der Anzahl der
einzugebenden Codewörter geladen, die zu decodieren,
also in ID-Codewörter umzuwandeln, sind. Wenn die monostabile Kippschaltung 182* einschaltet, wird ein
Taktimpuls über die Leitung D V an eine Einrichtung
angelegt, die in Fig,8A dargestellt ist und den s
Längenzähler auf JOOl (dezimal 9) einstellt. In dieser
Operationsstufe muß das neun 3it große VL-Argumentregister 178' mit neun aufeinanderfolgenden Bits aus
dem eintreffenden Bitstrom gefüllt werden. Das VL-Argumentregister wird in den Schritten DV, D3'
und D4' (Fig.9) gefüllt, die wiederholt werden, bis der
Längenzähler im Schritt D 3' den Wert 0000 erreicht. Dajin leitet das in F i g. 8B gezeigte Tor 202' ein Signal
von der Null-Anzeigeleitung 146' des Längenzählers auf die Leitung 220' und das ODER-Glied 222', um die
monostabile Kippschaltung 224' einzuschalten, die einen Taktimpuls für die Leitung D 5' erzeugt
Der Taktimpuls D 5' stellt die Obereinstimmungsanzeiger 50' der Assoziativspeichersteuerung 56' auf 1
zurück. Der Impuls läuft außerdem durch das in F i g. 8B gezeigte ODER-Glied 300 und stellt das Kopier-Flipflop
296 auf 0 zurück. Die monostabiie Kippschaltung 226'
wird dann aktiv und erzeugt den Taktimpuls Do', durch weichen der Inhalt des Argumentregisters 178' nut dem
Inhalt der neun Bit großen VL-Felder des Assoziativ-Speichers 11' verglichen wird. Wenn ein übereinstimmendes Wort gefunden wird, wird es in das Datenregister 120' im Schritt DT (Fig. 10) ausgelesen, und das
Kopier-Flipflop 26 bleibt auf seiner O-Stellung. Wenn
kein übereinstimmendes Wort gefunden wird, wird die in den F i g. 8A und 8B gezeigte Leitung 294, weiche von
der Speichersteuerung 56' kommt, erregt und das Kopier-Flipflop auf 1 gesetzt und dadurch angezeigt,
daß die im Argumentregister 178' am weitesten rechts gespeicherten Bits ein Kopierkennzeichen darstellen.
Der Taktimpuls D T vermindert außerdem den Inhalt des Bytezählers 80'.
Wenn die monostabile Kippschaltung 232', die den Taktimpuls DT erzeugte, abfällt, erzeugt sie einen
Impuls auf der in den F i g. 8C und 8B gezeigten Leitung -to 350, die zu den Eingängen der UND-Glieder 352 und
354 läuft Wenn das Kopier-Flipflop 296 auf 0 steht und also kein Kopierkennzeichen betroffen ist wird ein
Impuls von der Leitung 350 über das UND-Glied 352 und die Leitung 356 in den Fig.8B und 8C bis zur
monostabilen Kippschaltung 236' gegeben, die einschaltet und einen Taktimpuls für die Leitung DV erzeugt
Die au» den Schritten DV bis DW (Fig. 10) bestehende Decodierfolge wird dann ausgeführt und die
Bits des wiedergewonnenen ID-Codewortes in dem acht Bit großen ID-FeId des Datenregisters 120'
gespeichert, um parallel auf die Ausgabeeinheit ausgelesen zu werden. Die im Argumentregister 178'
gespeicherten Bits werden dann schrittweise verschoben, bis die Längenzählereinstellung auf 0 reduziert ist
Wenn die Einstellung des Längenzählers auf 0 geht,
wird das Signal von der Leitung 146' über das in F i g. 8B gezeigte Tor 248' weitergeführt zu einer zu den
UND-Gliedern 362 und 364 führenden Leitung 360. Wenn dig Bytezählereinstellung noch nicht auf 0
reduziert wurde, geht das Signal weiter über das UND-Glied 362, die Leitung 366 und das ODER-Glied
222' in Fig.8C zur monostabilen Kippschaltung 224' zwecks Einleitung einer neuen Reihenfolge der Schritte
O5' bis DT (Fig. 10) Wenn die Bytezählereinstellung
jedoch 0 ist, wird das in Fig.8B gezeigte UND-Glied
364 erregt und ein EN DE-impuls erzeugt. Abfrage- und
Ausleseoperationen werden gemäß obiger Beschreibung weitergeführt, bis ein Kopierkennzeichen im
Argumentregister 178' angetroffen wird. Nachdem das Kopierkennzeichen in das Datenregister 120' (Schritt
DT in Fig, 10) übertragen wurde, wird das Kopier-Flipflop 296 in F i g. 8B auf 1 gesetzt Wenn unter diesen Umständen die monostabile Kippschaltung 232' in
F i g. 8C abfällt, erzeugt sie einen Impuls auf der Leitung
350, und das UND-Glied 354 in F i g. 8B leitet diesen Impuls von der Leitung 350 auf eine in den F i g. 8B und
8C gezeigte Leitung 370 und von dort durch ein ODER-Glied 372 auf eine monostabiie Kippschaltung
374. Wenn die monostabile Kippschaltung 374 einschaltet erzeugt sie einen Taktimpuls auf der Leitung D12
und leitet dadurch eine Folge von Sonderschritten D12
bis Z? 15 (Fig. 10) zur Decodierung der aus einem Kopierkennzeichen und einem anschließenden ID-Codewort bestehenden Kombination eh* die empfangen
wurde. Diese Sonder-Decodierung umfaßt kurz gesagt das Ausschieben des Kopierkennzeichens aus dem
Argumentregister 178' und dann dar Lesen der acht folgenden Codebits aus diesem Register sowie die
spätere Zusammensetzung des wiedergewonnenen ID-Codewortes.
Im folgenden wird diese Sonder-Decodierung im einzelnen betrachtet Der Taktimpuls D12 wird über ein
ODER-Glied 210' zur Verschiebeimpulsleitung 212' für das Argumentregister 178' geleitet Dadurch wird der
Inhalt des Argumentregisters 178' um eine Bitposition nach rechts verschoben. Gleichzeitig wird der Taktimpuls D12 auch über das ODER-Glied 132' in F i g. 8B an
die Leitung 134' angelegt die im erregten Zustand den Inhalt des Längenzählers in Fig.8 um eine Einheit
reduziert
Wenn die in F i g. 8C gezeigte monostabile Kippschaltung 374 abfällt schaltet sie die monostabiie Kippschaltung 376 ein und erzeugt einen Taktimpuls auf der
Leitung D13. Dieser Impuls D13 läuft dann über das
ODER-Glied 192' in Fig.8B zur Leitung 194' und erregt das Eingangstor 196' in F i g. 8A. Dieses Tor führt
ein Bit von der Eingabeeinheit in die äußerste linke Stelle des Argumentregisters 178', um das Bit zu
ersetzen, welches aus diesem Register ausgeschoben wurde.
Wenn die monostabiie Kippschaltung 376 abfällt, schaltet sie eine monostabile Kippschaltung 378 ein und
erzeugt einen Taktimpuls auf der Leitung D14. die zu
einem in Fig.8B gezeigten Tor 380 führt Wenn der Längenzähler zu diesem Zeitpunkt nicht auf 0 steht,
wird die Erregung von der Nicht-Null-Anzeigeleitung 144' in F i g. 8B über das Tor 380, die Leitung 382 und
das ODER-Glied 372 in Fig.8C zur monostabilen Kippschaltung 374 weitergeführt, die einschaltet und
erneut dk Reihenfolge der Schritte D12 bis D14
(Fig. 10) einleitet
Wenn das KopieriAinnzeichen bei der Abf/ageoperation (Schritt D 6') angetroffen wurde, wurde bekanntlich
das dieses Kopierkennzeichen enthaltende Wort ausgelesen und im Datenregister 120' gespeichert. Dadurch
wurde die zum Kopierkennzeichen gehörende Längenangabe im Längenzählerteil des Datenregisters gespeichert. Die Reihenfolge der Schritte D12 bis D W der
F i g. 10 muß daher so oft wiederholt werden, wie durch die Einstellung dieses Längenzählers angezeigt wird,
d. h. bis alle Kopierkennzeichenbits aus dem Argumentregister 178' ausgesciioben sind. Wenn die Längenzählereinstellung den Wert 0 erreicht und anzeigt daß
das letzte Kopierkennzeichenbit aus dem Argumentre-
gister ausgeschoben wurde, stehen in den acht am weitesten rechts liegenden Stellen des Argumentregisters 178' jetzt die acht Bits des I D-Codewortes, die
unmittelbar hinter dem Kopierkennzeichen folgen. Diese acht Bits müssen wiedergewonnen werden,
Wenn die durch den Taktimpuls D14 bewirkte
Prüfung feststellt, daß der Längenzähler auf 0 steht, wird ein Signal von der Null-Anzeigeleitung 146' in Fig.8B
über das Tor 380 und die Leitung 386 in den F i g. 8B und 8C zur monostabilen Kippschaltung 390 weitergeführt,
die einschaltet und den Taktimpuls D15 erzeugt. Dieser
Taktimpuls wird auf das Tor 392 in F i g. 8A gegeben, um die acht Bits, die in den am weitesten rechts liegenden
acht Positionen des Argumentregisters 178' gespeichert sind, parallel an die Ausgabeeinheit zu übertragen.
Außerdem wird der Impuls D 15 an eine Einrichtung gegeben, die den Längenzähler im Datenregister 120'
auf acht (1000) einstellt, um später die acht entnommenen
Bits durch neue Bits aus dem eintreffenden Bitstrom ersetzen zu können. :o
Wenn die monostabile Kippschaltung 390 in Fig.8C
abfällt, liefert sie einen Impuls auf die Leitung 394. welche zu den UND-Gliedern 396 und 398 in Fig.8B
führt. Wenn die Bytezahl zu dieser Zeit noch nicht auf 0 reduziert wurde, läuft dieser Impuls durch das
UND-Glied 396 und die Leitung 400 zur monostabilen Kippschaltung 208' (in F i g. 8C), um über den Schritt
D4' die Decodieroperation der F i g. 10 neu einzuleiten.
Es werden dann durch wiederholte Ausführung der Schritte DA', DT, D3' acht neue Bits über die linke
Position in das Argumentregister 178' eingelesen. Dabei gelangt das einzelne Bit, welches schon im Argumentregister
178' stand, aber nicht zum ausgelesenen ID-Codewort gehörte, von der am weitesten links
liegenden Position in die am weitesten rechts liegenden Position. Es folgt dann eine weitere Abfrageoperation
mit den Schritten D5'. D%' und DT. wie schon weiter
oben beschrieben. Wenn die Bytezahl jedoch 0 beträgt, läuft der Impuls auf der Leitung 394 durch das Tor 398 in
Fig. SB und erzeugt ein ENDESignal zur Beendigung der Decodierung.
Hierzu 11 Blatt Zeichnungen
Claims (3)
- Patentansprüche:J1 Anordnu.-<j zur Codeumsetzung zwischen einem ersten Code mit Codewörtern fester Länge (ID-Codewörtern) lind einem zweiten Code mit Codewörtem variabler Länge (VL-Codewörter), bei dem kein Codewort gleich dem Anfang eines längeren Codeworts ist, unter Verwendung logischer Vergleichseinrichtungen und gespeicherter Tabellen, dadurch gekennzeichnet, daß zur Umsetzung eines ID-Codeworts in ein VL-Codewort (Codierung) eine erste Vergleichseinrichtung das I D-Codewort mit in einem ersten Feld einer Tabelle (ID-FeId) gespeicherten ID-Codewörtern des Codes vergleicht, um das in einem zweiten Feld (VL-FeId) der Tabelle enthaltene zugehörige VL-Codewort mit Hilfe der in einem dritten Feld (Längenfeld) der Tabelle enthaltenen Längenangabe des VL-Codeworts auszulesen, daß aufeinanderfolgende VL-Codewörter unmittelbar aneinander angeschlossen werden, daß zur Umsetzung eines VL-CodewoPts in ein 1 D-Codewort (Decodierung) das VL-Codewort randbündig in eine zweite Vergleichseinrichtung eingelesen wird, deren Länge dem längsten VL-Codewort entspricht, um das VL-Codewort mit allen im VL-FeId randbündig gespeicherten VL-Codeworten zu vergleichen, wobei die Einträge im VL-FeId die Länge der zweiten Vergleichseinrichtung aufweisen und die von einem VL-Codewort kürzerer Länge nicht belegten Plätze besonders markiert sind, um beim Vergleich immer Übereinstimmung anzuzeigen und daß nach erfolgreichem Vergleich das zum VL-Codewort gehörige gespeicherte LD-Codeworl ausgelesen und mil Hilfe der Längenangabe das nächste zu decodierende VL-Codewort randbündig in die r. -eile Vergleichscinrichtung gebracht wird.
- 2. Anordnung nach Anspruch I. dadurch gekennzeichnet, daß die erste und die zweite Verglcichseinrichtung als Teile eines Assoziativspeichers (II) mit jeweils zugeordneten Argumentregistern (100 b/.w. 178) ausgebildet sind, daß die Einträge im Assoziativspeicher, die das zweite Feld (VL-FeId) der Tabelle aufnehmen, die Länge des längsten /ti decodicrenden VL-Codcwortes aufweisen, wobei nicht belegte Speicherplätze der Einträge als neutral (don't care) markiert sind, um beim asso/ialiven Vergleich mit dein Inhalt des zugehörigen Argumentregisters immer ein Übercinstimniungssignal zu erzeugen, und daß dem Assoziativspeicher ein Dalenregistcr (120) zugeordnet ist, in das eine vollständige Zeile des Assoziativspeichers ausgelesen wird.
- 3. Anordnung nach Anspruch I oder 2, dadurch gekennzeichnet, daß in den Tabellen weniger Codewörter aufgezeichnet sind, als der Gesamlcode enthält, daß für die Gruppe der nicht enthaltenen Codewörter im VL-FeId ein charakterisierender Eintrag vorgesehen ist und daß bei der Codierung eines in der Tabelle nicht enthaltenen ID-Codeworts der kennzeichnende Eintrag zusammen mit dem unveränderten ID-Codcwöfl aus der ersten Vcrglcichseinrichtung ausgegeben wird.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US6230670A | 1970-08-10 | 1970-08-10 |
Publications (2)
Publication Number | Publication Date |
---|---|
DE2139731A1 DE2139731A1 (de) | 1972-02-17 |
DE2139731C2 true DE2139731C2 (de) | 1983-06-16 |
Family
ID=22041630
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE2139731A Expired DE2139731C2 (de) | 1970-08-10 | 1971-08-07 | Anordnung zur Code-Umsetzung |
Country Status (5)
Country | Link |
---|---|
US (1) | US3675212A (de) |
JP (1) | JPS52339B1 (de) |
CH (1) | CH534453A (de) |
DE (1) | DE2139731C2 (de) |
NL (1) | NL7109574A (de) |
Families Citing this family (44)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3717851A (en) * | 1971-03-03 | 1973-02-20 | Ibm | Processing of compacted data |
US3921143A (en) * | 1971-12-29 | 1975-11-18 | Ibm | Minimal redundancy encoding method and means |
US3805249A (en) * | 1972-07-21 | 1974-04-16 | Ultronic Systems Corp | Format hard copy display apparatus for a data processing printout system |
FR111576A (de) * | 1973-12-13 | 1900-01-01 | ||
US4038652A (en) * | 1974-05-13 | 1977-07-26 | Sperry Rand Corporation | Digital communications line terminal compacter/expander |
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 |
US4188669A (en) * | 1978-01-13 | 1980-02-12 | Ncr Corporation | Decoder for variable-length codes |
US4506325A (en) * | 1980-03-24 | 1985-03-19 | Sperry Corporation | Reflexive utilization of descriptors to reconstitute computer instructions which are Huffman-like encoded |
CA1228925A (en) * | 1983-02-25 | 1987-11-03 | Yoshikazu Yokomizo | Data decoding apparatus |
US5027376A (en) * | 1985-10-30 | 1991-06-25 | Microcom Systems, Inc. | Data telecommunications system and method for transmitting compressed data |
JPH0795269B2 (ja) * | 1988-11-04 | 1995-10-11 | 富士通株式会社 | 命令コードのデコード装置 |
US5532694A (en) * | 1989-01-13 | 1996-07-02 | Stac Electronics, Inc. | Data compression apparatus and method using matching string searching and Huffman encoding |
US5146221A (en) * | 1989-01-13 | 1992-09-08 | Stac, Inc. | Data compression apparatus and method |
JP2956704B2 (ja) * | 1989-02-21 | 1999-10-04 | ケイディディ株式会社 | 可変長符号変成装置 |
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 |
US5055841A (en) * | 1991-02-01 | 1991-10-08 | Bell Communications Research, Inc. | High-speed feedforward variable word length decoder |
US5245338A (en) * | 1992-06-04 | 1993-09-14 | Bell Communications Research, Inc. | High-speed variable-length decoder |
US5351047A (en) * | 1992-09-21 | 1994-09-27 | Laboratory Automation, Inc. | Data decoding method and apparatus |
US5537551A (en) * | 1992-11-18 | 1996-07-16 | Denenberg; Jeffrey N. | Data compression method for use in a computerized informational and transactional network |
US5982306A (en) * | 1997-12-02 | 1999-11-09 | Daewoo Electronics Co., Ltd. | Variable-length coding method and apparatus thereof |
GB2332127B (en) * | 1997-12-08 | 2003-05-07 | Daewoo Electronics Co Ltd | Variable-length coding method and apparatus thereof |
US6075470A (en) * | 1998-02-26 | 2000-06-13 | Research In Motion Limited | Block-wise adaptive statistical data compressor |
US6665793B1 (en) * | 1999-12-28 | 2003-12-16 | Institute For The Development Of Emerging Architectures, L.L.C. | Method and apparatus for managing access to out-of-frame Registers |
US7015921B1 (en) | 2001-12-31 | 2006-03-21 | Apple Computer, Inc. | Method and apparatus for memory access |
US7681013B1 (en) | 2001-12-31 | 2010-03-16 | Apple Inc. | Method for variable length decoding using multiple configurable look-up tables |
US6877020B1 (en) | 2001-12-31 | 2005-04-05 | Apple Computer, Inc. | Method and apparatus for matrix transposition |
US7055018B1 (en) | 2001-12-31 | 2006-05-30 | Apple Computer, Inc. | Apparatus for parallel vector table look-up |
US6822654B1 (en) | 2001-12-31 | 2004-11-23 | Apple Computer, Inc. | Memory controller chipset |
US7114058B1 (en) | 2001-12-31 | 2006-09-26 | Apple Computer, Inc. | Method and apparatus for forming and dispatching instruction groups based on priority comparisons |
US6931511B1 (en) | 2001-12-31 | 2005-08-16 | Apple Computer, Inc. | Parallel vector table look-up with replicated index element vector |
US7305540B1 (en) | 2001-12-31 | 2007-12-04 | Apple Inc. | Method and apparatus for data processing |
US7558947B1 (en) | 2001-12-31 | 2009-07-07 | Apple Inc. | Method and apparatus for computing vector absolute differences |
US6693643B1 (en) | 2001-12-31 | 2004-02-17 | Apple Computer, Inc. | Method and apparatus for color space conversion |
US7467287B1 (en) | 2001-12-31 | 2008-12-16 | Apple Inc. | Method and apparatus for vector table look-up |
US6697076B1 (en) | 2001-12-31 | 2004-02-24 | Apple Computer, Inc. | Method and apparatus for address re-mapping |
US7034849B1 (en) | 2001-12-31 | 2006-04-25 | Apple Computer, Inc. | Method and apparatus for image blending |
US6573846B1 (en) | 2001-12-31 | 2003-06-03 | Apple Computer, Inc. | Method and apparatus for variable length decoding and encoding of video streams |
US6781529B1 (en) | 2002-10-24 | 2004-08-24 | Apple Computer, Inc. | Methods and apparatuses for variable length encoding |
US6707398B1 (en) | 2002-10-24 | 2004-03-16 | Apple Computer, Inc. | Methods and apparatuses for packing bitstreams |
US6781528B1 (en) | 2002-10-24 | 2004-08-24 | Apple Computer, Inc. | Vector handling capable processor and run length encoding |
US6707397B1 (en) | 2002-10-24 | 2004-03-16 | Apple Computer, Inc. | Methods and apparatus for variable length codeword concatenation |
US7219325B1 (en) * | 2003-11-21 | 2007-05-15 | Xilinx, Inc. | Exploiting unused configuration memory cells |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3257646A (en) * | 1963-01-24 | 1966-06-21 | Ibm | Variable word length associative memory |
DE1218761B (de) * | 1963-07-19 | 1966-06-08 | International Business Machines Corporation, Armonk, N. Y. (V. St. A.) | Datenspeidbereinrichtung |
US3402394A (en) * | 1964-08-31 | 1968-09-17 | Bunker Ramo | Content addressable memory |
US3509328A (en) * | 1965-03-15 | 1970-04-28 | Bell Telephone Labor Inc | Code conversion |
US3483528A (en) * | 1966-06-20 | 1969-12-09 | Bunker Ramo | Content addressable memory with means for masking stored information |
US3465303A (en) * | 1966-06-20 | 1969-09-02 | Bunker Ramo | Content addressable memory employing sequential control |
US3448436A (en) * | 1966-11-25 | 1969-06-03 | Bell Telephone Labor Inc | Associative match circuit for retrieving variable-length information listings |
US3461432A (en) * | 1966-12-14 | 1969-08-12 | Burroughs Corp | Bi-directional code converter |
DE1288143B (de) * | 1967-08-17 | 1969-01-30 | Starkstrom Anlagenbau Veb K | Schaltungsanordnung zur Umwandlung eines beliebigen Programmkodes in einen anderen beliebigen Programmkode |
US3533085A (en) * | 1968-07-11 | 1970-10-06 | Ibm | Associative memory with high,low and equal search |
-
1970
- 1970-08-10 US US62306A patent/US3675212A/en not_active Expired - Lifetime
-
1971
- 1971-07-12 NL NL7109574A patent/NL7109574A/xx not_active Application Discontinuation
- 1971-08-06 JP JP46059109A patent/JPS52339B1/ja active Pending
- 1971-08-06 CH CH1158371A patent/CH534453A/de not_active IP Right Cessation
- 1971-08-07 DE DE2139731A patent/DE2139731C2/de not_active Expired
Also Published As
Publication number | Publication date |
---|---|
DE2139731A1 (de) | 1972-02-17 |
JPS52339B1 (de) | 1977-01-07 |
NL7109574A (de) | 1972-02-14 |
US3675212A (en) | 1972-07-04 |
CH534453A (de) | 1973-02-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE2139731C2 (de) | Anordnung zur Code-Umsetzung | |
DE2210044C2 (de) | Verfahren zum Umsetzen von Codewörtern | |
DE2264090B2 (de) | Datenverdichtung | |
DE2725395B2 (de) | Einrichtung zur Echtzeittransformation von m in Zeilen angeordneten Wörtern der Bitlänge n in n in Spalten angeordnete Wörter der Bitlänge n | |
DE2614916A1 (de) | Konverter zur codeumwandlung | |
DE2153517A1 (de) | Anordnung zur Codeumsetzung | |
DE3148099C2 (de) | Anordnung zum Erkennen einer Digitalfolge | |
DE2730328B2 (de) | Schaltungsanordnung zur Feststellung des bestübereinstimmenden Datenworts von in einem Datenwort-Speicher gespeicherten Datenworten mit einem Suchwort | |
DE3711201C2 (de) | ||
DE2614664C3 (de) | Verfahren zum Speichern von Daten in einer Speichereinrichtung und Einrichtung zur Durchführung des Verfahrens | |
DE2900586C2 (de) | Anordnung zum Decodieren von Codewörtern variabler Länge | |
DE2357654C2 (de) | Assoziativspeicher | |
DE2730543A1 (de) | Multiplex-datenuebertragungsanlage | |
DE3137704C2 (de) | Vorrichtung zum Decodieren eines baumförmigen Codes variabler Länge | |
DE19645057C2 (de) | Vorrichtung zur Selektion von Adressenwörtern mittels Demultiplex-Decodierung | |
DE1296427B (de) | Datenbearbeitungssystem | |
EP0427884B1 (de) | Verfahren und Anordnung zum Komprimieren und Dekomprimieren von Daten | |
DE2426253B2 (de) | Vorrichtung zum ziehen der quadratwurzel aus einer binaeren zahl | |
DE69907622T2 (de) | Verfahren zur Fehlerkorrektur in einem in einer Mehrpegelspeicherzelle gespeicherten Binärwort, mit einer Minimumanzahl von Korrekturbits | |
DE2365957B2 (de) | Übertragungsverfahren für umkodierte Nachrichten | |
DE2144113C3 (de) | Verfahren zur Codeumsetzung und Assozjathr-Speichereinrlchtung zur Durchführung dieses Verfahrens | |
DE1946227C3 (de) | Anordnung zur Errechnung von Prüfziffern und zur Kontrolle von Zifferngruppen mit angehängter Prüfziffer auf Fehler | |
DE3407831C2 (de) | ||
DE4342521C1 (de) | Verfahren und Anordnung zur Expansion komprimierter Daten | |
DE2144113B2 (de) | Verfahren zur codeumsetzung und assoziativ-speichereinrichtung zur durchfuehrung dieses verfahrens |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
D2 | Grant after examination | ||
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |