DE3853489T2 - Grafik-Anzeigesystem. - Google Patents

Grafik-Anzeigesystem.

Info

Publication number
DE3853489T2
DE3853489T2 DE3853489T DE3853489T DE3853489T2 DE 3853489 T2 DE3853489 T2 DE 3853489T2 DE 3853489 T DE3853489 T DE 3853489T DE 3853489 T DE3853489 T DE 3853489T DE 3853489 T2 DE3853489 T2 DE 3853489T2
Authority
DE
Germany
Prior art keywords
memory
line
pixel
processor
bit
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.)
Expired - Fee Related
Application number
DE3853489T
Other languages
English (en)
Other versions
DE3853489D1 (de
Inventor
Robert Lockwood Mansfield
Marc Segre
Alexander Koos Spencer
Clair Joe Christopher St
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE3853489D1 publication Critical patent/DE3853489D1/de
Application granted granted Critical
Publication of DE3853489T2 publication Critical patent/DE3853489T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/36Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
    • G09G5/39Control of the bit-mapped memory
    • G09G5/393Arrangements for updating the contents of the bit-mapped memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Image Generation (AREA)
  • Controls And Circuits For Display Device (AREA)
  • Digital Computer Display Output (AREA)

Description

  • Diese Spezifikation gehört zu einer Gruppe von sieben Spezifikationen, die jeweils eine andere Erfindung betreffen, jedoch ein gemeinsames exemplarisches Ausführungsbeispiel haben. Um Beschreibungen nicht unnötig zu wiederholen, verweisen alle sieben Spezifikationen aufeinander. Es handelt sich dabei um:
  • EP-A-0 279 225, (AT 986 070) Titel: "ZÄHLER MIT VERÄNDERBARER VERSCHALTUNG ZUR ADRESSIERUNG IN GRAPHISCHEN ANZEIGESYSTEMEN"
  • EP-A-0 279 229, (AT 986 072) Titel: "GRAPHISCHES ANZEIGESYSTEM"
  • EP-A-0 279 231, (AT 986 073) Titel: "STEUERUNGSEINHEIT FÜR GRAPHIKFUNKTIONEN FÜR EIN HOCHLEISTUNGSBILDSCHIRMANZEIGESYSTEM"
  • EP-A-0 279 226, (KI 986 029) Titel: "HOCHAUFLÖSENDER ANZEIGEADAPTER"
  • EP-A-0 279 227, (YO 986 051) Titel: "VEKTORGENERATOR FÜR RASTERANZEIGE"
  • EP-A-0 279 230, (YO 986 104) Titel: "VIDEOADAPTER MIT VERBESSERTER DATENWEGSTEUERUNG"
  • EP-A-0 279 228, (YO 986 105) Titel: "RAHMENPUFFER IN EINER ODER FÜR EINE VIDEOANZEIGE MIT RASTERFÖRMIGER ABTASTUNG"
  • Die vorliegende Erfindung betrifft ein Grafik-Anzeigesystem.
  • Die Entwicklung der Computer-Technologie hat zur Bildung eines komplexen Fachgebietes geführt, das sich mit der Darstellung graphischer Informationen befaßt, die von Computern erzeugt werden. Dieses Fachgebiet wird als Computergraphik bezeichnet. Ein Verfahren, das häufig verwendet wird, um ein Bild zu erzeugen, besteht darin, eine Gruppe von Punkten zu erzeugen und diese Punkte mit geraden Linien zu verbinden. Die dabei entstehende Kombination von Punkten und geraden Linien wird auf der Anzeige des Computergraphik-Endgeräts angezeigt, die im Normalfall eine Kathodenstrahlröhre (CRT, Cathode Ray Tube) umfaßt. Die Kathodenstrahlröhre umfaßt eine Anordnung von Bildelementen. Das graphische Bild entsteht, indem ausgewählte Bildelemente der Anordnung beleuchtet werden. Diese Anordnung der Bildelemente in einer Anzeige entspricht den Speicherstellen in einem Bildspeicher. Dieser Bildspeicher wird oft als Bitmap-Speicher bezeichnet. Die entsprechende CRT-Anzeige wird auch als Bitmap-Anzeige bezeichnet.
  • Eine sehr nützliche Funktion für Bitmap-Anzeigen ist die Möglichkeit, einen rechteckigen Block beleuchteter Bildelemente (Pixel) von einer Stelle des Bitmaps (oder der Anzeige) an eine andere Stelle zu verschieben und die beiden Untergruppen der Bildanordnung logisch zu verbinden, um eine dritte Bildanordnung zu erzeugen. Eine weitere nützliche Funktion besteht darin, Linien zwischen zwei Punkten zu zeichnen. Das Verfahren, das zum Zeichnen dieser Linien oft verwendet wird, ist in einem Text mit dem Titel Fundamentals of Interactive Computer Graphics von James D. Foley und Andries Van Dam beschrieben, der 1982 bei der Addison Wesley Publishing Company erschien.
  • Beschreibungen graphischer Funktionen sind in mehreren IBM Technical Disclosure Bulletins enthalten. IBM Technical Disclosure Bulletin, Bd. 28, Nr. 6, November 1985, mit dem Titel "Graphic Bit-Blt Copy Under Mask" beschreibt ein System zur Durchführung von Bitgrenzblockübertragungen beliebiger Form innerhalb eines Rahmenpuffers. IBM Technical Disclosure Bulletin, Bd. 27, Nr. 8, 1985, mit dem Titel "Raster Graphics Drawing Hardware" beschreibt die Anwendung programmierbarer Logik-Anordnungen auf die Gestaltung von Hardware- Schaltungen, die Graphik-Zeichenalgorithmen implementieren. IBM Technical Disclosure Bulletin, Bd. 28, Nr. 5, Oktober 1985, mit dem Titel "Circuit for Updating Bit Map-Memory of A Display Adapter" beschreibt einen Schaltkreis, der Flexibilität bei der Bit-Manipulation bietet, um Bildelementdaten zu steuern, die in einem Anzeigespeicher gespeichert sind, bei dem alle Punkte adressierbar sind.
  • In der US-Patentschrift Nr. 4.561.572 wird ein Speichersystem für eine Graphikanzeige beschrieben, das die Geschwindigkeit der Verarbeitung von Graphikdaten verbessert, indem es eine Matrix von N mal M Bits im Speicher in einem Speicherzyklus adressiert.
  • Es ist ein Ziel der vorliegenden Erfindung, ein Graphikanzeigesystem bereitzustellen, das eine schnelle Übertragung von Bildinformationen in einen Bildspeicher erlaubt, insbesondere in Verbindung mit häufigen Graphikoperationen wie Bitblockübertragung und Linienzeichnen.
  • Bereitgestellt werden gemäß der Erfindung ein Graphikanzeigesystem zur Verarbeitung anzuzeigender Graphikinformationen, ein Bitmapspeicher zur Speicherung verarbeiteter Graphikinformationen für die Anzeige auf einem Anzeigegerät mit rasterförmiger Abtastung, das mit dem Speicher verbunden ist, wobei jede Bitposition in diesem Speicher zu einem Bildelement auf dem Anzeigegerät gehört, ein Adressierungsmittel, das zum Zugriff auf eine Matrix von N mal M Bitpositionen in diesem Speicher angepaßt ist, wobei N und M ganze Zahlen größer als 1 sind, und zwar während einer einzigen Speicherzykluszeit, so daß auf eine N-mal-M- Matrix von Bildelementen zur Aktivierung innerhalb eines einzigen Speicherzyklus zugegriffen werden kann, gekennzeichnet durch ein Schreibsteuerungsmittel, das zum Empfang von Graphikinformationen aus dem Verarbeitungsmittel angeschlossen ist, und einen Decodierer umfassend, der auf Steuerungssignale aus dem Verarbeitungsmittel reagiert, die festlegen, ob als Graphikoperation entweder eine Bitblockübertragung oder das Zeichnen einer Linie durchgeführt werden soll, um diese Informationen gemäß den von einer Adreßlogik erzeugten Adressen an Bitpositionen in dem Speicher zu leiten, wobei diese Bitpositionen jeweils zu bestimmten ausgewählten Bildelementen gehören, die einen Block bilden, der innerhalb einer adressierten N-mal-M-Matrix zu aktivieren ist, oder zu bestimmten ausgewählten Bildelementen, die entlang einem Segment einer zu zeichnenden Linie zu aktivieren sind und in die adressierte N-mal-M- Matrix fallen.
  • Die vorliegende Erfindung wird weiter exemplarisch unter Verweis auf ein Ausführungsbeispiel beschrieben, das in den beigefügten Zeichnungen dargestellt ist. Dabei gilt:
  • Figur 1 ist ein Blockdiagramm, das einen Anzeigeadapter- Schaltkreis darstellt, der an einen Prozessor und einen Monitor angeschlossen ist.
  • Figur 2 ist ein Diagramm, das die Organisation des Bitmap- Speichers 22 darstellt.
  • Figur 3 ist ein Zeitablaufdiagramm, das die Zeitsteuerungssignale darstellt, die dem Bitmap-Speicher 22 von dem Pixelprozessor 18 geliefert werden.
  • Figur 4 ist eine Darstellung eines Teils eines Anzeigebildschirms, die die Anzeige einer 4-x-4-Pixel-Matrix auf einer Rasteranzeige darstellt.
  • Figur 5 stellt die Adreßkonvention für eine 4-x-4-Pixel- Matrix dar.
  • Figur 6 ist ein Blockdiagramm des Pixelprozessors 18.
  • Figur 7A stellt eine Bitblock-Übertragungsfunktion dar.
  • Figur 7B stellt eine Linienzeichenfunktion dar.
  • Figur 8A ist ein Ablaufdiagramm für die Aufgabe der Bitblockübertragung.
  • Figur 8B ist ein Ablaufdiagramm für die Aufgabe des Linienzeichnens.
  • Figur 9 ist ein Blockdiagramm, das die Schreibfreigabemasken- Schaltung des Pixelprozessors 18 darstellt.
  • Figur 10 ist ein Ablaufdiagramm, das den Betrieb der Steuerungsschaltung für den Pixelprozessor 18 mit der Schreibfreigabemasken-Schaltung darstellt.
  • Figur 11 ist ein Zeitablaufdiagramm, das den Steuerungsablauf des Pixelprozessors 18 für einen Einrichtungszyklus zeigt.
  • Figur 12 ist ein Zeitablaufdiagramm, das die Durchführung einer Speicherzyklus-Speicheroperation durch die Steuerungsschaltkreise des Pixelprozessors 18 zeigt.
  • Figur 13 ist eine Darstellung einer 4-x-4-Pixel-Matrix für eine Bitblockübertragungsoperation.
  • Figur 14 ist eine Darstellung einer vierteiligen Matrix eines Anzeigebildschirms, die die internen Pixeladressen enthält.
  • Figur 15 ist eine Darstellung einer Musterlinie.
  • Figur 16 ist eine Darstellung zweier sich schneidender Linien, wobei das Muster der einen Linie auf der anderen fortgesetzt wird.
  • Figur 17 ist eine Darstellung von zwei Linien, von denen Teile aus einem aktiven Anzeigebereich herausragen.
  • Diese Adapterschaltung ist ein hochauflösender Graphik- Anzeigeadapter, der in dem beschriebenen Ausführungsbeispiel eine Anzeigemonitoreinheit IBM 5081 steuert. Dieser Schaltkreis liefert eine Auflösung von 1024 x 1024 Bildelementen mit 256 simultanen Farben aus einer Palette von 4096 möglichen Farben. Nachstehend folgt eine allgemeine Beschreibung dieses Anzeigeadapterschaltkreises.
  • Anzeigeadapter - Allgmeine Beschreibung
  • Figur 1 ist ein Blockdiagramm, das den zum Betrieb angeschlossenen Anzeigeadapterschaltkreis 17 darstellt. Im einzelnen ist der Anzeigeadapterschaltkreis 17 durch einen System-I/O-Bus 11 an einen Systemprozessor 10 angeschlossen. Zusätzlich ist der Adapterschaltkreis 17 durch einen Ausgabebus 28 an einen RGB-Monitor 30 angeschlossen. Der Anzeigeadapterschaltkreis 17 umfaßt zwei Speicher 12A und 12B, die an einen Digitalsignalprozessor angeschlossen sind, der für das Ressourcen-Management des Schaltkreises verwendet wird und ferner der Umformung der Koordinaten dient. In dem beschriebenen Ausführungsbeispiel weist der Digitalsignalprozessor eine Harvard-Architektur auf, die getrennte Speicher für Daten und Befehle erfordert. Der Speicher 12A ist ein Befehls-RAM, das mit Mikrocode geladen wird, um dem Signalprozessor 14 Befehle zu liefern. Der Speicher 12B ist ein Daten-RAM, das eine primäre Schnittstelle zwischen dem Signalprozessor 14 und dem Systemprozessor 10 darstellt und auch den Hauptdatenspeicher für den Signalprozessor 14 bildet. In dem beschriebenen Ausführungsbeispiel werden für den Speicher 12B 256 kByte Speicherplatz bereitgestellt. In diesem Ausführungsbeispiel hat jedoch der Digitalsignalprozessor nur einen Adreßraum von 128 kByte. Daher wird ein Bankauswahlmechanismus bereitgestellt. Außerdem kann in diesem beschriebenen Ausführungsbeispiel ein Speicher, der sich außerhalb des Adapterschaltkreises 17 befindet, in den Adreßraum des Digitalsignalprozessors 14 abgebildet werden.
  • Ein FIFO-Puffer 13 (first-in, first out, zuerst Abgelegtes wird zuerst bearbeitet) wird bereitgestellt, um sequentielle Anzeigebefehle von dem Datenspeicher 12B zu dem Digitalsignalprozessor 14 weiterzuleiten. Ferner ist über den Bus 16 ein Befehls-ROM 15 angeschlossen, um für den Digitalsignalprozessor 14 die Einschalt- und Selbsttest- Befehlsmikrocodeprogramme zu liefern.
  • Ein Pixelprozessor (Bildelementprozessor) 18 ist ebenfalls an den Bus 16 angeschlossen. Die Funktion des Pixelprozessors 18 besteht darin, Linien zu zeichnen, die Manipulation von Datenbereichen auf dem Anzeigebildschirm zu ermöglichen und für die Steuerung des Bitmap-Speichers zu sorgen. Diese Manipulation von Bereichen auf dem Anzeigebildschirm wird als Bitblockübertragung oder BITBLT bezeichnet. Der Pixelprozessor 18 umfaßt auch Steuerungs- und Statusregister, die es neben anderen Funktionen dem Systemprozessor 10 ermöglichen, den Signalprozessor 14 zu unterbrechen, zu deaktivieren oder zurückzusetzen, und es dem Signalprozessor 14 ermöglichen, den Systemprozessor 10 zu unterbrechen.
  • Der Pixelprozessor 18 ist über den Bus 20 an einen Bitmap- Speicher 22 angeschlossen. Der Bitmap-Speicher 22 ist in der Form 1024 x 1024 x 8 Bit organisiert. Der Bitmap-Speicher 22 bietet ferner die Möglichkeit, eine Überlagerungsebene bereitzustellen, die dazu verwendet werden kann, die Daten auf der Anzeige blinken zu lassen oder hervorzuheben.
  • An den Bitmap-Speicher 22 ist über den Bus 24 eine Videostufe 26 angeschlossen, die die Daten im Bitmap-Speicher 22 in ein Videosignal für den Videomonitor 30 umwandelt. Diese Videostufe 26 vollzieht diese Umwandlung über einen Digital- Analog-Schaltkreis. In der Videostufe 26 befindet sich auch ein Farbpalettenschaltkreis, der 256 gleichzeitig darstellbare Farben aus einer größeren Palette von Farben bietet. Dies wird durch Video-Verweistabellen erreicht, die den Wert im Bitmap in einen Wert mit mehr Bits übersetzen, so daß eine größere Auswahl von Farben zur Verfügung steht. Mit dieser größeren Auswahl von Werten, die von der Farbpalette zur Verfügung gestellt werden, stehen mehr Farben zur Verfügung, als bei Verwendung der Bits im Bitmap-Speicher 22 allein zur Verfügung stünden.
  • An die Videostufe 26 ist über den Bus 24 ein Hardware-Cursor 21 angeschlossen, der ein Vollbild-Fadenkreuz und/oder einen bitprogrammierbaren Cursor bereitstellt. Das Vollbild- Fadenkreuz kann auf eine von mehreren Breiten programmiert werden. Außerdem kann dieses Fadenkreuz auch gekappt (verkleinert) werden, so daß sich verschiedene kleinere Größen ergeben.
  • In dem beschriebenen Ausführungsbeispiel verwendet der Anzeigeadapterschaltkreis 17 den Digitalsignalprozessor 14 als primäre Schnittstelle zu dem Systemprozessor 10. In diesem Ausführungsbeispiel handelt es sich bei dem Digitalsignalprozessor um einen Digitalsignalprozessor vom Typ Texas Instruments TMS 32020, der 5 Millionen Befehle pro Sekunde verarbeitet. Daher eignet er sich gut zur Ausführung von Aufgaben wie Matrixmultiplikationen, die zum Übersetzen, Skalieren und Rotieren von Vektoren auf dem Bildschirm dienen. Dieser Digitalsignalprozessor kann einen Datenbereich von 64 kByte mit 16-Bit-Wörtern und einen ebenso großen Befehlsbereich adressieren. Wie bereits erwähnt, kann sich ein Teil des Datenbereichs innerhalb des Adapterschaltkreises 17 oder entfernt von dem Adapterschaltkreis 17 befinden. Der Digitalsignalprozessor kann durch den Signalprozessor 10 oder durch den Pixelprozessor 18 unterbrochen werden. Der Pixelprozessor 18 erzeugt beim Auftreten einer Aufgabe- abgeschlossen-Bedingung oder der Bedingung, bei der ein vertikaler Rücksprung begonnen wurde, Unterbrechungen des Digitalsignalprozessors 14 oder des Systemprozessors 10. Außerdem umfaßt der Digitalsignalprozessor 14 auch einen Zeitgeber, der dazu verwendet werden kann, die Zeit zwischen Anzeigeaktualisierungen zu steuern.
  • Das ROM 15 enthält die Einschalt-Befehlssequenz für den Digitalsignalprozessor 14. In dem beschriebenen Ausführungsbeispiel enthält das ROM 15 16 kByte Informationen und beherbergt ein Einschalt-Selbsttestprogramm sowie ein Graphikanzeigeadapter-Emulationsprogramm. Das Einschalt- Selbsttestprogramm liefert eine Meldung, daß der Adapterschaltkreis 17 unmittelbar nach einer Einschaltbedingung oder einer Reset-Bedingung ordnungsgemäß funktioniert.
  • Das Daten-RAM 12B bietet 256 kByte RAM im Adapterschaltkreis 17, die der Signalprozessor 14 als Speicher benutzen kann. 1 kByte des Datenbereichs von 256 kByte wird durch die internen Register des Signalprozessors 14 überlagert. Der Datenspeicher 12B besteht aus dynamischem RAM, das durch eine Logik innerhalb des Anzeigeadapterschaltkreises 17 aufgefrischt wird. Dieser Speicher wird in einem Seitenmodus betrieben, so daß Zugriffe auf zwei Wörter, die auf dieselbe Seite (d.h. in dem beschriebenen Ausführungsbeispiel in die acht höherwertigen Adreßbits) geladen sind, für den Digitalsignalprozessor 14 keinen Wartezustand erfordern. Zugriffe auf Wörter auf einer neuen Seite führen zu einem einzelnen Wartezustand. Daher steigert das häufige Suchen nach referenzierten Daten in internen Registern oder nach auf einer einzigen RAM-Seite zusammengruppierten Daten die Leistung, da keine Wartezustände anfallen. Zwar ist die Datenadressierungskapazität des Digitalsignalprozessors 14 auf 64 kWörter beschränkt ist, doch wird ein Bankauswahlmechanismus bereitgestellt, der seinen Adreßraum erweitert. Dieses Schema ermöglicht den vollen Zugriff auf den Datenspeicher 12B. Zur Zeit sind vier Bänke implementiert (64 kByte pro Bank ergibt 256 kByte). Die Adreßlogik in der Architektur ermöglicht in diesem beschriebenen Ausführungsbeispiel jedoch bis zu 16 Bänke. In diesem Ausführungsbeispiel ist das RAM mit zwei Ports versehen, so daß der Systemprozessor 10 und der Signalprozessor 14 gleichzeitig Zugriff auf ihn haben. Da beide Prozessoren 10 und 14 leichten Zugriff auf diesen Speicher haben, stellt er einen günstigen Kommunikationskanal zwischen den beiden Prozessoren 10 und 14 dar. In diesem Ausführungsbeispiel kann der Signalprozessor 14 auch einen Speicher adressieren, der sich als Erweiterung dieses Daten-RAMs 12B entfernt von dem Anzeigeadapterschaltkreis 17 befindet, indem er zuerst als Erstpartei-Bushauptkontrolle auf Bus 11 wirkt. Auf den Speicher auf dem I/O-Bus 11 wie auch auf den Speicher im Hauptspeicher des Systemprozessors 10 kann auf diese Weise zugegriffen werden. Der Signalprozessor 14 kann eine volle 24-Bit-Adresse auf den Bus 11 geben und hat daher die Möglichkeit, 16 MByte Speicher zu adressieren. Die Zuordnung des Datenbereichs, der sich entfernt vom Adapterschaltkreis 17 befindet, wird durch ein Bank-/Erweiterungsadreßregister innerhalb des Signalprozessors 14 gesteuert. Der 16-Bit- Adreßbus des Signalprozessors 14 wird mit diesem Register auf 24 Bit erweitert. Der Zugriff kann im Stoßbetrieb, im gepufferten Betrieb und einzeln erfolgen. Die Länge des Stoßes im Stoßbetrieb kann über die Software gesteuert werden. Vier bis sechzehn Wartezustände sind für den Zugriff auf den entfernten Speicher erforderlich.
  • Der Befehlsspeicher 12A stellt in diesem Ausführungsbeispiel 128 kByte Speicher zur Verfügung, die der Digitalsignalprozessor 14 als Befehlsbereich verwenden kann. Dies kommt zusätzlich zu dem Befehlsbereich hinzu, der durch das ROM 15 bereitgestellt wird. Wenn jedoch das ROM 15 einem Befehlsbereich zugeordnet wird, überlagert es eine entsprechende Menge des Befehls-RAMs 12A. Dies geschieht, weil der Digitalsignalprozessor nur einen Gesamtbefehlsbereich von 128 kByte adressieren kann. Der Befehlsspeicher 12A besteht aus dynamischem RAM, das durch eine Logik auf dem Adapterschaltkreis 17 aufgefrischt wird. Der Befehlsspeicher 12A wird in einem Seitenmodus betrieben, so daß der Zugriff auf Wörter, die sich auf derselben Seite (d.h. auf denselben acht höherwertigen Adreßbits) befinden, für den Digitalsignalprozessor 14 keinen Wartezustand erfordert. Zugriffe auf eine neue Seite führen zu einem einzelnen Wartezustand. Daher läßt sich eine maximale Ausführungsgeschwindigkeit erzielen, indem häufig ausgeführte Codeschleifen auf derselben Seite innerhalb des Befehlsspeichers 12A oder innerhalb des internen Befehlsspeichers des Signalprozessors 14 abgelegt werden. Dieser Befehlsspeicher 12A ist ebenfalls mit zwei Ports versehen, so daß der Systemprozessor 10 und der Signalprozessor 14 gleichzeitig Zugriff auf ihn haben.
  • Der FIFO-Puffer 13 hat eine Länge von 1 kWort. Wenn im Puffer 13 Platz ist, kann der Systemprozessor 10 Befehle und/oder Daten in diesen Puffer laden und dadurch den Zugriff darauf dem Digitalsignalprozessor 14 ermöglichen, der auf diese Informationen dann sequentiell zugreifen kann. In diesem Ausführungsbeispiel werden Anzeigeinformationen von dem Systemprozessor 10 bereitgestellt. Der Puffer 13 umfaßt drei Flags (Leer-Flag, Halbvoll-Flag und Voll-Flag), die von dem Systemprozessor 10 gelesen werden können, um festzustellen, ob in dem Puffer 13 noch Platz zum Schreiben weiterer Informationen ist. Zusätzlich gehören zu dem Puffer 13 neben den Flags drei Unterbrechungen: eine Halbvoll-Unterbrechung, eine Halbleer-Unterbrechung und eine Pufferüberlauf- Unterbrechung. Die beiden ersten können verwendet werden, um Schreiboperationen in den Puffer 13 zu dosieren, ohne die Flags abzurufen, während das letzte im Normalfall als Fehlerbedingung gelten würde. Der Digitalsignalprozessor 14 hat ebenfalls Zugriff auf die Flags, um festzustellen, ob weitere Informationen aus dem Puffer 13 gelesen werden können.
  • Der Pixelprozessor 18 unterstützt den Signalprozessor bei der raschen Aktualisierung des Bitmap-Speichers 22. Der Pixelprozessor 18 kann entweder Linien in den Bitmap-Speicher 22 zeichnen oder rechteckige Datenbitblöcke im Bitmap- Speicher 22 manipulieren (BITBLT). Beim Linienzeichnen erhält der Pixelprozessor 18 entweder die Endpunkte der Linie mit den Bresenham-Parametern, die von dem Pixelprozessor 18 berechnet wurden, oder die Endpunkte gemeinsam mit den Parametern, die Bresenhams inkrementaler Linienzeichenalgorithmus benötigt. Das letztere Konzept ermöglicht eine bessere Kontrolle über die Vektor-Raster- Übersetzung und kann für Sonderfälle wie breite Linien nützlich sein. Zusätzlich werden die Linienattribute Farbe und Muster direkt von dem Pixelprozessor 18 unterstützt. Die Unterstützung des Attributes Linienbreite erfordert ein gewisses Eingreifen des Signalprozessors 14. Linien können im Ersetzen-Modus, im Exklusiv-ODER-Modus oder im Linie-auf- Linie-Modus gezeichnet werden.
  • Bitblockübertragungen werden ebenfalls durch den Pixelprozessor 18 durchgeführt. Einige Bitblockübertragungen arbeiten mit minimalen Prozessoreingriffen, während andere stärkere Eingriffe erfordern. Die Bitblockübertragung umfaßt den Betrieb einer Innenschleife und einer Außenschleife, und in diesem Ausführungsbeispiel ermöglicht es die Implementierung, daß die Innenschleife mit horizontaler oder vertikaler Orientierung erfolgen kann. Diese Option ist besonders nützlich, wenn Bilder von Zeichenketten in den Bitmap-Speicher 22 übertragen werden. Darüber hinaus verfügt der Pixelprozessor 18 über die Möglichkeit, Bitblockübertragungen ohne Farberweiterung vorzunehmen. Die Farberweiterung ist definiert als das Nehmen von Daten, bei dem jedes aktive Bit für ein Pixel von bekannter Farbe und eine Null für Transparenz steht (d.h. der Rahmenpuffer wird für diese Pixelposition nicht geändert). Dieser Modus bietet einen Leistungsvorteil, da jedes Datenwort nicht 2 sondern 16 Pixel des Bildschirmspeichers darstellt.
  • Bei der Verwendung der Farberweiterung ermöglicht es ein besonderes Merkmal, das zu der Direktschreibmaske, einer Möglichkeit des Pixelprozessors 18, gehört, daß das Objekt, das gerade übertragen wird, in eine beliebige der vier möglichen 90-Grad-Orientierungen rotiert wird.
  • Der Digitalsignalprozessor 14 oder der Systemprozessor 10 können eine aktive Region des Bitmap-Speichers 22 definieren, in der gezeichnet wird. Für Linienzeichen- und Blockübertragungsoperationen werden nur Pixel in den Bitmap- Speicher 22 geschrieben, die in diesen aktiven Bereich gezeichnet werden sollen. Linienzeichen- und Blockübertragungsoperationen, bei denen außerhalb dieses Bereichs gezeichnet wird, werden zwar ausgeführt, doch die sich ergebenden Pixelangaben werden nicht in den Bitmap- Speicher 22 geschrieben. Die Verwendung dieses aktiven Zeichenbereichs wird als Kappen bezeichnet.
  • Ein weiteres Merkmal des Pixelprozessors 18 ist das Wahlfenster. Dieses Fenster kann gegenüber dem Pixelprozessor 18 definiert werden, und wenn es aktiviert ist, verursacht jeder Zugriff auf den Rahmenpuffer innerhalb dieses Fensters bei dem Signalprozessor 14 eine Unterbrechung. Dies kann beim Zeichnen von Objekten verwendet werden, um einen beliebigen Teil des Objekts zu bestimmen, der in das angegebene Fenster fällt.
  • Der Pixelprozessor wird im Normalfall durch den Signalprozessor 14 gesteuert. Allerdings kann der Systemprozessor 10 den Signalprozessor deaktivieren und den Pixelprozessor direkt steuern. Der Pixelprozessor 18 wird unten noch näher beschrieben.
  • Der Bitmap-Speicher 22 besteht aus einem Video-RAM von 1 MByte Größe. Der Bitmap-Speicher 22 wird auf dem Bildschirm als ein 1024 x 1024 Pixel großes Bild mit acht Bit pro Pixel dargestellt. Der Pixelprozessor 18 wirkt als Schnittstelle zwischen dem Systemprozessor 10 oder dem Signalprozessor 14 und dem Bitmap-Speicher 22. Je nachdem, wie einige der Bits innerhalb des Pixelprozessors 18 gesetzt sind, wird der Bitmap-Speicher 22 entweder als zwei horizontal benachbarte Pixel oder als vier horizontal benachbarte Halbpixel gelesen (wobei ein Halbpixel definiert ist als entweder die ersten vier oder die letzten vier Bit eines ganzen Pixels). In allen Adressiermodi ist der Bitmap-Speicher 22 pixeladressierbar. Das heißt, daß das gerade adressierte Pixel mit Hilfe von X- und Y-Adreßregistern im Pixelprozessor bezeichnet wird.
  • Die Organisation des Bitmap-Speichers 22 ist in Figur 2 dargestellt. Die Pixel sind in Quadraten im Format 4 x 4 angeordnet. Jedes Pixel ist acht Bit tief. Die acht Bit stellen acht Ebenen 400 bis 407 dar. Pixelspeichermodule in derselben Reihe haben eine gemeinsame Reihenadressierungsimpuls-Leitung (RAS-Leitung, RAS = row address strobe). Diejenigen in derselben Spalte haben eine gemeinsame Spaltenadressierungsimpuls-Leitung (CAS-Leitung, CAS = column address strobe). Alle Pixelspeichermodule teilen sich dieselben Adreßleitungen. Sowohl die seriellen Datenleitungen, die zum Auffrischen des Bildschirms verwendet werden, als auch die parallelen Datenleitungen, die zum Lesen und Schreiben des Bitmaps verwendet werden, sind in Spalten verbunden. So können Daten aus einer von vier Schichten gelesen und in Akkumulatoren geladen werden. Jedes der 16 Pixelspeichermodule in der 4-x-4-Anordnung hat eine eigene Schreibfreigabe, die von dem Direktmaskenregister und den Bresenham-Linienzeichenschaltkreisen im Pixelprozessor 18 gesteuert wird.
  • Die RAS-Leitungen 410, 412, 414 und 416 sowie die CAS- Leitungen 418, 420, 422 und 424 werden verwendet, um Impulse für verschiedene Adressen in die Pixel zu schicken. Dadurch wird es möglich, daß der "Zugriff" eines quadratischen Wortes im Format 4 x 4, das durch die X- und Y-Pixeladreßregister adressiert wird, gegenüber den angezeigten Wörtern, die auf den Bildschirm getastet werden, versetzt ist. Figur 3 zeigt die Wellenformen für die RAS-Leitungen 410, 412, 414 und 416 sowie die CAS-Leitungen 418, 420, 422 und 424, die verwendet werden, um Impulse für die Adressen in den Pixelspeicher 22 zu schicken und das Zugriffswort gegenüber den angezeigten Wörtern auszurichten. Zu beachten ist, daß diese Pixelausrichtung von 4-x-4-Wörtern es ermöglicht, daß eine Ecke des Quadrats an den Anfang einer zu zeichnenden Linie gesetzt werden kann, und weil jedes Pixelspeichermodul eine unabhängige Schreibfreigabe aufweist, können 4 Pixel der Linie gleichzeitig gezeichnet werden, wie in Figur 4 dargestellt. Figur 5 stellt die Numerierung der Pixel in der 4-x-4-Anordnung dar.
  • Eine Überlagerungsebene, konkret Ebene 7 (407 in Figur 2), des Bitmap-Speichers 22 kann in Verbindung mit der Farbpalettenfunktion der Videostufe 26 dazu verwendet werden, eine Hervorhebung oder ein Blinken mit programmierbarer Geschwindigkeit hervorzurufen. Bei aktiviertem Blinken blinkt jedes Pixel, das eine 1 in dieser Ebene aufweist, mit der programmierten Blinkgeschwindigkeit. Bei aktivierter Hervorhebung hat eine 1 in der Überlagerungsebene Vorrang vor dem normalen Farbpalettenprozeß in der Videostufe 26 und setzt eine Farbe aus einer Überlagerungs-Farbpalette mit drei Einträgen ein. Zu beachten ist, daß die Verwendung der Überlagerungsebene die verfügbaren Farben für die Farbpalettenfunktion in der Videostufe 26 effektiv reduziert.
  • Die Videostufe 26 umfaßt, um noch einmal auf Figur 1 zurückzukommen, eine Farbpalettenfunktion. Die Farbpalette übersetzt die im Bitmap-Speicher 22 gespeicherten Acht-Bit- Werte in eine von 4096 Farben. Die Ausgabe dieser Farbpalettenfunktion liefert an drei Digital-Analog-Wandler je vier Bit. Die Digital-Analog-Wandler wiederum steuern die rote, die grüne und die blaue Farbkanone des Monitors 30. Jeder Vier-Bit-Abschnitt der Verweistabelle ordnet die 8 Eingabebits aus dem Bitmap einem von sechzehn Analogausgabepegeln zu. Die Farbpalettenfunktion kann durch den Signalprozessor 14 oder, wenn der Signalprozessor 14 deaktiviert ist, durch den Systemprozessor 10 geladen werden.
  • Der Hardware-Cursor bietet ein Vollbild-Fadenkreuz und/oder einen benutzerprogrammierbaren Cursor im Format 64 x 64. Das Vollbild-Fadenkreuz kann auf eine von mehreren Breiten programmiert und gekappt werden. Die Ausgabe des Hardware- Cursors wird in die Farbpalettenfunktion der Videostufe 26 eingespeist.
  • In Figur 1 liefert der Systemprozessor 10 dem Signalprozessor 14 Graphikanweisungen einer höheren Ebene. Status- und andere Informationen werden von dem Signalprozessor 14 an den Systemprozessor 10 weitergeleitet. Der Signalprozessor 14 spaltet die Graphikanweisungen einer höheren Ebene von dem Systemprozessor 10 in eine Reihe von Graphikbefehlen einer niederen Ebene auf, die dann über den Eingabebus 16 an den Pixelprozessor 18 weitergeleitet werden. Dieser Eingabebus 16 umfaßt Adreß-, Daten- und Steuerungsinformationen. Wenn der Signalprozessor 14 deaktiviert wurde, kann der Systemprozessor 10 Befehle einer niederen Ebene übertragen und mit Hilfe des Eingabebusses 16 Daten direkt von dem Pixelprozessor 18 abrufen. Der Zugriff auf den Bitmap- Speicher 22 wird durch den Pixelprozessor 18 gesteuert. Die Zugriffe auf den Bitmap-Speicher 22 erfolgen über den Bus 20, der Adreßdaten und Steuerungsinformationen liefert.
  • Pixelprozessor - Beschreibung
  • Ein Blockdiagramm des Pixelprozessors 18 ist in Figur 6 dargestellt. Die Steuerung des Bitmap-Speichers 22 bei der Ausführung von Graphikbefehlen einer niederen Ebene wird erreicht, indem Steuerungsparameter entweder vom Systemprozessor 10 oder vom Signalprozessor 14 über den Eingabebus 16 in die Steuerungslogik 44 des Pixelprozessors geschrieben werden. Diese Parameter werden innerhalb des dynamischen Steuerungsmechanismus 45 decodiert, wobei Steuerungs- und Zeitsignale für die anderen Teile der Pixelprozessorschaltung erzeugt werden, die über die Leitung 60 bereitgestellt werden. Die Endpunktadreßinformation für eine Anweisung einer niederen Ebene wird dem Pixelprozessor 18 durch den Pixelprozessor-Eingabebus 16 mitgeteilt und in der Eingabewarteschlange gespeichert, die sich in der Endpunktlogik 40 befindet. Je nachdem, was für eine Anweisung (Linienzeichnen oder Bitblockübertragung) gerade verarbeitet wird, werden verschiedene Operationen ausgeführt. Wenn eine Linienzeichenanweisung ausgeführt wird, werden die Endpunktdaten zur Berechnung der Parameter verwendet, die bei der Ausführung des Bresenham-Linienzeichenalgorithmus in der Adressenzähl-Logikschaltung 50 eingesetzt werden. Bei Blockübertragungsoperationen reiht die Endpunktlogik 40 die Eingabedaten einfach in eine Warteschlange ein, bis diese Daten zu der Adressenzähllogik 50 übertragen werden können. Die Übermittlung der Endpunkt und Linienzeichenparameter von der Endpunktlogik 40 zu der Adressenzähllogik 50 erfolgt über den Adreß-/Parameterbus 46. Wenn diese Parameter in die Adressenzähllogik 50 geladen sind, ist die Endpunktlogik 40 frei, um neue Endpunktdaten für die nächste Graphikanweisung anzunehmen. Die Adressenzähllogik 50 umfaßt einen Teil der vorliegenden Erfindung und verwendet die Parameter zur Erzeugung der Bitmap-Adressen, die zur Beendigung der zur Zeit ausgeführten Anweisung benötigt werden, und verwendet außerdem einige Parameter, um die Aufgabe in eine sequentielle Reihenfolge zu bringen und festzustellen, wann die Aufgabe beendet ist.
  • Die Adressenzähllogik 50 manipuliert Koordinaten in 10 Bitfeldern. Die oberen acht Bit des Feldes bilden die Bitmap- Speicheradressen 20. Die unteren zwei Bit der X- und der Y- Koordinate werden über den Pixelbus 56 zu der RAM- Steuerungseinheit 52 weitergeleitet, wo sie auf Leitung 20 in Bitmap-Steuerungssignale decodiert werden. Über den Pixelbus 56 werden sie auch zu der Datenweg-Mischlogik 54 weitergeleitet, wo sie zur Steuerung von Daten dienen, die gerade im Bitmap-Speicher 22 gespeichert oder aus diesem abgerufen werden. Die Datenweg-Mischlogik 54 dient als Brücke zwischen dem System- und dem Anzeigeprozessorbus und dem Datenbus 20 des Bitmap-Speichers. Die Daten des Systemprozessors können mit Hilfe der Mischlogik 54 zwischen Bitmap-Daten übertragen oder mit ihnen kombiniert werden. Daten, die zum und vom Systemprozessor 10 übertragen werden, werden von der Datenweg-Synchronisierungsschaltung 42 gesteuert und über den Mischbus 48 weitergeleitet.
  • Nachstehend folgt eine genauere Erläuterung der beiden wichtigsten Graphikaufgaben, die von dem Pixelprozessor 18 ausgeführt werden. Die beiden Aufgaben sind in den Figuren 7A und 7B dargestellt. Die Bitblockübertragungsaufgabe (Figur 7A) besteht aus dem Verschieben rechteckiger Datenblöcke von einem Ausgangsbereich des Bitmap-Speichers 22 zu einem Zielbereich des Bitmap-Speichers 22. Diese Aufgabe wird häufig verwendet, um Informationen über den Bildschirm "rollen" zu lassen oder ein Aufklappmenü anzuzeigen. Das Linienzeichnen (Figur 7B), das aus dem Verbinden von zwei Punkten im Bitmap-Speicher 22 durch eine gerade Linie besteht, ist ebenfalls eine häufig benutzte Funktion. Diese beiden Aufgaben bilden die Grundlage von Graphikoperationen einer höheren Ebene, wie etwa Bitblockübertragungen mit mehreren Ausgangspositionen, Musterlinien, Polygonzeichnungen usw. Aus diesem Grunde ist es wichtig, diese Grundfunktionen möglichst effektiv auszuführen.
  • In Figur 7A soll ein Datenblock von Position 128 nach Position 136 verschoben werden. Um eine Bitblockübertragung von der Ausgangsposition 128 zur Zielposition 136 durchzuführen, muß innerhalb des Pixelprozessors 18 folgende Ereignissequenz ablaufen. Sobald die Steuerungslogik 44 des Pixelprozessors 18 mit Steuerungsparametern geladen ist, um eine Bitblockübertragungsoperation durchzuführen, werden die Endpunktdaten für P1 (130) und P2 (138) gemeinsam mit dem Höhenparameter (134) und dem Breitenparameter (132) in die Endpunktlogik 40 (Figur 6) geladen. Bei der Ausführung einer Bitblockübertragungsoperation dient die Endpunktlogik als Speicherungszwischenebene, die die Parameter zu der Adressenzahllogik 50 (Figur 6) weiterleitet, wenn die Aufgabe begonnen wird. Das Laden des Y-Adreßwerts von P2 (138) ist für den Pixelprozessor 18 das Signal, mit der Ausführung der Aufgabe zu beginnen. An diesem Punkt beginnen die Adressen- und Parameterzähler innerhalb der Adressenzähllogik, auf die Bitmap-Speicherpositionen gemeinsam mit der Breitenabmessung der Bitblockübertragung zuzugreifen, wobei abwechselnd auf die Ausgangs- und die Zieladressen zugegriffen wird. Wenn eine Kette von Zugriffen entlang der Breitenabmessung abgeschlossen ist, werden die Adressenzähler automatisch gezählt und neu geladen, um mit der nächsten Zeile zu beginnen. Dieser Prozeß setzt sich fort, bis das untere Ende der Bitblockübertragung erreicht ist. Die Adressenzähler erzeugen eine zehn Bit lange Pixeladresse, und die oberen acht Bit dienen als Bitmap-Speicheradresse 20, während die unteren zwei Bit 56 als Pixeldecodierer in der RAM- Steuerungslogik 52 (Figur 6) und der Mischlogik 54 dienen. Die Mischlogik 54 nimmt die aus der Ausgangsposition eingelesenen Daten, richtet sie aus und gibt sie aus, damit sie an den Zielpositionen gespeichert werden.
  • Figur 7B stellt eine Linienzeichenaufgabe dar. Um eine Linienzeichenanweisung auszuführen, werden die Endpunkte der Linie, P1 (150) und P2 (152), in die Endpunktlogik 40 (Figur 6) geladen. Das Laden des Y-Adreßwerts von P2 (152) ist für den Pixelprozessor 18 das Signal, mit der Ausführung zu beginnen. An diesem Punkt beginnt die Endpunktlogik mit der Berechnung der verschiedenen Bresenham-Parameter, die zu der Linie gehören, die gezeichnet werden soll. Sobald dieser Berechnungsprozeß abgeschlossen ist, werden die Parameter an die Adressenzähllogik 50 weitergeleitet. Um diese Linienzeichenaufgabe auszuführen, beginnt die Adressenzähllogik, Pixeladressen für jedes Pixel der Linie zu erzeugen. Die oberen acht Bit der Adresse dienen wie vorher als Bitmap-Adresse 20. Die unteren zwei Bit 56 der Pixeladresse werden zu der RAM-Steuerungslogik 52 weitergeleitet, wo sie dazu verwendet werden, die entsprechenden Schreibfreigaben zum Zeichnen der Linie in das Bitmap zu erzeugen.
  • Figur 8A ist ein Software-Ablaufdiagramm, das die Bitblockübertragungsfunktion darstellt. Der Pixelprozessor 18 befindet sich im Leerlaufzustand 160, bis er die Endpunkte der Bitblockübertragung erhält, wie in Schritt 162 dargestellt. Wenn die Endpunkte noch nicht eingegangen sind, bleibt der Pixelprozessor 18 im Leerlaufzustand 160 und sucht nach den Endpunkten. Wenn die Endpunkte eingegangen sind, fährt der Pixelprozessor 18 mit Schritt 164 fort, um die Innen- und Außenschleifenwerte zu berechnen. In Schritt 166 beginnt das Erhöhen der Innenschleife mit der X-Pixeladresse, die zur Zeit erhöht wird. In Schritt 168 wird eine Entscheidung darüber getroffen, ob die Innenschleife abgeschlossen ist. Wenn die Innenschleife noch nicht abgeschlossen ist, kehrt der Prozessor zu Schritt 166 zurück. Wenn die Innenschleife abgeschlossen ist, fährt der Prozessor 18 mit Schritt 170 fort, um die Außenschleife fortzuschalten, das Y-Pixel zu setzen und den Innenschleifenzähler neu zu laden. In Schritt 172 wird eine Entscheidung darüber getroffen, ob die Außenschleife abgeschlossen ist. Wenn die Außenschleife noch nicht abgeschlossen ist, kehrt der Pixelprozessor 18 zu Schritt 166 zurück. Wenn doch, kehrt der Pixelprozessor 18 in den Leerlaufzustand 160 zurück.
  • Figur 8B stellt ein Ablaufdiagramm für den Bresenham- Linienzeichenalgorithmus dar. Der Bresenham-Algorithmus ist auf Seite 433-435 des Textes Fundamentals of Interactive Computer Graphics von James D. Foley und Andries Van Dam beschrieben, der 1982 bei der Addison Wesley Publishing Company erschien. Einer grob vereinfachten Erläuterung zufolge bestimmt der Bresenham-Algorithmus, welche Bildelemente in einer Anordnung von Bildelementen beleuchtet sein müssen, um eine Annäherung an eine gerade Linie darzustellen. Im Grunde ermittelt der Algorithmus anhand der Steigung zwischen den beiden Endpunkten eine Gruppe von Parametern, mit deren Hilfe festgestellt wird, welche Pixel aktiviert werden müssen. In Fig. 8B durchläuft der Pixelprozessor 18 anfänglich eine Schleife zwischen einem Leerlaufzustand 174 und einem Entscheidungszustand 176, bis die Linienendpunkte eingegangen sind. Wenn die Linienendpunkte eingegangen sind, fährt der Prozessor 18 mit Schritt 178 fort, um einen anfänglichen Fehlerterm, I1, I2 und die Linienlänge zu berechnen. Der Prozessor 18 fährt dann mit Schritt 180 fort, um festzustellen, ob der Fehlerterm kleiner als 0 ist. Wenn nicht, fährt der Pixelprozessor mit Schritt 184 fort, wo der Fehlerterm zu 12 addiert wird und die Y-Pixeladresse erhöht wird. Der Pixelprozessor fährt mit Schritt 186 fort, um das X-Pixel zu erhöhen. In Schritt 188 wird festgestellt, ob alle Pixel verarbeitet sind. Wenn nicht, kehrt der Prozessor 18 zu Schritt 180 zurück, um den Fehlerterm zu prüfen. Wenn der Fehlerterm kleiner als 0 ist, fährt der Prozessor 18 mit Schritt 182 fort, um die Konstante I1 zu dem Fehlerterm zu addieren. Der Pixelprozessor 18 fährt dann wie bereits zuvor mit Schritt 186 fort. Wenn festgestellt wird, daß alle Pixel verarbeitet sind (Schritt 188), kehrt der Prozessor 18 in den Leerlaufzustand 174 zurück. Als bekannt wird dabei vorausgesetzt, daß die Steigung der Linie, die gezeichnet werden soll, sowie ihre Richtung bestimmen, welcher Adressenzähler bedingt gezählt wird.
  • Bezug nehmend auf Fig. 6 werden die Steuerungssignale für den Speicher 22 von der Schaltung 52 bereitgestellt, die Informationen über den Systembus 16 sowie Adressiersignale von den Leitungen 56 vom Zähler- und Linienzeichenschaltkreis 50 empfängt. Zusätzlich werden Steuerungssignale auf den Leitungen 60 von der Steuerungslogik 44 bereitgestellt. Die Schaltung 52 liefert die Reihen- und Spaltenadressierungsimpulssignale an den Speicher 22. Darüber hinaus werden die Schreibfreigabe-Steuerungssignale bereitgestellt. Traditionell dient das Schreibfreigabe-Steuerungssignal dazu, einen Zeitraum zu bestimmen, in dem die tatsächlichen Daten in die Speicherzellen geschrieben oder daraus gelesen werden. Die vorliegende Erfindung nutzt die Schreibfreigabe, um tatsächlich zu steuern, welche Daten in die Speicherzellen eingegeben werden. Das Schreibfreigabesignal dient mit anderen Worten dazu, Daten zu maskieren, die in den Speicher geschrieben werden. Normalerweise werden diejenigen, die maskiert werden sollen, in ein Register geladen und durch ein Maskenregister gespeichert. Dies wird dadurch erreicht, daß ein zweites Register verwendet wird, das die Maske enthält, und das erste Register mit einem zweiten Register kombiniert wird, um die Maskenausgabe zu liefern. Diese Maskenausgabe wird dann an den Speicher geleitet. In dem vorliegenden Ausführungsbeispiel wird diese Maskierung erreicht, indem selektiv die Schreibfreigabesignale für die Daten erzeugt werden, die während einer Speicher-Schreiboperation in den Speicher geschrieben werden sollen.
  • Figur 9 zeigt den Teil der Speichersteuerungsschaltung 52, der das Schreibfreigabesignal erzeugt. Die in Fig. 9 dargestellte Schaltung stellt die Maskierungsfunktion für eine Bitblockübertragungs- wie auch für eine Linienzeichenoperation bereit. Bei der Linienzeichenoperation wird eine Musterfähigkeit bereitgestellt, durch die ein bestimmtes Muster (eine Anzahl eingeschalteter und eine Anzahl ausgeschalteter Bits) zum Zeichnen von Linien verwendet werden kann. Außerdem können für Bitblockübertragungsoperationen Muster für Matrizen mit 4 x 4 Pixeln bereitgestellt werden.
  • Die Schaltung 52 empfängt mehrere Steuerungssignale vom Steuerungsschaltkreis 44 des Pixelprozessors (Fig. 6). Figur 10 zeigt den Steuerungsablauf für den Betrieb der Schreibmaskenschaltung von Fig. 9. Zuerst befindet sich die Steuerungslogik in einem Leerlaufzustand 730, bis festgestellt wird, daß sie einen Einrichtungszyklus beginnen soll. Dies wird in Schritt 732 festgestellt. Die Erzeugung des Einrichtungszyklus und des Speicherzyklus ist in EP-A-0 279 231 (AT 986 073) genau beschrieben. Beim Auftreten des Einrichtungszyklus setzt die Steuerungsschaltung in Schritt 734 alle Flipflops 80 von Fig. 9 zurück. Dies wird erreicht, indem die Steuerungsschaltung 44 auf der Leitung 60C ein Signal an die Schreibfreigabe-Decodierlogik 98 liefert (Fig. 9). In einem in Fig. 11 gezeigten Zeitablaufdiagramm ist dieses Signal die Linie 350. Zurückkehrend zu Fig. 10 fährt die Steuerungslogik 44 dann mit Schritt 740 fort, in dem entschieden wird, ob es sich bei der durchzuführenden Operation um das Zeichnen einer Linie oder um eine Bitblockübertragung (BITBLT) handelt. Handelt es sich um eine BITBLT-operation, fährt die Steuerungsschaltung mit Schritt 742 fort, um der Schreibfreigabe-Erzeugungslogik 52 ein Signal zu geben, die Schreibmaske vom System mit Hilfe von Daten zu setzen, die im Schreibregister 92 als Maske gespeichert sind. Unter Bezugnahme auf Fig. 9 wird dies durch die Übertragung eines Signals auf Leitung 60D erreicht, des ersten der Zeitsteuerungsimpulse auf der Linie 354 (Fig. 11). Dieses Signal wird zu der Schreibfreigabe-Decodierlogik 98 in Fig. 9 geleitet, die wiederum selektiv Signale auf den Leitungen 91A-P an die 16 Flipflops 80 leitet, um diese Flipflops 80 selektiv zu setzen. Das Register 82 wird dann durch die Leitung 60E getaktet, so daß es die ausgegebenen 16 Maskenbits an ein UND-Gatter 84 liefert. Das Register 82 wird durch ein Signal auf der Line 353 getaktet (Fig. 11). Das UND-Gatter 84 empfängt auch eine Eingabe auf der Leitung 60B, bei der es sich um die Linie 370 in Fig. 12 handelt. Figur 12 ist ein Zeitablaufdiagramm der Ausgabe der Steuerungslogik 44 während eines Speicherzyklus. Die Linie 370 umfaßt die Zeiträume 371 und 372. Der Zeitraum 371 liefert das Aktiv- Signal an das UND-Gatter 84. Der Zeitraum 372 ist der aktive Zeitraum der Schreibfreigabensteuerung für den Speicher 22. In diesem Ausführungsbeispiel umfaßt der Speicher 22 ferner einen Signalspeicher, der die Schreibfreigabesignale auf den Bus 20 gibt. Der Zeitraum 372, der dem Speicher 22 bereitgestellt wird, wird von dem Speicher 22 intern genutzt, damit die Schreibfreigabe-Steuerungssignale an die jeweiligen Speicherzellen den Zugang zu den Speicherzellen gewähren können.
  • Die tatsächliche Durchführung einer Bitblockübertragung durch die Schreibfreigabeschaltung in Fig. 9 umfaßt das Laden der 16 Bits aus dem Systembus 16 in das Register 92. Das Register 92 wirkt je nach der Funktion, die von der Schreibfreigabemasken-Schaltung 52 durchgeführt wird, als Fest- oder als Schieberegister. Bei der Durchführung einer Bitblockübertragung wirkt das Register 92 als Festregister (statisches Register). Die Ausgabe des Registers 92 wird durch einen Tonnenschieber in Y-Richtung 94 und einen Tonnenschieber in X-Richtung 96 geleitet. Diese beiden Tonnenschieber richten das 16-Bit-Muster (4 x 4 Pixel) effektiv aus, um die entsprechenden Adressen relativ zu der Bildschirmrasteradresse zu liefern (siehe Fig. 4). Dies ist wichtig, weil es dadurch möglich wird, daß das 4-x-4-Pixel- Modul auf jede Pixelgrenze auf dem Bildschirm geschrieben werden kann. Nachdem das 16-Pixel-Muster aus dem Register 92 durch den Tonnenschieber in Y-Richtung 94 und den Tonnenschieber in X-Richtung 96 an der X- und Y-Adresse ausgerichtet wurde, werden die 16 Bits in die Schreibfreigabe-Decodierlogik 98 eingegeben, die zu gegebener Zeit über die Leitungen 91A-91P die Fipflops 80 setzt oder nicht setzt. Die Ausgaben werden dann bereitgestellt wie zuvor erörtert.
  • Figur 13 zeigt ein Beispiel für ein Muster, das in einer Bitblockübertragungsoperation ausgegeben würde. Im Normalfall kommt eine solche Fähigkeit zum Einsatz, wenn Zeichen auf den Bildschirm geschrieben werden. In einer Bitblockübertragungsoperation umfaßt eine 4-x-4-Pixel-Matrix normalerweise nur einen Teil dieses Zeichens. In Fig. 13 ist eine 4-x-4-Matrix 501 gezeigt, die mehrere aktive Pixelregionen wie etwa das Quadrat 502 umfaßt. Zu beachten ist, daß die 4-x-4-Matrix 501 ihre absoluten Quadratadressen enthält, die von 0 in der oberen rechten Ecke bis 15 in der unteren linken Ecke ansteigen. Dies sind die Referenzadressen für die Quadrate in der Matrix, wie zuvor in Fig. 5 dargestellt. Zu beachten ist, daß die aktiven Pixel in der Matrix 501 die absoluten Adressen 5, 8, 9, 10 und 15 haben.
  • Figur 14 zeigt einen vierteiligen Ausschnitt des Bildschirms, der die 16-Pixel-Matrix 501 darstellen soll. Jedes der vier Quadrate S0 bis S3 enthält 16 einzelne Pixel, die nach der Konvention aus Fig. 5 numeriert sind. Da jeder Bereich ausschließlich des Quadrats oder der Quadrate, in denen sich die 4-x-4-Pixel-Matrix befindet, adressiert werden kann, muß ein Mittel bereitgestellt werden, um die zu schreibende 4-x- 4-Pixel-Matrix an den tatsächlich bereitgestellten Bildschirm-Rasterquadratadressen auszurichten. Dies ist die Funktion des Tonnenschiebers in Y-Richtung 94 und des Tonnenschiebers in X-Richtung 96. Diese beiden Tonnenschieber 94 und 96 empfangen Y Adreßbits auf Leitung 56A und X Adreßbits auf Leitung 56B von der Speicheradreßschaltung 50 des Pixelprozessors 18. Die Adreßschaltung wird in EP-A-0 279 225 (AT 986 070) beschrieben, die die Funktion der Ausgabe der Adressierungsschaltung 50 für eine Bitblockübertragung wie auch für das Zeichnen einer Linie genau beschreibt. Der Pixelprozessor 18 empfängt von dem Systemprozessor 10 oder dem Signalprozessor 14 eine Pixelposition, die angibt, wohin die 4-x-4-Pixel-Matrix (z.B. 501) geschrieben werden soll.
  • In diesem in Fig. 14 dargestellten Beispiel wird das Bit oben links vom Systemprozessor spezifiziert, wobei die X-Richtung als positiv und die Y-Richtung als negativ angegeben ist. Pixel 12 von Quadrat 1 (S1) ist mit anderen Worten angegeben als die Position der oberen linken Ecke der 4-x-4-Matrix 501. Die Tonnenschieber 94 und 96 übersetzen die absoluten Adressen der 4-x-4-Matrix 501 (dargestellt als die eingekreisten Nummern in der oberen linken Ecke der einzelnen Pixelquadrate) in absolute Adressen für die Pixelpositionen in den Quadraten (in Fig. 14 dargestellt als als die Nummern oben rechts in den Pixelquadraten). Indem der Pixelprozessor 18 der Schreibfreigabemaskenschaltung diese Adreßübersetzungsfähigkeit bereitstellt, kann er jede 4-x-4- Pixel-Matrix auf jede Pixelgrenze schreiben.
  • Eine Schreibfreigabe-Erzeugungsschaltung 52 aus Fig. 9 stellt auch eine Fähigkeit bereit, wenn eine Linienzeichenfunktion durchgeführt wird. Diese Fähigkeit für die Linienzeichenfunktion ermöglicht die Erzeugung eines Musters für die Linie, die zur Zeit gezogen wird. Wenn eine Linie auf dem Bildschirm gezeichnet wird, kann sie mit anderen Worten als ein Muster gezeichnet werden, bei dem bestimmte Pixel eingeschaltet und bestimmte Pixel ausgeschaltet sind. Dies ist beim Zeichnen sehr nützlich, um eine Linie von einer anderen zu unterscheiden. Bei der Bereitstellung der Musterfunktion für die Aufgabe des Linienzeichnens wird die Schreibfreigabemasken-Erzeugungsschaltung 52 von einem Systembus 16 mit der Musterskala in das Register 86 geladen. Das Musterskalenregister 86 enthält die Nummer, die die Anzahl der zu musternden Pixel bezeichnet, d.h. die Anzahl der Pixel, die abwechselnd ein- und ausgeschaltet werden sollen. Das Skalenregister 86 wird dann durch den Multiplexer 88 in den Zähler 90 geladen, der abwärts bis zu der Skalennummer zählt, um dem Register 92 ein Taktsignal zu geben. Das Register 92 für die Linienzeichenfunktion wirkt als Schieberegister und verschiebt sich, wenn von dem Zähler 90 ein Taktsignal empfangen wird. Das Register 92 enthält eine zweite Musterebene, die vom Systembus 16 bereitgestellt wird. Ein einfaches Beispiel für die Funktionsweise der Skalennummer in Register 86 relativ zu der Musternummer, die im Schieberegister 92 steht, ist ein Beispiel, bei dem auf acht eingeschaltete Bits vier ausgeschaltete Bits folgen. In diesem Beispiel wäre die Skalennummer die kleinste Auflösung des Musters, vier Bits. Das Muster wird durch die Musternummer in Register 92 bezeichnet, d.h. 110110.... Diese Nummer in Register 92 bedeutet, daß die ersten acht Bits eingeschaltet und die nächsten vier Bits ausgeschaltet werden sollen, wie gewünscht. Das Signal, das angibt, welche Pixel eingeschaltet und ausgeschaltet werden sollen, wird der Schreibfreigabe-Decodierlogik 98 über die Leitung 95 zugeleitet. Die Tonnenschieber 94 und 96 sind mit anderen Worten nicht an der Linienzeichenoperation beteiligt. Die Linienzeichenschaltung 50, auch in EP-A-0 279 225 (AT 986 070) beschrieben, liefert die Adressen der Pixel auf den Leitungen 56. Es handelt sich dabei um dieselben Adressen, die auf den zuvor beschriebenen Leitungen 56A und 56B geliefert werden. Daher empfängt die Schreibfreigabe- Decodierlogik 98 für jedes Pixel, das auf den Leitungen 56 adressiert wird, ein Ein- oder Aus-Signal auf der Leitung 95. Nach dem Empfang von Informationen, die den Zustand der 16 Pixel bezeichnen, liefert die Schreibfreigabe-Decodierlogik 98 dann ein Gesetzt-Signal auf den Leitungen 91A-P an die Flipflops 80, wie bereits beschrieben.
  • Figur 15 stellt eine einfache Musterlinie auf einem Bildschirm 510 dar. Die Linie enthält einen aktiven Teil 512 und einen inaktiven Teil 514, so daß sich eine gestrichelte Linie ergibt. Die Schaltung in Fig. 9 kann auch eine weitere Fähigkeit bereitstellen, mit der zwei Linien so gezeichnet werden können, daß sie sich schneiden, aber das Muster zwischen den beiden Linien dennoch fortlaufend ist. Dies ist in Fig. 16 dargestellt. In Fig. 16 enthält die Linie auf dem Bildschirm 520 eine Reihe aktiver Pixel 522 und eine Reihe inaktiver Pixel 524. Der Teil 526 stellt eine Ecke dar und enthält gemäß der Funktionsweise dieses Schaltkreises in Fig. 9 dieselbe Anzahl aktiver Pixel wie die in Teil 522. Möglich ist dies durch die Ausgabe des Zählers 90, die dem Systembus 16 zugeleitet wird. Diese Zahl aus dem Register 90 wird vom Systemprozessor 10 oder vom Signalprozessor 14 gespeichert, bis die zweite der sich schneidenden Linien gezogen wird. Wenn dies geschieht, wird das Register 90 mit der verbleibenden Zählung von der vorherigen Linie aus dem Bus 16 über den Multiplexer 88 neu geladen, so daß die neue Linie so gezeichnet werden kann, daß das Muster dort wiederaufgenommen werden kann, wo es bei der vorherigen Linie aufgehört hat.
  • Eine weitere Fähigkeit der Schaltung in Fig. 9 ist in Fig. 17 dargestellt. Figur 17 zeigt einen aktiven Zeichenbereich 530. Dieser aktive Bereich umfaßt eine Linie mit den Musterabschnitten 532 und 534. In der tatsächlichen Berechnung umfaßt die Linie in diesem Fall einen Abschnitt, der aus dem aktiven Bereich 530 herausragt, wie durch 536 bezeichnet. Wenn der Abschnitt 536 dem Benutzer nicht gezeigt wird, wird dies als Kappen bezeichnet. Die vorliegende Erfindung ermöglicht jedoch die Fortsetzung der Berechnung der Linie und ihres Musters auf eine Weise, bei der ein Abschnitt, der im aktiven Zeichenbereich 530 wieder auftaucht, (z.B. 538) das richtig berechnete Muster enthält, als ob das gesamte Liniensegment im aktiven Zeichenbereich 530 enthalten wäre. Möglich wird dies durch ein Signal auf der Leitung 60D, das die Schreibfreigabe- Decodierlogikschaltung 98 von der Linienzeichenschaltung 50 empfängt. In der Linienzeichenschaltung 50, die die Adressen berechnet, stehen ein X-Komparator und ein Y- Komparatorregister bereit, um festzustellen, wann die zur Zeit berechneten Adressen außerhalb des aktiven Betrachtungsbereichs liegen. Wenn die Adressen außerhalb des aktiven Betrachtungsbereichs liegen, wird auf der Leitung 60D ein Signal an die Schreibfreigabe-Decodierlogik 98 geleitet, die wiederum auf der Leitung 93 ein Reset-Signal an alle Flipflops 80 leitet. Dies verhindert, daß die Schreibfreigabeschaltung 52 Schreibfreigaben bereitstellt, und so wird außerhalb dieses aktiven Bereichs nicht gezeichnet. Dabei wird als bekannt vorausgesetzt, daß dieser aktive Bereich eine Teilmenge des tatsächlich angezeigten Bildschirms sein kann. Daher erlaubt diese Fähigkeit zum Kappen dennoch die Fortsetzung der Berechnung der Adressen gemeinsam mit der Berechnung des Musters für Linien außerhalb dieses aktiven Bereichs und ermöglicht zugleich die richtige Linienmusterung, wenn die Linienberechnung wieder in den aktiven Anzeigebereich zurückkehrt.
  • Die obige Fähigkeit ist wichtig, weil die so gezogenen Linien dann gespeichert und neu angeordnet werden können, so daß sie später im aktiven Anzeigebereich angezeigt werden können, ohne daß ihr Muster neu berechnet werden muß.

Claims (5)

1. Ein Graphikanzeigesystem zur Verarbeitung anzuzeigender Graphikinformationen, ein Bitmapspeicher zur Speicherung verarbeiteter Graphikinformationen für die Anzeige auf einem Anzeigegerät mit rasterförmiger Abtastung, das mit dem Speicher verbunden ist, wobei jede Bitposition in diesem Speicher zu einem Bildelement auf dem Anzeigegerät gehört, ein Adressierungsmittel, das zum Zugriff auf eine Matrix von N mal M Bitpositionen in diesem Speicher angepaßt ist, wobei N und M ganze Zahlen größer als 1 sind, und zwar während einer einzigen Speicherzykluszeit, so daß auf eine N-mal-M-Matrix von Bildelementen zur Aktivierung innerhalb eines einzigen Speicherzyklus zugegriffen werden kann, gekennzeichnet durch ein Schreibsteuerungsmittel (52), das zum Empfang von Graphikinformationen aus dem Verarbeitungsmittel angeschlossen ist, und einen Decodierer (98) umfassend, der auf Steuerungssignale (60A) aus dem Verarbeitungsmittel reagiert, die festlegen, ob als Graphikoperation entweder eine Bitblockübertragung oder das Zeichnen einer Linie durchgeführt werden soll, um diese Informationen gemäß den von einer Adreßlogik (50) erzeugten Adressen an Bitpositionen in dem Speicher zu leiten, wobei diese Bitpositionen jeweils zu bestimmten ausgewählten Bildelementen gehören, die einen Block bilden, der innerhalb einer adressierten N-mal-M-Matrix zu aktivieren ist, oder zu bestimmten ausgewählten Bildelementen, die entlang einem Segment einer zu zeichnenden Linie zu aktivieren sind, wobei das Segment in eine adressierte N-mal-M-Matrix fällt.
2. Ein System nach Anspruch 1, bei dem das Schreibsteuerungsmittel ein Schreibregister (92) mit NM Bitpositionen umfaßt, wobei das Schreibregister zum Empfang von Graphikinformationen angeschlossen ist und dafür angepaßt ist, als statisches Register, in dem jede Bitposition den Aktivierungsstatus eines Bildelements in der M-mal-N-Matrix darstellt, oder als Schieberegister zu wirken, das unter der Steuerung von Taktsignalen betrieben werden kann, um dem Decodierer für jedes Bildelement der zu ziehenden Linie ein Bildelement- Ein/Aus-Signal (95) zu liefern.
3. Ein System nach Anspruch 2 mit einem Zähler (90), der von dem Verarbeitungsmittel mit Musterskalendaten eingestellt werden kann und angepaßt ist, um durch die Skalendaten abwärts zu zählen, um die Taktsignale zu liefern.
4. Ein System nach Anspruch 3, bei dem das Verarbeitungsmittel angepaßt ist, um den Inhalt des Zählers an einem Punkt zu speichern, an dem die zu ziehende Linie einen Schnittpunkt mit einer zweiten zu ziehenden Linie erreicht, und die gespeicherte Zählung zur Steuerung des Ziehens der zweiten Linie zu verwenden, wodurch das auf die erste Linie angewendete Aktivierungsmuster auf der zweiten Linie fortgesetzt wird.
5. Ein System nach Anspruch 2 bis 4, bei dem das Adressierungsmittel angepaßt ist, um Adreßsignale mit X- und Y-Koordinaten zu erzeugen, die ein Koordinatengitter auf dem Bildschirm des Anzeigegerätes definieren, ferner umfassend einen X-Schieber (94) und einen Y-Schieber (96), die an das Schreibregister angeschlossen sind und unter der Steuerung der Adreßsignale betrieben werden können, um den Inhalt des Schreibregisters zu dem Decodierer zu übertragen, und zwar in Bezug auf ihre Position in dem Schreibregister so verschoben, daß die N-mal-M-Matrix der Bitpositionen, die in dem Speicher von dem Adressierungsmittel adressiert werden, während einer Blockübertragungsoperation an einer ausgewählten Bildelementgrenze ausgerichtet wird.
DE3853489T 1987-02-12 1988-01-26 Grafik-Anzeigesystem. Expired - Fee Related DE3853489T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US07/013,840 US4808986A (en) 1987-02-12 1987-02-12 Graphics display system with memory array access

Publications (2)

Publication Number Publication Date
DE3853489D1 DE3853489D1 (de) 1995-05-11
DE3853489T2 true DE3853489T2 (de) 1995-10-12

Family

ID=21762050

Family Applications (1)

Application Number Title Priority Date Filing Date
DE3853489T Expired - Fee Related DE3853489T2 (de) 1987-02-12 1988-01-26 Grafik-Anzeigesystem.

Country Status (5)

Country Link
US (1) US4808986A (de)
EP (1) EP0279229B1 (de)
JP (1) JPS63234367A (de)
BR (1) BR8800331A (de)
DE (1) DE3853489T2 (de)

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63225290A (ja) * 1987-03-14 1988-09-20 株式会社日立製作所 表示制御回路
JPH0634209B2 (ja) * 1987-07-23 1994-05-02 株式会社日立製作所 表示図形検知方式
EP0309884A3 (de) * 1987-09-28 1991-04-10 Mitsubishi Denki Kabushiki Kaisha Farbbildanzeigegerät
US4962468A (en) * 1987-12-09 1990-10-09 International Business Machines Corporation System and method for utilizing fast polygon fill routines in a graphics display system
US5254979A (en) * 1988-03-12 1993-10-19 Dupont Pixel Systems Limited Raster operations
US5128658A (en) * 1988-06-27 1992-07-07 Digital Equipment Corporation Pixel data formatting
JPH02278475A (ja) * 1989-04-20 1990-11-14 Hitachi Ltd 図形処理装置およびその使用方法ならびにマイクロプロセッサ
US6727903B1 (en) 1989-04-20 2004-04-27 Hitachi, Ltd. Microprocessor, and graphics processing apparatus and method using the same
US5309551A (en) * 1990-06-27 1994-05-03 Texas Instruments Incorporated Devices, systems and methods for palette pass-through mode
JPH07118025B2 (ja) * 1990-06-29 1995-12-18 インターナショナル・ビジネス・マシーンズ・コーポレイション コンピュータ・グラフィックス処理方法及びシステム
US5208583A (en) * 1990-10-03 1993-05-04 Bell & Howell Publication Systems, Company Accelerated pixel data movement
US5345555A (en) * 1990-11-23 1994-09-06 Network Computing Devices, Inc. Image processor memory for expediting memory operations
JPH07120435B2 (ja) * 1990-12-06 1995-12-20 インターナショナル・ビジネス・マシーンズ・コーポレイション 高速zバッファの初期化および更新方法ならびにそのシステム
US5448264A (en) * 1991-03-15 1995-09-05 Hewlett-Packard Company Method and apparatus for separate window clipping and display mode planes in a graphics frame buffer
US5585824A (en) * 1991-07-22 1996-12-17 Silicon Graphics, Inc. Graphics memory apparatus and method
US5261049A (en) * 1991-07-22 1993-11-09 International Business Machines Corporation Video RAM architecture incorporating hardware decompression
CA2067418C (en) * 1991-07-22 1998-05-19 Sung M. Choi Frame buffer organization and control for real-time image decompression
JPH0656546B2 (ja) * 1991-07-22 1994-07-27 インターナショナル・ビジネス・マシーンズ・コーポレイション イメージバッファ
US5359432A (en) * 1991-11-25 1994-10-25 Lexmark International, Inc. Printer page composition with color and text
ATE137040T1 (de) * 1992-01-21 1996-05-15 Compaq Computer Corp Graphische videokontrolleinheit mit verbesserten rechenfaehigkeiten
US5613053A (en) * 1992-01-21 1997-03-18 Compaq Computer Corporation Video graphics controller with automatic starting for line draws
US5506693A (en) * 1992-09-30 1996-04-09 Harris Corporation Addressing mechanism for interfacing spatially defined imagery data with sequential memory
EP0676721A3 (de) * 1994-04-06 1996-04-03 Hewlett Packard Co System zur Darstellung stilisierter Vektoren.
US5600769A (en) * 1995-01-31 1997-02-04 Compaq Computer Corporation Run slice line draw engine with enhanced clipping techniques
WO1997039437A1 (en) * 1996-04-12 1997-10-23 Intergraph Corporation High-speed video frame buffer using single port memory chips where pixel intensity values for display regions are stored at consecutive addresses of memory blocks
TW335472B (en) * 1996-06-20 1998-07-01 Cirus Logic Inc Method and apparatus for transferring pixel data stored in a memory circuit
US6278645B1 (en) 1997-04-11 2001-08-21 3Dlabs Inc., Ltd. High speed video frame buffer
US7120317B1 (en) * 2001-03-01 2006-10-10 Silicon Motion, Inc. Method and system for a programmable image transformation

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4208810A (en) * 1978-09-11 1980-06-24 The Singer Company Clipping polygon faces through a polyhedron of vision
US4272808A (en) * 1979-05-21 1981-06-09 Sperry Corporation Digital graphics generation system
US4496944A (en) * 1980-02-29 1985-01-29 Calma Company Graphics display system and method including associative addressing
JPS56140390A (en) * 1980-04-04 1981-11-02 Nippon Electric Co Picture memory
US4458330A (en) * 1981-05-13 1984-07-03 Intergraph Corporation Banded vector to raster converter
JPS58205276A (ja) * 1982-05-26 1983-11-30 Hitachi Ltd 図形処理装置
DE3380465D1 (en) * 1982-09-20 1989-09-28 Toshiba Kk Video ram write control apparatus
JPH067304B2 (ja) * 1982-12-10 1994-01-26 株式会社日立製作所 図形処理装置
EP0112942B1 (de) * 1982-12-30 1987-03-11 International Business Machines Corporation Verfahren und Einrichtung zur grafischen Darstellung
US4691295A (en) * 1983-02-28 1987-09-01 Data General Corporation System for storing and retreiving display information in a plurality of memory planes
JPS59205667A (ja) * 1983-05-09 1984-11-21 Sharp Corp グラフイツクデイスプレイ装置の図形ブリンク方式
US4667306A (en) * 1983-07-20 1987-05-19 Ramtek Corporation Method and apparatus for generating surface-fill vectors
CA1240427A (en) * 1984-03-28 1988-08-09 Kabushiki Kaisha Toshiba Memory control apparatus for a crt controller
JPS60245034A (ja) * 1984-05-18 1985-12-04 Ascii Corp デイスプレイコントロ−ラ
JPS619762A (ja) * 1984-06-25 1986-01-17 インタ−ナショナル ビジネス マシ−ンズ コ−ポレ−ション イメ−ジ処理装置
JPS61130985A (ja) * 1984-11-21 1986-06-18 テクトロニツクス・インコーポレイテツド 多ビツト・ピクセル・データ蓄積装置
JPS61232486A (ja) * 1985-04-09 1986-10-16 富士通株式会社 イメ−ジデ−タ移動方式

Also Published As

Publication number Publication date
EP0279229A2 (de) 1988-08-24
US4808986A (en) 1989-02-28
DE3853489D1 (de) 1995-05-11
EP0279229B1 (de) 1995-04-05
BR8800331A (pt) 1988-09-13
JPS63234367A (ja) 1988-09-29
EP0279229A3 (de) 1991-07-31

Similar Documents

Publication Publication Date Title
DE3853489T2 (de) Grafik-Anzeigesystem.
DE3889240T2 (de) Zähler mit veränderbarer Verschaltung zur Adressierung in graphischen Anzeigesystemen.
DE3889136T2 (de) Schnittstelle für eine hochauflösende Grafikanzeige.
DE3853447T2 (de) Anzeigesteuergerät für eine Kathodenstrahlröhre-/Plasmaanzeigeeinheit.
DE3852045T2 (de) Video-Schnittstelle mit Datenfluss.
DE3751720T2 (de) Schaltung für die bildschirmwiedergabe von computern
DE3850955T2 (de) Anzeigesystem mit einem Fenstermechanismus.
DE3852185T2 (de) Bildspeicher für Raster-Video-Anzeige.
DE3687358T2 (de) Bildpufferspeicher mit variablem zugriff.
DE69021429T2 (de) Speicherzugriffssteuerschaltung für Grafik-Steuergerät.
DE68920147T2 (de) Anzeigesystem.
EP0038411B1 (de) Einrichtung zur Speicherung und Darstellung graphischer Information
DE3787125T2 (de) Mehrfensteranzeigesystem.
DE69721184T2 (de) Hardware zum rotieren eines bildes
DE69122226T2 (de) Verfahren und Einrichtung zur Zugriffsanordnung eines VRAM zum beschleunigten Schreiben von vertikalen Linien auf einer Anzeige
DE3786125T2 (de) Raster-Bildschirm-Steuerung mit veränderlicher räumlicher Auflösung und variabler Datentiefe der Bildelemente.
DE69119630T2 (de) Verfahren und Einrichtung zur Maximierung von Spaltenadressenkohärenz für den Zugriff von seriellen und Direktzugriffstoren in einem graphischen System mit einem Rasterpufferspeicher
DE3636394C2 (de) Einrichtung und Verfahren zur Speicherorganisation
DE68919781T2 (de) Videospeicheranordnung.
DE69016697T2 (de) Video-Direktzugriffsspeicher.
DE3889557T2 (de) Vektorgenerator für Raster-Bildschirmanzeige.
DE3587744T2 (de) Steuerlogik für ein Videosystem mit einer Schaltung, welche die Zeilenadresse ausser Kraft setzt.
DE68925569T2 (de) Dynamischer Video-RAM-Speicher
DE3885133T2 (de) Anzeigeeinrichtung mit einem Schriftartspeicher für Symbole.
DE3850389T2 (de) Verfahren zum unterteilen einer figur in bereiche in einem graphischen anzeigesystem.

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee