DE3702613A1 - Geraet zum verschieben digitaler daten in einem speicher eines datenverarbeitungssystems - Google Patents
Geraet zum verschieben digitaler daten in einem speicher eines datenverarbeitungssystemsInfo
- Publication number
- DE3702613A1 DE3702613A1 DE19873702613 DE3702613A DE3702613A1 DE 3702613 A1 DE3702613 A1 DE 3702613A1 DE 19873702613 DE19873702613 DE 19873702613 DE 3702613 A DE3702613 A DE 3702613A DE 3702613 A1 DE3702613 A1 DE 3702613A1
- Authority
- DE
- Germany
- Prior art keywords
- line
- bit
- bits
- coupled
- register
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F5/00—Methods or arrangements for data conversion without changing the order or content of the data handled
- G06F5/01—Methods or arrangements for data conversion without changing the order or content of the data handled for shifting, e.g. justifying, scaling, normalising
- G06F5/015—Methods or arrangements for data conversion without changing the order or content of the data handled for shifting, e.g. justifying, scaling, normalising having at least two separately controlled shifting levels, e.g. using shifting matrices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/76—Arrangements for rearranging, permuting or selecting data according to predetermined rules, independently of the content of the data
- G06F7/768—Data position reversal, e.g. bit reversal, byte swapping
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Controls And Circuits For Display Device (AREA)
- Image Processing (AREA)
- Memory System (AREA)
Description
Die Erfindung bezieht sich auf die Verschiebung von in einem
Speicher gespeicherten Daten und insbesondere auf ein Gerät
zum Verschieben von in einem Speicher gespeicherten Datenblöcken.
Es sind viele Arten von Prozessoren bekannt, die zum Verarbeiten
von Graphikdaten implementiert sind. Ein Graphikprozessor
hat nicht nur Daten zu erzeugen, sondern muß solche Daten auch
manipulieren können. Zwei typische Operationen betreffen die
Drehung zur Verschiebung von Videodisplays.
Normalerweise besteht ein Videodisplay aus Rasterzeilen mit
einer Anzahl von Bildpunkten, im folgenden Pixel genannt, pro
Zeile. Eine Gruppe von Pixeln, z. B. ein 16 × 16 Quadrat, stellt
ein Zeichen oder eine Figur auf dem Display dar. Jede Pixelinformation
wird durch ein Bit (bei einem schwarz-weiß-Display)
oder mehrere Bits (bei einem Farbdisplay) dargestellt. Ein
4-Bit-Bixel entspricht 16 Farbtönen.
Eine Rotationsoperation ermöglicht die Rotation eines Zeichens
auf einem Display. Diese ist zweckmäßig, wenn geometrische
Figuren gedreht werden sollen. Bekannte Verfahren verwendeten
Schrifttabellen, in denen alle verfügbaren Zeichen aufgenommen
waren. Das bekannte Verfahren behandelte eine gedrehte Ansicht
eines Zeichens als getrenntes und besonderes Zeichen. Daher
waren für 90, 180 und 270° Drehungen eines Zeichens vier Typen
in der Schrifttabelle jedes Zeichens notwendig.
Eine Verschiebeoperation ermöglicht die Verschiebung eines
Zeichens zu einer neuen Position auf einem Display. Eine solche
Verschiebung ist zweckmäßig, wenn eine Zeile oder sogar
eine Gruppe von Zeilen in eine neue Stellung verschoben werden
soll. Das bekannte Verfahren verwendete eine Trommel-Verschiebemethode
zum Verschieben aller Bits um eine gewünschte Anzahl
von Schritten.
Die Erfindung gibt ein Verschiebegerät an, das sowohl eine
Rotations- als auch eine Verschiebeoperation in wesentlich
kürzerer Zeit durchzuführen gestattet. Außerdem ermöglicht die
Erfindung eine Manipulation eines einzigen Worts und Mehrwörter-
Datenblöcke.
Beschrieben wird ein verbessertes Operationsschema für Graphikdaten
zu Zeichenblock- und Bitblocktransfers. Ein Zeichenblocktransfer
ermöglicht die gleichzeitige Rotation von einen
Pixelblock oder ein Zeichen darstellenden Bits. Daher braucht
nur eine Schriftart pro Zeichen in einer Schrifttabelle (font
table) gespeichert zu werden, da alle Drehansichten durch den
Zeichenblocktransfer realisiert werden.
Eine zweite Transferart, der Bitblocktransfer, ermöglicht das
gleichzeitige Verschieben eines rechteckigen Bitblocks. Daher
können Datenblöcke wesentlich rascher zu einer gewünschten
Stelle verschoben werden.
Die Erfindung befaßt sich mit dem Verschieben digitaler Daten
in einem Speicher. Ein Speichergerät, das Daten aus einem
Speicher speichert, ist als Matrixanordnung von Registern
ausgebildet. Das Verschiebegerät veranlaßt die Registeranordnung
zum horizontalen und vertikalen Verschieben sowie zum
Drehen von Bits, wodurch den in der Anordnung gespeicherten
Bits ein Positionsaustausch ermöglicht wird. Danach wird der
manipulierte Datenblock unter Verwendung von Datentransfermitteln
zum Speicher zurückgeführt. Eine Zeichenrotation wird
dadurch erreicht, daß der Blockverschieber mit ein Zeichen
darstellenden Bits geladen wird und eine Reihe von durch einen
Rotationsalgorithmus hervorgerufenen Verschiebeoperationen
durchgeführt wird. Der Bitblocktransfer wird dadurch erreicht,
daß man aufeinanderfolgende Bits lädt und sie vor einem Bestimmungstransfer
in eine entsprechende Bitposition verschiebt.
Die Erfindung wurde zum Zwecke der Entwicklung eines einzigen
Halbleiterchips als integrierte Schaltung konzipiert, das eine
Gesamtgraphik erzeugen kann. Das Chip enthält einen Graphikprozessor,
in welchem das Blockverschiebegerät einen wesentlichen
Teil bildet. Das Chip enthält auch einen Displayprozessor
und einen Interfacebus zur Manipulation von 32-Bit-Datentransfers
auf einen 16-Bit-Bus.
Im folgenden wird die Erfindung anhand eines in der Zeichnung
schematisch dargestellten Ausführungsbeispiels näher erläutert.
In der Zeichnung zeigen:
Fig. 1 ein Blockschaltbild, das die Gesamtfunktion des
erfindungsgemäßen Blockverschiebegeräts in bezug
auf andere in einem Graphikprozessor enthaltene
Einheiten veranschaulicht;
Fig. 2 eine Darstellung eines gedrehten Buchstaben in
vier Ansichten;
Fig. 3 eine Darstellung des funktionellen Layout des
Blockverschiebegeräts unter Verwendung einer
16 × 16 Matrixanordnung;
Fig. 4 eine schematische Darstellung eines Bitblocktransfers; und
Fig. 5 das bevorzugte Ausführungsbeispiel der Erfindung
unter Verwendung einer 8 × 32 Matrixanordnung.
Beschrieben wird ein Bitblock- und Zeichenblock-Verschiebegerät
zum Manipulieren von Mehrwort-Datenblöcken. Der Blockverschieber
dient zur Beschleunigung der Manipulation von graphischen
Daten in einem Graphikprozessor. Der Blockverschieber
ist als RAM-Matrix von 8 × 32 Bits implementiert, wobei ein
16-Bit-Multiplexbus Verwendung findet. Obwohl eine spezieller
8 × 32 Matrix zum Verarbeiten eines 16 × 16 Zeichendisplays verwendet
wird, ist es für den Fachmann klar, daß andere Matrizen
ebenso wie andere Zeichendisplays verwendet werden können.
Auch sind spezielle Einzelheiten des beschriebenen Ausführungsbeispiels
zum Realisieren der vorliegenden Erfindung
nicht erforderlich. Ferner werden bekannte Strukturen uund
Schaltungen in der folgenden Beschreibung nicht im einzelnen
beschrieben, um die Erfindung nicht mit unnötigen Einzelheiten
zu belasten.
In Fig. 1 ist ein Basis-Blockdiagramm eines Graphikprozessors
(GP) 10 gezeigt. Ein x-y-Generator 11, der als programmierbare
Logikmatrix-Zustandsmaschine mit Formalgorithmen ausgebildet
ist, liefert die Information für die nächst Position (x und
y) zur Verwendung bei der Erzeugung von Linien, Kreisen usw..
Ein Adreßgenerator 12, der mit dem x-y-Generator 11 gekoppelt
ist, liefert die entsprechende Adresse im Speicher für jede x
und y Information der nächsten Position.
Ein mit dem Adressengenerator 12 gekoppelter Datengenerator 13
erzeugt und verarbeitet Daten. Der Datengenerator 13 bestimmt,
welche Daten erzeugt oder modifiziert werden müssen, und bestimmt
die zu erreichende besondere Modifikation.
Ein 16-Bit-Datenbus 17 bildet die Schnittstelle zwischen dem
GP 10 und anderen Einheiten, z. B. einem in der Zeichnung nicht
dargestellten externen Speicher. Bus 17 ist ein Multiplexbus,
der einen 32-Bit-Wort-Transfer ermöglicht. Businterface 16
nimmt die 16 am höchsten bewerteten Bits und die 16 am niedrigsten
bewerteten Bits zur Erzeugung eines 32-Bit-Worts auf
dem internen Bus 18 auf.
Ein Blockverschieber 15 erhält eine Folge von 32-Bit-Worten
von Ursprungsdaten auf dem Bus 18 und entwickelt die Zeichenblock-
oder Bitblock-Verschiebung. Danach werden die verschobenen
Daten zum Datengenerator 13 zur Verarbeitung übertragen.
Während der Blockverschieber 15 mit den Ursprungsdaten operiert,
erhält der Bestimmungsstapel 14 auf Leitungen 18 Bestimmungsinformationen.
Die Daten werden danach zum Datengenerator
13 gesandt, damit Operationen an den verschobenen Ursprungsdaten
ausgeführt werden können. Der Datengenerator 13
und der Adressengenerator 12 liefern die neuen Daten und entsprechende
Adressen für die neuen Daten zum Bestimmungstapel
14. Der Bestimmungsstapel 14 koppelt danach Daten- und Adreßinformationen
zum Businterface 16 für die Übertragung auf
Datenbus 7 und Adreßbus 36.
Datengenerator 13 liefert auch eine Auswahl von 16 boolschen
Funktionen von Ursprungsdaten und Bestimmungsdaten, wenn diese
erwünscht ist. Wenn beispielsweise ein Bit von einer Ursprungsadresse
zu einer neuen Bestimmungsadresse übertragen
wird, erhält der Datengenerator 13 Bestimmungsdaten aus dem
Bestimmungsstapel 14 und verschobene Ursprungsdaten vom Blockverschieber
15. Der Datengenerator 13 entwickelt eine boolsche
Funktion der Ursprungs- und Bestimmungsdaten, und der Ausgang
des Vergleichs wird zum Bestimmungsstapel 14 als neue Bestimmungsdaten
für die Übertragung über den Bus 17 zum Speicher
übertragen. Interne Leitungen 19, welche die Einheiten 11, 12,
13, 14, 15 und 16 mit der Managereinheit 20 koppeln, bilden
die interne Steuerung und Kommunikation zwischen diesen Einheiten.
Der Mikrocode für GP 10 liegt in der Managereinheit 20
und ist für den anfänglichen Start von GP 10 maßgeblich.
Die Erfindung liegt in dem Blockverschieber 15. Der Blockverschieber
15 bewirkt die notwendige Verschiebeoperation des
Blocks von in den Blockverschieber 15 geladenen Wörtern. Der
Blockverschieber 15 bewirkt den Zeichenblocktransfer zum Drehen
eines Zeichens und den Bitblocktransfer zum Verschieben
von Worten in eine neue Position auf einem Display.
Fig. 2 zeigt ein Musterdisplay eines Zeichens, z. B. eines
Buchstabens oder einer Figur bei der Drehung. Jedes Zeichen
wird von einer Matrix 16 × 16 Pixeln, dargestellt als 16
Wörter von 16 Bits pro Wort, definiert. Das ursprünglich
16 × 16-Zeichen 60 wird um 90°, 180° oder 270° gedreht. Die
Grundfunktion des Blockverschiebers 15, die eine Drehung eines
16 × 16-Zeichens ermöglicht, wird auf der Grundlage der Darstellung
in Fig. 3 erläutert.
In Fig. 3 ist ein Funktionsblockschaltbild gezeigt, das die
Grundoperation des Blockverschiebers veranschaulicht. Sechzehn
Zeilen (Zeilen 0-15) von Registern 70 sind als Stack bzw.
Stapelspeicher derart angeordnet, daß jede Zeile ein 16-Bit
Register 70 hat. Jedes Bit des Registers 70 wird zum nächsthöher
bewerteten Bit desselben Registers gekoppelt (z. B. Bit 13
zu Bit 14), und außerdem zu der äquivalenten Bitposition der
nächstniedrigeren Zeile (z. B. Bit 13 aus Zeile 1 zu Bit 13 aus
Zeile 0). Das Zeile 0-Register 71 ist zurückgeschleift zum
Zeile 15-Register 72. In jeder Zeile ist das Bit 15 mit Bit 0
derselben Zeile und mit Bit 0 der nächstniedrigeren Zeile
gekoppelt. Die Signalspeicher- bzw. Latchzeile besteht aus
16-Bit-Register 75 und nimmt ein 16-Bit-Wort aus dem Speicher
auf. Das Latchregister 75 ist in ähnlicher Weise mit dem Zeilenregister
70 gekoppelt und ermöglicht horizontale und vertikale
Übergänge von Bits und einen Übergang seines Bit 15 zu
seiner Bit 0-Position sowie zum Bit 0 des Zeile 15-Registers
72.
Der Blockverschieber 73 arbeitet als Silo (FIFO)-Stapelspeicher.
Der Blockverschieber 73 lädt das erste Wort in das
Latchregister 75. Diese Bits wandern abwärts, wenn nachfolgende
Worte in die Latchzeile eingegeben werden. Dies findet
solange statt, bis sechzehn 16-Bit-Worte in den Blockverschieber
73 in Zeilen 0-15 geladen worden sind. Der Blockverschieber
73 leitet seinen Namen aus seiner Fähigkeit ab, eine
gleichzeitige Operation an einem Block von Worten durchzuführen.
Sobald der Datenblock in den Blockverschieber 73 geladen
ist, ist der Bus für andere Funktionen frei, während der
Blockverschieber 73 die gespeicherten Daten verarbeitet.
Die Zeichenrotation wird durch horizontales und vertikales
Verschieben von Bits nach einem vorgegebenen Algorithmus
durchgeführt. Sobald die Rotationsoperation beendet ist, wird
das das gedrehte Zeichen darstellende Bitmuster in sequentieller
Wortreihenfolge dem Seitenausgang 77 oder dem Vertikalausgang
78 entnommen.
Fig. 4 zeigt eine Verschiebeoperation, wenn besondere Daten an
einer Ursprungsposition 41 zu einer Bestimmungsposition 42
oder 52 übertragen werden sollen. Zwei Arten von Transfers
können auftreten. Es sei angenommen, daß das Display 43 n-
Worte lang ist. Ein Vertikalübergang 44 führt dann zu einem
Adressenübergang nur zur Position 42. Bit n der Ursprungsadresse
45 geht zu der gleichen Bitposition (Bit n) der Bestimmungsadresse
46 über. Ein horizontaler Übergang der vollständigen
Wortlänge führt auch zu einem ähnlichen Adreßübergang.
Daher reicht bei dieser Art von Ursprungs-zu-Bestimmungs-
Übergang, bei dem sich Bitpositionen nicht ändern, einfach
ein Schreiben von Ursprungsdaten in eine neue Adresse
aus.
Eine zweite Art von Übergang zu Position 52 beinhaltet jedoch
einen Horizontalübergang 47 von Teilwortlängen. Dieser Teilübergang
erfordert ein Verschieben von Bits zwischen Ursprungsadresse
45 und Bestimmungsadresse 48. Außerdem kann die
Verschiebung 50 bewirken, daß sich Bits 51 in die nächste
Adresse 49 erstrecken. Damit diese Art von Ursprungs-zu-Bestimmungs-
Übergang in richtiger Weise auftreten kann, wird ein
Bitblockübergang implementiert.
Im folgenden wird erneut auf Fig. 3 Bezug genommen. Ein Block
von sechzehn Worten wird in den Blockverschieber 73 geladen.
Die sechzehn Worte stellen zusammenhängende Segmente eines
Displays dar. Der Blockverschieber 73 sorgt dafür, daß Bit 15
jeder Zeile zu Bit 0 der nächstniedrigeren Zeile gekoppelt
wird (z. B. Bit 15 von Zeile 1 zu Bit 0 von Zeile 0). Das sechzehnte
Wort wird nach dem Laden in die Latchzeile 79 nicht
abwärts gestapelt, so daß das sechzehnte Wort im Latchregister
75 gehalten und die Bodenzeile 80 offengehalten wird. Der
Blockverschieber 73 bewirkt dann die notwendige Verschiebung
50 (gemäß Fig. 4) durch horizontales Verschieben von Bits und
Verschieben des am höchsten bewerteten Bits zu der am niedrigsten
bewerteten Bitposition der nächstniedrigeren Zeile. Die
Verwendung der offenen Bodenzeile 80 ist dadurch evident, daß
sich Bits beim Verschieben in die Zeile 80 bewegen. Der
16-Wort-Block wird danach mit der geeigneten Verschiebung 50
zu den Bestimmungsadressen übertragen. Bei einem Übergang von
Seriendaten können sequentielle Worte in den Blockverschieber
15 eingegeben werden, wenn verschobene Worte aus der Bodenzeile
80 des Blockverschiebers 15 entfernt werden.
Obwohl in dem beschriebenen Beispiel ein 16 × 16 Matrixfeld
verwendet wird, geschah dies in erster Linie zur Erleichterung
des Verständnisses. Tatsächlich findet bei dem bevorzugten
Ausführungsbeispiel eine 8 × 32 Matrix Verwendung, bei der zwei
16-Bit-Wörter nebeneinander in einem 32-Bit-Wort angeordet
sind.
Fig. 5 zeigt ein Schaltbild des Blockverschiebers 15 gemäß
Fig. 1 entsprechend dem bevorzugten Ausführungsbeispiel. Der
Datenbus 17 überträgt das am niedrigsten bewertete Wort (LSW)
21 und das am höchsten bewertete Wort (MSW) 22 aus dem Speicher.
Ein Multiplexer (MUX) 23 im Businterface 16 (gemäß Fig. 1)
gibt ein einziges 32-Bit-Wort 24 zum Blockverschieber 39.
Der Blockverschieber 39 weist neun Zeilen von Registern 25
auf, wobei jede Zeile-32 Bit-Register 25 hat. Acht Zeilen
bilden die 8 × 32 Matrix zum Manipulieren der 16 × 16 Zeichendaten.
Die oberste Zeile ist eine Latchzeile 34, die zur Bit-
Block-Verschiebung verwendet wird. Jedes Bit ist mit dem
nächst-signifikanten Bit und auch mit der äquivalenten Bitposition
des Registers 25 des nächstniedrigeren Niveaus gekoppelt.
Bits vom Wort-0-Register 26 werden zum MUX 27 und auch
zur äquivalenten Bitposition von Wort 8 ausgekoppelt. Daher
ist Wort-0-Register 26 zum Wort-8-Register 28 zurückgeschleift.
In jeder Zeile wird Bit 15 von MUX 37 und 30 in seine Bit-0-
Bitposition und vom MUX 29 in seine Bit-16-Position gekoppelt.
Bit 31 wird vom MUX 29 zur Bit-16-Position und von MUX
37 und 30 in die Bit-0-Position gekoppelt. Daher kann jedes
16-Bit-Halbwort (MSW 22 oder LSW 21) um sich selbst umlaufen,
oder das vollständige 32-Bit-Wort kann um sich selbst umlaufen.
Der Ausgang von MUX 37 ist auch mit MUX 30 der nächstniedrigeren
Zeile gekoppelt und erlaubt ein sequentielles
Verschieben von Bit 31 in die Bit-0-Position der nächstniedrigeren
Zeile.
Daher geht jedes Bit vertikal abwärts oder horizontal zur
nächst signifikanten Bitposition. Es kann auch ein vertikaler
und horizontaler Umlauf mit einer zusätzlichen horizontalen
Umlaufmöglichkeit für jedes Halbwort (LSW und MSW) stattfinden.
Außerdem kann ein sequentielles Verschieben stattfinden,
wobei ein Bit eine serielle Verschiebung zur nächstniedrigeren
Zeile fortsetzen kann.
Da der Blockverschieber 39 ein 8 × 32-Matrix ist, wird eine
16-Bit-Zeile eines 16 × 16 Zeichens im Blockverschieber 39 als
ein 16-Bit-Halbwort gespeichert. Dies bedeutet, daß die erste
Linie oder Zeile eines Zeichens als ein MSW von Wort 0 und die
zweite Linie oder Zeile als ein LSW von Wort 0 gespeichert
wird. Um das horizontale Layout (8 × 32) zu kompensieren, ist
anstelle des Stapelns (16 × 16) eine Rotation-um-Eins-Schaltung
33 implementiert. Eine Rotation-um-Eins-Schaltung 33, die mit
Bit 31 jeder Zeile gekoppelt ist, ermöglicht den Positionsaustausch
von MSW und LSW, wodurch die Verschiebemöglichkeit
jedes Halbworts geschaffen wird. Jede bekannte Speicher- und
Verschiebeschaltung kann diese Rotationsfunktion erfüllen.
Bei der Zeichen-Rotationsfunktion kann eine 16-Bit-Ausgabe
entweder dem Seitenausgang (Bit 31 jeder Zeile) oder dem Vertikalausgang
(Wort 0) des Blockverschiebers 39 entnommen werden.
MUX 27 multiplext das 32-Bit-Wort aus dem letzten Zeilenregister
35 in zwei 16-Bit-Wörter. MUX 30 wählt den 16-Bit-
Ausgang entweder des Vertikal- oder des Seitenausgangs. Für
besondere Rotationen von Zeichen bedingt der Rotationsalgorithmus
eine vollständige Umkehr des Musters, so daß das am
höchsten bewertete Bit das am niedrigsten bewertete Bit wird
und umgekehrt. Diese Umkehr wird durch die Flip-Schaltung 31
bewirkt. Die Flip-Schaltung sorgt dafür, daß die sechzehn Bits
am Ausgang von MUX 30 geflipt (umgekehrt) werden, und MUX 32
wählt zwischen den umgekehrten und nicht-umgekehrten Daten
aus. Der Ausgang von MUX 32 wird dann zum Datengenerator 13
der Fig. 1 übertragen.
Vorstehend wurde ein verbessertes Graphikdaten-Operationsschema
für Zeichenblock- und Bitblock-Transfer beschrieben.
Der wesentliche neue Effekt der Erfindung besteht in der raschen
Mehrwert-(Block-) Manipulation von Daten im Blockverschieber.
Die unabhängige Operation des Blockverschiebers
macht es möglicht, daß andere Einheiten des Graphikprozessors
arbeiten, während der Blockverschieber arbeitet, wodurch eine
raschere Graphikentwicklung möglich wird.
Claims (23)
1. Gerät zum Verschieben digitaler Daten in einem Speicher
eines computerisierten Datenverarbeitungssystems,
dadurch gekennzeichnet,
daß Speichermittel, die eine Vielzahl von ausgewählten Bits
aus dem Speicher speichern, als Matrixanordnung (73; 39) von
Registern (70, 71, 72, 75; 26, 28, 35) ausgebildet sind, daß
mit den Speichermitteln Verschiebemittel gekoppelt sind, welche
die Position der Bits durch Vertikal- und Horizontalverschiebung
der Bits innerhalb der Matrixanordnung austauschen,
und daß Transfermittel zum Übertragen der Bits mit den Speichermitteln
und dem Speicher gekoppelt sind.
2. Gerät nach Anspruch 1, dadurch gekennzeichnet, daß die
Register der Matrixanordnung (73; 39) in mehreren übereinandergestapelten
Zeilen derart angeordnet sind, daß jedes Zeilenregister
der Anordnung ein Wort aus dem Speicher speichert
und Bits dieses Worts horizontal verschiebt.
3. Gerät nach Anspruch 2, dadurch gekennzeichnet, daß jedes
dieser Worte in eine erste Zeile (79; 34) der Matrixanordnung
(73; 39) eingegeben wird und ein verschobenes Wort an einer
letzten Zeile (80; 35) der Matrixanordnung austritt.
4. Gerät nach Anspruch 2 oder 3, dadurch gekennzeichnet, daß
das Register jeder Zeile mit dem Register der nächstniedrige
ren Zeile gekoppelt ist, so daß die Bits jeder Zeile vertikal
in die entsprechenden Bitpositionen der nächstniedrigeren
Zeile übergehen.
5. Gerät nach Anspruch 4, dadurch gekennzeichnet, daß das
Register der letzten Zeile auch mit Registern der ersten Zeile
gekoppelt ist, so daß die Bits der letzten Zeile in äquivalente
Bitpositionen der ersten Zeile übergehen.
6. Gerät nach Anspruch 5, dadurch gekennzeichnet, daß die am
höchsten bewertete Bitposition jedes Zeilenregisters mit der
am niedrigsten bewerteten Bitposition gekoppelt ist, so daß
Bits aus jeder Zeile in einer horizontalen Schleife überführbar
sind.
7. Gerät nach Anspruch 6, dadurch gekennzeichnet, daß die am
höchsten bewertete Bitposition jedes Zeilenregisters auch mit
der am niedrigsten bewerteten Bitposition der nächstniedrigeren
Zeile gekoppelt ist, so daß die Bits die Matrixanordnung
seriell durchlaufen.
8. Gerät nach einem der Ansprüche 1 bis 7, dadurch gekennzeichnet,
daß die Matrixanordnung (73) sechzehn Zeilenregister
hat und jedes Register ein 16-Bit-Wort speichert.
9. Gerät nach einem der Ansprüche 1 bis 7, dadurch gekennzeichnet,
daß die Matrixanordnung (39) acht Zeilenregister von
32-Bit-Länge aufweist und zwei 16-Bit-Wörter speichert.
10. Gerät nach Anspruch 9, dadurch gekennzeichnet, daß mit
jeder Zeile Multiplexmittel (30) gekoppelt sind, die zwischen
einer horizontalen Schleifenbewegung jedes der 16-Bit-Wörter
und aller 32 Bits jeder Zeile selektieren.
11. Gerät nach Anspruch 10, dadurch gekennzeichnet, daß die
Matrixanordnung einen Seitenausgang von 16 Bits von den am
höchsten bewerteten Bitpositionen jeder Zeile und zwei 16-Bit-
Vertikalausgänge aus der letzten Zeile aufweist.
12. Gerät zum Verschieben digitaler Daten in einem Speicher
eines computerisierten Datenverarbeitungssystems, gekennzeichnet
durch:
Latchmittel (79; 34) zur Aufnahme der Daten aus dem Speicher,
ein in einer Zeilen- und Spalten-Matrix angeordnetes Feld (73; 39) von Registern, wobei jede Zeile ein Register zur Speicherung eines Worts aus dem Speicher enthält und die Matrix mit den Latchmitteln gekoppelt ist,
mit der Matrix gekoppelte Steuermittel zum Verschieben der Daten in der Matrix, und
mit der Matrix gekoppelte Ausgabemittel (77, 78; 27, 30, 31, 32) zum Übertragen einer Matrixausgabe zu dem Speicher.
Latchmittel (79; 34) zur Aufnahme der Daten aus dem Speicher,
ein in einer Zeilen- und Spalten-Matrix angeordnetes Feld (73; 39) von Registern, wobei jede Zeile ein Register zur Speicherung eines Worts aus dem Speicher enthält und die Matrix mit den Latchmitteln gekoppelt ist,
mit der Matrix gekoppelte Steuermittel zum Verschieben der Daten in der Matrix, und
mit der Matrix gekoppelte Ausgabemittel (77, 78; 27, 30, 31, 32) zum Übertragen einer Matrixausgabe zu dem Speicher.
13. Gerät nach Anspruch 12, dadurch gekennzeichnet, daß die
Matrix eine mit den Latchmitteln (79, 34) gekoppelte erste
Zeile und eine mit den Ausgabemitteln (77, 78; 27, 30) gekoppelte
letzte Zeile (80; 35) enthält, wobei Daten in die erste
Zeile eingegeben werden und verschobene Daten an der letzten
Zeile austreten.
14. Gerät nach Anspruch 13, dadurch gekennzeichnet, daß das
Register jeder Zeile mit dem Register der nächstniedrigeren
Zeile und das Register der letzten Zeile mit dem Register der
ersten Zeile gekoppelt ist, so daß Bits in jeder Spalte in
einer vertikalen Schleife verschiebbar sind.
15. Gerät nach Anspruch 14, dadurch gekennzeichnet, daß die
am höchsten bewertete Bitposition jedes Zeilenregisters mit
dessen am niedrigsten bewerteten Bitposition gekoppelt ist, so
daß Bits in jeder Zeile in einer horizontalen Schleife verschiebbar
sind.
16. Gerät nach Anspruch 15, dadurch gekennzeichnet, daß die
am höchsten bewertete Bitposition jedes Zeilenregisters auch
zu der am niedrigsten bewerteten Bitposition der nächstniedrigeren
Zeile gekoppelt ist, so daß die Bits seriell durch die
Matrix verschiebbar sind.
17. Gerät nach Anspruch 16, dadurch gekennzeichnet, daß die
Latchmittel ein Latch-Zeilenregister (79; 34) enthalten, das
mit äquivalenten Bitpositionen des ersten Zeilenregisters
gekoppelt ist, um die Bits vertikal abwärts in der Spalte zu
verschieben, und daß die am höchsten bewertete Bitposition des
Latch-Zeilenregisters mit dessen am niedrigsten Bitposition
sowie mit der am niedrigsten bewerteten Bitposition der ersten
Zeile gekoppelt ist, so daß die Bits in der Latchzeile sowohl
horizontal rückführbar als auch seriell übergebbar sind.
18. Gerät nach Anspruch 17, dadurch gekennzeichnet, daß die
Matrix (39) acht Zeilen von 32 Bit Länge zur Speicherung von
zwei 16-Bit-Worten aufweist.
19. Gerät nach Anspruch 18, dadurch gekennzeichnet, daß mit
jeder Zeile erste Multiplexmittel gekoppelt sind, von denen
jedes zwischen einem horizontalen Schleifenumlauf jedes
16-Bit-Worts und aller 32 Bits jeder Zeile selektiert.
20. Gerät nach Anspruch 19, dadurch gekennzeichnet, daß die
Latchmittel zweite Multiplexmittel zur Aufnahme von zwei
16-Bit-Wörtern und zum Anlegen eines 32-Bit-Worts an die
Latch-Zeilenregister aufweist.
21. Gerät nach Anspruch 20, dadurch gekennzeichnet, daß die
Ausgabemittel einen Seitenausgang von den am höchsten bewerteten
Bits jeder Zeile, zwei 16-Bit-Vertikalausgänge aus der
letzten Zeile und dritte Multiplexmittel (30 . . . 32) zur Auswahl
eines der Ausgänge aufweisen.
22. Gerät nach Anspruch 21, dadurch gekennzeichnet, daß eine
Flip-Schaltung (31) zur Umkehr eines Bitmusters der Ausgänge
mit den Ausgabemitteln gekoppelt ist.
23. Gerät nach Anspruch 17, dadurch gekennzeichnet, daß die
Matrix (73) 16 Zeilen und 16 Bits pro Zeile aufweist.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US06/825,652 US4797852A (en) | 1986-02-03 | 1986-02-03 | Block shifter for graphics processor |
Publications (1)
Publication Number | Publication Date |
---|---|
DE3702613A1 true DE3702613A1 (de) | 1987-08-06 |
Family
ID=25244588
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE19873702613 Withdrawn DE3702613A1 (de) | 1986-02-03 | 1987-01-29 | Geraet zum verschieben digitaler daten in einem speicher eines datenverarbeitungssystems |
Country Status (5)
Country | Link |
---|---|
US (1) | US4797852A (de) |
JP (1) | JPS62190541A (de) |
CN (1) | CN1005434B (de) |
DE (1) | DE3702613A1 (de) |
GB (1) | GB2186104B (de) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5263135A (en) * | 1985-07-18 | 1993-11-16 | Canon Kabushiki Kaisha | Image processing apparatus |
DE3713627A1 (de) * | 1986-04-23 | 1987-10-29 | Casio Computer Co Ltd | Bildspeicherschaltung, insbesondere zur verwendung beim drehen von bilddaten |
EP0317654B1 (de) * | 1987-11-24 | 1992-07-29 | Deutsche ITT Industries GmbH | Demultiplexschaltung für ein Multiplexsignal |
US5142668A (en) * | 1989-01-13 | 1992-08-25 | Sun Microsystems, Inc. | Apparatus and method for loading coordinate registers for use with a graphics subsystem utilizing an index register |
AU625400B2 (en) * | 1989-01-13 | 1992-07-09 | Sun Microsystems, Inc. | Apparatus and method for loading coordinate registers for use with a graphics subsystem utilizing an index register |
US5081700A (en) * | 1989-02-15 | 1992-01-14 | Unisys Corporation | Apparatus for high speed image rotation |
WO1993011499A1 (en) * | 1991-11-27 | 1993-06-10 | Seiko Epson Corporation | Orthogonal rotator |
US5365601A (en) * | 1991-12-23 | 1994-11-15 | Xerox Corporation | N-bit wide parallel rotation algorithm |
JPH05235782A (ja) * | 1992-02-19 | 1993-09-10 | Fujitsu Ltd | 垂直データ・水平データ交換方法及び回路 |
US5410614A (en) * | 1993-10-22 | 1995-04-25 | Industrial Technology Research Institute | Run-based method for smoothing handwritten Chinese characters |
US5903281A (en) * | 1996-03-07 | 1999-05-11 | Powertv, Inc. | List controlled video operations |
US6271929B1 (en) | 1998-04-17 | 2001-08-07 | Canon Kabushiki Kaisha | Method and apparatus for rotating an input color image by ninety degrees |
US8400676B2 (en) * | 2009-09-30 | 2013-03-19 | Konica Minolta Laboratory U.S.A., Inc. | In place line splitting process and method for multiple beam printers |
US20130027416A1 (en) * | 2011-07-25 | 2013-01-31 | Karthikeyan Vaithianathan | Gather method and apparatus for media processing accelerators |
US9769356B2 (en) * | 2015-04-23 | 2017-09-19 | Google Inc. | Two dimensional shift array for image processor |
Family Cites Families (37)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3582899A (en) * | 1968-03-21 | 1971-06-01 | Burroughs Corp | Method and apparatus for routing data among processing elements of an array computer |
US3815095A (en) * | 1972-08-29 | 1974-06-04 | Texas Instruments Inc | General-purpose array processor |
US3914744A (en) * | 1973-01-02 | 1975-10-21 | Honeywell Inf Systems | Shifting apparatus |
US3979728A (en) * | 1973-04-13 | 1976-09-07 | International Computers Limited | Array processors |
FR2262350B1 (de) * | 1974-02-25 | 1976-12-03 | France Etat | |
US3961750A (en) * | 1974-04-05 | 1976-06-08 | Signetics Corporation | Expandable parallel binary shifter/rotator |
US3934132A (en) * | 1974-06-10 | 1976-01-20 | Control Data Corporation | Shift network for dual width operands |
US4122534A (en) * | 1977-06-17 | 1978-10-24 | Northern Telecom Limited | Parallel bidirectional shifter |
US4128872A (en) * | 1977-06-20 | 1978-12-05 | Motorola, Inc. | High speed data shifter array |
JPS5425133A (en) * | 1977-07-27 | 1979-02-24 | Nec Corp | Data shift device |
GB1547119A (en) * | 1977-12-09 | 1979-06-06 | Ibm | Image rotation apparatus |
JPS5523501A (en) * | 1978-06-29 | 1980-02-20 | Fujitsu Ltd | Shift operation unit |
JPS5652441A (en) * | 1979-10-05 | 1981-05-11 | Pioneer Electronic Corp | Programmable bit shift circuit |
US4314349A (en) * | 1979-12-31 | 1982-02-02 | Goodyear Aerospace Corporation | Processing element for parallel array processors |
JPS5750049A (en) * | 1980-09-09 | 1982-03-24 | Toshiba Corp | Shifting circuit |
DE3037359A1 (de) * | 1980-09-30 | 1982-04-29 | Heinrich-Hertz-Institut für Nachrichtentechnik Berlin GmbH, 1000 Berlin | Rechenwerkeinheit, insbesondere fuer gleitkomma-operationen |
US4437166A (en) * | 1980-12-23 | 1984-03-13 | Sperry Corporation | High speed byte shifter for a bi-directional data bus |
US4396994A (en) * | 1980-12-31 | 1983-08-02 | Bell Telephone Laboratories, Incorporated | Data shifting and rotating apparatus |
US4524455A (en) * | 1981-06-01 | 1985-06-18 | Environmental Research Inst. Of Michigan | Pipeline processor |
US4574394A (en) * | 1981-06-01 | 1986-03-04 | Environmental Research Institute Of Mi | Pipeline processor |
JPS6053349B2 (ja) * | 1981-06-19 | 1985-11-25 | 株式会社日立製作所 | 画像処理プロセツサ |
US4533993A (en) * | 1981-08-18 | 1985-08-06 | National Research Development Corp. | Multiple processing cell digital data processor |
JPS58159184A (ja) * | 1982-03-17 | 1983-09-21 | Nec Corp | 画像回転装置 |
JPS58169681A (ja) * | 1982-03-31 | 1983-10-06 | Fujitsu Ltd | 画像処理回路 |
US4509187A (en) * | 1982-06-14 | 1985-04-02 | At&T Bell Laboratories | Time warp signal recognition processor using recirculating and/or reduced array of processor cells |
DE3374462D1 (en) * | 1982-07-21 | 1987-12-17 | Marconi Avionics | Multi-dimensional-access memory system |
US4593278A (en) * | 1982-09-28 | 1986-06-03 | Burroughs Corp. | Real time graphic processor |
US4512018A (en) * | 1983-03-08 | 1985-04-16 | Burroughs Corporation | Shifter circuit |
US4541114A (en) * | 1983-05-05 | 1985-09-10 | Research Environmental/Institute of Michigan | Routing techniques using serial neighborhood image analyzing system |
US4583197A (en) * | 1983-06-30 | 1986-04-15 | International Business Machines Corporation | Multi-stage pass transistor shifter/rotator |
US4616220A (en) * | 1983-08-22 | 1986-10-07 | Burroughs Corporation | Graphics display comparator for multiple bit plane graphics controller |
US4644503A (en) * | 1983-12-30 | 1987-02-17 | International Business Machines Corporation | Computer memory system with integrated parallel shift circuits |
US4627020A (en) * | 1983-12-30 | 1986-12-02 | International Business Machines Corporation | Method for rotating a binary image |
US4653019A (en) * | 1984-04-19 | 1987-03-24 | Concurrent Computer Corporation | High speed barrel shifter |
JPS6132139A (ja) * | 1984-07-24 | 1986-02-14 | Nec Corp | 双方向バレルシフト回路 |
US4674064A (en) * | 1984-08-06 | 1987-06-16 | General Electric Company | Selectable bit length serial-to-parallel converter |
US4636976A (en) * | 1984-09-28 | 1987-01-13 | Data General Corporation | Bit shifting apparatus |
-
1986
- 1986-02-03 US US06/825,652 patent/US4797852A/en not_active Expired - Lifetime
- 1986-10-08 GB GB8624161A patent/GB2186104B/en not_active Expired - Fee Related
- 1986-11-28 CN CN86107983.3A patent/CN1005434B/zh not_active Expired
-
1987
- 1987-01-29 DE DE19873702613 patent/DE3702613A1/de not_active Withdrawn
- 1987-02-03 JP JP62021912A patent/JPS62190541A/ja active Pending
Also Published As
Publication number | Publication date |
---|---|
US4797852A (en) | 1989-01-10 |
GB8624161D0 (en) | 1986-11-12 |
GB2186104A (en) | 1987-08-05 |
GB2186104B (en) | 1990-06-06 |
CN1005434B (zh) | 1989-10-11 |
JPS62190541A (ja) | 1987-08-20 |
CN86107983A (zh) | 1987-08-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69122226T2 (de) | Verfahren und Einrichtung zur Zugriffsanordnung eines VRAM zum beschleunigten Schreiben von vertikalen Linien auf einer Anzeige | |
DE3804938C2 (de) | Bildverarbeitungseinrichtung | |
DE3440377C2 (de) | ||
DE3636394C2 (de) | Einrichtung und Verfahren zur Speicherorganisation | |
DE3587461T2 (de) | Schaltung zum Modifizieren von Daten in einem Anzeigespeicher. | |
DE3852045T2 (de) | Video-Schnittstelle mit Datenfluss. | |
DE3702613A1 (de) | Geraet zum verschieben digitaler daten in einem speicher eines datenverarbeitungssystems | |
DE68919781T2 (de) | Videospeicheranordnung. | |
EP0038411A2 (de) | Einrichtung zur Speicherung und Darstellung graphischer Information | |
DE3789253T2 (de) | Bildverarbeitungsgerät zur Bildvergrösserung und/oder Bildschrumpfung. | |
DE2525155A1 (de) | Verfahren und anordnung zur rasterpunktdarstellung von codierter - liniensegmente darstellende - information in computergesteuerten datensichtgeraeten, insbesondere in kathodenstrahlbildschirmstationen | |
DE2645535A1 (de) | Multiadressdigitalspeicher | |
DE3751312T2 (de) | Verfahren und Einrichtung zur Verarbeitung von Bilddaten. | |
DE69029065T2 (de) | Logische Schaltung und Verfahren zum Wiederordnen für einen graphischen Videoanzeigespeicher | |
DE3713627C2 (de) | ||
DE3716752C2 (de) | ||
DE3782540T2 (de) | Zeichenmusterumsetzschaltung. | |
DE3784533T2 (de) | Verfahren und vorrichtung zur informationsuebertragung von einem speicherbereich zu einem anderen speicherbereich. | |
DE4431304C2 (de) | Steuerschaltung für die Farbsteuerung einer Anzeigevorrichtung in unterschiedlichen Betriebsarten | |
DE68929485T2 (de) | Synchrone dynamische integrierte Speicherschaltung, Zugriffverfahren auf dieses System und System mit einem solchem Speicher | |
DE3933253A1 (de) | Einrichtung und verfahren zur durchfuehrung von booleschen rasteroperationen an quellen- und zieldaten | |
DE69225390T2 (de) | N-Bit paralleler Drehungsalgorithmus | |
DE3811145A1 (de) | Vorrichtung zum verarbeiten von bildern mit gewuenschten grauwerten | |
DE3519338A1 (de) | Datenreorganisierungseinrichtung | |
DE3885294T2 (de) | Parallele pipeline-bildverarbeitungseinheit mit einem 2x2-fenster. |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8139 | Disposal/non-payment of the annual fee |