DE3837847A1 - Einrichtung und verfahren zum verschieben eines bitfoermigen datenblocks - Google Patents
Einrichtung und verfahren zum verschieben eines bitfoermigen datenblocksInfo
- Publication number
- DE3837847A1 DE3837847A1 DE3837847A DE3837847A DE3837847A1 DE 3837847 A1 DE3837847 A1 DE 3837847A1 DE 3837847 A DE3837847 A DE 3837847A DE 3837847 A DE3837847 A DE 3837847A DE 3837847 A1 DE3837847 A1 DE 3837847A1
- Authority
- DE
- Germany
- Prior art keywords
- bit
- word
- memory
- destination
- data
- 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.)
- Withdrawn
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
- G09G5/36—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
- G09G5/39—Control of the bit-mapped memory
- G09G5/393—Arrangements for updating the contents of the bit-mapped memory
Description
Die Erfindung betrifft eine Einrichtung nach dem Oberbegriff des Patent
anspruchs 1.
Bei bit-abgebildeten graphischen Anzeigesystemen wird jeder Zeichenpunkt
bzw. jedes kleinste Element einer Darstellungsfläche, dem Farbe oder Licht
intensität unabhängig zugeordnet werden kann, ein sogenanntes Pixel, durch
zugeordnete Daten repräsentiert, die in einem Speicher gespeichert sind,
der im allgemeinen als Bildpufferspeicher bezeichnet wird. Eine typische
Operation in einem solchen System ist die Bewegung von abhängigen
Blöcken oder Sätzen von Zeichenpunkten oder Pixeln von einem Punkt des
Bildschirms zu einem anderen. Es ist außerdem typisch, daß die interne
Architektur des Systems eine solche Operation dadurch realisiert, daß der
Bildpufferspeicher auf einer Wort-auf-Wort-Basis adressiert wird. Das
heißt, daß der Bildpufferspeicher so ausgelegt ist, daß jede Bildpuffer
speicher-Adresse nicht nur einen, sondern eine Vielzahl von Pixeln bezeich
net. In einem System, bei dem ein Datenwort acht Bits aufweist, d. h.
ein Daten-Byte, werden die Daten, die acht Pixel repräsentieren, jedesmal
aus dem Bildpufferspeicher ausgelesen oder in diesen eingeschrieben, wenn
der Bildpufferspeicher adressiert wird.
Es kommt häufig vor, daß der Satz von Zeichenpunkten oder Pixeln, der
bewegt werden soll, seine Grenze irgendwo innerhalb eines Datenworts
oder -bytes hat, d. h. an einer Stelle, die von der Wort- oder Byteadresse
oder -grenze im Bildpufferspeicher entfernt liegt.
Um das wortgemäße Adressierungsschema der Architektur des Bildpuffer
speichers zu benutzen, aber trotzdem noch das Auftreten einer Satz- oder
Blockgrenze an einer Stelle zu erfassen, die von der Wort- oder Byte
adresse oder -Grenze abliegt, wird bei der herkömmlichen Lösung ein
ganzes Datenbyte gelesen und entsprechend einem Bit-Index in der Zentral
einheit verschoben oder gedreht. Sodann werden die gedrehten Daten in
die gewünschte Bestimmungsspeicherzelle im Bildpufferspeicher einge
schrieben.
Die Geschwindigkeit, mit der solche Operationen auftreten können, hängt
oft von der Bandbreite des Bildpufferspeichers ab. Demzufolge stellt eine
geringe Bandbreite des Bildpufferspeichers oft die Ursache für eine
schlechte Arbeitsweise dieses Speichers dar. Die Analyse der Software, die
typischerweise beim Steuern des Bildpufferspeichers während der Daten
umschichtung verwendet wird, offenbart indessen, daß zehn oder mehr
Codezeilen bei jedem Zugriff auf den Bildpufferspeicher durch die Zentral
einheit bearbeitet werden. Die Bearbeitung dieses Codes bedeutet einen
zusätzlichen Platzbedarf, der selbst dann verbleibt, wenn zu dem Bildpuffer
speicher als solchem in sehr kurzer Zeit Zugriff genommen werden kann.
Bei einer genaueren Betrachtung des erwähnten Codes erkennt man, daß er
hauptsächlich dazu dient, die Spur von Bitplätzen zu halten, wenn die
Quellen- und Bestimmungsspeicherzellen des Informationssatzes in bezug auf
die Wortgrenzen im Bildpufferspeicher verschieden sind.
Nimmt man beispielsweise an, daß der Informationsblock oder -satz, der
umgeschichtet bzw. verlagert werden soll, nicht an der Wortgrenze beginnt,
und nimmt man weiterhin an, daß die Satzgrenze an der Bestimmungs
speicherzelle mit einer anderen Bitposition in einem Wort beginnt, so kann
bei einer solchen Situation das erste Wort der Quellenspeicherzelle mehr
Datenbits oder weniger Datenbits enthalten, als durch das erste Wort an
der Bestimmungsspeicherzelle erfaßt werden muß. Hat etwa das erste Wort,
das aus der Quelle ausgelesen wird, fünf Pixel, die übertragen werden
sollen, wobei jedoch das erste Bestimmungswort nur zwei von ihnen halten
soll, so müssen drei Pixel des Quellwortes für den nächsten Lesevorgang
übertragen werden. Nimmt man an, daß mehr Pixel übertragen werden
müssen, erfordert der nächste Lesevorgang für die Übertragung acht weitere
Pixel aus dem Bildpufferspeicher. Fünf dieser neuen Pixel und die drei
Pixel, die aufgrund des vorangegangenen Lesevorgangs übertragen wurden,
müssen hierbei jedoch für die Speicherung in der nächsten Wortspeicher
zelle an der Bestimmungsspeicherzelle kombiniert werden. Dies bedeutet,
daß die drei Pixel, welche aufgrund des vorangegangenen Lesevorgangs
übertragen wurden, bezüglich ihrer Bitpositionen rückwärts gedreht werden
müssen, so daß sie die ersten drei Bitpositionen im neuen Bestimmungswort
belegen. Sodann müssen die fünf neuen Pixel ihre Bitpositionen nach vorne
drehen, so daß sie die verbleibenden fünf Bitpositionen im neuen Be
stimmungswort belegen. Weiterhin müssen drei der neuen Pixel zum nächsten
Lesevorgang übertragen werden. Insgesamt wurden so bei der zweiten Lese
operation elf Pixel durch die Software übertragen und gedreht, damit das
älteste der acht Pixel übertragen und die drei neuesten Pixel zur nächsten
Leseoperation verbracht werden konnten.
Jeder dieser Schritte beinhaltet das Abrufen von Codes und die Abarbei
tung eines solchen Codes durch die Zentraleinheit, wobei wertvolle Zeit
verbraucht wird. Was diesen Sachverhalt noch verschlimmert, ist die Tat
sache, daß die erwähnten Operationen oft noch in eine innere Schleife
eingebettet sind. Hierdurch multipliziert sich die Ineffektivität solcher
Operationen mit der Anzahl der durchgeführten Schleifen.
Es ist deshalb in hohem Maße erwünscht, den Betrag des Software-Codes
zu minimieren, der erforderlich ist, um bearbeitet zu werden, damit der
Datenumschichtungsvorgang ausgeführt werden kann. Es ist weiterhin
wünschenswert, die Notwendigkeit für das Verschieben oder Rotieren der
Daten zu vermindern, bevor diese Daten in die neue Bestimmungsspeicher
zelle eingeschrieben werden.
Der Erfindung liegt die Aufgabe zugrunde, eine Steuerung der Daten
bewegung im Bildpufferspeicher zu erreichen, die hohen Anforderungen
entspricht.
Diese Aufgabe wird gemäß den Merkmalen des Patentanspruchs 1 gelöst.
Der mit der Erfindung erzielte Vorteil besteht insbesondere darin, daß es
dem Zentralrechner gestattet wird, am Bildpufferspeicher mit etwas Zugriff
zu nehmen, das effektiv eine gleitende Satzgrenze ist. Hierdurch wird ein
wesentlich verbessertes Betriebsverhalten erreicht, und zwar nicht nur im
Hinblick auf eine größere Geschwindigkeit, sondern auch bezüglich der
Minimierung der Codegröße. Dies hat einen erheblichen Einfluß auf die
Geschwindigkeit eines Systems bei solchen Systemen, in denen der ausführ
bare Code in einen langsameren Sekundärspeicher ein- und ausgelagert wird.
Gemäß der Erfindung wird der Software-Code von der Notwendigkeit be
freit, Pixel zu tragen. Jede Übertragung zum oder vom Speicher fügt ein
Pixelwort aus der Quellenspeicherzelle im Speicher zu einer Versorgungs
leitung hinzu und zieht ein Pixelwort heraus, das in die Bestimmungs
speicherzelle im Speicher eingeschrieben wird. Hierdurch kann ein
schneller Satzdatentransfer mit einer minimalen Beteiligung der Zentral
einheit und ohne Verschieben oder Rotieren der umzuschichtenden Daten
realisiert werden. Außerdem ermöglicht die Erfindung die Verschiebung von
Bits von links nach rechts und von rechts nach links. Während man an
nehmen kann, daß beim herkömmlichen Plattenkassettenlaufwerk eine Art
von Aufspaltung der Datensätze auf der Sektorebene durchgeführt wird,
kann man ebenfalls annehmen, daß bisher kein Versuch unternommen wurde,
die Wörter von Daten auf der Bit-Positionsebene in der Weise aufzuspalten,
daß sich im Effekt eine Fließwortgrenze ergibt. Mit der Erfindung wird
also erreicht, daß ein Datenblock in einem Speicher bewegt werden kann,
der die Aufspaltung der Daten jedes Worts in einem Datenwort bewirkt,
das zwischen einer Haltevorrichtung und einer Bestimmungswortbildungs
einrichtung bewegt wird. Weiterhin ermöglicht es die Erfindung, daß ein
Datenblock in einem Speicher bewegt werden kann, in dem eine Zuordnungs
gradmenge aus der Anfangs- und Endadresse der Quellenspeicherzellen- und
der Bestimmungsspeicherzellen-Blockgrenzen bestimmt wird, sowie aus der
Wortgröße, die in einem System verwendet wird, wo eine solche Menge
die Art und Weise bestimmt, in welcher die aus dem Speicher geholten
Daten zwischen die Bestimmungswortformationseinrichtung zugeordnet sind,
um das Wort zu bilden, welches in die Bestimmungsspeicherzelle einge
schrieben werden soll, und daß Haltemittel für die Bildung nachfolgender
Wörter zum Schreiben in die Bestimmungsspeicherzelle vorgesehen sind.
Ausführungsbeispiele der Erfindung sind in der Zeichnung dargestellt und
werden im folgenden näher beschrieben. Es zeigen:
Fig. 1 ein Schaubild, welches die Verschiebung eines Datenblocks von
einer Quell-Speicherzelle in eine Bestimmungs-Speicherzelle zeigt;
Fig. 2 eine Prinzipdarstellung der Erfindung;
Fig. 3 ein Flußdiagramm, welches den Betriebs-Datenfluß gemäß der
Erfindung zeigt;
Fig. 4 ein veranschaulichendes Beispiel für die Erfindung, wobei die
Information der Fig. 1 verwendet wird;
Fig. 5A und 5B veranschaulichende Beispiele für die Erfindung, wobei ein
Block bzw. Satz von bitförmigen Daten von rechts nach links
bewegt wird.
In der Fig. 1 ist ein Transfer eines Satzes 10 von Daten aus einer Quell-
Speicherzelle - wobei bei der Bitposition 2 in einem Wort begonnen wird -
in eine Bestimmungs-Speicherzelle dargestellt, die bei der Bitposition 4 in
einem anderen Wort im Speicher beginnt. Ferner ist der Transfer eines
anderen Satzes 12 von Daten dargestellt.
Die Buchstaben B bedeuten in der Figur Hintergrunddaten, während die
Buchstaben I und J Abbildungsdaten bezeichnen, d. h. diejenigen Daten in
den Sätzen von Daten, die verschoben werden sollen. Dagegen bezeichnen
die Buchstaben S und U die am Bestimmungsort vorhandenen Daten.
Es wird nicht versucht, eine detaillierte Beschreibung der Operationen beim
Lesen, Schreiben und Adressieren des Speichers zu geben, da solche Opera
tionen zum Stand der Technik gehören und bekannt sind.
Aus der Fig. 1 ist ersichtlich, daß dann, wenn man das erste Wort aus der
Quell-Speicherzelle erhält, die ersten sechs Bits des Bit-Satzes, der ver
schoben werden soll, aus dem Speicher übernommen worden sind. Man er
kennt weiterhin, daß in der Bestimmungsspeicherzelle nur vier Bitpositionen
im ersten Wort die Bits aus dem Bit-Satz erfassen, der verschoben wird.
Dies hat seinen Grund darin, daß die Satzgrenze in der Bestimmungs
speicherzelle relativ zur Wortgrenze um zwei verschoben ist, wenn man sie
mit der Satzgrenze an der Quell-Speicherzelle vergleicht.
Bei einem typischen Graphik-System würden die sechs Bits aus der Quell-
Speicherzelle durch die Zentraleinheit (=CPU=Central Processing Unit)
gedreht, so daß die ersten vier Bits in die richtigen Bitpositionen in bezug
auf die Wortgrenzen in der Bestimmungsspeicherzelle verschoben werden.
Das nächste Wort wird dann aus der Quell-Speicherzelle genommen, mit
den bei der vorangegangenen Leseoperation nicht benutzten Bits kombiniert,
gedreht und dann in die Bestimmungsspeicherzelle eingeschrieben. Solche
Vorgänge dauern an, bis alle Daten im Satz in die Bestimmungsspeicher
zelle eingeschrieben sind. Es versteht sich deshalb, daß solche Operationen
für die Durchführung eine beachtliche Bearbeitungszeit der Zentraleinheit
sowie zahlreiche Kodierzeilen erfordern.
In der Fig. 2 ist ein Blockdiagramm dargestellt, anhand dessen die Funktion
der Erfindung im folgenden beschrieben wird. Der Speicher 15 speichert
hierbei den Informationsrahmen. Es versteht sich, daß - obwohl sich die
nachfolgende Beschreibung auf eine einzige Speicherebene bezieht - die
Erfindung in gleicher Weise auf mehrere Speicherebenen anwendbar ist,
beispielsweise bei einem Farbgraphiksystem.
Die Daten, die aus dem Speicher 15 ausgelesen werden, werden über den
Datenbus bzw. die Datensammelschiene 14, die auch als A-Bus bezeichnet
wird, auf die erfindungsgemäße Einrichtung gegeben. Die in den Speicher 15
einzuschreibenden Daten erscheinen auf dem Bus 16. Lese-/Schreib-Freigabe
regelsignale gelangen von einer Zentraleinheit 18 auf die Leitungen 20. Der
Speicher 15 wird über den Adressenbus 22 durch die Zentraleinheit 18
adressiert. Die Zentraleinheit 18 gibt auch eine Richtungs(fehler)anzeige
auf die Leitung 24, Ausblendschutzsignale auf den Bus 26 und eine Zu
ordnungsgrad-Information auf die Leitungen, die durch gestrichelte Linien
dargestellt sind. Eine Bedienungsperson bzw. der Benutzer gibt über die
Leitung 29 in die Zentraleinheit 18 eine Quellen- und Bestimmungsort
koordinateninformation sowie eine Satzgrößeninformation ein.
Die erfindungsgemäße Einrichtung enthält ein Bestimmungsregister 30 und
ein Quellenregister 32. Das Bestimmungsregister 30 wird für die Bildung
solcher Wörter verwendet, die in die Bestimmungsspeicherzelle eingeschrieben
werden sollen, während das Quellenregister 32 als ein Halteregister wirkt,
um Daten aus der Bestimmungsspeicherzelle zu halten, damit sie von dem
Bestimmungsregister 30 verwendet werden. Das Bestimmungsregister 30
erhält seine Daten von einem Multiplexer 34. Dieser Multiplexer 34 arbeitet
so, daß er verschiedene Kombinationen von neu erhaltenen Daten sowie
Daten, die von der vorangegangenen Wortbildungsoperation übriggeblieben
sind, bereitstellt. Die Kombination solcher Daten kann entsprechend der
Zuordnungsgradmenge, die von der Zentraleinheit 18 bereitgestellt wird,
ausgewählt werden.
lm einzelnen erkennt man aus der Fig. 2, daß bei der Erfindung eine von
acht Sammelschienen A, V 1, V 2, V 3, V 4, V 5, V 6 und V 7 entsprechend der
Zuordnungsgradmenge ausgewählt werden kann. Jede dieser Sammelschienen
stellt eine andere Kombination der Daten dar, die von den Multiplexern
36 und 38 erhalten werden. Diese verschiedenen Kombinationen werden
durch einen Kreuzverbindungsblock 40 bereitgestellt.
Der Kreuzverbindungsblock 40 kann ein Block verdrahteter Leitungen sein,
obwohl erfindungsgemäß andere Kombinationstechniken, z. B. Multiplexer,
verwendet werden können. Die Tabelle, die sich in dem Kreuzverbindungs
satz oder -block 40 der Fig. 2 befindet, veranschaulicht, wie die Bits der
Daten, die von den Multiplexern 36 und 38 kommen, in verschiedenen
Kombinationen und Positionen den einzelnen Sammelschienen V 1 bis V 7
zugeführt werden. Der Bus A stellt eine direkte Verbindung zwischen dem
Speicher 15 und dem "0"-Eingang des Multiplexers 36 dar.
Die Multiplexer 36 und 38 empfangen über den Bus A Daten aus dem
Speicher 15 sowie über den Bus B aus dem Quellenregister 32. Im einzelnen
empfängt der Multiplexer 36 an seinem "0"-Eingang Daten, die aus dem
Speicher 15 ausgelesen wurden, und an seinem "1"-Eingang Daten aus dem
Quellenregister 32. Die Wahl zwischen diesen Datenquellen für die Ausgabe
zur Kreuzverbindungsschaltung 40 wird durch die Richtungsanzeige aus der
Zentraleinheit 18 bestimmt, die auf die Multiplexer-Auswahleingänge gegeben
wird. In entsprechender Weise erhält der Multiplexer 38 an seinem "0"-
Eingang Daten aus dem Quellenregister 32, während er an seinem "1"-
Eingang Daten erhält, die aus dem Speicher 15 ausgelesen werden. Ein
Richtungsanzeigezustand "0" bewirkt, daß Daten, die auf die "0"-Eingänge
der Multiplexer 36 und 38 gegeben werden, Ausgangssignale werden, während
ein Richtungsanzeigezustand "1" bewirkt, daß die Daten, die auf die "1"-
Eingänge gegeben werden, zu Ausgangssignalen werden. Auf diese Weise
kann eine Daten-Blockbewegung von links nach rechts und von rechts nach
links mittels einer einfachen Änderung der Richtungsanzeige durchgeführt
werden. Für den Fall, daß es erwünscht ist, Block-Bewegungen nur von
rechts nach links durchzuführen, kann von den Multiplexern 36 und 38 ab
gesehen werden, und die Sammelschiene A kann direkt mit der Sammel
schiene E verbunden werden, während die Sammelschiene B direkt mit der
Sammelschiene F verbunden werden kann.
Die Daten werden vom Multiplexer 36 über die Sammelschiene E dem
Kreuzverbindungsblock 40 zugeführt. Derartige Daten werden in
der Tabelle des Kreuzverbindungsblocks 40 mit dem Symbol E versehen, und
zwar mit einem Zusatz, der die Bitposition der Daten in einem anderen
Wort bezeichnet. Auf entsprechende Weise werden Daten durch den Multi
plexer 38 auf der Sammelschiene F bereitgestellt und mit dem Buchstaben
F bezeichnet, wobei Indizes die Bitposition der Daten in einem Wort be
zeichnen. Die Multiplexer 36 und 38 dienen dazu, Daten zu dem Kreuz
verbindungsblock 40 in dieselben Bitpositionen zu bringen, wie sie ihnen zu
geführt wurden.
Die Zentraleinheit 18 gibt außerdem eine Maskenschutzinformation auf den
Maskenschutzspeicher 44. Diese Information wird verwendet, um eine Schreib
operation in speziellen Speicherplätzen des Bestimmungsregisters zu sperren
und um den Multiplexer 34 zu steuern, wenn Daten aus einer Block- oder
Satzgrenze ausgelesen werden.
Der Multiplexer 42 gibt Daten auf das Quellenregister 32, wobei diese
Daten entweder aus dem Speicher 15 oder vom Ausgang des Quellenregisters
32 kommen. Die Auswahl zwischen diesen Datenquellen ist eine Funktion
des Zustands des Maskenschutzspeichers 44. Bei dem in der Fig. 2 darge
stellten Ausführungsbeispiel gibt ein ODER-Gatter 46 - falls der Inhalt des
Maskenschutzspeichers 44 nicht Null ist - einen logischen 1-Zustand auf den
Auswahleingang des Multiplexers 42, wobei die Daten aus dem Ouellen
register 32 ausgewählt werden, um sie wieder in das Quellenregister 32
einzugeben. Hierdurch verbleiben dieselben Daten im Quellenregister 32, um
bei der nächsten Wortbildungsoperation verwendet zu werden. Umgekehrt,
wenn der Inhalt des Maskenschutzregisterspeichers 44 vollständig auf Null
ist, werden die Daten, die aus dem Speicher 15 kommen, dem Quellen
register 32 zugeführt, um dort gespeichert zu werden.
Bei einer Ausführungsform der Erfindung wird von dem Multiplexer 42 ab
gesehen und stattdessen ein Signal vom ODER-Gatter 46 als ein Schreib
signal auf das Quellenregister 32 gegeben, wobei das Quellenregister 32 nur
über die Lesedatenleitung 14 ein Eingangssignal erhält. Wenn somit das
Ausgangssignal des ODER-Gatters 46 anzeigt, daß der Inhalt des Masken
schutzregisterhalters 44 nicht ausschließlich auf Null steht, wird das
Quellenregister bezüglich des Schreibens gestoppt und der Inhalt des Quellen
registers 32 bleibt unverändert.
Im folgenden wird unter Bezugnahme auf den Kreuzverbindungsblock 40 eine
genauere Beschreibung seiner Wirkungsweise gegeben. Der Kreuzverbindungs
block 40 empfängt acht Bits, E 0 bis E 7, vom Multiplexer 36 und acht Bits,
F 0 bis F 7, vom Multiplexer 38. Um die Tabelle im Kreuzverbindungsblock 40
zu lesen, stellt jede Spalte einen anderen "V"-Bus dar und jede Zeile
bedeutet eine Bitposition innerhalb des Busses. Es versteht sich, daß, obwohl
das Ausführungsbeispiel der Fig. 2 ein Acht-Bit-Wort verwendet, gemäß der
Erfindung auch andere Wortgrößen verwendet werden können. Der Bus V 1
bringt die Bits F 1 bis F 7 in ihre Bitpositionen 0 bis 6 und das Bit E 0 in
seine Bitposition 7. In entsprechender Weise bringt der Bus V 4 die Bits
F 4 bis F 7 in ihre ersten vier Bitpositionen, während er die Bits E 0 bis E 3
in ihre vier letzten Bitpositionen bringt. Wie bereits früher erwähnt, ist
der ausgewählte Bus V eine Funktion der Zuordnungsgrad-Information aus
der Zentraleinheit 18. Es wird darauf hingewiesen, daß die Bit-Positions
zuordnungen des Kreuzverbindungsblocks 40 die Konvention der am wenigsten
bedeutendsten Bits zu den bedeutendsten Bits von links nach rechts ver
wendet. Wenn die Konvention von rechts nach links für die am wenigsten
wichtigen Bits bis zu den wichtigsten Bits verwendet wird, sollten die Bit-
Positionszuordnungen entsprechend modifiziert werden.
Die Funktionsweise der Schaltungsanordnung gemäß Fig. 2 versteht man
besser, wenn man die Fig. 1, 3 und 4 sowie die zugehörigen Beispiele
betrachtet. Die Fig. 3 stellt ein Flußdiagramm dar, welches die Funktions
weise der Erfindung beim Umspeichern von Datensätzen erläutert. Um die
Wirkungsweise der Erfindung deutlich zu machen, soll das Beispiel be
trachtet werden, bei welchem der Block oder Satz 10 der Fig. 1 von seiner
Quellenposition in seine Bestimmungsposition 11 gebracht wird. Die Fig. 4
stellt den Inhalt des Quellenregisters 32 und des Bestimmungsregisters 30
während der Verschiebung der Information vom Block 10 zum Block 11 in
der Fig. 1 dar sowie während der Umschichtung der Information vom Block
12 zum Block 13 in der Fig. 1.
Erfindungsgemäß werden die Daten aus dem Speicher 10 und aus dem
Quellenregister 32 dem Bestimmungsregister 30 in einer Menge zugeordnet,
die als Zuordnungsgrad bezeichnet wird. Diese Menge ist eine Funktion der
Startadresse des Datensatzes an der Quellenspeicherzelle, der Startadresse
der Bestimmungsspeicherzelle sowie der verwendeten Wortbreite, d. h. der
Anzahl der Bits in einem Wort. Eine Reihe von Mengen werden im einzelnen
wie folgt definiert:
X S = X-Koordinate der Quellenspeicherzelle;
X D = X-Koordinate der Bestimmungsspeicherzelle;
R S = X S modulo w, wobei "w" die Wortbreite ist;
R D = X D modulo w, wobei "w" die Wortbreite ist;
K = R S-R D, ungeachtet der Kapazitätsüberschreitung, und ausgedrückt im Zweierkomplement; und
Richtung = 0 für den Vorwärtstransfer (von links nach rechts), 1 für den Rückwärtstransfer (von rechts nach links)
X D = X-Koordinate der Bestimmungsspeicherzelle;
R S = X S modulo w, wobei "w" die Wortbreite ist;
R D = X D modulo w, wobei "w" die Wortbreite ist;
K = R S-R D, ungeachtet der Kapazitätsüberschreitung, und ausgedrückt im Zweierkomplement; und
Richtung = 0 für den Vorwärtstransfer (von links nach rechts), 1 für den Rückwärtstransfer (von rechts nach links)
Die Menge R S kann als die Bit-Positionsversetzung der Bestimmungsspeicherzellengrenze
von einer Wortgrenze angesehen werden. Die Menge "K" ist diejenige,
welche den Zuordnungsgrad definiert. Um "K" zu bestimmen, prüft
man den log₂(w) der am wenigsten signifikanten Bits der Menge R S-R D,
ausgedrückt im Zweierkomplement. Ist beispielsweise R S-R D=-1, so ist
K=7. Ist in einem anderen Beispiel R S-R D=-5, so ist K=3. Bei
allen diesen Beispielen wird eine Wortbreite von acht Bits angenommen.
Betrachtet man nun das Beispiel der Fig. 1, so erkennt man, daß R S=X S
modulo 8=2 und R D=X D modulo 8=4. Damit ist R S=R D=-2=1110
(2er Komplement). Log₂(8)=3, weshalb K den drei am wenigsten
signifikanten Bits von R S=R D gleich ist, d. h. K=6. Somit ist der Zuordnungsgrad
für diese Umschichtung gleich 6. Es ist hierbei angenommen,
daß die Richtung des Transfes von links nach rechts ist, so daß die Richtungsanzeige
0 ist.
Die Maskenschutzinformation wird durch die Prüfung der Satzgrenze bei der
Bestimmungsspeicherzelle und durch die Bestimmung der Anzahl der Bit
positionen in dem Wort, in dem die Satzgrenze gefunden wird, die durch
den umgeschichteten Bit-Satz aufgenommen wird, definiert. Werden bei
spielsweise die letzten vier Bitpositionen aufgenommen, so arbeitet die
Maskenschutzinformation derart, daß die letzten vier Positionen im Wort
geschützt sind. Wie weiter unten noch im einzelnen beschrieben wird, werden
die ursprünglichen Daten während der Bildung der Bestimmungswörter an der
Satzgrenze aus der Speicherzelle gelesen, in welche das Bestimmungswort
eingeschrieben werden soll. Diese Daten werden sodann in das Bestimmungs
wortregister 30 eingeschrieben, jedoch mit solchen Bitpositionen, welche
Daten aus der Quellenspeicherzelle halten, die durch die Maskenschutz
information geschützt sind.
Wie man aus der Fig. 3 erkennt, wird, nachdem der Zuordnungsgrad und die
Richtung im Schritt 48 spezifiziert wurde, die Maskenschutzverriegelung 44
im Schritt 50 aufgehoben. Sodann wird beim Schritt 52 bestimmt, ob das
gerade aus dem Speicher 15 ausgelesene Wort eine Grenze des verschobenen
Satzes 10 enthält. Ist dies der Fall, so wird das nächste Wort aus der
Quellenspeicherzelle ausgelesen, und die aus seinen Bits ausgewählten Bits
werden dem Bestimmungsregister 30 entsprechend der Zuordnungsgradmenge
zugeordnet. Schritt 54.
Bevor es weitergeht, wird im Schritt 55 bestimmt, ob der Arbeitsgang beim
Start des bewegten Satzes ist. Ist dies nicht der Fall, so bedeutet dies,
daß der Arbeitsgang am Ende der Satzgrenze ist und der Schritt 60 sofort
ausgeführt werden kann.
Wenn der Arbeitsgang beim Start des zu bewegenden Satzes ist, bestimmt
der Schritt 56 die Richtung, in welcher die Bewegung stattfindet. Erfolgt
die Bewegung von links nach rechts, wird der Schritt 57 ausgeführt, erfolgt
sie dagegen von rechts nach links, so wird Schritt 58 ausgeführt. Bei den
Schritten 57 und 58 wird bestimmt, ob ein zweiter Lesevorgang erforderlich
ist, um genügend Bits für die Bestimmungsspeicherzelle zu erhalten.
Der Schritt 57 bestimmt also, ob es in dem Wort, das aus der Quellen
speicherzelle kommt, mehr Bits gibt, als durch die in der Bestimmungs
speicherzelle verfügbaren Bitpositionen erfaßt werden können. Wenn R S
größer als R D ist, bedeutet dies, daß die an der Bestimmungsspeicherzelle
verfügbaren Bitpositionen Bits von dem gerade aus der Quellenspeicherzelle
ausgelesenen Wort erfordern sowie Bits von dem nächsten aus der Quellen
speicherzelle zu lesenden Textwort.
Ist umgekehrt R S kleiner oder gleich R D , so bedeutet dies, daß genügend
oder mehr Bits aus der Quellenspeicherzelle zur Verfügung stehen, als durch
die in der Bestimmungsspeicherzelle verfügbaren Bitpositionen erfaßt werden
können. Wenn deshalb beim Schritt 57 bestimmt wird, daß R S größer als
R D ist, wird der Schritt 59 ausgeführt, bei dem ein zweites Auslesen er
folgt, um die zusätzlichen Bits aus der Quellenspeicherzelle zu erhalten,
die erforderlich sind, um das Wort für die Bestimmungsspeicherzelle zu
vervollständigen. Ist R S beim Schritt 57 größer als R D , so ist kein zusätz
licher Lesevorgang erforderlich, bevor zum Schritt 60 weitergegangen wird.
Auf ähnliche Weise bestimmt der Schritt 58 für die Bewegung von rechts
nach links, ob ein zweiter Lesevorgang erforderlich ist, um die Bits bereit
zustellen, die zur Vervollständigung des Worts für die Bestimmungsspeicher
zelle erforderlich sind. Weil die Bewegung von rechts nach links erfolgt,
zeigt die Bedingung, daß R D größer als R S ist, an, daß ein zweiter Lese
vorgang, Schritt 59, erforderlich ist.
Die obigen Schritte sind leichter verständlich, wenn man die Fig. 4 und 5B
betrachtet. Diese Figuren enthalten drei Spalten, von denen die erste Spalte
die Zeit, die zweite Spalte den Inhalt des Quellenregisters 32 und die dritte
Spalte den Inhalt des Bestimmungsregisters 30 angibt. Gemäß Fig. 4 wird
zur Zeit T 0, welche dem Schritt 54 in Fig. 3 entspricht, das erste Wort
aus der Quellenspeicherzelle vom Speicher 15 gelesen. Wie bereits früher
festgelegt, ist die Zuordnungsgrad-Menge 6, so daß die Daten auf dem Bus
V 6 mittels des Multiplexers 34 zu dem Bestimmungsregister 30 übertragen
werden. Dies bedeutet, daß die Daten in den beiden letzten Bitpositionen
vom Multiplexer 38 die Bitpositionen 0 und 1 aus dem Multiplexer 34 ein
nehmen, während die Daten in den ersten sechs Bitpositionen vom Multi
plexer 36 die Bitpositionen 2 bis 7 des Multiplexers 34 einnehmen. Man
beachte, daß die Daten aus dem Multiplexer 38 aus dem Quellenregister 32
kommen, weshalb die beiden letzten Bitpositionen aus dem Multiplexer 38
vom Quellenregister 32 herrühren.
Da dies das erste Wort ist, das vom Quellenspeicherplatz bereitgestellt wird,
kann das Quellenregister 32 durchgehend Nullen in ihm haben; anders aus
gedrückt sind dies "don′t care"-Bits bzw. unbeachtliche Bits. Somit sind
die letzten beiden Bitpositionen des Quellenregisters Nullen, welche be
wirken, daß die beiden ersten Bitpositionen, die vom Multiplexer 34 kommen,
ebenfalls Nullen sind. Es ist zu beachten, daß die Daten aus dem Multi
plexer 36 vom ersten Wort genommen werden, das aus der Quellenspeicher
zelle im Speicher 15 ausgelesen wird. Die ersten sechs Bitpositionen vom
Multiplexer 36 werden in die Bitpositionen 2 bis 7 vom Multiplexer 34 ge
bracht, und sie entsprechen der Folge B, B, I a , I b , I c und I d . Das voll
ständige Wort, das aus dem Speicher 15 ausgelesen wird, wird außerdem in
dem Quellenregister 32 gespeichert, um es für die Bildung des nächsten
Bestimmungswortes zu verwenden.
Das obige Beispiel betrifft den Fall, daß R S kleiner als R D ist. Die Folge,
die bei den Zeitschlitzen T 6 und T 7 in Fig. 4 dargestellt ist, zeigt den Fall,
daß R S größer als R D ist. Bei diesem Beispiel wird ein Satz von bitförmigen
Daten 12, vgl. Fig. 1, in einen Bestimmungsspeicherplatz gebracht, der
durch den Satz 13 angezeigt ist. Die Ouellenspeicherzelle bzw. der Quellen
speicherplatz weist ein R S auf, das gleich 7 ist, während das R D für die
Bestimmungsspeicherzelle gleich 6 ist. Der Zuordnungsgrad ist bei diesem
Beispiel gleich 1. Somit werden die Daten, die aus dem Kreuzverbindungs
block 40 auf den Bus V 1 gelangen, von dem Multiplexer 34 auf das Be
stimmungsregister 30 gegeben.
Es wird angenommen, daß das Quellenregister 32 beim Zeitschlitz T 6 nur
Nullen enthält. Das erste Wort, das aus der Quellenspeicherzelle 12 aus
gelesen wird, enthält alle Hintergrunddatenbits, außer für die Bitposition 7,
welche das Bit J a enthält. Die Zuordnung der Inhalte des Quellenregisters 32
und der Daten, die aus dem Speicher 15 ausgelesen werden, resultiert in
einem Wort, das im Bestimmungsregister 30 gespeichert ist, das alle Nullen
enthält, außer für ein Hintergrund-Bit in der Bitposition 7. Im Zeitschlitz
T 7 wird das nächste Wort aus dem Quellenspeicherplatz im Quellenregister
32 gespeichert und dem Bestimmungsregister 30 zugeordnet. Dabei werden
die Daten in der Bitposition 0 des nächsten Wortes aus der Quellenspeicher
zelle in die Bitposition 7 des Bestimmungsregisters 30 gebracht. Außerdem
werden die Daten, die im Quellenregister 32 an den Bitpositionen 1 bis 7
gespeichert waren, in Bitpositionen 0 bis 6 des Bestimmungsregisters 30 an
geordnet. Auf diese Weise sind in den Zeitschlitzen T 6 und T 7 die Schritte
54, 55, 56, 57 und 59 des Flußdiagramms der Fig. 3 ausgeführt worden.
Die Fig. 5B betrifft die Bewegung eines Satzes oder Blocks von der Quellen
speicherzelle 10 A zur Bestimmungsspeicherzelle 10 B, Fig. 5A, von rechts
nach links. Hierfür sind die Schritte 54, 55, 56, 58 und 59 der Fig. 3 re
levant. Aus der Fig. 5A erkennt man, daß R S gleich drei (3) ist und daß
R D gleich sechs (6) ist. Somit werden Daten des nächsten Wortes der
Quellenspeicherzelle benötigt, um das erste Wort der Bestimmungsspeicher
zelle zu komplettieren.
In der Fig. 5B ist beim Zeitschlitz T 0 das erste Wort an der rechten Grenze
des Blocks bei der Quellenspeicherzelle in das Quellenregister 32 einge
schrieben. Die Bit-Daten in diesem Wort werden ebenfalls dem Bestimmungs
register 30 entsprechend dem Bus V 5 der Kreuzverbindungstabelle 40 in
Fig. 2 zugeordnet. Die Daten in den Bitpositionen 5 bis 7 des ersten Worts
werden in die Bitpositionen 0 bis 2 des Bestimmungsregisters 30 geschrieben.
Die Bitpositionen 3 bis 7 des Bestimmungsregisters 30 sind an diesem Punkt
nicht zu beachten.
Da R D größer als R S ist, wird das nächste Wort aus der Quellenspeicher
zelle im Zeitschlitz T 1 gelesen und zugeordnet. Dies entspricht dem Schritt
59 in der Fig. 3. Die Daten in den Bitpositionen 0 bis 2 des Bestimmungs
registers 30 und die Daten in den Bitpositionen 0 bis 4 des Quellenregisters
32 werden in die Bitpositionen 3 bis 7 des Bestimmungsregisters 30 ein
geschrieben.
Bei den bisher vorgesehenen Beispielen wird das erste Wort des Satzes be
handelt. Dies bedeutet, daß Vorsorge getroffen werden sollte, um die Un
versehrtheit der benachbarten Hintergrunddaten an den Satzgrenzen in der
Bestimmungsspeicherzelle zu schützen. Wie man aus der Fig. 1 erkennt,
enthält die Satzgrenze am Bestimmungsplatz 11 für den Datensatz 10 vier
Bits an Hintergrundinformation (S 0 bis S 3), und zwar in den Bitpositionen 0
bis 3 des ersten Wortes. In entsprechender Weise enthält die Bestimmungs
speicherzelle 13 für den Datenblock 12 sechs Bits von Hintergrunddaten
(U 0 bis U 5). In der Fig. 5A weist die Block- oder Satzgrenze bei der Be
stimmungsspeicherzelle 11 A zwei Bits der Hintergrunddaten (R 30 und R 31)
in den Bitpositionen 6 und 7 auf.
Die Schritte 60 und 62 im Flußdiagramm der Fig. 3 bewirken, daß ein sol
cher Schutz vorgesehen wird. Beim Schritt 60 wird die Maskenschutzinforma
tion von der Zentraleinheit 18 in die Maskenschutzsperreinrichtung 44 ge
schrieben. Im Hinblick auf den Zeitschlitz T 1 der Fig. 4 ist festzuhalten,
daß die Bestimmungsspeicherzelle bzw. der Bestimmungsplatz vier Bitposi
tionen aufweist, die durch die Hintergrundinformation eingenommen werden.
Dies bedeutet, daß die vier verbleibenden Bitpositionen die umgeschichteten
Daten erfassen bzw. aufnehmen. Die Maskenschutzinformation von der
Zentraleinheit 18 schützt diese verbleibenden Bit-Speicherzellen und ermög
licht das Einschreiben in die anderen Bit-Speicherzellen.
Auf diese Weise werden bei Schritt 62, Fig. 3, wenn die Bestimmungsspeicher
zellen im Speicher 15 gelesen und die Daten in das Bestimmungsregister 30
eingeschrieben werden, nur solche Bitpositionen tatsächlich in das Be
stimmungsregister 30 eingeschrieben, die der Hintergrundinformation ent
sprechen. Man erkennt deshalb beim Zeitschlitz T 1 der Fig. 4, daß der
Inhalt des Bestimmungsregisters 30 die ersten vier Bits der Hintergrund
information sowie die ersten vier Bits aus dem Bit-Satz 10 enthält.
Im Zusammenhang mit dem Zeitschlitz T 8 der Fig. 4 erkennt man, daß die
Maskenschutzinformation aus der Zentraleinheit 18 die Bitpositionen 6 und 7
davor schützt, eingeschrieben zu werden, und daß sie den Bitpositionen 0
bis 5 gestattet, die Hintergrund-Bits aus der Bestimmungsspeicherzelle zu
empfangen.
Bei dem Zeitschlitz T 2 der Fig. 5B erkennt man, daß die Maskenschutz
information aus der Zentraleinheit 18 die Bitpositionen 0 bis 4 davor schützt,
eingeschrieben zu werden, und daß sie es den Bitpositionen 5 bis 7 ermög
licht, die Hintergrund-Bits aus der Bestimmungsspeicherzelle zu empfangen.
Sobald das Bestimmungsregister alle Eingangssignale empfangen hat, wird
sein Inhalt in die Bestimmungsspeicherzelle eingeschrieben, vgl. Schritt 64
in Fig. 3. Der nächste Schritt 66 wird hierauf ausgeführt, bei dem eine
Anfrage stattfindet, ob alle Daten in dem Satz übertragen wurden. Ist dies der
Fall, so ist die Bewegungsoperation beendet, vgl. Schritt 68. Trifft dies
nicht zu, so kehrt die obige Prozedur zum Schritt 50 zurück.
Wenn eine Satzgrenze abgehandelt wurde, werden die verbleibenden Wörter
im Block über die Schaltung der Fig. 2 mittels der Schritte 70 und 72 ge
geben. Während dieser Phase braucht die Zentraleinheit 18 nur Lese- und
Schreiboperationen durchzuführen. Wenn die andere Grenze des Blocks er
reicht ist, bewirkt der Schritt 52, daß der Schritt 54 erneut ausgeführt
wird. Unter diesen Voraussetzungen bewirkt der Schritt 55, daß die Schritte
56, 57, 58 und 59 umgangen werden. Der Schreibmaskenschutz wird beim
Schritt 60 für diese andere Grenze neu definiert. Somit schützt die Masken
schutzinformation aus der Zentraleinheit 18 während des Zeitschlitzes T 5
der Fig. 4 die Bitposition 0 davor, daß sie durch Daten überschrieben wird,
die von der Bestimmungsspeicherzelle ausgelesen werden, während die Bit
positionen 1 bis 7 nicht auf diese Weise geschützt sind. Bezüglich des Zeit
schlitzes T 11 werden die Bitpositionen 0 und 1 geschützt, während die Posi
tionen 2 bis 7 mit den benachbarten Hintergrundinformationen überschrieben
werden dürfen. In entsprechender Weise wird in der Fig. 5B beim Zeit
schlitz T 5 die Bitposition 7 geschützt, während die Positionen 0 bis 6 mit
den benachbarten Hintergrundinformationen überschrieben werden dürfen.
Auf die oben beschriebene Weise können Datensätze schnell und effektiv
von einem Punkt im Speicher zu einem beliebigen anderen Punkt im Speicher
übertragen werden. Außerdem ermöglicht es die oben beschriebene Anord
nung, daß Daten von links nach rechts oder von rechts nach links auf im
wesentlichen gleiche Weise mit grundsätzlich denselben Schritten bewegt
werden können.
Es versteht sich, daß die Zentraleinheit mit den Anfangs- und Endadressen
von Quelle und Bestimmung versehen wird sowie mit einer Angabe über die
Breite des verwendeten Wortes. Außerdem erhält die Zentraleinheit eine
Angabe über die Richtung, in welcher der Transfer durchgeführt werden
soll.
Die Schaltungsanordnung gemäß der Erfindung ist so ausgelegt, daß sie be
sonders gut mit negativen Zahlen arbeitet, die in einer 2er Komplementform
ausgedrückt sind. Somit ist keine zusätzliche Umkehrung des Zuordnungs
grads der Daten von der Zentraleinheit erforderlich. Geht man von einem
Wort mit acht Bits aus, so kann man die Zuordnungsgradinformation dadurch
erhalten, daß man die drei am wenigsten signifikanten Bits des Ausgangs
der Zentraleinheit 18 für die Menge R S -R D verbindet und über UND-
Gatter 74 auf den Auswahleingang des Multiplexers 34 gibt. Ein Inverter 76
empfängt an seinem Eingang das Ausgangssignal eines ODER-Gatters 46.
Das Ausgangssignal des Inverters 76 wird als Eingangssignal auf alle UND-
Gatter 74 gegeben. Somit wird dann, wenn die Maskenschutzsperrung 44
nicht Null ist, das UND-Gatter 74 deaktiviert und die Daten auf dem Bus
werden direkt auf das Bestimmungsregister 30 gegeben. Dies ist dann der
Fall, wenn die Hintergrunddaten in das Bestimmungsregister eingeschrieben
und der Grenzpunkt des Blocks verarbeitet werden.
Obwohl die Erfindung lediglich unter Bezugnahme auf eine einzige Ebene
des Speichers 15 beschrieben wurde, versteht es sich, daß die Erfindung
leicht auf mehrere Speicherebenen ausgedehnt werden kann. In einem sol
chen Fall werden die Schaltungsanordnungen, die dem Bestimmungsregister
30, dem Quellenregister 32, den Multiplexern 34, 36, 38 und 42 und dem
Kreuzverbindungsblock 40 entsprechen, von jeder Ebene des Speichers aus
versorgt. Die Maskenschutzdaten, die Zuordnungsdaten, die Adresseninforma
tion und die Richtungsanzeige sind dieselben für alle diese Ebenen.
Aus den vorangegangenen Ausführungen ergibt sich, daß aufgrund der Er
findung das Eingreifen der Zentraleinheit auf ein Minimum reduziert ist und
daß überdies ein minimaler Hardware-Aufwand für die Realisierung der
Erfindung erforderlich ist. Beispielsweise können die Multiplexer 36, 38 und
42 jeweils als acht 2:1-Multiplexer ausgeführt sein. Der Multiplexer 34
kann mittels acht 8:1-Multiplexern realisiert werden.
Es ist außerdem festzuhalten, daß die Erfindung sich schnell ändernde Satz
größen erfassen kann, da nur die Zuordnungsgradbestimmung eine beachtliche
Zentraleinheitszeit erfordert.
Weiterhin gewährleistet die Erfindung den Schutz von Hintergrund-Bits in der
Nachbarschaft der Satz- oder Blockgrenze in einfacher und effizienter Weise.
Alles dies trägt zur Fähigkeit einer sehr schnellen und effizienten Block
bewegung bei, die bei der Fenster-Darstellung und allgemein bei graphi
scher Umgebung nützlich ist. Da die optischen Wiedergabesysteme immer
größere Bildschirme und zahlreichere Farben aufweisen, wird die Bean
spruchung der Zentraleinheit für Satz- oder Blockbewegungen von Daten
exponentiell zunehmen. Mit Hilfe der Erfindung werden die diesbezüglichen
Anforderungen an die Zentraleinheit erheblich reduziert. Bei komplexen
Operationssystemen wird wesentlich mehr Gebrauch gemacht vom Auslagern
von Codes in langsamen Sekundärspeichern. Man kann davon ausgehen, daß
die Erfindung eine Reduzierung der Codegröße um den Faktor zehn er
möglicht. Derartige Graphikprogramme sind kleiner, laufen schneller und
können sogar jederzeit im Systemspeicher - eher als im Sekundärspeicher -
vorhanden sein.
Die Begriffe und Ausdrücke, die hier verwendet wurden, dienen als Mittel
zur Beschreibung und nicht zur Beschränkung. Es ist nicht beabsichtigt,
durch die Verwendung solcher Begriffe und Ausdrücke Äquivalente der dar
gestellten und beschriebenen Eigenschaften oder Teile davon auszuschließen.
Vielmehr sind zahlreiche Abwandlungen innerhalb der beanspruchten Erfin
dung möglich.
Claims (16)
1. Einrichtung, gekennzeichnet durch
- a) eine Zentraleinheit (18), welche einen Satz bitförmiger Daten aus einem Quellenspeicherplatz eines Speichers (15) in einen Bestimmungsspeicher platz dieses Speichers (15) verlagert;
- b) bitförmige Daten, die als Wörter von vorgegebener Größe in dem Speicher (15) organisiert sind und als solche in diesen eingeschrieben und von diesem ausgelesen werden;
- c) einen Quellenspeicherplatz und einen Bestimmungsspeicherplatz, die Grenzen an verschiedenen Bitpositionen innerhalb verschiedener Wörter im Speicher (15) haben können;
- d) eine Einrichtung für Bestimmungswörter, welche Wörter der bitförmigen Daten empfängt und speichert, um diese bitförmigen Daten in ein Be stimmungswort zu formen, das in den Bestimmungsspeicherplatz ein geschrieben werden soll;
- e) eine Halteeinrichtung, welche bitförmige Daten empfängt und speichert, damit sie in der Einrichtung für Bestimmungswörter verwendet werden können;
- f) eine Einrichtung zum Teilen von Wörtern, die mit dem Speicher (15), mit der Einrichtung für Bestimmungswörter und mit der Halteeinrichtung kommuniziert, um bitförmige Daten in den vom Speicher (15) erhaltenen Wörtern der Einrichtung für Bestimmungswörter und der Halteeinrichtung zuzuordnen und um die bitförmigen Daten, die von der Halteeinrichtung empfangen werden, der Einrichtung für die Bestimmungswörter zuzu ordnen, so daß das Bestimmungswort derart gebildet wird, daß die bit förmigen Daten aus dem Quellenspeicherplatz in die richtige Bitposition innerhalb des Bestimmungsworts gebracht werden, die zum Einschreiben des Bestimmungsworts in den Bestimmungsspeicherplatz erforderlich ist.
2. Einrichtung nach Anspruch 1, dadurch gekennzeichnet, daß die Einrich
tung zum Teilen folgendes enthält:
- a) eine Einrichtung, welche auf den Quellenspeicherplatz und auf den Be stimmungsspeicherplatz anspricht, um einen Zuordnungsgrad zu bestim men; und
- b) eine Einrichtung, welche die bitförmigen Daten aus dem Speicher (15) und aus der Halteeinrichtung erhält und die auf den Zuordnungsgrad anspricht, um die ausgewählten bitförmigen Daten aus dem Speicher (15) und aus der Halteeinrichtung zur Einrichtung für Bestimmungs wörter entsprechend dem Zuordnungsgrad zu bewegen.
3. Einrichtung nach Anspruch 2, dadurch gekennzeichnet, daß die Einrich
tung für die Bestimmung des Zuordnungsgrads enthält:
- a) eine Versetzungs-Einrichtung, welche eine Bitpositionsversetzung der Quellenspeicherplatzgrenze im Verhältnis zur Wortgrenze bestimmt und welche eine Bitpositionsversetzung der Bestimmungsspeicherplatzgrenze im Verhältnis zu einer Wortgrenze bestimmt;
- b) eine Grad-Bestimmungseinrichtung, welche auf die Bitpositionsversetzun gen der Quellenspeicherplatz - und der Bestimmungsspeicherplatzgrenzen anspricht, um den Zuordnungsgrad entsprechend einer Beziehung zu be stimmen, in welcher der Zuordnungsgrad gleich derjenigen Größe ist, die durch eine vorgegebene Anzahl von weniger signifikanten Bits des Unterschieds bezüglich der Bitpositionsverschiebungen repräsentiert wird, und zwar ausgedrückt in einer Zweierkomplement-Form, in welcher die vorgegebene Anzahl gleich log2(w) ist, wobei w die Breite eines Worts in Bits ist.
4. Einrichtung nach Anspruch 3, dadurch gekennzeichnet, daß
- a) eine Schutzmaske zugeführt wird, wenn die Bestimmungsspeicherplatz grenze innerhalb eines Wortes erscheint, und daß
- b) eine Bewegungseinrichtung vorgesehen ist, welche eine Kreuzverbin dungseinrichtung enthält, welche auf die bitförmigen Daten der Halte einrichtung und des Speichers anspricht, um mehrere vorgegebene Kom binationen der bitförmigen Daten aus der Halteeinrichtung und aus dem Speicher bereitzustellen, und daß
- c) eine Auswahleinrichtung vorgesehen ist, welche auf mehrere vorgegebene Kombinationen der bitförmigen Daten und auf den Zuordnungsgrad an spricht, um aus den mehreren bestimmten Kombinationen ausgewählte bitförmige Daten für den Bestimmungsspeicherplatz entsprechend dem Zuordnungsgrad bereitzustellen, und daß
- d) eine Halte-Auswahleinrichtung vorgesehen ist, welche auf die bitförmigen Daten aus dem Speicher und aus der Halteeinrichtung anspricht, und die auf die Schutzmaske anspricht, um die bitförmigen Daten aus dem Speicher zu bewegen oder die bitförmigen Daten aus der Halteeinrichtung zu der Halteeinrichtung als Funktion der Schutzmaske zurückzubewegen.
5. Einrichtung nach Anspruch 4, dadurch gekennzeichnet, daß die Kreuz
verbindungseinrichtung (40) eine verdrahtete Schaltungsanordnung aufweist.
6. Einrichtung nach Anspruch 4, dadurch gekennzeichnet, daß die Auswahl
einrichtung eine Multiplexereinrichtung enthält, welche auf den Zuordnungs
grad anspricht und mit der Kreuzverbindungseinrichtung (40) verbunden ist,
um mehrere der vorgegebenen Kombinationen zu empfangen, wobei die
Multiplexereinrichtung eine spezielle aus einer Mehrzahl von vorgegebenen
Kombinationen abgibt, die durch den Zuordnungsgrad ausgewählt wurde.
7. Einrichtung nach Anspruch 3, dadurch gekennzeichnet, daß die Einrichtung
für die Bestimmung des Zuordnungsgrads durch die Zentraleinheit unter
Software-Steuerung bereitgestellt wird.
8. Einrichtung nach Anspruch 4, gekennzeichnet durch
- a) die Bereitstellung einer Richtungsanzeige durch die Zentraleinheit, wobei diese Richtungsanzeige die Richtung über den Speicher anzeigt, in dem die Verschiebung des Satzes der bitförmigen Daten auftreten soll;
- b) eine erste Eingabeeinrichtung, welche ein erstes Wort von bitförmigen Daten empfängt, die sich in vorgegebenen Bitpositionen befinden;
- c) eine zweite Eingabeeinrichtung, welche ein zweites Wort von bitförmigen Daten empfängt, die sich in vorgegebenen Bitpositionen befinden;
- d) eine Richtungsmultiplexereinrichtung, welche auf die Richtungsanzeige und auf die bitförmigen Daten aus dem Speicher und aus der Halte einrichtung anspricht, um die bitförmigen Daten aus der Halteeinrich tung und aus dem Speicher auf die erste Eingabeeinrichtung oder die zweite Eingabeeinrichtung in Abhängigkeit von der Richtungsanzeige zu geben und
- e) eine Einrichtung, welche mit der ersten Eingabeeinrichtung und mit der zweiten Eingabeeinrichtung gekoppelt ist, um die bitförmigen Daten aus der ersten Eingabeeinrichtung mit den bitförmigen Daten aus der zwei ten Eingabeeinrichtung zu kombinieren, damit eine Vielzahl von vor gegebenen Kombinationen entsteht und die Verschiebung eines Satzes bitförmiger Daten von links nach rechts oder von rechts nach links als Funktion der Richtungsanzeige fortschreiten kann.
9. Einrichtung nach Anspruch 1, gekennzeichnet durch
- a) eine Einrichtung zur Identifizierung, wenn das Wort bitförmiger Daten, das aus dem Speicher ausgelesen wird, eine Grenze des Satzes bit förmiger Daten enthält, die verschoben werden;
- b) eine Einrichtung zum Maskieren der Bitpositionen in der Einrichtung für die Wortbestimmung, welche die bitförmigen Daten aus dem Quellen speicherplatz aufnimmt, so daß die Bitpositionen nicht eingeschrieben werden können, und
- c) eine Einrichtung zum Schreiben des Inhalts des Bestimmungsspeicher platzes in die Einrichtung für die Bestimmungswörter, so daß das Be stimmungswort, das durch die Einrichtung für die Bestimmungswörter gebildet wird, die bitförmigen Daten aus dem Quellenspeicherplatz und die bitförmigen Hintergrunddaten aus dem Bestimmungsspeicherplatz in der Nähe der Bestimmungsspeicherplatzgrenze enthält.
10. Einrichtung nach Anspruch 9, dadurch gekennzeichnet, daß die Be
stimmungswort-Einrichtung auf ein Schreibsignal für jede der darin ent
haltenen Bitpositionen anspricht, und daß die Zentraleinheit Schreibbefehls
signale für jede der Bitpositionen der Einrichtung für die Bestimmungs
wörter bereitstellt, und daß weiterhin die Einrichtung zum Maskieren eine
Maskenschutzverriegelungseinrichtung enthält, die mit der Zentraleinheit
und mit der Einrichtung für die Bestimmungswörter gekoppelt ist, um das
Schreibbefehlssignal aus der Zentraleinheit für jede der Bitpositionen in
der Einrichtung für die Bestimmungswörter zu speichern und um die Schreib
befehlssignale auf die Einrichtung für die Bestimmungswörter zu geben.
11. Einrichtung nach Anspruch 10, dadurch gekennzeichnet, daß die Aus
wahleinrichtung eine Einrichtung für die direkte Bewegung enthält, welche
auf die Schreibbefehlssignale aus der Zentraleinheit anspricht, um die
bitförmigen Daten, die aus dem Speicher von dem Quellenspeicherplatz
ausgelesen werden, direkt auf die Bestimmungsworteinrichtung zu geben,
wenn die Schreibbefehlssignale aus der Zentraleinheit anzeigen, daß eine
Bitposition der Bestimmungsworteinrichtung vor einem Schreibvorgang
geschützt ist.
12. Einrichtung nach Anspruch 11, dadurch gekennzeichnet, daß die Ein
richtung für die direkte Bewegung enthält:
- a) eine logische Einrichtung, welche auf den Inhalt der Maskenschutz sperreinrichtung anspricht, um eine Anzeige immer dann vorzusehen, wenn der Inhalt der Maskenschutzverriegelungseinrichtung nicht Null ist;
- b) Gatterschaltungen, welche auf den Zuordnungsgrad aus der Zentral einheit ansprechen sowie auf die logische Einrichtung, um den Zuord nungsgrad für die Auswahleinrichtung bereitzustellen und um den Zu ordnungsgrad außer Kraft zu setzen, wenn der Inhalt der Maskenschutz sperreinrichtung nicht Null ist.
13. Verfahren zum Verschieben eines Satzes aus bitförmigen Daten von
einem Quellenspeicherplatz in einem Speicher zu einem Bestimmungs
speicherplatz in diesem Speicher, wobei die bitförmigen Daten in Form von
Wörtern vorgegebener Breite in dem Speicher organisiert, eingeschrieben
und herausgeholt werden und wobei die Quellen- und Bestimmungsspeicher
plätze Grenzen an verschiedenen Bitpositionen innerhalb verschiedener
Wörter im Speicher haben können, wobei dieses Verfahren folgende Schritte
enthält:
- a) Bestimmung einer Bitpositions-Versetzung der Quellenspeicherplatzgrenze im Verhältnis zu einer Wortgrenze sowie der Bitpositions-Versetzung der Bestimmungsspeicherplatzgrenze im Verhältnis zu einer Wortgrenze;
- b) Bestimmung einer Zuordnungsgradmenge entsprechend einem Verhältnis, bei welchem der Zuordnungsgrad gleich derjenigen Größe ist, die durch eine vorgegebene Zahl von weniger signifikanten Bits des Unterschieds in den Bitpositions-Versetzungen der Quellenspeicherplatzgrenzen und der Bestimmungsspeicherplatzgrenzen dargestellt wird, und zwar ausge drückt in einer Zweierkomplement-Form, wobei die vorgegebene Zahl gleich log2(w) ist, worin w die Breite eines Wortes in Bits ist;
- c) Halten von bitförmigen Daten eines zuvor aus einem Quellenspeicher platz eines Quellenregisters abgerufenen Worts;
- d) Abrufen eines nächsten Worts von bitförmigen Daten aus dem Quellen speicherplatz;
- e) Zuordnen der bitförmigen Daten, die in dem Quellenregister gehalten werden, und der bitförmigen Daten vom nächsten Wort zu einem Be stimmungsregister entsprechend der Zuordnungsgradmenge;
- f) Speichern des nächsten Wortes der bitförmigen Daten im Quellenregister und
- g) Wiederholen der Schritte "c" bis "f", bis alle bitförmigen Daten aus dem Quellenspeicherplatz in den Bestimmungsspeicherplatz verschoben sind.
14. Verfahren nach Anspruch 13, dadurch gekennzeichnet, daß die Grenze
des Bestimmungsspeicherplatzes in ein bestimmtes Wort zu legen ist, so
daß sie von der Wortgrenze entfernt ist, wobei folgende Schritte durchge
führt werden:
- h) Bestimmen, welche Bitpositionen innerhalb des besonderen Worts den Bitpositionen in dem besonderen Wort entsprechen, welche die bit förmigen Daten aus dem Quellenspeicherplatz erfassen;
- i) Lesen des besonderen Wortes aus dem Bestimmungsspeicherplatz;
- j) Schreiben des besonderen Wortes in das Bestimmungsregister auf alle Bitpositionen, mit Ausnahme derjenigen, welche die bitförmigen Daten aus dem Quellenspeicherplatz erfassen sollen; und
- k) Schreiben des resultierenden Inhalts des Bestimmungsregisters in den Bestimmungsspeicherplatz.
15. Verfahren nach Anspruch 13, dadurch gekennzeichnet, daß der Schritt
"b" außerdem den Schritt enthält, die Zuordnungsgradmenge im Zweier
komplementformat bereitzustellen.
16. Einrichtung zum Bewegen von Datenbits aus einem Quellenspeicherplatz
in einem Speicher zu einem Bestimmungsspeicherplatz, dadurch gekenn
zeichnet, daß der Speicher in der Form von Wörtern einer bestimmten
Anzahl von Bits von Daten bei bezeichneten Wortadressen organisiert ist,
so daß jedes Lesen und Schreiben in dem Speicher in Form von Wörtern
erfolgt, und wobei ferner der Quellenspeicherplatz eine Grenze an einer
Bitposition haben kann, die zur Wortgrenze versetzt ist, und wobei der
Bestimmungsspeicherplatz eine Grenze an einer Bitposition haben kann, die
von der Wortgrenze um einen Betrag entfernt sein kann, der sich von dem
des Quellenspeicherplatzes unterscheidet, und daß diese Einrichtung enthält:
- a) eine Einrichtung für die Bestimmung der Zuordnungsgradmenge ent sprechend einem Verhältnis, bei dem der Zuordnungsgrad gleich einem Betrag ist, der durch eine vorgegebene Zahl von am wenigsten signifi kanten Bits des Unterschieds im Bitpositionenabstand der Quellen speicherplatz- und der Bestimmungsspeicherplatzgrenzen dargestellt wird, wobei die vorbestimmte Zahl gleich log2(w) ist, worin w die Breite eines Wortes in Bits ist;
- b) ein Bestimmungsregister zum Speichern von Datenbits;
- c) ein Quellenregister zum Speichern von Datenbits;
- d) eine Kreuzverbindungseinrichtung, welche auf die Zuordnungsgradmenge anspricht und mit dem Speicher, dem Bestimmungsregister und dem Quellenregister kommuniziert, um eine Kombination von Datenbits aus dem Speicher und aus dem Quellenregister in das Bestimmungsregister zu bringen, um ein Bestimmungswort zu bilden, wobei die besonderen Datenbits, die miteinander kombiniert werden, eine Funktion der Zu ordnungsgradmenge sind; und
- e) eine Einrichtung zum Schreiben des Bestimmungsworts in den Bestim mungsspeicherplatz des Speichers.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15790488A | 1988-02-19 | 1988-02-19 |
Publications (1)
Publication Number | Publication Date |
---|---|
DE3837847A1 true DE3837847A1 (de) | 1989-08-31 |
Family
ID=22565810
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE3837847A Withdrawn DE3837847A1 (de) | 1988-02-19 | 1988-11-08 | Einrichtung und verfahren zum verschieben eines bitfoermigen datenblocks |
Country Status (3)
Country | Link |
---|---|
KR (1) | KR890013562A (de) |
DE (1) | DE3837847A1 (de) |
GB (1) | GB2216301A (de) |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
BE758811A (fr) * | 1969-11-28 | 1971-04-16 | Burroughs Corp | Systeme de traitement d'information ayant un emmagasinage sans structure pour traitements emboites |
US4103329A (en) * | 1976-12-28 | 1978-07-25 | International Business Machines Corporation | Data processing system with improved bit field handling |
US4520439A (en) * | 1981-01-05 | 1985-05-28 | Sperry Corporation | Variable field partial write data merge |
-
1988
- 1988-11-08 DE DE3837847A patent/DE3837847A1/de not_active Withdrawn
-
1989
- 1989-02-13 GB GB8903168A patent/GB2216301A/en not_active Withdrawn
- 1989-02-16 KR KR1019890001760A patent/KR890013562A/ko not_active Application Discontinuation
Also Published As
Publication number | Publication date |
---|---|
KR890013562A (ko) | 1989-09-23 |
GB2216301A (en) | 1989-10-04 |
GB8903168D0 (en) | 1989-03-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE2521436C3 (de) | Informationswiedergewinnungsanordnung | |
DE2515696C2 (de) | Datenverarbeitungssystem | |
DE4019135C2 (de) | Serieller Speicher auf RAM-Basis mit parallelem Voraus-Lesen und Verfahren zum Speichern von Datenelementen in eine serielle Speichervorrichtung | |
DE2725718A1 (de) | Verarbeitungssystem mit mehreren virtuellen adressenraeumen | |
DE2637054C3 (de) | Steuervorrichtung für einen Pufferspeicher | |
DE2310631C3 (de) | Speicherhierarchie für ein Datenverarbeitungssystem | |
DE2417795C2 (de) | Datenverarbeitungsanlage | |
DE2154106A1 (de) | Arbeitsspeicherwerk | |
DE2331589A1 (de) | Datenverarbeitungsanordnung | |
DE3015875A1 (de) | Speicherzugriffssystem und verfahren fuer einen zugriff zu einem digitalen speichersystem | |
DE2758829C2 (de) | Datenverarbeitungsanlage mit mehreren Prozessoren | |
DE1499182B2 (de) | Datenspeichersystem | |
DE2432608A1 (de) | Speicheranordnung fuer datenverarbeitungseinrichtungen | |
DE2221442A1 (de) | Assoziativspeicher | |
DE2055522B2 (de) | Anordnung zur eingabe von daten in eine digitale datenverarbeitungsanlage | |
DE3743924A1 (de) | Speichereinrichtung | |
DE2750126C3 (de) | Datenverarbeitungssystem mit einem Zwischenpufferspeicher | |
DE2636788A1 (de) | Datenspeicher fuer datensichtgeraete | |
DE2235883A1 (de) | Datenverarbeitungseinrichtung | |
DE3837847A1 (de) | Einrichtung und verfahren zum verschieben eines bitfoermigen datenblocks | |
EP0771463B1 (de) | Verfahren und vorrichtung zum speichern und drehen von bitmustern | |
DE2927451A1 (de) | Verfahren und vorrichtung zur gewaehrleistung der informationskohaerenz zwischen den vorspeichern und weiteren speichern eines informationsverarbeitungssystems mit mehrfachverarbeitung | |
DE3016269C2 (de) | ||
DE2947115A1 (de) | Loeschanordnung fuer einen cache- speicher eines prozessors in einem multiprozessorsystem | |
DE2710502A1 (de) | Anordnung zur kohaerenten leitung einer speicherhierarchie |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8139 | Disposal/non-payment of the annual fee |