-
Die Erfindung betrifft eine Grafikdaten-Erzeugungsvorrichtung
und ein Grafikdaten-Erzeugungsverfahren, insbesondere eine mit hoher
Geschwindigkeit arbeitende Bildverarbeitungsvorrichtung mit Mikroprozessoren
zum Eingeben und Ausgeben von Daten, zum Sammeln von Daten und zum Anzeigen
eines Bildmusters auf einer durchgerasterten Kathodenstrahlröhre-Anzeigeeinrichtung,
und die eine Zeichnungsfunktion aufweist, die durch ein in einem
Mikroprogrammspeicher gespeichertes Mikroprogramm gesteuert wird.
-
Die meisten bekannten Kathodenstrahlröhre-Steuerungseinrichtungen
steuern nur die Bildschirmfunktion und verfügen über keine Zeichnungsfunktion
(siehe z. B. das US-Patent 4,149,264). Eine Bildverarbeitungsvorrichtung,
die eine Bildverarbeitungsfunktion mittels einer integrierten Schaltung
erzielt, ist bekannt, jedoch verarbeitet sie nur monochromatische
Bildmusterdaten, die jedes Pixel durch ein Bit repräsentieren.
Wenn jedoch das Informationsverarbeitungssystem immer komplexer
wird, ist häufig
eine Bildverarbeitung für
ein Bild mit mehreren Farben oder mehreren Farbtönen erforderlich, und nun stellt
die Verarbeitungsgeschwindigkeit für eine derartige Verarbeitung
ein Problem dar. Wenn z. B. der Speicherinhalt bei einer Verarbeitung
für mehrere Farben
(n Farben) oder mehrere Farbtöne
(n Farbtöne)
zu aktualisieren ist, wird dieselbe Bildverarbeitung n mal wiederholt,
oder wenn ein Pixel mit einem einzelnen Bit anzuzeigen ist, ist
die Bildverarbeitung n mal zu wiederholen. Demgemäß ist die
Verarbeitungszeit n mal so lang wie die zur binären Bildverarbeitung. Für jeden
von n Bildschirmspeichern kann eine Verarbeitungsvorrichtung bereitgestellt
werden, jedoch führt
dies zu einer Zunahme der Abmessungen und Kompliziertheit und erhöht die Belastung
einer zentralen Verarbeitungseinheit.
-
Nun sei ein Zeichnungsprozess angenommen,
bei dem eine Linie in einem XY-Koordinatenraum
mit einem Ursprung zwischen zwei Punkten PS (XX, YS) und PE (XE, YE)
zu ziehen ist. Die Steigung der Linie wird auf Grundlage der Koordinatenwerte der
zwei Punkte berechnet, und es werden Koordinatenwerte von Punkten
auf der Linie berechnet. So werden Bildmusterdaten für jeden
Punkt bereitgestellt und abgespeichert. Der obige Prozess wird für alle Punkte
auf der Linie sequentiell ausgeführt.
Da die berechneten Koordinatenwerte von den Speicheradressen des
Bildschirmspeichers, in die die Bildmusterdaten eingeschrieben sind,
verschieden sind, müssen
die berechneten Koordinatenwerte (logische Adressen) in Bildschirmspeicher-Adressen (physikalische
Adressen) übersetzt
werden. Da jedes Wort im Bildschirmspeicher einen oder mehrere Pixeldatenwerte
enthält,
wird die logische Adresse in zwei physikalische Adressen übersetzt,
erstens in die Bildschirmspeicher-Adresse und zweitens in eine Bitadresse,
die eine Pixelposition repräsentiert.
-
Um die logische Adresse in eine physikalische
Adresse zu übersetzen,
müssen
die physikalische Adresse des Ursprungs und die Horizontalgröße des Bildschirmspeichers
bekannt sein. Da die logische Adresse (X, Y) eine Relativposition
bezüglich des
Ursprungs repräsentiert,
kann die physikalische Adresse dadurch berechnet werden, dass zur
physikalischen Adresse des Ursprungs das Produkt aus der orizontalgröße des Bildschirmspeichers
multipliziert mit Y in vertikaler Richtung (Y) addiert wird, oder davon
subtrahiert wird, während
in horizontaler Richtung (X) der Quotient der logischen Adresse
X geteilt durch die Anzahl von Pixeln in einem Wort addiert oder
subtrahiert wird. Der beim Teilen der logische Adresse X durch die
Anzahl von Pixeln in einem Wort erzeugte Rest wird als Bitadresse
verwendet. Auf diese Weise wird die physikalische Adresse zum Verarbeiten
der Bildmusterdaten erhalten.
-
Jedoch erfolgte die Berechnung der
logischen Adresse und die Übersetzung
in die physikalische Adresse in der Vergangenheit durch ein Softwareprogramm.
Demgemäß wird keine
Verarbeitung mit hoher Geschwindigkeit erzielt, wenn ein Universalmikroprozessor
verwendet wird, der zum Speichern eines Pixeldatenwerts in den Bildschirmspeicher
einige bis einige 10 Mikrosekunden benötigt.
-
Bei einer Bildmuster-Verarbeitungsvorrichtung,
die graphische Bildschirmdaten erzeugt, werden die graphischen Bildschirmdaten
in den Bildschirmspeicher übertragen.
Nun stellt die beteiligte Verarbeitungsgeschwindigkeit ein Problem
dar.
-
Es sei angenommen, dass ein Pixeldatenwert
an eine andere Pixelposition zu übertragen
ist. Im Allgemeinen speichert jedes Wort des Speichers Daten für mehrere
horizontal zusammenhängende Pixel.
Demgemäß ist, wenn
ein Pixeldatenwert an eine andere Pixelposition zu übertragen
ist, eine Verschiebeoperation zum Ausrichten der Bitpositionen oder
eine Auswähloperation
für einen
Quellenpixel-Datenwert erforderlich, um die Bitpositionen zur Operation
auszurichten. In der Vergangenheit erfolgte die Übertragung durch Software.
Wenn z. B. Daten in einem rechteckigen Bereich zu übertragen
sind, sind zusätzliche
Schritte zum Verstellen von Zeigern zum Spezifizieren von Quellpixeln
und Ziel- oder Bestimmungspixeln sowie ein Zählen der Anzahl von Übertragungsvorgängen erforderlich.
Im Ergebnis sind, wenn ein Universalmikroprozessor verwendet wird,
einige bis einige 10 Mikrosekunden zum Übertragen eines Pixeldatenwerts
erforderlich, und demgemäß wird keine
hohe Verarbeitungsgeschwindigkeit erzielt.
-
EP-A-0 073 916 offenbart eine Schaltung, um
die Vordergrund- und die Hintergrundfarbe von Schriftzeichen unabhängig voneinander
zu steuern. Dies wird erreicht, indem ein ein Schriftzeichen bezeichnender
Acht-Bit-Code beispielsweise nach ASCII aus einem Speicher mit wahlfreiem
Zugriff geholt wird. Zusätzlich
wird außerdem
ein Acht-Bit-Attribut-Code mit vier die Vordergrundfarbe bezeichnenden
Bits und vier anderen die Hintergrundfarbe des Schriftzeichens bezeichnenden
Bits geholt. Jedes Schriftzeichen kann damit in einer der möglichen Kombinationen
von sechzehn Vordergrund- und sechzehn Hintergrundfarben angezeigt
werden.
-
US
4,296,476 offenbart ein Datenverarbeitungssystem, das serielle
Pixeldaten mit Bits empfängt,
die das Vorhandensein oder die Abwesenheit von Objekten an einer
Pixelposition auf dem Bildschirm angeben. Eine Farb-Luminanz-Auswahleinheit
wählt eines
einer Vielzahl von Farb-Luminanz-Registern aus, die jeweils einem
der Objekte zugeteilt sind, um an jeder Pixelposition jeweils das am
meisten im Vordergrund befindliche Objekt anzuzeigen. Jedem Objekt
wird von dem Farb-Luminanz-Register lediglich eine einzige Farbe
und Luminanz zugeteilt.
-
Die zuletzt genannten Dokumente sind
daher ungeeignet, jedes einzelne Pixel auf einem Bildschirm in einer
individuellen Farbe anzuzeigen.
-
Der Erfindung liegt daher die Aufgabe
zugrunde, eine Vorrichtung und ein Verfahren zum schnellen Erzeugen
von Graphikdaten mit Pixeln individueller Farbe oder Farbtönung anzugeben.
-
Diese Aufgabe wird von einer Vorrichtung und
einem Verfahren nach den unabhängigen
Ansprüchen
gelöst.
Die Unteransprüche
betreffen bevorzugte Ausführungsbeispiele
der Erfindung.
-
Ein bevorzugtes Ausührungsbeispiel
ist eine Bildverarbeitungsvorrichtung, die eine Speicheraktualisierung
für Mehrfarb-,
Mehrfarbton-Daten, das Zeichnen eines Musters und die Übertragung
von Pixeldaten in hoher Geschwindigkeit bearbeiten kann.
-
Ein anderes Ausführungsbeispiel liefert eine Hochgeschwindigkeits-Bildverarbeitungsvorrichtung,
die ein Muster aus Mehrfarb- oder Mehrfarbton-Daten, die jeweils
Pixel aufweisen, die durch mehrere Bits dargestellt werden, in im
wesentlichen der gleichen Bearbeitungsgeschwindigkeit wie binäre Bilddaten
zeichnen kann.
-
Ein anderes Ausführungsbeispiel liefert eine Bildverarbeitungsvorrichtung,
die aufgrund einer logischen Adresse eines Bilds auch eine Adresse
in einem Anzeige- bzw. Bildschirmspeicher mit hoher Geschwindigkeit
berechnen kann.
-
Entsprechend einem Ausfilhrungsbeispiel der
Erfindung umfasst die Bildverar beitungsvorrichtung eine Einrichtung
zum sequentiellen Berechnen von Pixeladressen, die jeweils Informationen
zum Bezeichnen einer Bildschirmspeicheradresse und einer Pixelposition
in Einwort- bzw. Bildschirmanzeigedaten an dieser Adresse beinhalten,
wobei Anzeige- bzw. Bildschirmsteuerdaten herangezogen werden, eine
Einrichtung zum logischen Bearbeiten von Zeichnungsdaten für die bezeichneten
Pixelbits der berechneten Einwort-Pixeladresse aufgrund Pixelpositionsinformationen
und eine Einrichtung zum Schreiben der logisch bearbeiteten Daten
in die Bildschirmspeicheradresse.
-
Die Bildverarbeitungsvorrichtung
umfasst ferner eine Einrichtung für logische Adressenoperationen
zum Erzeugen einer logischen Adresse, die die Position eines Musters
bezüglich
eines Ursprungs auf Grundlage eines Bildschirm-Steuerungsdatenwerts
repräsentiert,
und eine Einrichtung zum Berechnen einer physikalischen Adresse
in einem Bildschirmspeicher auf Grundlage der logischen Adresse.
-
Gemäß einer weiteren bevorzugten
Ausführungsform
umfasst die Bildverarbeitungsvorrichtung eine Einrichtung zum Berechnen
eines Verschiebewerts auf Grundlage von Information zum Spezifizieren
einer Pixelposition in einem Quellwort sowie Information zum Spezifizieren
einer Pixelposition in einem Zielwort, wenn ein Bildschirm-Datenwert
in einem Graphikmuster-Bildschirmspeicher zu übertragen ist, und eine Verschiebeeinrichtung
zum mehrfachen Verschieben von Bildschirmdaten über mehrere Bits.
-
Gemäß einer anderen bevorzugten
Ausführungsform
umfasst die Bildver arbeitungsvorrichtung ein Befehlsregister zum
Einspeichern eines Befehlscodes, wie er in einem als Bildschirm-Steuerungsdatenwert
gelieferten Befehl enthalten ist, einen Decodierer zum Decodieren
eines Teils des im Befehlsregister abgespeicherten Befehlscodes,
um den Typ der Operation zu erzeugen, wie sie für eine aktuelle Koordinate
auszuführen
ist, ein Coderegister zum Speichern des Ausgangswerts des Decodierers,
eine Einrichtung zum Berechnen von Pixelkoordinaten in einem Graphikmuster-Bildschirmspeicher
auf Grundlage eines Steuerungssignals sowie eine Einrichtung zum
Spezifizieren einer Position im Graphikmuster- Bildschirmspeicher
auf Grundlage der Koordinate.
-
Die Erfindung ist aus der folgenden
detaillierten Beschreibung in Verbindung mit den beigefügten Zeichnungen
ersichtlich.
-
1 ist
ein Blockdiagramm einer Grafikmuster-Verarbeitungsvomchtung mit
einem Ausführungsbeispiel
der Erfindung;
-
2 ist
ein Blockdiagramm einer Grafikmuster-Verarbeitungsvorrichtung mit
dem vorliegenden Ausführungsbeispiel;
-
3 zeigt
die Konfiguration eines Bildschirmspeichers für eine Anzeige mit vier Bits
pro Pixel.
-
4 zeigt
eine spezielle Schaltung einer Logikadresse-Berechnungseinheit in 2;
-
5 zeigt
eine spezielle Schaltung einer Physikalische- Adresse-Berechnungseinheit
in 2;
-
6 zeigt
eine spezielle Schaltung einer Farbdaten-Verarbeitungseinheit in 2;
-
7 veranschaulicht
Funktionen von Feldern einer Mikroanweisung;
-
8a–8e zeigen Bitkonfigurationen
in einem Bildschirmspeicher in jeweiligen Modi, und 8f zeigt die Konfiguration eines Anweisungs-Steuerungsregisters;
-
9a–9e zeigen Pixeladressen entsprechend
zu den 8a–8e;
-
10 zeigt
die räumliche
Anordnung des Bildschirmspeichers in einem 4 Bit/Pixel-Modus;
-
11 zeigt
ein Flussdiagramm eines Zeichnungsvorgangs für ein Pixel (4 Bits/Pixel);
-
12 zeigt
eine Konfiguration zum Übersetzen
einer logischen Adresse in einer physikalischen Adresse, wie aus
den 4 und 5 entnommen, wobei bestimmte
Funktionen hinzugefügt
sind;
-
13 zeigt
die Beziehung zwischen einer physikalischen Adresse, dem Raum logischer
Adressen und einem Bildschirm in einem Modus (4 Bits/Pixel);
-
14a–14c veranschaulichen eine
Operation betreffend 13;
-
Fig. 15 zeigt
einen Bitmodus und eine entsprechende Bitadresse, die eine Pixelposition
in einem Wort kennzeichnet;
-
16a–16d veranschaulichen eine
Beziehung zwischen einem Maskendatenwert und einer Bitadresse;
-
17a veranschaulicht
eine Grundoperation bei der Adressenübersetzung;
-
17b zeigt
einen Bitadresse-Versatzwert oder -Offsetwert;
-
18 zeigt
eine gerade Linie, wie sie gemäß der Erfindung
gezogen wurde;
-
19 zeigt
ein Ausführungsbeispiel
zum Übertragen
von Pixelinformation, wobei diejenigen in den 4, 5 und 6 dargestellten Elemente,
die für die
Informationsübertragung
nicht wichtig sind, weggelassen sind;
-
20a und 20b veranschaulichen einen Betriebsvorgang
zu 19;
-
21 veranschaulicht
die Übertragung
eines Pixeldatenwerts;
-
22 zeigt
ein Flussdiagramm eines Übertragungsvorgangs;
-
23 zeigt
die Bewegungsrichtung eines Übertragungszeigers
bei Spezifizierung in einem rechteckigen Bereich;
-
24 zeigt
eine Konfiguration zum Berechnen und Steuern einer Pixelposition,
wobei nur wichtige Elemente aus den 4, 5 und 6 dargestellt sind;
-
25 zeigt
das Format eines Übertragungs(Kopier)befehls;
-
26 veranschaulicht
eine zugehörige Operation;
-
27a zeigt
ein Coderegister;
-
27b und 27c zeigen Formate eines
Musterbefehls; und
-
28 zeigt
ein Prozessflussdiagramm für den
Kopierbefehl.
-
1 ist
ein Blockdiagramm, das die Gesamtkonfiguration einer Graphikmuster-Verarbeitungsvorrichtung
mit der vorliegenden Erfindung zeigt. Gemäß 1 umfasst diese Graphikmuster-Verarbeitungsvorrichtung
eine Operationseinheit 30, die das Schreiben, Aktualisieren
und Lesen eines Bildschirm-Datenwerts hinsichtlich eines Bildschirmspeichers 13 steuert,
und eine Steuerungseinheit 20 zum Steuern der Operationseinheit 30 mit
einer vorbestimmten Abfolge. Die durch die Bildmuster-Verarbeitungsvorrichtung
aus dem Bildschirmspeicher 13 gelesenen Bildschirmdaten
werden durch eine Bildschirm-Umsetzungseinheit 40 in
ein Videosignal umgesetzt und auf einer Bildschirmeinheit 50 angezeigt.
-
Die durch die Steuerungseinheit 20 gesteuerte
Operationseinheit 30 berechnet sequentiell Pixeladressen,
von denen jede Information enthält,
die eine Adresse im Bildschirmspeicher 13 spezifiziert, sowie
eine Pixelposition in einem Wort des Bildschirm-Datenwerts im Bildschirmspeicher 13,
sie liest ein Wort der Bildschirmdaten im Bildschirmspeicher auf
Grundlage der Adresseninformation für den Bildschirmspeicher 13 an
der berechneten Adresse aus, sie führt eine logische Operation
für nur
vorbestimmte Pixelbits eines Anzeigedatenwerts entsprechend Information
aus, die mehrere Bitpositionen spezifiziert, die spezifizierten
Pixelpositionen entsprechen, wie sie auf Grundlage von Pixelpositions-Spezifizierinformation
für die
berechnete Pixeladresse beruhen, und sie schreibt das Ergebnis der logischen
Operation in den Bildschirmspeicher 13 ein. Die Zahl 60 bezeichnet
einen externen Computer. Die Bildmuster-Verarbeitungsvorrichtung
arbeitet entsprechend Steuerungsdaten wie vom externen Computer 60 gelieferten
Anweisungen und Parametern.
-
2 ist
ein Blockdiagramm eines Ausführungsbeispiels
einer Bildmuster-Verarbeitungsvorrichtung
mit der vorliegenden Erfindung.
-
Gemäß 2 umfasst die Steuerungseinheit 20 einen
Mikroprogrammspeicher 100, ein Mikroprogramm-Adressregister 110,
ein Rücksprungadresse-Register 120,
ein Mikroanweisungsregister 130, einen Mikroanweisungsdecodierer 200,
ein Flagregister 210, einen Musterspeicher 220 und
ein Anweisungssteuenegister 230.
-
Die Operationseinheit 30 umfasst
eine Operationensteuerungseinheit 300 und einen FIFO(first-in
first-out)-Speicher 400. Die Operationssteuerungseinheit 300 umfasst
eine Einheit 310 für Operationen
an logischen Adressen (A-Einheit), eine Einheit 320 für Operationen
an physikalischen Adressen (B-Einheit) und eine Einheit 330 für Operationen an
Farbdaten (C-Einheit).
-
Die A-Einheit 310 bestimmt
in erster Linie einen Zeichnungspunkt auf einem Bildschirm entsprechend
einem Zeichnungsalgorithmus, die B-Einheit 320 berechnet
eine erforderliche Adresse im Bildschirmspeicher, und die C-Einheit
erzeugt einen in den Bildschirmspeicher einzuschreibenden Farbdatenwert.
-
3 zeigt
eine Konfiguration einer Bildschirmeinheit zum Anzeigen jedes Pixels
mittels vier Bits. Die durch die Bildmuster-Verarbeitungsvorrichtung
der 2 spezifizierten
Bildschirmdaten werden durch die Bildschirmeinheit 50 angezeigt.
-
Gemäß 3 werden D0,
D4, D8 und D12 von Bildschirmdaten DT, wie sie entsprechend
Signalen zu einer Adresse AD von der Bildmuster-Verarbeitungseinheit
( 2) aus dem Bildschirmspeicher 13 gelesen
werden, an einen 4-Bit-Parallel- Seriell-Wandler 410 in der Bildschirm-Umsetzungseinheit 40 geliefert.
Der Wandler 410 erzeugt ein Videosignal VD0.
Auf ähnliche
Weise werden D1, D5,
D9 und D13 der Bildschirmdaten DT an
einen Parallel-Seriell-Wandler 420 in der Bildschirmumsetzeinheit 40 geliefert,
und der Wandler 420 erzeugt ein Videosignal VD1,
D2, D6, D10 und D14 der Bildschirmdaten DT werden
an einen Parallel-Seriell-Wandler 430 in der Bildschirm-Umsetzeinheit 40 geliefert,
der ein Videosignal VD2 erzeugt. D3, D7, D11 und
D15 der Bildschirmdaten DT werden
an einen Parallel-Seriell-Wandler 440 in der Anzeigeumsetzeinheit 40 geliefert,
der ein Videosignal VD3 erzeugt. Die Videosignale
VD0–VD3 werden an eine Videoschnittstellenschaltung 450 geliefert,
die Farbumsetzung und DA-Umsetzung ausführt, und das sich ergebende
Signal wird auf der Bildschirmeinheit 50 angezeigt.
-
Nun werden Einheiten in der Operationensteuerungseinheit 300 erläutert. 4 zeigt eine Einzelheit
der Einheit 310 für
Operationen an logischen Adressen. Sie umfasst einen FIFO- Puffer
(FBUF) 3101, Universalregister (TR0Y, TR0X, TR1X, TR1Y, TR2X,,
TR2Y, CPX, CPY) 3102, Bereichssteuerungsregister (XMIN,
YMIN) 3103 und (XMAX, YMAX) 3105, einen Bereichskomparator
(ACMP) 3104, Endpunktregister (XEND, YEND) 3106,
einen Endkomparator (ECMP) 3107, Quell-Latchstufen (SFTA, SLAV) 3108 und
(SLAU) 3109, eine Einheit für arithmetisch- logische Operationen
(ALU) 3110, eine Ziel-Latchstufe (DLA) 3111, einen
Busschalter 3112, Lesebusse (UBA, VBA) 3113 und 3114 sowie
einen Schreibbus (WBA) 3115.
-
5 zeigt
eine Einzelheit der Einheit 320 für Operationen an physikalischen
Adressen (B-Einheit). Sie umfasst Ziel- Latchstufen (DLB, SFTB) 3201,
eine Einheit für
arithmetische Operationen (AU) 3202, Quell-Latchstufen
(SLBV) 3203 und (SLBU) 3204, ein Versatzregister
(OFS) 3205, ein Schirmbreiteregister (MW) 3206,
ein Befehlsregister (CR) 3207, Universalregister (DPL,
DPH, RWPH, RWPL, T2H, T2L) 3208, einen Lesebus (UBB) 3209 sowie
einen Schreibbus (WBB) 3210. Die Universalregister 3208 umfassen
Register für
die aktuelle Adresse (DPH, DPL) für pro Pixel geltende Befehle, Adressenregister
(RWPH, RWPL) für
pro Wort geltende Befehle sowie Arbeitsregister (T2H, T2L).
-
6 zeigt
eine Einzelheit der Einheit zur Erzeugung von Farbdaten (C-Einheit).
Sie umfasst ein Barrel- oder Umlaufschieberegister (BRLS) 3301, Farbregister
(CL0, CLI, EC, EDG) 3302, einen Farbkomparator (CLCMP) 3304,
eine Einheit 3305 für
logische Operationen (LU), einen Schreibdatenpuffer (WDBR) 3306,
einen Muster-RAM-Puffer (PBUF) 3307, einen Musterzählter (PCNT) 3308,
Mustersteuerregister (PP, PS, PE) 3309, einen Lesedatenpuffer (RDBR) 3310,
Speicheradressenregister (MARL, MARH) 3311, einen Speicherausgangsbus 3312,
einen Speichereingangsbus 3313 und einen Eingangs/Ausgangs-
Puffer 3400. Ein Maskenregister 3303 umfasst ein
Register (CMSK) und ein Register (GMSK).
-
Nun wird ein Betriebsablauf des so
aufgebauten Ausführungsbeispiels
erläutert.
Als erstes werden Grundoperationen der jeweiligen Einheiten beschrieben.
-
Der in den 1 und 2 dargestellte
Bildschirm-Steuerungsdatenwert CDT ist eine von einer anderen Einheit,
wie einer zentralen Verarbeitungseinheit, gelieferte Anweisung oder
ein Parameter, und er wird einerseits in den Speicher (FIFO) 400 und andererseits
in das Anweisungssteuerungsregister 230 eingeschrieben.
Das Anweisungssteuerungsregister
230 speichert Bildbitmodi,
und beim vorliegenden Ausführungsbeispiel
wird mittels des Datenwerts CDT einer von fünf Pixelmodi ausgewählt.
-
Der Speicher 400 ist ein
FIFO-Speicher. Eine im Speicher 400 gespeicherte Anweisung
wird durch die Operationensteuerungseinheit 300 gelesen
und in das Register 3101 in derselben eingespeichert. Ein Teil
CID der Anweisungsinformation wird an das Adressenregister 110 übertragen.
-
Das Adressenregister 110 steuert
die Adresse des Mikroprogrammspeichers 100, und diese Adresse
wird synchron mit einem Taktsignal aktualisiert. Aus dem Mikroprogrammspeicher 100 wird
entsprechend der durch das Adressregister 110 gelieferten
Adresse eine Mikroanweisung gelesen, wie in 7 dargestellt. Die aus dem Speicher 100 gelesene
Mikroanweisung verfügt über 48 Bits,
wie in 7 dargestellt,
so dass einer von Steuerungsmodi #0 bis #7 ausgewählt werden
kann. Die Anweisung wird im Register 130 zwischengespeichert,
und sie steuert die Operationensteuerungseinheit 300 mittels
eines Steuerungssignals CSS, das vom Decodierer 200 erzeugt
wird, der entsprechend dem durch das Anweisungssteuerungsregister 230 ausgewählten Modus betrieben
wird. Nachfolgend werden Funktionen der Felder der Mikroanweisung
gemäß 7 erläutert.
-
In 7 ist
"RU" eine Anweisung, die ein mit dem Bus UBA 3113 zu verbindendes
Register spezifiziert. "RV" ist eine Anweisung, die ein mit dem
Bus VBA 3114 zu verbindendes Register spezifiziert. "RW"
ist eine Anweisung, die ein Register spezifiziert, in das die Daten
auf dem Bus WRA 3115 zu schreiben sind. "FUNCA" ist eine
Anweisung, die eine Operation der Einheit 3110 für arithmetisch-logische
Operationen der A-Einheit spezifiziert. "SFT" ist eine Anweisung,
die einen Verschiebemodus eines zur Quell-Latchstufe 3108 hinzugefügten Schieberegisters
(SFTA) spezifiziert. "ADF-L" ist eine Anweisung, die die vier Bits
niedriger Ordnung einer nächsten
Adresse spezifiziert, die an das Mikroprogramm- Adressregister 110 rückzuliefern
sind. "AC" ist eine Anweisung, die die nächste Adresse der Mikroanweisung
steuert. "ADF-H" ist eine Anweisung, die die sechs Bits hoher Ordnung
der nächsten
Adresse spezifiziert, wie sie an das Mikroprogramm-Adressregister 110 rückzuliefern
sind. Die Mikroanweisungen #4– #7
können
die sechs Bits hoher Ordnung der Adresse nicht aktualisieren. "FUNCB"
ist eine Anweisung, die einen Operationsmodus der Einheit 3202 für arithmetische
Operationen der B-Einheit spezifiziert. "ECD" ist eine Anweisung,
die eine Ausführungsbedingung
für die
Operation spezifiziert. "BCD" ist eine Anweisung, die eine Verzweigungsbedingung spezifiziert.
"FLAG" ist eine Anweisung, die eine Rücklieferung eines Flags an
das Flagregister 210 spezifiziert. "V" ist eine Anweisung,
die spezifiziert, ob eine Adresse für den Bildschirmspeicher 13 getestet
wird oder nicht. "FIFO" ist eine Anweisung, die Schreib/Lese-Vorgänge des
FIFO 400 steuert. "LITERAL" ist eine Anweisung, die einen
8-Bit-Buchstabendatenwert spezifiziert. "LC" ist eine Anweisung, die
einen Erzeugungsmodus für
den Buchstabendatenwert spezifiziert. "FF" ist eine Anweisung, die
das Setzen und Rücksetzen
eines Flipflops steuert. "S" ist eine Anweisung, die die Auswahl
eines Codeflags spezifiziert. "MC" ist eine Anweisung, die Schreib/Lese-Vorgänge des
Bildschirmspeichers 13 steuert. "DR" ist eine Anweisung,
die ein Durchrastern des Muster-RAM steuert. "BC" ist eine Anweisung,
die einen Eingangspfad in die Einheit 3202 für arithmetische
Operationen der B-Einheit steuert. "RB" ist eine Anweisung, die
die Lese/Schreib-Register der B-Einheit auswählt.
-
Die Mikroanweisung umfasst die obigen
Anweisungen, so dass die Steuerungseinheit 20 die Operationeneinheit 30 steuert.
-
Das Rücksprungadresse-Register 120 speichert
die Rücksprungadresse
einer Unterroutine. Das Flagregister 210 speichert Bedingungsflags.
Der Musterspeicher 220 speichert ein zum Verarbeiten des
Bildmusters verwendetes Grundmuster. Nun werden Bitlayouts für Daten
erläutert,
wie beim vorliegenden Ausführungsbeispiel
verwendet.
-
Als erstes wird ein Graphikmodus
beschrieben. Beim vorliegenden Ausführungsbeispiel kann einer von
fünf Betriebsmodi
entsprechend der Spezifizierung durch den im Anweisungssteuerungsregister 230 gespeicherten
Bildbitmodus (GBM) ausgewählt
werden.
-
Die 8a–8e zeigen 1-Wort-Bitkonfigurationen
des Bildschirmspeichers in den jeweiligen Modi.
-
(a) Modus mit 1 Bit/Pixel
(GBM = "000")
-
Dieser wird dazu verwendet, ein Pixel
durch ein Bit zu repräsentieren,
und er wird für
ein monochromatisches Bild verwendet. In einem Wort des Bildschirmspeichers 13 wird
ein Datenwert von 16 aufeinanderfolgenden Pixeln gespeichert.
-
(b) Modus mit 2 Bits/Pixel
(GBM = "001")
-
Dieser repräsentiert ein Pixel durch zwei Bits.
Es können
bis zu vier Farben oder Farbtöne
angezeigt werden. So ist in einem Wort des Bildschirmspeichers ein
Datenwert von acht aufeinanderfolgenden Pixeln gespeichert.
-
(c) Modus mit 4 Bits/Pixel
(GBM = "010")
-
Dieser repräsentiert ein Pixel durch vier
Bits. In einem Wort des Bildschirmspeichers ist ein Datenwert für vier aufeinanderfolgende
Pixel gespeichert.
-
(d) Modus mit 8 Bits/Pixel
(GBM = "011")
-
Dieser repräsentiert ein Pixel durch acht
Bits. In einem Wort des Bildschirmspeichers ist ein Datenwert für zwei Pixel
gespeichert.
-
(e) Modus mit 16 Bits/Pixel
(GBM = "100")
-
Dieser repräsentiert ein Pixel durch 16
Bits. In einem Wort des Anzeigespeichers ist der Datenwert für ein Pixel
gespeichert.
-
8(f) zeigt
das Anweisungssteuerungsregister 230.
-
Nun wird die Pixeladresse erläutert. 9 zeigt Pixeladressen für die jeweiligen
Modi von B. Das Register 3208 der
Einheit für
Operationen an physikalischen Adressen steuert die Bitadresse (physikalische
Adresse) im AD, zu der die vier Bits niedriger Ordnung
der Speicheradresse addiert werden. Die Information WAD der vier
Bits niedriger Ordnung wird dazu verwendet, die Pixelposition im
Wort zu spezifizieren, und sie wirkt entsprechend dem Bit/Pixel-Modus.
Das Symbol "*" repräsentiert
ein für die
Operation nichtrelevantes Bit.
-
10 zeigt
die räumliche
Anordnung des Bildschirmspeichers für den obigen "Modus mit vier Bits/Pixel"
gemäß c). Speicheradressen
sind als lineare Adressen zugeordnet, wie es in der Speicherkarte
von 10(A) dargestellt ist, und sie
werden als zweidimensionales Bild angezeigt, wie es in 10(B) dargestellt ist. Die horizontale
Breite des Schirms ist im Schirmbreiteregister (MW) 3206 von 5 gespeichert, und der Wert
MW bezeichnet die Anzahl von Bits entlang der horizontalen Breite
des Bildschirms. Im Modus mit 4 Bits/Pixel werden horizontal MW/4
Pixel angezeigt. Da ein Pixel mittels vier Bits angezeigt wird,
erfolgt die Anzeige eines 1-Wort-Datenwerts durch einen horizontal
zusammenhängenden
4-Pixel-Datenwert, wie in Fig. 10C dargestellt.
Der Versatzgenerator 2001 von 5 erzeugt einen Versatzwert "4", der
im Versatzregister 3205 gespeichert wird. Demgemäß kann zum
horizontalen Verschieben der physikalischen Adresse um ein Pixel
der Versatzwert addiert oder subtrahiert werden. Um die physikalische
Adresse um ein Pixel vertikal zu verschieben, kann der Inhalt des
Registers (MW) 3206 addiert oder subtrahiert werden. So
sind die Bitlayouts der beim vorliegenden Ausführungsbeispiel verwendeten
Daten beschrieben.
-
Nun wird ein Vorgang zum Speichern
der Bilddaten in den Bildschirmspeicher 13 mittels dieser Daten
erläutert.
-
Der Steuerungsdatenwert CDT,
wie die von der externen zentralen Verarbeitungseinheit gelieferte
Anweisung oder der Parameter wird einerseits in den Speicher 400 eingeschrieben
und andererseits in das Anweisungssteuerungsregister 230 eingeschrieben.
-
Nachfolgend wird ein Vorgang erläutert, wenn
der im Anweisungssteuerungsregister 230 gespeicherte Bildbitmodus
(GBM) der Modus mit 4 Bits/Pixel (GBM = "010") ist.
-
Wenn der Bildbitmodus (GBM) im Anweisungssteuerungsregister 230 den
Modus mit 4 Bits/Pixel spezifiziert, wird der 1- Wort-Datenwert
im Bildschirmspeicher 13 als 4-Bit-Gruppe gehandhabt, wie es in 8(c) dargestellt ist.
-
Die Signale CDT, wie die
Anweisungen und Parameter von der externen zentralen Verarbeitungseinheit
werden sequentiell in den Speicher 400 eingespeichert.
Die im Speicher 400 gespeicherten Daten werden in den FIFO-Puffer 3101 der
A-Einheit 310 eingelesen. Die in den FIFO-Puffer 3101 eingelesenen
Daten werden über
den internen Bus 3113 im Register eingespeichert. Sie werden über das Quellregister
(SLAU) 3109 vom Bus an die Einheit (ALU) für arithmetisch-logische
Operationen 3110 geliefert, es wird eine vorbestimmte Operation
ausgeführt,
und das Operationsergebnis wird in der Ziel- Latchstufe (DLA) 3111 zwischengespeichert.
Das Ergebnis wird über
den Bus WBA in das Universalregister 3102 eingespeichert.
Dieses Universalregister 3102 speichert die aktuelle Koordinate
in einem Koordinatenraum.
-
Die aktuelle XY-Koordinate im Universalregister 3102 wird über den
Lesebus 3113 oder 3114 gelesen und an die Einheit
(ALU) für
arithmetisch-logische Operationen 3110 geliefert. Das Operationsergebnis
der Operationseinheit (ALU) 3110 wird erneut über die
Ziel-Latchstufe (DLA) 3111 und den Schreibbus 3115 in
das Universalregister 3102 eingespeichert. Diese Reihe
von Operationen wird unter Steuerung der in 7 dargestellten Mikroprogrammanweisung
ausgeführt.
-
Die Daten auf dem Schreibbus 3115 werden an
die Bereichssteuerungsregister 3103 und 3105 geliefert
und durch den Bereichskomparator 3104 verglichen. Der Komparator 3104 ermittelt,
ob der Datenwert auf dem Schreibbus 3115 in den Bereich zwischen
einem X-Achse-Minimalwert (XMIN) und einem X- Achse-Maximalwert
(XMAX) oder in den Bereich zwischen einem Y-Achse-Minimalwert (YMIN)
und einem Y-Achse-Maximalwert (YMAX) fällt, und das Ergebnis wird
an das Flagregister 210 geliefert.
-
Der Datenwert auf dem Schreibbus 3115 wird
im Endpunktregister 3106 gespeichert und an den Endkomparator 3107 geliefert.
Der Komparator 3107 vergleicht den Datenwert auf dem Schreibbus 3115 mit
zuvor im Register 3105 gespeicherten X-Achse- und Y-Achse-Endpunkten, um zu
ermitteln, ob der Datenwert den Endpunkten entspricht. Das Vergleichsergebnis
wird an das Flagregister 210 rückgeliefert.
-
Wie oben beschrieben, werden die
Ergebnisse der Komparatoren 3104 und 3107 sowie
der Operationseinheit 3110 im Flagregister 210 gesammelt und
an den Mikroanweisungsdecodierer 200 geliefert, um dazu
verwendet zu werden, den Ablauf des Mikroprogramms zu ändern.
-
Die A-Einheit 310 arbeitet
auf die oben beschrieben Weise, und sie decodiert die durch den
Parameter gegebene XY-Koordinate, um eine Anweisung wie zum Zeichnen
einer Linie oder eines Kreises zu interpretieren.
-
Unter Bezugnahme auf 5 wird nun die Funktion der B-Einheit 320 beschrieben.
-
Der Bildschirm-Steuerungsdatenwert
wird anfangs über
die Busse UBB und WBB sowie die Register DLB und SLBU in das Register 3208 eingetragen.
Der Datenwert im Register 3208 wird über den Lesebus 3209 und
die Quell-Latchstufe 3204 an die Einheit (AU) für arithmetische
Operationen 3202 geliefert. Das Operationsergebnis der
Operationseinheit 3202 wird in der Ziel-Latchstufe 3201 zwischengespeichert
und an die Busse 3113, 3114, 3209 und 3210 geliefert.
Er wird über
den Bus 3210 in das Register 3208 eingeschrieben.
Das Register 3208 verfügt über zwei
16-Bit-Wörter,
so dass eine physikalische Adresse in einem 32-Bit-Wort gespeichert
wird. Das Register 3208 umfasst drei 32-Bit-Register, so dass
es drei Datenwerte speichern kann. Die Register DP (DPL, DPH) des
Registers 3208 speichern die physikalische Adresse des
aktuellen Bildpunkts, der dem aktuellen Bildpunkt XY entspricht.
Wenn die XY-Koordinate des Registers 3102 der A-Einheit 310 verschoben
wird, wird die physikalische Adresse des Registers DP entsprechend
verschoben.
-
Die physikalische Adresse kann dadurch
geändert
werden, dass ein vorbestimmter variabler Wert (Versatzwert X entsprechend
dem Abstand zu einem Zielpunkt) zur ursprünglichen physikalischen Adresse
auf der X-Achse addiert oder davon subtrahiert wird, und ein vorbestimmter
Wert entlang der Y- Achse addiert oder subtrahiert wird. In das
Versatzregister 3205 wird abhängig von einer durch den Versatzgenerator 2001 spezifizierten
Information eine zum horizontalen Verschieben der Pixeladresse um ein
Pixel erforderliche Konstante eingetragen. Die Konstante und der
Datenwert werden in der Operationseinheit 3202 einer solchen
Operation unterzogen, dass die horizontal verschobene physikalische Adresse
berechnet wird. Wenn z. B. der Pixelmodus der Modus mit 1 Bit/Pixel
ist, hat die Konstante den Wert 1 und eine 1-Pixel-Verschiebung
resultiert in einer 1-Bit-Verschiebung. Im Modus mit 4 Bit/Pixel
hat die Konstante den Wert 4, und eine 1-Pixel- Verschiebung resultiert
in einer 4-Bit-Verschiebung.
-
Um eine vertikale Verschiebung um
ein Pixel vorzunehmen, wird eine in das Schirmbreiteregister 3206 eingetragene
Konstante zur Operation verwendet, so dass eine Verschiebung um
ein Pixel erzielt wird.
-
Die B-Einheit 320 arbeitet
auf die oben beschrieben Weise, um die aktuelle physikalische Adresse
zu berechnen, die der durch die A-Einheit 310 bestimmten
XY-Koordinate entspricht.
-
Nun wird unter Bezugnahme auf 6 die Funktion der C-Einheit 330 beschrieben.
-
Die C-Einheit 330 ist über den
Ausgangsbus 3312 und den Eingangsbus 3313 mit
dem in 10 dargestellten
Bildschirmspeicher 13 verbunden. Die Adresseinformation AD wird
als erstes von der C-Einheit 330 an den Ausgangsbus 3312 geliefert,
und dann wird der Datenwert DT geliefert.
-
Die Adressinformation AD wird über die B-Einheit 320 und
den Bus UBB 3209 in das Speicheradressregister 3311 eingeschrieben
und in den Teilen MARL und MARH des Speicheradressregisters 3311 gespeichert.
Die im Register 3311 gespeicherte Speicheradresse wird über den
Ausgangsbus 3312 an den Bildschirmspeicher 13 geliefert,
und aus dem Bildschirmspeicher 13 wird über den Eingangsbus 3313 ein
spezifizierter 1-Wort-
Bildschirmdatenwert DT gelesen. Der gelesene Bildschirmdatenwert DT wird
in den Lesedatenpuffer 3310 eingespeichert. Wenn der Bildschirmdatenwert DT ein
Bildmusterdatenwert ist, wird er an die Operationseinheit 3305 geliefert.
-
Die Maskierungsinformation (die ein
zum Maskieren des Bit in einem Wort spezifiziert) vom Maskenregister 3303 wird
an die Operationseinheit 3305 geliefert. Die Maskierungsinformation
wird vom Register (CMSK), in das unmittelbar vom Bus WBB 3210 geschrieben
wird, oder vom Register GMSK, das vom Adressendecodierer 2002 erzeugte
Daten speichert, an die Operationseinheit 3305 geliefert.
-
Außerdem wird die Farbinformation
durch das Farbregister 3302 ausgewählt und an die Operationseinheit
(LU) 3305 geliefert, die sie entsprechend dem Datenwert DT,
der Maskierungsinformation und der Farbinformation einer logischen
Operation unterzieht, und sie liefert das Operationsergebnis an
das Schreibregister (WDBR) 3306. Die Musterinformation
wird durch Spezifizierung des durch den Musterzähler 3303 erzeugten
Adressensignals sowie der Bildmusterregister (PP, PS, PE) 3309 vom
Muster-RAM 220 in den Muster-RAM-Puffer (PBUF) 3307 eingespeichert.
-
Die C-Einheit arbeitet auf diese
Weise, um die Farbinformation umzusetzen.
-
Nun wird ein Zeichnungsvorgang erläutert. 11 zeigt ein Flussdiagramm
für einen
Zeichnungsvorgang für
ein Pixel im Modus mit vier Bits/Pixel.
-
Der Datenwert, wie er aus dem Muster-RAM 220 mittels
der durch die Bildmusterregister (PP, PS, PE) 3309 und
das Musterregister (PCNT) 3308 spezifizierten Adresse gelesen
wird, wird im Muster-RAM-Puffer 3307 abgespeichert, um
die Werte CL0 und CL1 des Farbregisters 3302 auszuwählen. Der
aus dem Bildschirmspeicher 13 gelesene Datenwert (CA, CB,
CC, CD) wird in den Lesedatenpuffer 3310 eingespeichert.
Beim vorliegenden Ausführungsbeispiel
sind der Farbdatenwert und der Datenwert gemäß dem Lesevorgang 4-Bit-Farbinformation oder
-Farbtoninformation. Die 1-Bit-Musterinformation wird aus dem Musterspeicher 220 gelesen,
und es wird das Farbregister 0 (CL0) oder das Farbregister 1 (CL1)
abhängig
vom Inhalt "0" oder "1" (X = "1" oder X = "0") der 1-Bit-Musterinformation
ausgewählt,
und der Inhalt des ausgewählten
Registers wird an die Einheit 3305 für logische Operationen geliefert.
Die vier Bits niedriger Ordnung der Information zur physikalischen
Adresse, wie im Speicheradressenregister 3311 gespeichert,
haben gemäß 11 den Wert "10**", und
diese Information wird über
den Adressendecodierer 2002 an das Maskenregister 3303 geliefert,
das die Maskierungsinformation GMSK erzeugt. Andererseits werden
die Bits hoher Ordnung mit Ausnahme der vier Bits niedriger Ordnung
im Speicheradressenregister 3311 als Bildschirmspeicher-Adresse ausgegeben,
so dass ein Wort des Bildschirmspeichers 13 ausgelesen
wird. Nur diejenigen Teile der Einheit 3305 für logische
Operationen, die durch ein Bit "1" des Maskenregisters (GMSK) 3303 spezifiziert
werden, werden einer logischen Operation unterzogen, um den Schreibdatenwert
Cy zu erzeugen, der dann in den Schreibpuffer 3306 eingespeichert
wird. Die von der Logikoperationseinheit 3305 ausgeführte logische
Operation umfasst Austausch des Inhalts des Farbregisters, logische
Operationen (UND, ODER, ExOR) sowie bedingte Zeichnungsvorgänge (zeichnen
nur dann, wenn die Lesefarbe einer vorbestimmten Bedingung genügt). In
anderen Bit/Pixel-Modi wird andere GMSK-Information erzeugt, jedoch
wird eine ähnliche
logische Operation ausgeführt.
Auf diese Weise werden die Adressinformation AD und der
Datenwert DT vom Adressregister 3311 und vom Register 3306 an
den Ausgangsbus 3312 geliefert und an den vorbestimmten Adressen
des Bildschirmspeichers 13 eingeschrieben.
-
Beim vorliegenden Ausführungsbeispiel
wird ein wirkungsvoller Zeichnungsvor gang erzielt, da die Daten
für ein
Pixel durch einen Durchlauf von Lese-, Aktualisierungs- und Schreibschritten
gleichzeitig aktualisiert werden können. In einem anderen Modus als
dem Modus mit 16 Bit/Pixel sind Daten für mehrere Pixel in die Länge von
16 Bits gepackt. Demgemäß ist der
Nutzungswirkungsgrad des Speichers hoch und der Datenübertragungs-Wirkungsgrad
zwischen anderen Bauteilen und dem Bildschirmspeicher ist hoch.
Da Betriebsmodi für
fünf verschiedene
Längen von
Bits/Pixel vorhanden sind, ist die Flexibilität im Gebrauch hoch.
-
Nun wird eine Bildmusterverarbeitung
erläutert,
die eine physikalische Adresse entsprechend einer logischen Adresse
mit hoher Geschwindigkeit berechnen kann. Die Adressübersetzung
durch die A-Einheit 310 und die B-Einheit 320 in 2 wird mit hoher Geschwindigkeit
ausgeführt.
-
12 zeigt
Einheiten in Zusammenhang mit der Adressübersetzung durch die in den 4 und 5 dargestellten Einheiten sowie zusätzliche
Einheiten. Gleiche Einheiten, wie sie in den 4 und 5 dargestellt
sind, sind mit denselben Zahlen gekennzeichnet.
-
Ein Selektor 3500 wird durch
das Signal CCS so gesteuert, dass er den Datenwert aus dem Bildschirmbreiteregister
(MW) 3206 oder den Datenwert aus dem Versatzdatenregister 3205 (OFS)
auswählt und
den ausgewählten
Datenwert an die Einheit (AL) für
arithmetische Operationen 3202 liefert. Die Operationseinheit 3202 berechnet
die der logischen Adresse entsprechende physikalische Adresse.
-
Nun werden ein Raum physikalischer
Adressen, ein entsprechender Raum logischer Adressen und ein entsprechender
Bildschirm erläutert. 13 zeigt den Raum physikalischer
Adressen, den entsprechenden Raum logischer Adressen und den entsprechenden
Bildschirm im Modus mit vier Bits/Pixel. In 13 ist
die Beziehung zwischen der physikalischen Adresse (Anzahl von Bits
MW in horizontaler Richtung), den Bildschirmspeicher im Raum logischer
Adressen und dem Bildschirm dargestellt. Vier Pixel mit Pixeldaten,
die jeweils ein Pixel durch vier Bits repräsentieren, sind in einem 16-Bit- Wort im Raum
physikalischer Adressen enthalten. Jedes Pixel verfügt über ein
Bit in jeder Farbspeicherebene im Speicher im Raum logischer Adressen
und diese Bits werden kombiniert, um ein Signal für 16 Farben
(oder 16 Farbtöne)/Pixel
an den Schirm zu liefern. Die Daten von vier Pixeln in einem Wort
bilden im Speicher im Raum logischer Adressen sowie auf dem Bildschirm
horizontal aufeinanderfolgende Pixeldaten.
-
14 zeigt
die Beziehung zwischen der physikalischen Adresse, der logischen
Adresse, der Speicherbreite MW und der Zeigeradresse PA, wie in 13 dargestellt. 14(a) zeigt eine Speicheradresse MA und
eine Bitadresse BA im Raum physikalischer Adressen sowie die Beziehung
zwischen diesen und dem Anzeigeschirm. Wenn eine Speicheradresse
eines Worts, das ein Pixel vertikal benachbart zu einem Pixel in
einem Wort enthält,
das durch eine Speicheradresse MA1 spezifiziert ist; mit MA2 repräsentiert wird,
ist die Speicherbreite MW so definiert, wie es in 14(c) dargestellt
ist. Wenn die physikalische Adresse eines Punkts (x, y) auf dem Schirm,
wie in 14(a) dargestellt, die Speicheradresse
MA und die Bitadresse BA aufweist, ist die zugehörige Zeigeradresse so repräsentiert,
wie es in 14(b) dargestellt ist.
-
Das in 12 dargestellte
Ausführungsbeispiel
erzielt selbst dann eine Verarbeitung hohen Wirkungsgrads, wenn
die Daten eines Pixels durch mehrere Bits (für mehrere Farben oder mehrere
Farbtöne)
repräsentiert
sind, und es kann einer von fünf
Betriebsmodi mittels des Bitmodus ausgewählt werden, wie er im Bitmodusregister 230 eingestellt
ist, was gemäß 8 erfolgt.
-
15 zeigt
die Beziehung zwischen den in 14 dargestellten
Bitmodi und den Bitadressen, die die Pixelpositionen in einem Wort
anzeigen. Die Bitadresse fällt
mit der Startbitadresse der Pixeldaten zusammen. Wenn z. B. im Modus
mit vier Bits/Pixel die Bits 4–7
der Pixeldaten in der Pixeldaten-Operationseinheit 330 einer
Operation zu unterziehen sind, hat die Bitadresse der vier Bits
niedriger Ordnung im Zeigeradressregister 3208 den Wert
"4".
-
Die 16(a)–16(d) zeigen die Beziehung zwischen den
im Maskenregister 3303 gespeicherten Maskendaten und der
Bitadresse im Modus mit vier Bits/Pixel. Wenn die Bits 4–7 der Pixeldaten
einer Operation zu unterziehen sind, ist, wie oben angegeben, die
Bitadresse "4", und es werden nur diejenigen Bits der Maskendaten,
die mit den Pixeldaten einer Operation zu unterziehen sind, auf
"1" gesetzt, während
diejenigen Bits, die keiner Operation mit den Pixeldaten zu unterziehen
sind, auf "0" gesetzt werden. Wenn z. B. die Bitadresse "4" ist,
wird vom Maskendatengenerator 2002 ein Maskendatenwert
erzeugt, bei dem nur die Bits 4–7
auf "1" gesetzt sind, und dieser wird im Maskendatenregister 3303 gespeichert.
-
17(a) zeigt
Grundoperationen, wie sie in den Operationseinheiten für logische
Adressen und physikalische Adressen bei in 12 dargestellten Ausführungsbeispiel ausgeführt werden,
und 17(b) zeigt die Bitadresse-Versatzwerte
n, wie sie vom Bitadresse-Versatzgenerator in den jeweiligen Bitmodi
erzeugt werden. Als erstes wird der Bitadresse-Versatzwert erläutert. Er
wird dazu verwendet, die Bitadresse zu aktualisieren, und vom Versatzgenerator 2001 wird
im Modus mit vier Bits/Pixel der Datenwert "4" erzeugt, oder der
Datenwert "1" im Modus mit 1 Bit/Pixel, und dieser wird in das Versatzdatenregister 3205 eingespeichert.
-
Nun wird die in 17(a) dargestellte
Verarbeitung erläutert.
Für den
Fall, dass die logische Adresse am Punkt P des aktuellen Pixels
(X, Y) ist und eine physikalische Adresse PA ist, wird
die Verarbeitung zum horizontalen oder vertikalen Verschieben des
Punkts P um ±1
logische Adresse angegeben. Wenn der Punkt P um +1 zu verschieben
ist, um den Pixeldatenwert in der positiven Richtung der (horizontalen)
X- Achse zu verschieben, liest die Operationseinheit 310 für logische
Adressen den Datenwert (X) aus dem aktuellen Zeiger (CPX in 3102)
aus, und in der Operationseinheit 3110 wird über die Quell-Latchstufe 3109 der
Wert +1 addiert. Das Operationsergebnis (X + 1) wird erneut über die Ziel-Latchstufe 3111 als
neue logische Adresse X im aktuellen Zeiger (CPX in 3102)
abgespeichert. Die Operationseinheit 320 für physikalische
Adressen liest die Zeigeradresse aus dem Zeigeradressregister 3208 aus
und liefert sie als Operand über
die Quell-Latchstufe 3204 an die Operationseinheit 3202.
Andererseits gibt der Operandendatenselektor 3500 selektiv
den Datenwert aus dem Versatzdatenregister 3205 aus, und
dieser wird als Operand über die
Quell-Latchstufe 3203 an die Operationseinheit 3202 geliefert.
Diese Operationseinheit 3202 addiert die Zeigeradresse
PA zum Bitadresse-Versatzwert
n. Die Summe (PA + n) wird erneut als neue Zeigeradresse über die
Ziel-Latchstufe 3201 im
Zeigeradressregister (DPL und DPH in 3208) abgespeichert. Danach
erzeugt der Maskendatengenerator 2202 die Maskendaten entsprechend
den vier Bits niedriger Ordnung des im Zeigeradressregister 3208 abgespeicherten
Datenwerts, d. h. entsprechend der Bitadresse und dem Bitmodus.
Die Maskendaten werden über
das Maskenregister 3303 zur Berechnung des Pixeldatenwerts
an die Operationseinheit 3305 für Pixeldaten geliefert.
-
Wenn der Punkt P um +1 in der positiven Richtung
der (vertikalen) Y-Achse zu verschieben ist, verschiebt die Operationseinheit 310 für logische Adressen
den Datenwert im aktuellen Zeiger Y (CPY in 3102) um +1.
Andererseits führt
die Operationseinheit 320 physikalische Adressen eine Operation
am Datenwert im Zeigeradressregister 3208 (DPL, DPH) aus.
Bei der X-Achse-Operation wird der Versatzwert addiert oder subtrahiert,
und bei der Y-Achse-Operation wird der Datenwert im Speicherbreiteregister 3206 addiert
oder subtrahiert (Subtraktion beim vorliegenden Beispiel). Der Operationssteuersignal-Generator 200 erzeugt
ein Addier/Subtrahier- Signal für die
Operationseinheit 3202 in der Operationseinheit 320 für physikalische
Adressen, wenn die Operationseinheit 310 für logische
Adressen die X-Achse-Addition/Subtraktion ausführt, und sie erzeugt das Additions/Subtraktions-
Steuerungssignal für
die Operationseinheit 3202, wenn die Operationseinheit 310 für logische
Adressen die Y-Achse-Addition/Subtraktion ausführt. Die Bestimmung erfolgt
durch die Adresszuordnung im Bildschirmspeicher entsprechend dem
Bildschirm. Durch diese logischen Operationen wird die physikalische
Adresse nach einer Verschiebung des Punkts P hergeleitet. 18 zeigt ein Beispiel für das Zeichnen
einer geraden Linie bei der Erfindung.
-
Wenn eine gerade Linie von einem
Startpunkt Ps (Xs, Ys) zu einem Endpunkt Pe (Xe,
Ye) zu ziehen ist, wird bei einer ersten Vorverarbeitung die physikalische
Adresse des Ursprungs von der zentralen Verarbeitungseinheit oder
einer anderen Steuerungseinheit in die Teile DPL und DPA des Zeigeradressregisters 3208 geladen,
und der aktuelle Zeiger X (CPX in ein 3102) und der aktuelle
Zeiger Y (CPY in 3102) werden durch die Steuerungseinheit 200 auf "0"
gelöscht.
Durch Einstellen des Ursprungs auf diese Weise wird Entsprechung
zwischen der logischen Adresse und der physikalischen Adresse erzielt.
Bei einer zweiten Vorverarbeitung wird die logische Adresse (Xs,
Ys) des Startpunkts Ps der Linie in den aktuellen Zeigern X
(CPX) und Y (CPY) abgespeichert und die Operationseinheit 320 für physikalische Adressen
berechnet die der logischen Adresse (Xs, Ys) entsprechende
physikalische Adresse. Bei einer dritten Vorverarbeitung wird die
logische Adresse (Xe, Ye) des Endpunkts Pe in die Zwischenspeicher 3102 eingespeichert.
Dies beendet die Vorverarbeitung. Auf einen Befehl zum Ziehen einer
Linie vom Punkt Ps zum Punkt Pe von der zentralen Verarbeitungseinheit
oder einer anderen Steuerungseinheit her startet die Steuerungseinheit 200 eine
Hauptverarbeitung. Sie liefert entsprechend einer vorab abgespeicherten
Steuerungsprozedur Steuerungsanweisungen an die Operationseinheiten 310, 320 und 330.
Die Operationseinheit 310 für logische Adressen bestimmt
Zwischeninformation, wie sie für
die Zeichnungsverarbeitung erforderlich ist, wie die Steigung der
Linie, auf Grundlage der logischen Adresse (Xs, Ys) des
Startpunkts Ps und der logischen Adresse (Xe, Ye) des Endpunkts
Pe, sie speichert sie in die Zwischenregister 3102 ein
und sie berechnet die logische Adresse (x1,
y1) für
den als nächstes
zu zeichnenden Punkt p1 sowie die dieser
logischen Adresse (x1, y1)
entsprechende physikalische Adresse. Die X-Achse-Adressberechnung und die Y-Achse-Adressberechnung
werden durch die Operationseinheit 310 für logische
Adressen und die Operationseinheit 320 für physikalische
Adressen ausgeführt.
Parallel hierzu wird der dem Startpunkt Ps entsprechende Pixeldatenwert
aus dem Anzeigespeicher gelesen, und es wird der Pixeldatenwert
des Startpunkts Ps einer Operation unterzogen. Nach der Operation
am Pixeldatenwert wird der sich ergebende Pixeldatenwert erneut
in den Bildschirmspeicher eingeschrieben. So berechnen die Operationseinheit 310 für logische
Adressen und die Operationseinheit 320 für physikalische
Adressen während
zweimaligen Speicherzugriffs für
einen Punkt die logische Adresse für den als nächstes zu zeichnenden Punkt sowie
die entsprechende physikalische Adresse. Durch Wiederholen der obigen
Schritte, bis der Endpunkt Pe der Linie erreicht ist, werden die
Pixeldaten zum Zeichnen der Linie sequentiell in den Bildschirmspeicher
eingespeichert.
-
Der aus dem Bildschirmspeicher gelesene Pixeldatenwert
wird in einem speziellen Fall erneut in den Bildschirmspeicher eingespeichert,
nachdem eine Substitution durch einen vorbestimmten Datenwert erfolgte.
Die Pixel auf einer zu zeichnenden Linie haben nicht immer dieselbe
Intensität
oder Farbe. Demgemäß wird der
gelesene Pixeldatenwert einer Operation mit anderen Daten unterzogen,
und das Operationsergebnis wird als neuer Bildschirmpixel-Datenwert
in den Bildschirmspeicher eingespeichert.
-
Während
im obigen Ausführungsbeispiel
ein zweidimensionaler logischer Raum erörtert ist, kann die Erfindung
auf einen höherdimensionalen
logischen Raum angewandt werden. Selbst wenn ein Pixeldatenwert
durch mehrere Bits repräsentiert
ist, können
die logische Adresse und die dieser logischen Adresse entsprechende
physikalische Adresse mit hoher Geschwindigkeit berechnet werden.
-
Nun wird Hochgeschwindigkeitsübertragung von
Pixelinformation an eine andere Pixelposition in einem System, in
dem ein Mehrpixel-Datenwert in einem Speicherwort gespeichert ist,
erläutert.
Hohe Verarbeitungsgeschwindigkeit wird durch eine charakteristische
Hardwarekonfiguration erzielt. Diejenigen in den 4, 5 und 6 dargestellten Teile, die
für die
die Übertragungsverarbeitung
nicht relevant sind, sind in 19 weggelassen.
Der Mikroanweisungsdecodierer 200 enthält einen Zwischenadressendecodierer 2002 und
einen Verschiebungsdecodierer 2003. Das Anweisungssteuerungsregister 2030 speichert
einen Übertragungsmodus
und einen Bitmodus.
-
Der Bildschirmspeicher 13 hat
eine Konfiguration für
16-Bit- Wörter,
und Adressen sind sequentiell zugeordnet. Eine Quelladresse wird
in Teilen T2H und T2L des Universalregisters 3208 gespeichert, und
eine Zieladresse wird in den Teilen DPH und DPL gespeichert. So
steuern zwei Register für 16-Bit-Wörter die
Quelladresse und die Zieladresse. Die vier Bits niedriger Ordnung
der Adressinformation spezifizieren die Bitposition in einem Speicherwort,
und die Bits hoher Ordnung spezifizieren die Adresse des Bildschirmspeichers.
-
Der Verschiebungsdecodierer 2003 decodiert
die Verschiebungsinformation zum Steuern der Verschiebung im Umlaufschieberegister 3301.
Bei Übertragungsverarbeitung
berechnet die Einheit (ALU) für
arithmetisch-logische Operationen 3110 die Differenz zwischen
den vier Bits niedriger Ordnung der Zieladresse und der Quelladresse,
und die Differenz wird über
die Ziel-Latchstufe (DLA) 3111 an den Verschiebungsdecodierer 2003 geliefert.
-
Der Zwischenwortadressdecodierer
erzeugt Maskierungsinformation auf Grundlage der vier Bits niedriger
Ordnung der im Speicheradressregister 3311 zwischengespeicherten
Adressinformation sowie der Differenz zwischen den vier Bits niedriger Ordnung
der Quelladresse und der Zieladresse, wie sie in der Ziel-Latchstufe 3111 zwischengespeichert ist,
was abhängig
vom im Anweisungssteuerungsregister 230 gespeicherten Bitmodus
oder Übertragungsmodus
erfolgt, und er liefert die Maskierungsinformation an das Maskenregister 330.
-
Die 20(a) und 20(b) veranschaulichen die Funktion des
Ausführungsbeispiels
von 19. Es sind zwei Übertragungsmodi
dargestellt, die durch den im Anweisungssteuerungsregister 230 gespeicherten Übertragungsmodus
spezifiziert sind. 20(a) zeigt einen
1-Pixel-Übertragungsmodus, in
dem immer nur der Datenwert für
ein Pixel übertragen
wird. Als erstes wird eine Quelladresse (T2H, T2L) ausgewählt, aus
dem Bildschirmspeicher 13 wird ein 1-Wort-Datenwert, der
das Quellpixel enthält,
gelesen, und dieser wird über
den Lesedatenpuffer 3310 an das Umlaufschieberegister 3301 geliefert.
Andererseits berechnet die Einheit 3310 für arithmetisch-logische
Operationen die Differenz zwischen den vier Bits niedriger Ordnung
der Quelladresse und der Zieladresse, und im Umlaufschieberegister 3301 erfolgt
mittels des Verschiebungsdecodierers 2003 eine Verschiebung
um mehrere Bits. Das Zieladressregister (DPL, DPH in 3208)
wird ausgewählt,
es wird ein Datenwort, das die Zielpixelposition enthält, ausgelesen,
und dieses wird über
den Lesedatenpuffer 3310 an die Einheit 3305 für logische
Operationen geliefert. Andererseits werden die vier Bits niedriger
Ordnung der Zieladresse durch den Zwischenwortadressdecodierer 2002 decodiert, der
die die Zielpixelposition spezifizierende Maskierungsinformation
erzeugt. Die Einheit 3303 für logische Operationen führt eine
Substitutionsoperation am Ausgangssignal des Umlaufschieberegisters 3301 nur
für diejenigen
Bitpositionen des 1-Wort-Datenwerts für das Ziel aus, die durch die
Maskierungsinformation spezifiziert sind. Das Operationsergebnis wird über den
Schreibdatenpuffer 3306 an der Zieladresse des Bildschirmspeichers
gespeichert. Durch Wiederholen der 1-Pixel-Übertragungsverarbeitung bei
sequentiellem Aktualisieren der Quelladresse und der Zieladresse
kann ein großes
Datenvolumen mit hoher Geschwindigkeit unabhängig von Wortgrenzen des Speichers übertragen
werden.
-
Fig. 20(b) veranschaulicht
die Funktion im Mehrpixel-Übertragungsmodus.
Der Adressendecodierer 2002 stellt an mehreren, durch die Übertragungsmodusbits
im Anweisungssteuerregister 230 spezifizierten Bitpositionen
den Wert "1" ein. Demgemäß wird höhere Geschwindigkeit
erzielt, wenn mehrere horizontal zusammenhängende Bits übertragen werden.
-
Gemäß dem vorliegenden Ausführungsbeispiel
können
selbst dann, wenn Daten für
mehrere Pixel in einem Wort des Bildschirmspeichers gespeichert
sind, die Pixeldaten mit der dreifachen Geschwindigkeit des Speicherzugriffs
an eine oder mehrere Pixelpositionen übertragen werden, d. h. durch Lesen
der Quelle, durch Lesen des Ziels und durch Schreiben des Ziels.
Demgemäß wird Übertragung mit
hoher Geschwindigkeit erzielt. Durch den Teil GBM des Registers 230 kann
einer von fünf
Betriebsmodi (siehe 8) ausgewählt werden.
-
21 veranschaulicht
die Übertragung
eines 1-Pixel-Datenwerts im Modus mit vier Bits/Pixel. Es wird der
das Quellpixel enthaltende Datenwert eines Worts gelesen, und nur
der zugehörige
Quellpixel-Datenwert wird an die Zielpixelposition übertragen. 22 zeigt den Ablauf der Übertragungsverarbeitung.
Ein Wort im Bildschirmspeicher 13, das das Quellpixel enthält, wird
gelesen und im Lesedatenpuffer 3310 zwischengespeichert.
Andererseits wird die Differenz zwischen den vier Bits niedriger
Ordnung der durch das Quellpixel spezifizierten Adressinformation
und den vier Bits niedriger Ordnung der durch das Zielpixel spezifizierten
Adressinformation berechnet. Die Differenz repräsentiert die Differenz zwischen
den Bitpositionen des Quellpixels und des Zielpixels. Der gelesene
Quelldatenwert wird durch das Umlaufschieberegister 3310 so
verschoben, dass das Quellpixel (Cs) mit der Zielpixelposition ausgerichtet
ist. Dann wird ein Wort, das das Zielpixel (Cd) enthält gelesen,
und es wird durch die Einheit 3305 für logische Operationen einem
Operationsvorgang mit dem Quellpixel (Cs) unterzogen. Da die Maskierungsinformation
nur an der Zielpixelposition den Wert "1" enthält, wird nur ein Pixel an der
Zielposition aktualisiert, und es werden die Schreibdaten erzeugt.
Zur logischen Operation gehören
eine Austausch- und eine Logikoperation. In einem anderen Modus
als demjenigen mit vier Bits/Pixel ist das Format der Maskierungsinformation
verschieden, jedoch ist die Operation ähnlich.
-
Gemäß dem vorliegenden Ausführungsbeispiel
kann selbst dann, wenn der Datenwert für ein Pixel durch mehrere Bits
repräsentiert
ist, dieser Pixeldatenwert mit der dreifachen Geschwindigkeit des Speicherzugriffs
an eine beliebige Pixelposition übertragen
werden, d. h. durch Lesen der Quelle, Lesen des Ziels und Schreiben
des Ziels.
-
Fig. 23 zeigt
die Verschieberichtung (SD) eines Zeigers für eine Übertragungsanweisung, wenn für die Pixeldatenübertragung
ein rechteckiger Bereich spezifiziert ist.
-
Es sind acht Beispiele (a)–(h) dargestellt.
Der Quellbereich und der Zielbereich können unabhängig spezifiziert werden.
-
Nun wird die Ablaufsteuerung erläutert, die die
Berechnung der Pixelposition bei der Übertragung einfach macht.
-
24 zeigt
Teile von 2 in Zusammenhang
mit der Ablaufsteuerung für
die Pixelposition. Das Flagregister 210 enthält einen
Codedecodierer 2101 und ein Coderegister 2102.
Das Flagregister 210 enthält ferner ein Bereichsflag,
das das Operationsergebnis widerspiegelt, ein Nullflag und ein Negativflag,
obwohl diese nicht dargestellt sind, da sie hier nicht erörtert werden.
In einem Befehlsregister 3207 wird ein Befehlscode eines
extern über
den FIFO 400 übertragenen
Befehls zwischengespeichert. Ein Teil der Information des Befehlscodes
wird an das Mikroprogramm-Adressregister 110 übertragen,
so dass das Mikroprogramm sukzessive ausgelesen wird und der Betrieb
unter dem vorbestimmten Verarbeitungsalgorithmus gesteuert wird.
-
Die Operationseinheit 300 führt die
Koordinatenoperation zum Berechnen der Zeichnungsadresse sowie die
Verarbeitung der Bildmusterdaten aus. Der Codedecodierer 2101 erzeugt
den Code auf Grundlage des Teils der Information des Befehlscodes
sowie der von einem anderen Element in der Operationseinheit 30 gelieferten
Information.
-
Das Coderegister 2102 führt für die durch den
Codedecodierer 2101 erzeugten Codedaten eine Zwischenspeicherung
aus. Ein im Mikroanweisungsdecodierer 200 angeordneter
Modusdecodierer 2009 decodiert das Verarbeitungsmodusfeld
des Befehls, um den Ablauf zu steuern.
-
Die 25(a)–25(e) zeigen Formate (CDT) eines
Kopier (Übertragungs)befehls.
Dazu gehören ein
Wort (16 Bits) des Befehlscodes sowie vier Wörter von Parametern 1– 4. Durch
Einstellen der Parameter kann die Durchrasterrichtung bei der Übertragung
ausgewählt
werden.
-
26 zeigt
eine schematische Ansicht des Betriebs durch den Kopierbefehl. Die
Parameter Xs und Ys bilden die Startpunktkoordinate des Quellbereichs 13s.
Die Parameter DX und DY definieren die Richtung und die Größe des Bereichs.
Wenn DX > 0 gilt,
wobei Xs und Ys den Ursprung bilden, ist der Bereich nach rechts
gerichtet, wenn DX < 0
gilt, ist er nach links gerichtet, wenn DY > 0 gilt ist er nach oben gerichtet, und
wenn DY < 0 gilt,
ist er nach unten gerichtet, und die Größe ist durch die Absolutwerte
von DX und DY spezifiziert. Ein Bit S in 25(a) repräsentiert
die Prioritätsreihenfolge
zur Durchrasterung. Wenn S = "0" ist, hat die Horizontaldurchrasterung höhere Priorität, und wenn
S = "1" ist, hat die Vertikaldurchrasterung höhere Priorität.
-
Beim Ausführungsbeispiel von 24 wird das erste Wort des
von außen übertragenen
Befehls als Befehlscode erkannt und in das Befehlsregister 2307 eingespeichert.
Ein Mikroprogramm wird entsprechend den vier Bits hoher Ordnung
des Befehlscodes gestartet, um die Steuerung der Kopierverarbeitung
zu starten.
-
Das Bit S im Befehlscode sowie das
Feld DSD (25) werden über den
Codedecodierer 2101 an das Coderegister 2102 geliefert,
und das Verarbeitungsmodusfeld niedriger Ordnung im Befehlscode
wird durch den Modusdecodierer 2009 decodiert.
-
Die Parameter 1–4 werden sequentiell an das
Register 3102 (nicht dargestellt) in der Operationseinheit 300 geliefert.
Die Koordinate (X, Y) für
den aktuellen Zeichnungspunkt wird in das Register (CPX, CPY) eingespeichert.
-
Fig. 27(a) zeigt
eine Konfiguration des Coderegisters 2102. Das Coderegister
enthält
10-Bit-Information, wie es unten beschrieben ist. In 27(a) ist die in den Registern für den Kopierbefehl
gespeicherte Information durch Pfeile dargestellt.
-
(1) Q1
-
Es handelt sich um das erste Bit
zum Umschalten der Koordinatenregister X und Y. Im Kopierbefehl
wird es dazu verwendet, die Prioritätsreihenfolge für Durchrasterungen
in X- Richtung und Y-Richtung im Quellbereich 13S zu bestimmen.
Das Bit S des Befehlscodes wird auf Q1 gesetzt.
-
Wenn Q1 = "0" gilt, werden das X-Register und
das Y-Register auf die spezifizierte Weise ausgewählt, während dann,
wenn Q1 = "1" gilt, das Y-Register für X-Spezifizierung ausgewählt wird
und das X-Register für
Y-Spezifizierung ausgewählt
wird.
-
(2) Q2
-
Es handelt sich um das zweite Bit
zum Umschalten der Koordinatenregister X und Y. Im Kopierbefehl
wird es dazu verwendet, die Durchrasterungen für die X-Richtung und die Y-Richtung
im spezifizierten Bereich 13D umzuschalten. Das Bit 2 des Felds
DSD (25) des Befehlscodes wird auf
Q2 gesetzt.
-
Wenn Q = "0" gilt, werden das X-Register und
das Y-Register auf die spezifizierte Weise ausgewählt, und
wenn Q2 = "1" gilt, werden die Register unter Umkehrung der Spezifizierung
für X und
Y ausgewählt.
-
(3) S1x
-
Es handelt sich um Zwei-Bit-Information,
die einen Operationscode für
die erste X-Richtung
enthält.
Normalerweise wählt
das Bit hoher Ordnung unter den zwei Bits Addition oder Subtraktion
aus, und das Bit niedriger Ordnung bestimmt, ob die Addition/Subtraktion
auszuführen
ist (wenn das Bit den Wert "1" aufweist) oder nicht (wenn das Bit
den Wert "0" aufweist).
-
Im Kopierbefehl wird der Code des
Parameters DX auf das Bit hoher Ordnung gesetzt, und "1" wird als
Bit niedriger Ordnung eingetragen. Das Bit hoher Ordnung wird als
Information zum Spezifizierten des Operationscodes in der X-Richtung
des Quellbereichs 13S verwendet.
-
(4) S1y
-
Es handelt sich um 2-Bit-Information,
die den Operationscode für
die erste Y-Richtung
enthält,
wie S1x, und sie wird zum Auswählen
der Operation verwendet.
-
Im Kopierbefehl werden der Code des
Parameters DY sowie "1" in das Bit hoher Ordnung bzw. das Bit niedriger
Ordnung eingetragen, um den Operationscode in der Y-Richtung des Quellbereichs 13S zu
spezifizieren.
-
(5) S2x
-
Es handelt sich um 2-Bit-Information,
die den Operationscode in der zweiten X-Richtung enthält. Im Kopierbefehl spezifiziert
sie den Operationscode in der X-Richtung im Zielbereich l3D.
Das Bit 1 des Felds DSD des Befehls wird in das Bit hoher Ordnung eingetragen,
und "1" wird in das Bit niedriger Ordnung eingetragen.
-
(6) S2y
-
Es handelt sich um 2-Bit-Information,
die den Operationscode in der zweiten Y-Richtung enthält. Im Kopierbefehl spezifiziert
sie den Operationscode in der Y-Richtung des Zielbereichs 13D.
Das Bit 0 des Felds DSD des Befehls wird in das Bit hoher Ordnung eingetragen,
und "1" wird in das Bit niedriger Ordnung eingetragen.
-
Zusammengefasst gesagt, können S1x,
S1y, S2x und S2y jeweils vier Zustände einnehmen, und wenn es
sich um "00" und "10" handelt, wird 0 addiert oder subtrahiert (d.
h. keine Operation), wenn es sich um "01" handelt, wird 1 addiert,
und wenn es sich um "11" handelt, wird 1 subtrahiert.
-
Im Kopierbefehl hat das Bit niedriger
Ordnung in jedem der Register S1x, S1y, S2x und S2y des Coderegisters 2102 den
Wert "1", wie oben beschrieben. In anderen Befehlen kann dieses
Bit geändert
sein.
-
28 zeigt
den Verarbeitungsablauf des Kopierbefehls. Der Inhalt zum Spezifizieren
der Register ist unten angegeben.
-
(1) Xs (Q1)
-
Wenn Q1 = "0" gilt, wird das Register
Xs spezifiziert, und wenn Q1 = "1" gilt, wird das Register Ys spezifiziert.
Es handelt sich um eine Koordinate in der ersten oder Hauptdurchrasterrichtung
des Quellbereichs 13S.
-
(2) Ys (Q1)
-
Wenn Q1 = "0" gilt, wird das Register
Ys spezifiziert, und wenn Q1 = "1" gilt, wird das Register Xs spezifiziert.
Es handelt sich um eine Koordinate in der zweiten Durchrasterrichtung
des Quellbereichs 13S.
-
(3) X (Q2)
-
Wenn Q2 = "0" gilt, wird das Register
X spezifiziert, und wenn Q2 = "1" gilt, wird das Register Y spezifiziert.
Es handelt sich um eine Koordinate in der ersten oder Hauptdurchrasterrichtung
des Zielbereichs 13D.
-
(4) Y (Q2)
-
Wenn Q2 = "0" gilt, wird das Register
Y spezifiziert, und wenn Q2 = "1" gilt, wird das Register X spezifiziert.
Es handelt sich um eine Koordinate in der zweiten Durchrasterrichtung
des Zielbereichs 13D.
-
(5) S1x (Q1)
-
Wenn Q1 = "0" gilt, wird S1x ausgewählt, und wenn
Q1 = "1" gilt, wird S1y ausgewählt.
-
Es handelt sich um einen Code der
ersten (Prioritäts)Durchrasterrichtung
des Quellbereichs 13S.
-
(6) S1y (Q1)
-
Wenn Q1 = "0" gilt, wird S1x ausgewählt, und wenn
Q1 = "1" gilt, wird S1x ausgewählt.
-
Es handelt sich um einen Code der
zweiten Durchrasterrichtung des Quellbereichs 13S.
-
(7) S2x (Q2)
-
Wenn Q2 = "0" gilt, wird S2x ausgewählt, und wenn
Q2 = "1" gilt, wird S1y ausgewählt.
Es handelt sich um einen Code der ersten (Prioritäts)Abrasterrichtung
des Zielbereichs 13D.
-
(8) S2y (Q2)
-
Wenn Q2 = "0" gilt, wird S2y ausgewählt, und wenn
Q2 = "1" gilt, wird S2x ausgewählt.
Es handelt sich um einen Code der zweiten Durchrasterrichtung des
Zielbereichs 13D.
-
Gemäß 28 werden im Kopierbefehl die auf den
Befehlscode folgenden Parameter 1–4, d. h. Xs, Ys, DX und DY
sequentiell zugeführt
und in die Register in der Betriebseinheit 300 eingespeichert (Schritt S1).
-
Dann wird eine Linie in der ersten
(Prioritäts)Durchrasterrichtung
verarbeitet. Zu diesem Zweck werden Xs (Q1) und X (Q2), d. h. die
Startkoordinaten des Quellbereichs 13S und des Zielbereichs 13D in
der ersten (Prioritäts)durchrastemchtung
puffermäßig in anderen
Registern gespeichert (Schritt S2).
-
Dann wird die Pixelinformation an
der durch (Xs, Ys) spezifizierten Koordinate an die durch
(X, Y) spezifizierte Koordinate übertragen (Schritt S3).
Vorstehend wurde die Übertragungsverarbeitung
für ein Pixel
beschrieben.
-
Dann werden die Codes S1x (Q1) und
S2x (Q2) zu den Koordinaten Xs (Q1) und X (Q2) in der ersten Durchrasterrichtung
des Quellbereichs 13S und des Zielbereichs 13D addiert.
D. h., dass die spezifizierten Koordinatenpunkte der jeweiligen
Bereiche um ein Pixel in der ersten Durchrasterrichtung verschoben
werden (Schritt S4).
-
Die Schritte S3 und S4 werden
wiederholt, bis der spezifizierte Koordinatenpunkt den Endpunkt einer
Linie erreicht (Schritt S5).
-
Am Ende der Verarbeitung für eine Linie
werden, wenn die Entscheidung im Schritt S5 bejahend ist,
Xs (Q1) und X (Q2) rückgesetzt
(Schritt S6) und es werden die Codes S1y (Q1) und S2y (Q2)
zu den Koordinaten Ys (Q1) und Y (Q2) für die zweite Durchrasterrichtung
addiert, und es wird die Startpunktkoordinate für die zweite Linie eingestellt
(Schritt S7).
-
Die Schritte S2–S7 werden
wiederholt, bis die Linienverarbeitung in der zweiten Durchrasterrichtung
abgeschlossen ist, d. h., bis die Entscheidung im Schritt S8 bejahend
ist, so dass alle Daten des Quellbereichs 13S übertragen
sind.
-
Gemäß dem vorliegenden Ausführungsbeispiel
können
verschiedene Zeigerdurch rastermodi bei einer Bereichsdatenübertragung
durch den einzelnen, in 28 dargestellten
Prozessablauf erzielt werden, so dass die Steuerungsinformation
(z. B. ein Mikroprogramm) deutlich reduziert oder vereinfacht werden
kann.
-
Die Erfindung kann in gleicher Weise
auf einen anderen Befehl oder einen Musterbefehl angewandt werden.
-
Die 27(b) und 27(c) zeigen Formate des Musterbefehls.
Er umfasst einen Befehlscode mit einem 16-Bit-Wort sowie einen 1-Wort-Parameter.
-
Der Musterbefehl wird dazu verwendet,
die im Musterspeicher in der Bildmuster-Verarbeitungsvorrichtung gespeicherte
Musterinformation im Bildschirmspeicher zu entwickeln. Durch Auswählen des Betriebsmodus
des Befehls können
vom Zeiger verschiedene Durchrasterungen ausgeführt werden.