-
BESCHREIBUNG
-
Die Ereindung betrifft einen Schaltkreis zum Packen von Daten variabler
Länge in ein festes Wortlängenformat, sowie ein Verfahren zum Umsetzen von aus einer
ersten Liste zufällig ausgewählten Eingabeworten in die entsprechenden Datenwörter
in einer zweiten Liste, bei dem die Datenwörter der zweiten Liste von variabler
Länge sind, und zum Packen der Datenwörter variabler Länge in feste Ausgabedatenworte
mit n-Bits. Insbesondere bezieht sich die Erfindung auf einen Schaltkreis, der zu
einem System zur Handhabung von Daten mit fester Wortlänge hinzugefügt werden kann,
um Datenwörter variabler Länge in ein festes Wortlängenformat zu komprimieren bzw.
zu packen.
-
In Computer-Systemen, die zur Datenübertragung verwendet werden, ist
es häufig wünschenswert, variable Längenformate zu packen.
-
wenn diese Operation mit Software erzielt wird, vermindert die durch
die Anwendung von Schiebe- und askiertechniken verbrauchte Menge Rechenzeit dieses
Vorgangs ernsthaft die Gesamtsystemleistung und ist ein signifikanter Faktor bei
der Reduzierung der Geschwindigkeit, mit der der Rechner Information senden oder
empfangen kann.
-
Das Patent 4 109 310 mit dem Titel "Feldadressiersystem" beschreibt
ein System mit einem Rechner, das Mikrocode-Programrnierung und spezielle Hardware.
bzw. Vorrichtungen zum Ermöglichen des Schreibens oder Lesens von Daten variabler
Länge in einen Rechner fester Wortlänge verwendet. Die Arbeitsweise in diesem Patent
und in der jetzigen Erfindung sind darin verschieden, daß das bekannte Feldadressiers'st
em jedes Wort mit variabler Größe irgendwo in den Speicher lad-!l kann, während
die raomentane Erfindung auf das serielle Packen von Worten beim Empfang in ein
festes Wortlängenformat begrenzt ist. Jedoch zeigt das angcführte Patent in seiner
Beschreibung des verbesserten Mikrocodes die zahlreichen Stufen, die zum Schieben
und maskieren variabler Datenwörter in ein festes Wortformat und zur Rettung von
Pestwerten, falls es welche gibt, um Einschluß in den nächsten
Schicbe-
und Maskierschritt, benötigt werden.
-
Ein Verfahren zur Reduzierung der zum Senden von digitaler Information
benötigten Zeit ist die Codierung der unbearbeiteten bzw. Rohdaten durch die Anwendung
einer Strom- bzw. Lauflängencodierung. Um ein numerisches Beispiel aufzuzeigen,
anstatt des Sendens 32 aufeinanderfolgenden Bits würde das System die Binärzahl
100.000 , die binare Zahl für 32 senden. So können 32 Bit Information bei Verwendung
eines Sechs-Bit-Wortes gesendet bzw. übertragen werden.
-
Die Anwendung einer Lauflängeneodierung ermöglicht eine beträchtliche
Datenkompression.
-
Dic Grundtechnik der Lauflängencodierung wurde verschiedentlich verbessert.
Im Patent Nr. 3 560 639 mit dem Titel Kaskadenlauflängen-Codiertechnik ist die grundlegende
Lauflängencodierung so modifiziert, daß den ar meisten gezählte Lauflängen die kürzesten
Codes zugeordnet werden. Auf diese Weise ist eine weitere Xompression bzw. Packung
über die grundlegende Lauflängencodierungskompression hinaus erzielbar. Das genannte
Patent beschreibt auch einen Schaltkreis, der Zähler und Schleberegister zur Codierung
und Decodierung der Rohdaten in und aus diesem Code aufweist.
-
Eine noch größere Datenkompression kann durch die Verwendung von Huffman-Codes
erzielt werden. Die Vorteile bei der Verwendung von Iluffman-Codes sind: 1. daß
der Bais-Huffman-Code abhängig von den Charakteristika der speziell zu sendenden
Daten zur Erzielung der größtmöglichen Kompression modifiziert werden kann und 2.
daß die Codes an der Sendeseite des Systems seriell ohne zusätzliche Daten zur Angabe
der Grenzen zwischen den Codes gesendet werden können, und so noch einheitlich decodierbar
an der Empfangsseite sind. Ein cntsprechender Nachteil des lsuffman-Codes ist, daß
keine Korrelation zwischen der ?nzahl der Bits in den Rohdaten und der Anzahl der
Bits
im Huffman-Code besteht, und Huffman-Codes variierender Länge willkürlich Datenwörtern
zugeordnet werden. Daher sind die Schiebc- und Zählschaltkreise, wie die in dem
US Patent Nr.
-
3 560 G39 beschriebenen nicht für die Generierung und Interpretation
von Huffman-Codes geeignet. Was daher in J1ochgcschwindigkeitsdatenübertragungsverbindungen
benötigt wird, ist ein Schaltkreis, der zur Codierung von Rohdaten in die Form eines
Huffman-Codes oder zur Decodierung von Huffman-Codes in Rohdaten mit hohen Geschwindigkeiten
angewandt werden kann. Eine besonders nützliche Ausführungsfori dieses Schaltkreises
wäre ein solcher, der zu einem Rechnersystem hinzugefügt werden könnte, das Huffman-Code-Daten
oder allgemeiner jede Sequenz Wörter variabler Länge in einen Rechnerspeicher fester
Wortlänge oder Äquivalentes packen könnte, wobei dieser Schaltkreis mit hohen Geschwindigkeiten
arbeitet und gleichzeitig sehr wenig Rechnerzeit zur Ausführung dieser Funktion
benötigt.
-
Aufgabe der Erfindung ist es, einen Schaltkreis und ein Verfahren
zur Hochgeschwindigkeitsumsetzung fester Wortlängen in variable Wort längen und
zum Packen dieser variablen Wortlängen in ein festes langenformat zu schaffen.
-
Diese Aufgabe wird durch einen Schaltkreis der eingangs beschriebenen
Art gelöst, der gemäß der Erfindung gekennzeichnet ist durch einen m-Bit-pro-Wort-Speicher
zur Speicherung und Ausgabe von Datenwörtern variabler Länge, wobei die m Bits ein
Datenwort variabler Länge, unbenutzte Bits und ein Begrenzungsbit zur Markierung
der Grenze zwischen dem Datenwort und den unbenutzten Bits aufweisen, ein m-Bit-Scieberegister,
das zur parallelen Aufnahme der m-Bit-Speicherausgabe eingerichtet ist, ein n-Bit-Schieberegister
zur seriel1.on Aufnahme der Inhalte des m-Bit-Schieberegisters, eine Logik zum Verhindern
des Ladens der unbenutzten Bits und des Begrenzungsbits in das n-Bit-Schieberegister
beim Herausschieben der Bits aus dem m-Bit-Register,
einen auf
die Zählung der in dem m-flit-Schieberegister verbleibenden Bits ansprechender Zähler
zum Freigeben des Speichers zum Laden eines nächsten m-Bit-Wortes in das m-Bit-Schieberegister,
nachdem der vorausgehende Inhalt des m-Bit-Registers vollständig herausgeschoben
worden ist, und einen auf die Zählung der in das n-Bit-Register geladenen Bits ansprechenden
Zähler zum Freigeben des n-Bit-Registers zur Ausgabe seines Inhaltes parallel nach
der seriellen Aufnahme von n Datenbits.
-
Das erfindungsgemäße Verfahren zum Umsetzen von aus einer ersten Liste
zufällig ausgewählten Eingabeworten in die entsprechenden Datenwörter in einer zweiten
Liste, bei dem die Datenwörter der zweiten Liste von variabler Länge sind, und zum
Packen der Datenwörter variabler Länge in feste Ausgabedatenworte mit n Bits, ist
gekennzeichnet durch: das anfängliche Laden aller Datenworte variabler Länge in
den Speicher, und ferner das Laden eines Begrenzungsbits zum Markieren der Grenzc
zwischen jedem Datenwort variabler Länge und den unbenutzten Bits jedes Speicherpltzes,
das Gebrauchen eincs Eingabewortes zum Aufbau einer Adresse mit der der Speicher
adressiert wird, wodurch auf das entsprechende Wort variabler Länge zugegriffen
und es in ein erstes Schieberegister ausgegeben wird, und das Verschieben des Datenwortes
variabler Länge zum Abtrennen der unbenutzten Bits, das Verschieben der verbleibenden
Bits, die das Datenwort variabler Länge bilden, in ein zweites Schieberegister,
das parallele Ausgeben der Bits jedes Ausgabewortes gepackte Daten aus dem zweiten
Schieberegister, wenn dieses voll wird, und das Gebrauchen des nächsten Eingabedatenwortes
zum Zugriff und zur .Ausgabe des nächsten Datenwortes variabler Länge aus den Speicher,
wenn das vorausgehende Wort varlabler Länge vollständig aus dem ersten Schieberegister
hinausgeschoben ist.
-
Es schließt sich die Beschreibung eines Schaltkreises zum Packen von
Datenwörter variabler Länge in ein festes Wortlängenformat an.
-
Jedes Datenwort variabler Länge und seine zugeordneten führenden O'en
werden durch ein Begrenzungsbit getrennt und im Speicher gespeichert. Wenn auf den
Speicher zugegriffen wird, wird das Ausgabewort.paraìlel in ein erstes Schieberegister
geladen und zum Abspalten der führenden O'en und des Begrenzungsbits geschiftet.
-
Die verblibenden Datenbits werden dann seriell in ein zweites Schieberegister
geschiftet bzw. geschoben. Wenn das zweite Schieberegister voll ist, wird das resultierende
Datenwort fester Länge verriegelt. Wenn das erste Schieberegister leer ist, wird
das nächste ort von Speicher hereingeladen. Auf diese Weise kann eine Serie von
Datenwörtern variabler Länge in eine Serie Wörter fester Länge gepackt werden. Der
Schaltkreis dient zum Packen vo Huffman-Codes variabler Länge, da die Grenzen zwischen
den Codes selbst offensichtlich sind. Der Schaltkreis kann auch als Zeichengenerator
angewandt werden, wobei die Datenausgabe variabler Länge die zur Generierung eines
Zeichenbildes auf einer Rasterabtastanzeigevorrichtung benötigten Bits umfaßt.
-
Der hier beschriebene Datenpackungsschaltkreis weist eine Vielzahl
von Anwendungen auf, und kann leicht mit Begriffen bei seiner Anwendung in einem
rechner-gesteuerten Eaksimile- bzw. Biidübertragungssystem zur Ubertragung von Biiddaten
erklärt werden. Am Faksimilesender wird ein Bild abgetastet und digitalisiert und
die resultierenden Rohdaten werden durch irgendeine bekannte Einrichtung lauflängencodiert.
In diesem Zahlenbeispiel wird angenor,.len, daß eine komplette Abtastzeile 1.024
Bits umfaßt, so daß jede Lauflänge irgendeine Zahl von 1 bis 1.024 ist. Ferner wird
angenommen, daß diese Lauflängen in Huffman-Codes von 3 bis 23 Bits übertragen werden
müssen. Schließlich müssen diese Huffman-Codes feste Wortlängen von 8 Bits zur lokalen
Speich vor der Ubertragung zu dem Faksimileempfänger gepackt werden.
-
Um diese Funktion mit hoher Geschwindigkeit und einem minimum vom
Rechner benötigter Zeit erzielt wird, wird ein Schaltkreis mit einem Nur-Lese-Speicher,
der 2.000 Worte mit je 24 BitBreite enthält, benötigt. Dieser Nur-Lese-Speicher
ist so programmiert, daß er alle benötigten Huffman-Codes und Begrenzungsbits enthält.
Diese
PROMS liegen im Adreßraum des Prozessorspeichers so, czaß in diesen spezifischen
Beispiel, bei Adressierung des Speichers der entsprechende Huffman-Code von bis
zu 23 Bits erzeugt wird. Im allgemeinen Fall kann die Ausgabe auf jede Länge ausgedehnt
werden. Diese 24 Bits werden parallel in ein 24-Bit-Schieberegisters geladen, so
daß der gültige Huffman-Code in den niederwertigsten Bits des 24-Bit-Schieberegisters
angeordnet ist, und der Rest des 24-Bit-Registers wird mit führenden O'en geladen.
Um dem Rest des Systems den Start des gültigen Huffman-Codes anzuzeigen, wird ein
begrenzendes 1-Bit zwischen die führenden O'en und den gültigen Huffman-Coue zur
Kennzeichnung des Beginns cAes Huffman-Code-Wortes angeordnet.
-
Nachdem das 24-Bit-Schieberegister parallel aus dem Nur-Lese-Speiciier
(read only memory) geladen ist, werden die Bits seriell zu eine: Begrenzungsschaltkreis
geschiftet bzw. geschoben, der die führtenden O'en und das Begrenzungsbit trennt.
Danach, wenn die Bits aus dem 24-Bit-Schieberegister herausgeschiftet werden, können
sie seriell in ein 8-Bit-Schieberegister geladen erden.
-
Wenn das 8-Bit-Schieberegister voll ist, kann das resultierende 8-Bit-wort
parallel zum Rechnerspeicher oder irgendeinem anderen Pufferspeicher zur nachfolgenden
Übertragung hinausgeschoben werdcn. Wenn immer das 24-Bit-Schieberegister leer wird,
kann ein neuer lauflängencode zur Adressierung des ROM zur Erzeugung des nächsten
Huffman-Codes, der wiederum parallel in das 24-Bit-Schieberegister geladen wird,
verwendet werden. Auf diese Weise wird der ganze Prozess des Formattierens der Huffman-Codes,
de in diesem Zahlenbeispiel zwischen 3 und 23 Bits variieren, in feste Wortlängen
von ó Bits r.it hoher Geschwindigkeit und kleiner Systemverwaltungszeit ausgeführt
werden.
-
Der gleiche Schaltkreis kann auch zur Datenkompression bzw.
-
Entpackung verwendet werden. In diesem fall wird der Huffman-Code
zur Erzeugung einer PROM-Adresse verwendet und die Ausgabe des PROMS ist eine Reihe
bzw. String Video Bits.
-
Für lange Lauf längen muß ein PROM-Speicherplatz eventuell wiederholt
zur Erzeugung der benötigten Anzahl Video-Bits adressiert werden. Als Zanlenbeispiel,
wenn 100 Bits zu erzeugen sind, kann ein Speicherplatz, der 23 Bits enthält, viermal
adressicrt werden und ein Speicherplatz, der 8 Bits enthält, dann einmal acircssiert
werden. Die Prozessor-Software bzw. Programmierung wird zur Steucrung dieses Verfahrens
verwendet.
-
Falls aic 8-Bit-Schieberegisterausgabe in einen Rechnerspelcher geladen
werden muß, kann ein existierendes Rechner-E/A (in/Ausgabe)-Tor für diesen Zweck
verwendet werden.
-
Jedoch wird für Anwendungen riit höherer Geschwindigkeit ein Kanal
für direkten Speicherzugriff (DMA) verwendet.
-
Der gleiche Schaltkreis mit einem Nur-Lese-Speicher, einem 24-Bit-Schieberegister,
einen Begrenzer zum Trennen führender O'en und Begrenuzungsbits, und 8-Bit-Schieberegister
zur Ausgabe der festen Wortlänge kann auch als Zeichengenerator verwendet werden.
In dieser Anwendung kann der Nur-Lese-S;eicher zur Speicherung einer ganzen Quelle
verwendet werden, in der jedes alphanumerischc Zeichen typischerweise durch eine
20 nal 22 Bit-Matrix definiert ist. Hierbei können 11 Bits Information zur Spezifikation
des besonueren alphanumerischen Zeichens und der Zeile dieses Zeichens verwendet
werden, wobei die ausgewhlte Zeile von 22 Bits in ein 22-Bit-Schieberegister parallel
geladen wird. Danach wird diese Information seriell in ein 8-Bit-Schieberegister
wie oben zur zeitweiligen Speiciierung unc zur endgültigen Verwendung als Einrichtung
zum Generieren von Zeichenbildern durch die Verwendung irgendeiner Rasterausgabeabtastvorrichtng
geschiftet. In jedem Fall wird durch Verwendung eines Nur-Lese-Speichers ein grcßes
Schieberegister zur Aufnahme der ROM-Inhalte parallel und ein kleineres Schieberegister
zur Aufnahme von orten fester Lange für den jeweiligen Reci1ner benötigt, und Daten
variabler Länge koniicn in feste Wortlängen zur Verwendung in einem System mit festen
Wortlängen gepackt werden. In bciaen Fällen können die Schaltkreiskonponenten so
variiert werden, daß die vom Nur-Lese-Speicher ausgegebenen Worte und die Worte
fester Länge jeder Größe
angepaßt werden können.
-
Weitere Merkmale und Zweckmäßigkeiten der Erfindung ergeben sicn aus
der Beschreibung eines Ausführungsbeispieles anhand der Figuren. Von den Figurcn
zeigen: Fig. 1A einen hypothetischen Satz dezimaler Lauflängen und entsprechende
Huffman-Codes; Fig. 1B die Anordnung dieser Codes in einem ROM, (Nur-Lese-Speich
Fig. 1C das Verfahren zu Packen dieser Codes in ein 8-Bitbis 1G Ausgabewort und
Reste; Fig. 2A ein vereinfachtes Schema des ROM's und 24-Bit-Schieberegisters; Fig.
2B ein Flußdiacrramia einer Endpackungsunterroutine zur Erzeugung von Lauflängen,
die die Speicherwortlänge übersteigen; Fig. 2C einen Bereich eines PROM's, das in
Verbindung mit der Unterroutine aus Figur 2B verwendet wird; Fig. 3 die Anordnung
der ROM-Daten bei der Verwendung als Quel lengenerator; Fig. 4 ein Blockschaltbild
des Systems mit CPU (Zentralprozessor), Hauptspeicher, DMA-Kanal und Datenpackungsschaltkreis;
Fig. 5 ein Schema der Vorrichtung zum Zerlegen von führender o und Begrenzungsbit.
-
Die offenbarte Ausführungsform nicht reine Huffman-Codes, aber die
Un-23 Bit Länge in einer NO.i mit 3 Moduln, jeder mit einer Kapazität von 1025 Worten
mal 8 Bit. Tatsächlich sind die Codes in der bevorzugten Ausführungsform nicht reine
Huffman-Codes, aber die Unterschiede sind in Bezug auf die beschriebene Vorrichtung
und Verfahren nicht von Bedeutung. Zur Beschreibung wird angenommen, daß die Huffman-Äquivalente
der dezimalen Lauflängen 9, 40 und 130,
die in Figur 1A gezeigt
sind, in dem ROM gespeichert sind, wie es in Figur 1B gezeigt ist, und der Schaltkreis
arbeitet dann wie folgt: Das ROM wird zuerst durch eine relative Adresse entsprechend
dem Huffman-Code der Lauflänge adressiert, was zu 24 Bits führt, die parallel in
ein Schieberegister eingeschoben werden. Danach wird dieses Wort seriell in einen
Begrenzerschaltkreis geschoben, der die führenden 0'en und das Begrenzungsbit zerlegt.
Wenn das erste zugegriffene Wort der der Dezimalzahl 9 äquivalente Huffman-Code
ist, bleibt nach dem Abspalten der Rest 1011, wie gezeigt.
-
Dieser wird seriell in die ersten fünf Bit eines 8-Bit-Schieberegisters
wie in Figur 1C gezeigt, geschoben.
-
Es wird dann auf die ncste Zahl aus dem ROM zugegriffen. In diesem
Fall wird angenommen, es sei die Dezimalzahl 40. Nach dem Zerlegen wird die Binärzahl
1011011 in das 8-Bit-Schieberegister geschoben. In diesen Fall ist das 3-Bit-Schieberegister
nach dem Einschiften der ersten drei Bit voll und das darin enthaltene Wort kann
parallel zu einem Pufferspeicher übertragen werden, wie es in Figur 1D gezeigt ist.
-
Die verbleibenden Bits werden dann in das 8-Bit-Schieberegister geschoben,
was zu dem Bitmuster in Figur 1E führt.
-
Das dritte Codewort, das der Dezlntalzahl 130 entspricht, wird als
nächstes verarbeitet, und die ersten 4 Bit ergeben ein zweites Ausgabewort, wie
in Figur 1F und einen Rest wie in Figur 1G gezeigt.
-
Auf diese Weise werden Worte variabler Länge in feste Wortsegmente
gepackt.
-
Figur 2 ist ein Blockschaltbild des Adreßbusses, des ROM's und dc
2-Bit-Schiebercgisters. Eine 11-Bit-Adresse wird von den ROM-Moduln 15 parallel
empfangen und eine 24-Bit-Parallelausgabe wird an das 24-Bit-Schiebero'gister 14
angelegt. Die Schieberichtung kann jede Richtung sein, in Figur 2 werden die Bits
nach rechts in den
24-Bit-Schieberegister 14 geschoben. Wie gezeigt,
besteht jedes Wort aus führenden 0'en, einem 1-Begrenzungsbit und das Muster, was
jede Kombination von 1'en und 0'en annehmen kann, ist hier mit X angogcbell. Der
Inhalt des ROM 15 kann entweder ein Videomuster wie gezeigt sein, das in der Art
eines Zeichengenerators verwendet wird, oder kann aus Huffman-Codes oder ähnlichem
zur oben beschriebenen Verwendung bestehen Im Fall, daß eine Lauflänge langer als
23 Bits erzeugt werden muß, kann ein 24-Wort-Bereich des PROM-Speichers, wie es
in Figur 2C gezeigt ist, und ein Prozessorprogramm wie es in Figur 2B gezeigt ist,
in Verbindung mit diesem Schaltkreis verwendet werden. Zuerst teilt das Programm
die Anzahl der Bits in der gewünsichten Lauflänge durch die maximale Anzahl von
Bits, die in einem PROM-Speicherplatz enthalten sein können. Für ein numerisches
Beispiel wird angenommen, daß die Lauflänge 100 (N=100) ist, und die maximale Anzahl
von Bits pro Speicherplatz 23 ist. Dann ist der Quotient 4 (Q=4) und der Rest ist
8 (R=8). Der Prozessor schleift dann durch die Schritte # 4, # 5 und #
6 viermal zur Erzeugung von 92 Bits, und geht schließlich durch Schritt # 7
zur Addition der letzten 8 Bits. Durch Anwendung diesesDekompressions- bzw. InL-packungsverfahrens
können Lauflängen größer als die Speicherwortlänge erzeugt werden.
-
Die angegebenen Adressen der zwei Worte in Figur 2, auf die zugegriffen
wird, sind 4016 und 4017, oktal. Dies sind typische Adressen in einem Rechner mit
2K-Hauptspeicher, in dem der 4XXX Adreßblock für dieses Datenpackungsschaltkreis-ROM
reserviert ist.
-
3 zeigt die typischen Inhalte eines ROM, wenn der Schaltkreis im.
Zeichengenerierungsmodus verwendet wird. Üf der Höhe des Systemes wird der geeignete
Zeichenkennzeichner und die Rasterabtastzeilnummer als Adreßkomponenten verwendet.
Die adressierte Datenzeile wird dann in das 24-Bit-Schieberegister wie vorher geladen.
-
Für den Buchstaben "R" ist das Bit 21 das Begrcnzungsbit, und läßt
20 Bits zur Ausgabe als Zeichendaten übrig. Für einen schmäleren Buchstaben kann
das Begrenzungsbit eine Position weitcr links einnehmen und das Zeichen in dem verbleibenden
Raum zur Schaffung eines variabel breiten BuchsLabenabstands zentriert werden .
in dieser Figur sind alle leeren Bitpositionen 0, außer der ersten Reihe, diese
Bits wurden zur größeren Klarheit weggelassen.
-
Das Gesamtblockschaltbild dieses Systems ist in Figur 4 gezeigt.
-
Die CPU (Zentralprozessor) 10 und der Speicher 11 können auf bekannte
Weise verbunden werden. Hier treibt die CPU 10 den AdreB-bus 12 und die CPU 10 und
der Speicher 11 kommunizieren bidirektional mit dem Datenbus 13. Auch ist eine diskrete
Speicherleseleitung 24 zum Ermöglichen des Auslesens des Hauptspeichers 11 oder
des ROM's 15 vorgesehen.
-
Wenn das ROM 15 adressiert wird, werden 24 Bit Daten parallel in das
24-ß'it-Schieberegister 14 geladen. Danach wird unter Steuerung der Schicbesteuerlogik
17 dieses 24-Bit-Datenwortes nach rechts geschoben, bis daß alle führenden O'en
und das Begrenzungsbit zerlegt bzw. davon abgespalten worden sind. Dann werden die
gültigen Datenbits seriell in das 8-Bit-Schieberegister 16 geschoben.
-
Jeder zurn Schieben des 24-Bit-Schieberegisters 14 verwendeter Taktimpuls
wird durch den Zähler 20 gezählt. Wenn das 24-Bit-Schieberegister leer ist, wird
ein "Zählfolgekomplett" - Signal vom Zähler 20 zur Schiebesteuerlogik 17 wie gezeigt
geschickt und auch zur CPU 10. Die CPU 10 adressiert dann ein anderes ROM-Datenwort
und beginnt einen neuen Zyklus.
-
Jeder zum Schieben des 8-Bit-Schieberegisters 16 verwendete Taktimpuls
wird durch den Zähler 18 gezählt. wenn der Zähler 18 voll ist, wird ein "Zälllfolse
ksmplett"-Signal vom Zähler 18 zur Schiebesteuerlogik 17, der Zustands-Steuerlogik
26, dem Verriegelungsglied bzw. Latch 22 und der. DMA-Anforderungs-Flip-Flop 21
geschickt. Als Folge davon wird das Datenwort im 8-Bit-Schiebregister 16 im 8-Bit-Verriegelungsglied
22 verriegelt bzw. festgelegt, und das 8-Bit-
Schicberegister 1G
zum Beginn des Packens des nächsten Wortes freigesetzt. Das 8-Bit-Datenwort in dem
Verriegelungsglied bz.
-
Register ]unn dann auf den DMA bzw. den Kanal für direkten Speicherzugriff
27 zum Stehlen eines Speicherzyklusses warten, während dessen das 8-Bit-Wort vom
Verriege-lungsglied 22 in den Speicher Treiber 11 durch den Bus-23 und den Datenbus
13 geladen wird.
-
Während jedes SlDeicher-Lese-Zyklusses macht die Speicherleseleitung
24 sowohl den Hauptspeicher 11 als auch das ROM 15 ansteuerbar. Jedoch lädt das
24-Bit-Schieberegister 14 die ihm angebotenen Daten nur, wenn eine ROM-Adresse durch
die CPU 10 spezifiziert ist. Die Entscheidung wird durch die Adreßdekodierlogik
24 getroffen, deren Ausgabe ermöglicht, daß ein Ladesignal von der Zustandssteuerlogik
durch das Gatter 25 hindurchgeht.
-
Die gepackten Daten können in ein Pufferregister oder in eine CPU
durch jedes Standard-E/A-Tor oder DMA-Kanal geladen werden. In der beschriebenen
Ausführungsform wird das Laden durch einen Schaltkreis 27 zum direkten Speicherzugriff
erzielt. Wenn das DMA-Anforderungs-Flip-Flop 21 eine vom Zähler 18 stammende Anzeige
erhält, daß ein 8-Bit-Wort zum Speichern fertig ist, schickt es eine Kanalanforderung
auf Leitung 28 zu dem DMA-Zugriffschaltkreis 27, der ein Kanalquittungssignal auf
Leitung 30 zurückgibt, und das DMA-Anforderungs-Flip-Flop 21 zurücksetzt. Gleichzeitig
sendet der DMA 27 ein Halt-Anforderungssiognal auf Leitung 31 zur sCPU, das die
CPU 10 zur Freigabe des Speichers 11, lang genug für einen Ladezyklus, auffordert.
Wenn ein Halt-Quittungssignal von der CPU 10 auf Leitung 36 durch den DMA 27 gefangen
wird, wird ein E/A-Lesebefehl auf Leitung 32 zum Bus-Treiber23 gesandt. Auch ein
Speicherschreibbefehl wird zum Speicher 11 auf Leitung 33 gesandt, und ermöglicht
so dem Bus-z-eiber 23 das Laden eines Wortes vom Verriegelungsglied 22 durch den
Datenbus 13 in den Speicher 11.
-
Alternativ kann das E/A-Tor zum Laden des Speichers verwendet werden.
In dieser Fall, wenn das Zählfolge komplett-Signal von der CPU 10 auf Leitung 37
empfangen wird, sendet die CPU ein E/A-Lesesignal auf leitung 32, um den Bus-Treiber
23 um Treiben des Datenbusses verfügbar zu machen. ein gewöhnlicher Speicherlosezyklus
lädt
dann die Daten in Speicher 11.
-
Figur 5 ist ein Schema eines Schaltkreises zum Trennen der führenden
O'en und des Begrenzungsbits. Die Bits werden aus dem 24-Bit-Schieberegisters 14
herausgeschoben aber in dem 8-Bit-Schicberegister 16 wegen eines Taktsperrsignals
vom Flip-Flop 35 an das Gatter 34 blockiert. Nach einem anfänglichen Abtrennen der
führenden O'en setzt ein 1-Begrenzungsbit das Flip-Flop 35, macht Gatter 34 ansteuerbar
und ermöglicht, daß die verbleibenden gültigen Datenbits in das 8-Bit-Schieberegister
16 geladen werden Schließlich, wenn das 24-Bit-Schieberegister 14 leer ist, setzt
der Zähler 20 das 24-Bit-Schieberegister 14 und das Flip-Flop 35 zum Starten eines
neuen Zyklusses zurück.
-
Der Schaltkreis wurde mit Begriffen bei der Anwendung eines ROM's
zur Speicherung von Quellen, Datenbitlauflängcn und Huffman-Codes beschrieben. Jedoch
ist klar, daß nichtpermanente RAM's (Speicher mit wahlfreiem Zugriff) auch verwendet
werden können. In diesem Fal kann die Codierung zur Erhöhung der Leistungsfähigkeit
geändert werden, wenn ein unterschiedlicher Operationsmodus begonnen wird (beispielsweise
Ilaibtonbilder und Text). Ähnlich kann eine änderung der Quelle erzielt werden,
in-dem ein unterschiedlicher Datensatz in den Zeichengenerator geladen wird. Diese
Beschreibung beruht auf einem Beispiel, in der die RoM-Wortlänge länger ist, als
die Festwortlänge. Dies ist keine notwendige Begrenzung, kurze variable Wörter können
in längere Wörter fester Länge mit diesem Datenpackungsschaltkreis gepackt werden.
Auch können auch andere Codes als !iuffman-Codes in den beschriebenen Kompressicns-
und Dekompressionsmoden verwendet werden.
-
L e e r s e i t e