DE3702613A1 - Geraet zum verschieben digitaler daten in einem speicher eines datenverarbeitungssystems - Google Patents

Geraet zum verschieben digitaler daten in einem speicher eines datenverarbeitungssystems

Info

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
Application number
DE19873702613
Other languages
English (en)
Inventor
Sunil Nanda
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of DE3702613A1 publication Critical patent/DE3702613A1/de
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/01Methods or arrangements for data conversion without changing the order or content of the data handled for shifting, e.g. justifying, scaling, normalising
    • G06F5/015Methods 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/76Arrangements for rearranging, permuting or selecting data according to predetermined rules, independently of the content of the data
    • G06F7/768Data 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.
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.
DE19873702613 1986-02-03 1987-01-29 Geraet zum verschieben digitaler daten in einem speicher eines datenverarbeitungssystems Withdrawn DE3702613A1 (de)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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