[go: up one dir, main page]

DE3889240T2 - Zähler mit veränderbarer Verschaltung zur Adressierung in graphischen Anzeigesystemen. - Google Patents

Zähler mit veränderbarer Verschaltung zur Adressierung in graphischen Anzeigesystemen.

Info

Publication number
DE3889240T2
DE3889240T2 DE3889240T DE3889240T DE3889240T2 DE 3889240 T2 DE3889240 T2 DE 3889240T2 DE 3889240 T DE3889240 T DE 3889240T DE 3889240 T DE3889240 T DE 3889240T DE 3889240 T2 DE3889240 T2 DE 3889240T2
Authority
DE
Germany
Prior art keywords
counter
processor
pixel
address
control
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
DE3889240T
Other languages
English (en)
Other versions
DE3889240D1 (de
Inventor
Robert Lockwood Mansfield
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 DE3889240D1 publication Critical patent/DE3889240D1/de
Application granted granted Critical
Publication of DE3889240T2 publication Critical patent/DE3889240T2/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
    • 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/18Timing circuits for raster scan displays

Landscapes

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

Description

    ZÄHLER MIT VERÄNDERBARER VERSCHALTUNG ZUR ADRESSIERUNG IN GRAPHISCHEN ANZEIGESYSTEMEN
  • 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, Titel: "ZÄHLER MIT VERÄNDERBARER VERSCHALTUNG ZUR ADRESSIERUNG IN GRAPHISCHEN ANZEIGESYSTEMEN"
  • EP-A-0 279 229, Titel: "GRAPHISCHES ANZEIGESYSTEM"
  • EP-A-0 279 231, Titel: "STEUERUNGSEINHEIT FÜR GRAPHIKFUNKTIONEN FÜR EIN HOCHLEISTUNGS- BILDSCHIRMANZEIGESYSTEM"
  • EP-A-0 279 226, Titel: "HOCHAUFLÖSENDER ANZEIGEADAPTER"
  • EP-A-0 279 227, Titel: "VEKTORGENERATOR FÜR RASTERANZEIGE"
  • EP-A-0 279 230, Titel: "VIDEOADAPTER MIT VERBESSERTER DATENWEGSTEUERUNG"
  • EP-A-0 279 228, Titel: "RAHMENPUFFER IN EINER ODER FÜR EINE VIDEOANZEIGE MIT RASTERFÖRMIGER ABTASTUNG"
  • Die vorliegende Erfindung betrifft Zähler mit veränderbarer Verschaltung, die sich zur Adreßerzeugung in graphischen Anzeigesystemen eignen.
  • 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.
  • Es ist ein Ziel der vorliegenden Erfindung, einen Mechanismus bereitzustellen, der verwendet werden kann, um schnell ein Bild einer Linie zu erzeugen, die zwischen zwei Punkten gezeichnet wird, und um schnell ein Bild zu erzeugen, das eine Übertragung von Bitblock-Bildelementinformationen erfordert.
  • Gemäß der Erfindung wird graphisches Anzeigesystem mit einem Prozessor zur Ausführung eines Linienzeichenalgorithmus oder eines Bitblockübertragungsalgorithmus bereitgestellt, wobei der Prozessor einen Adressierschaltkreis umfaßt, gekennzeichnet durch ein Steuerungsmittel, das auf ein Algorithmus-Auswahlsignal zur Bildung von Zählersteuerungssignalen reagiert, ein erstes Zählermittel zum Zählen von einem ersten Ausgangszustand zu einem ersten vorbestimmten Wert und ein zweites Zählermittel, das unter der Steuerung der Zählersteuerungssignale betrieben werden kann, um entweder eine erste Operation zur Lieferung von Adressen zur Durchführung einer Bitblockübertragung vorzunehmen, wozu das zweite Zählermittel ein Mittel zur Zählung von einem zweiten Ausgangswert zu einem zweiten vorbestimmten Wert als Reaktion darauf umfaßt, daß das erste Zählermittel zum ersten vorbestimmten Wert zählt, oder eine zweite Operation zur Lieferung von Adressen zur Durchführung des Zeichnens einer Linie vorzunehmen, wozu das zweite Zählermittel ein Mittel zur Berechnung eines Parameterwertes beim Auftreten eines Zählerstandes des ersten Zählermittels umfaßt und je nach dem berechneten Wert bedingt von einem zweiten Ausgangswert zu einem zweiten vorbestimmten Wert zählt.
  • In einem Ausführungsbeispiel der Erfindung, das im Anschluß exemplarisch beschrieben wird, dekrementiert der zweite Zählerschaltkreis bedingt den Zähler als Reaktion auf den berechneten Wert des Parameters im zweiten Zähler. In diesem Ausführungsbeispiel dient die Zählerschaltung dazu, Adressen entweder für einen Linienzeichenalgorithmus oder einen Bitblock-Übertragungsalgorithmus für die Verarbeitung der Anzeige zu liefern. Um den Bitblock-Übertragungsalgorithmus zu implementieren, werden der erste Zähler und der zweite Zähler effektiv kombiniert, um eine Innenschleifen- und eine Außenschleifen-Zählsequenz durchzuführen, wobei der erste Zähler von seinem ersten Ausgangszustand zu seinem ersten vorbestimmten Wert zählt (die Innenschleife) und der zweite Zähler von seinem zweiten Ausgangswert zu seinem zweiten vorbestimmten Wert zählt (die Außenschleife). Der Zählerschaltkreis führt auch eine Linienzeichenalgorithmusfunktion aus, wobei der Algorithmus eine bedingte Inkrementierung eines Zählerstandes als Reaktion auf den Zustand eines Fehlerterms erfordert, der nach einem Zählerstand des ersten Zählers berechnet wird. Die zweite Zählerschaltung umfaßt die Möglichkeit, den Zustand dieses vorbestimmten Fehlerterms zu bestimmen, um festzustellen, ob der zweite Zählerstand entsprechend dekrementiert wird.
  • Die vorliegende Erfindung wird weiter exemplarisch unter Verweis auf ein Ausführungsbeispiel beschrieben, das in den beigefügten Zeichnungen dargestellt ist. Dabei gilt:
  • Fig. 1 ist ein Blockdiagramm, das einen Anzeigeadapter- Schaltkreis darstellt, der an einen Prozessor und einen Monitor angeschlossen ist.
  • Fig. 2 ist ein Diagramm, das die Organisation des Bitmap- Speichers 22 darstellt.
  • Fig. 3 ist ein Zeitablaufdiagramm, das die Zeitsteuerungssignale darstellt, die dem Bitmap-Speicher 22 von dem Pixelprozessor 18 geliefert werden.
  • Fig. 4 ist eine Darstellung eines Teils eines Anzeigebildschirms, die die Anzeige einer 4-x-4-Pixel-Matrix auf einer Rasteranzeige darstellt.
  • Fig. 5 stellt die Adreßkonvention für eine 4-x-4-Pixel-Matrix dar.
  • Fig. 6 ist ein Blockdiagramm des Pixelprozessors 18.
  • Fig. 7A stellt eine Bitblock-Übertragungsfunktion dar.
  • Fig. 7B stellt eine Linienzeichenfunktion dar.
  • Fig. 8A ist ein Ablaufdiagramm für die Aufgabe der Bitblockübertragung.
  • Fig. 8B ist ein Ablaufdiagramm für die Aufgabe des Linienzeichnens.
  • Fig. 9 ist ein Blockdiagramm des Speicheradressierungsschaltkreises des Pixelprozessors 18.
  • Fig. 10 ist ein Ablaufdiagramm, das den Betrieb der Steuerungsschaltung des Pixelprozessors 18 zur Durchführung entweder einer Bitblock-Übertragungsoperation oder einer Linienzeichenoperation darstellt.
  • Die vorliegende Erfindung betrifft einen Zählerschaltkreis für ein Datenverarbeitungssystem. Der Zählerschaltkreis befindet sich in einem Bildelementprozessor, der einer hochauflösenden graphischen Anzeige Graphikdaten liefert.
  • Die Erfindung befindet sich in einer Anzeigeadapterschaltung eines Computer-Endgeräts. 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 · 1024 Bildelementen mit 256 simultanen Farben aus einer Palette von 4096 möglichen Farben. Nachstehend folgt eine allgemeine Beschreibung dieses Anzeigeadapterschaltkreises.
  • Anzeigeadapter - Allgmeine Beschreibung
  • Fig. 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 · 1024 · 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 Aufgabeabgeschlossen-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 · 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 vorliegende Erfindung berechnet die Adressen für diese Register inkremental.
  • Die Organisation des Bitmap-Speichers 22 ist in Fig. 2 dargestellt. Die Pixel sind in Quadraten im Format 4 · 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 · 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. Fig. 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 Fig. 4 dargestellt. Fig. 5 stellt die Numerierung der Pixel in der 4-x-4-Anordnung dar.
  • Eine Überlagerungsebene, konkret Ebene 7 (407 in Fig. 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 Fig. 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 · 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 Fig. 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 Fig. 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 10 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 Fig. 7A und 7B dargestellt. Die Bitblockübertragungsaufgabe (Fig. 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 (Fig. 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 Fig. 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 (Fig. 6) geladen. Bei der Ausführung einer Bitblockübertragungsoperation dient die Endpunktlogik als Speicherungszwischenebene, die die Parameter zu der Adressenzähllogik 50 (Fig. 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 (Fig. 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.
  • Fig. 7B stellt eine Linienzeichenaufgabe dar. Um eine Linienzeichenanweisung auszuführen, werden die Endpunkte der Linie, P1 (150) und P2 (152), in die Endpunktlogik 40 (Fig. 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.
  • Fig. 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.
  • Fig. 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 in dieser Anordnung von Bildelementen 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 I2 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.
  • Ein Blockdiagramm für einen Doppelzweck- Linienzeichen-/Bitblockübertragungsschaltkreis ist in Fig. 9 dargestellt. Im einzelnen umfaßt diese Schaltung zwei Zähler, die Teile des Linienzeichenalgorithmus oder Teile des Bitblockübertragungsalgorithmus implementieren. Der erste Zähler umfaßt einen Multiplexerschaltkreis 224, der an ein Register 226 und an einen Dekrementierschaltkreis 228 angeschlossen ist. Der Dekrementierer 228 ist über eine Leitung 229 an einen Nullvergleichsschaltkreis 230 und an den Multiplexerschaltkreis 224 angeschlossen. Die Ausgabe des Nullvergleichsschaltkreises wird als Innenschleifen- Zählerstand der Steuerungsschaltung 222 übergeben. In Betrieb enthält das Register 226 bei einer Linienzeichenfunktion den Linienlängenparameter und bei einer Bitblockübertragungsfunktion einen Innenschleifen- Zählerstand. Der Dekrementierschaltkreis 228 dekrementiert während einer Zähleroperation entweder den Linienzählerstand oder den Innenschleifen-Zählerstand. Die Zähloperation wird nach dem Auftreten eines Taktzyklus durchgeführt, der dem Register 226 von der Leitung 60B übergeben wird. Das Register 226 wird von dem Multiplexer 224 initialisiert, der von der Leitung 60D gesteuert wird, um die Adresse auf dem Adreßbus 46B an das Register 226 zu übergeben oder die Ergebnisse in eine Schleife von dem Dekrementierschaltkreis 228 zum Register 226 zu schicken. Wenn die Ausgabe des Dekrementierschaltkreises 0 erreicht, liefert der Nullvergleichsschaltkreis 230 dem Steuerungsschaltkreis 222 ein Signal.
  • Ein zweiter Zähler wird bereitgestellt, der aus dem Multiplexer 200, dem Register 214 und dem Schaltkreis 218 besteht, der bei der Durchführung des Linienzeichenalgorithmus als Addierer und bei der Durchführung des Bitblockübertragungsalgorithmus als Dekrementierschaltkreis wirkt. Der Schaltkreis 218 liefert dem Multiplexer 200 über die Leitung 217 und dem Nullvergleichsschaltkreis 220 eine Ausgabe. Bei der Durchführung einer Bitblockübertragung wirken die Multiplexer 200, 210 und 218 als einfacher Zähler, der jedes Mal um einen Zählerstand dekrementiert, wenn der erste Zähler, der aus den Schaltkreisen 224, 226 und 228 besteht, 0 erreicht. Der Zähler wird von dem Adreßbus 46A initialisiert, der an den Multiplexer 200 angeschlossen ist, der diese Adresse auf Adreßbus 46A in das Register 214 lädt. Register 214 empfängt auf Leitung 60A ein Taktsignal, das die zweite Zählerkonfiguration taktet. Bei der Ausführung des Linienzeichenalgorithmus werden die Bresenham-Parameter in die Register 210 und 212 eingegeben. Der anfängliche "Fehlerterm" des Bresenham-Algorithmus wird durch den Multiplexschaltkreis 200 von dem Adreßbus 46B in das Register 214 geladen. Der Adreßbus 46C lädt den X-Adressenzähler 124 und den Y-Adressenzähler 126. Der X-Adressenzähler 124 und der Y-Adressenzähler 126 enthalten die X- und Y-Startadressen für die auszuführende Funktion. Sobald der anfängliche Ladeprozeß beendet ist, taktet die Steuerungsschaltung 222 die Register 214, 226, 124 und 126, bis die Aufgabe abgeschlossen ist.
  • Fig. 10 stellt ein Ablaufdiagramm der Operationen der Steuerungsschaltung 222 dar. Im Normalfall befindet sich die Steuerungsschaltung 222 entweder im Zustand 240 oder im Zustand 242, wo sie entscheidet, ob eine Aufgabe begonnen werden muß. Wenn keine Aufgabe begonnen werden muß, durchläuft die Steuerungsschaltung 222 weiterhin diese Schleife. Wenn ein Signal auf Leitung 60D (Fig. 9) eingeht, verläßt die Steuerungsschaltung 222 den Zustand 242 und begibt sich zu Schritt 246, der entscheidet, welcher Algorithmus (Bitblockübertragung oder Linienzeichnen) ausgeführt werden soll. Diese Entscheidung wird als Ergebnis des Signals auf Leitung 60C getroffen. Bei der Durchführung einer Bitblockübertragung zählt die Steuerungsschaltung 222 den Innenschleifenteil in Schritt 248 mit dem Entscheidungsschritt 250, bis das Ende der Innenschleife gezählt ist. Wenn-die Innenschleife gezählt ist, begibt sich die Steuerungsschaltung zu Schritt 252, um die Außenschleife zu zählen. Der Entscheidungsschritt 254 stellt fest, ob die Außenschleife abgeschlossen ist. Wenn nicht, beginnt die Steuerungsschaltung in Schritt 248 wieder mit der nächsten Innenschleifenzählung. Wenn die Zählung der Innenschleife und der Außenschleife abgeschlossen ist, begibt sich die Steuerungsschaltung 222 wieder in den Leerlauf zustand 240.
  • Bei der Durchführung einer Linienzeichenfunktion erfolgt Schritt 256. In Schritt 256 setzt sich die Innenschleifenzählung (die in Register 226 von Fig. 8 zählt) wie bei einer Bitblockübertragungsfunktion fort. Allerdings wird als Ergebnis des Bresenham-Algorithmus der Zählerstand in Register 214 geliefert. Schritt 258 stellt fest, wann die Zählung in den Registern 226 und 214 abgeschlossen ist. Wenn sie nicht abgeschlossen ist, durchläuft die Steuerungsschaltung 222 die Schleife zurück zu Schritt 256. Wenn die Funktion nach der Feststellung in Schritt 258 abgeschlossen ist, begibt sich die Steuerungsschaltung 222 wieder in den Leerlauf zustand 240.
  • Diese Erfindung wurde zwar unter Bezugnahme auf dieses spezifische Ausführungsbeispiel beschrieben, doch ist diese Beschreibung nicht in einem einschränkenden Sinne auszulegen.
  • Verschiedene Modifikationen des beschriebenen Ausführungsbeispiels werden für den Fachmann deutlich sein.

Claims (4)

1. Ein graphisches Anzeigesystem mit einem Prozessor zur Ausführung eines Linienzeichenalgorithmus oder eines Bitblockübertragungsalgorithmus, wobei der Prozessor einen Adressierschaltkreis umfaßt, gekennzeichnet durch ein Steuerungsmittel (222), das auf ein Algorithmus- Auswahlsignal zur Bildung von Zählersteuerungssignalen reagiert, ein erstes Zählermittel (124, 224, 226, 228) zum Zählen von einem ersten Ausgangszustand zu einem ersten vorbestimmten Wert und ein zweites Zählermittel (126, 200, 214, 218), das unter der Steuerung der Zählersteuerungssignale betrieben werden kann, um entweder eine erste Operation zur Lieferung von Adressen zur Durchführung einer Bitblockübertragung vorzunehmen, wozu das zweite Zählermittel ein Mittel zur Zählung von einem zweiten Ausgangswert zu einem zweiten vorbestimmten Wert als Reaktion darauf umfaßt, daß das erste Zählermittel zum ersten vorbestimmten Wert zählt, oder eine zweite Operation zur Lieferung von Adressen zur Durchführung des Zeichnens einer Linie vorzunehmen, wozu das zweite Zählermittel ein Mittel zur Berechnung eines Parameterwertes beim Auftreten eines Zählerstandes des ersten Zählermittels umfaßt und je nach dem berechneten Wert bedingt von einem zweiten Ausgangswert zu einem zweiten vorbestimmten Wert zählt.
2. Ein graphisches Anzeigesystem nach Anspruch 1, wobei der Prozessor ein Taktmittel zur Lieferung von Taktzyklussignalen zu dem ersten und dem zweiten Zählermittel umfaßt und wobei jedes Zählen durch das erste oder das zweite Zählermittel beim Auftreten des Taktzyklussignals erfolgt.
3. Ein graphisches Anzeigesystem nach Anspruch 2, wobei das erste und das zweite Zählermittel Adressenzähler (124, 126) zum Inkrementieren von Adressen für den Linienzeichenalgorithmus oder den Bitblockübertragungsalgorithmus umfassen, die unter der Steuerung des Steuerungsmittels betrieben werden können.
4. Ein graphisches Anzeigesystem nach einem beliebigen der Ansprüche 1 bis 3, wobei das erste Zählermittel ein erstes Adreßregister (226) umfaßt und das zweite Zählermittel ein zweites Adreßregister (214) umfaßt und in diese Adreßregister unter der Steuerung des Steuerungsmittels je nach dem gewählten Algorithmus Linienparameter oder Schleifenzählerstände geladen werden können.
DE3889240T 1987-02-12 1988-01-26 Zähler mit veränderbarer Verschaltung zur Adressierung in graphischen Anzeigesystemen. Expired - Fee Related DE3889240T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US07/013,841 US4837563A (en) 1987-02-12 1987-02-12 Graphics display system function circuit

Publications (2)

Publication Number Publication Date
DE3889240D1 DE3889240D1 (de) 1994-06-01
DE3889240T2 true DE3889240T2 (de) 1994-11-24

Family

ID=21762055

Family Applications (1)

Application Number Title Priority Date Filing Date
DE3889240T Expired - Fee Related DE3889240T2 (de) 1987-02-12 1988-01-26 Zähler mit veränderbarer Verschaltung zur Adressierung in graphischen Anzeigesystemen.

Country Status (5)

Country Link
US (1) US4837563A (de)
EP (1) EP0279225B1 (de)
JP (1) JPH0769969B2 (de)
BR (1) BR8800289A (de)
DE (1) DE3889240T2 (de)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5070465A (en) * 1987-02-25 1991-12-03 Sony Corporation Video image transforming method and apparatus
US5027291A (en) * 1987-11-24 1991-06-25 International Business Machines Corporation Application exit for potentially pickable primitives in a graphics system
JPH0679339B2 (ja) * 1988-04-11 1994-10-05 株式会社イーゼル 画像処理方法
US5367680A (en) * 1990-02-13 1994-11-22 International Business Machines Corporation Rendering context manager for display adapters supporting multiple domains
US5218674A (en) * 1990-09-14 1993-06-08 Hughes Aircraft Company Hardware bit block transfer operator in a graphics rendering processor
US5313576A (en) * 1990-11-23 1994-05-17 Network Computing Devices, Inc. Bit aligned data block transfer method and apparatus
US5345555A (en) * 1990-11-23 1994-09-06 Network Computing Devices, Inc. Image processor memory for expediting memory operations
US5293472A (en) * 1991-04-22 1994-03-08 International Business Machines Corporation Method of generating lines and curves of user specified thicknesses on a raster device
EP0623232B1 (de) * 1992-01-21 1996-04-17 Compaq Computer Corporation 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
US5280571A (en) * 1992-02-03 1994-01-18 Intel Corporation Method and apparatus for line drawing by interleaving multiple processors
US5371518A (en) * 1992-02-27 1994-12-06 Silicon Graphics, Inc. Video timing and display ID generator
JP3210141B2 (ja) * 1993-06-24 2001-09-17 松下電器産業株式会社 直線描画装置
US5668941A (en) * 1995-06-22 1997-09-16 Cirrus Logic, Inc. Optimum implementation of X-Y clipping on pixel boundary
KR100207541B1 (ko) * 1996-12-30 1999-07-15 윤종용 디지탈 비디오 디스크 롬 인터페이스 장치 및 방법
US5929872A (en) * 1997-03-21 1999-07-27 Alliance Semiconductor Corporation Method and apparatus for multiple compositing of source data in a graphics display processor
US6830196B1 (en) * 1999-05-25 2004-12-14 Silverbrook Research Pty Ltd Identity-coded surface region
CN100423081C (zh) * 2004-12-03 2008-10-01 深圳迈瑞生物医疗电子股份有限公司 硬件加速显示水平线段的装置及其方法
US8854383B2 (en) * 2011-04-13 2014-10-07 Qualcomm Incorporated Pixel value compaction for graphics processing

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3764790A (en) * 1972-03-30 1973-10-09 Nasa Technique for extending the frequency range of digital dividers
US4272808A (en) * 1979-05-21 1981-06-09 Sperry Corporation Digital graphics generation system
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 図形処理装置
JPS58209230A (ja) * 1982-05-31 1983-12-06 Toshiba Corp プログラマブルカウンタ
JPS59149526A (ja) * 1983-01-28 1984-08-27 Fujitsu Ltd フイ−ルド内文書編集処理装置
EP0146594B1 (de) * 1983-05-25 1990-10-10 Ramtek Corporation Verfahren und vorrichtung zum erzeugen von vektorattributen
EP0130247B1 (de) * 1983-06-30 1987-03-04 International Business Machines Corporation Programmierbare Zeitsteuerschaltung für eine Kathodenstrahlanzeigeeinrichtung
US4667306A (en) * 1983-07-20 1987-05-19 Ramtek Corporation Method and apparatus for generating surface-fill vectors
JPS6073682A (ja) * 1983-09-30 1985-04-25 株式会社東芝 グラフイツクメモリ内デ−タ転送方式
US4626839A (en) * 1983-11-15 1986-12-02 Motorola Inc. Programmable video display generator
US4644503A (en) * 1983-12-30 1987-02-17 International Business Machines Corporation Computer memory system with integrated parallel shift circuits
JPS619762A (ja) * 1984-06-25 1986-01-17 インタ−ナショナル ビジネス マシ−ンズ コ−ポレ−ション イメ−ジ処理装置
FR2574575B1 (fr) * 1984-12-11 1987-02-06 O Donnell Ciaran Processeur de trace de vecteur
JPS6211970A (ja) * 1985-07-09 1987-01-20 Nec Corp アドレス発生回路

Also Published As

Publication number Publication date
US4837563A (en) 1989-06-06
DE3889240D1 (de) 1994-06-01
EP0279225A3 (de) 1991-04-17
EP0279225B1 (de) 1994-04-27
JPS63201790A (ja) 1988-08-19
JPH0769969B2 (ja) 1995-07-31
EP0279225A2 (de) 1988-08-24
BR8800289A (pt) 1988-09-06

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.
DE3751720T2 (de) Schaltung für die bildschirmwiedergabe von computern
DE69516881T2 (de) Speichervorrichtung und datenverarbeitungssystem mit einer solchen speichervorrichtung
DE69021429T2 (de) Speicherzugriffssteuerschaltung für Grafik-Steuergerät.
DE68920147T2 (de) Anzeigesystem.
DE3687358T2 (de) Bildpufferspeicher mit variablem zugriff.
DE69735975T2 (de) System und Verfahren zur Überlagerung von wahlweise in unterschiedlichen nativen Formaten gespeicherten Bildern
DE69020279T2 (de) Mechanismus zur Sicherung von Bildelementen für Adapter für gemischte Darstellung von graphischen Signalen und Video.
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
DE3850955T2 (de) Anzeigesystem mit einem Fenstermechanismus.
DE3751302T2 (de) Anzeigesteuergerät.
DE69122226T2 (de) Verfahren und Einrichtung zur Zugriffsanordnung eines VRAM zum beschleunigten Schreiben von vertikalen Linien auf einer Anzeige
DE3852185T2 (de) Bildspeicher für Raster-Video-Anzeige.
DE3786125T2 (de) Raster-Bildschirm-Steuerung mit veränderlicher räumlicher Auflösung und variabler Datentiefe der Bildelemente.
DE3688145T2 (de) Videoanzeigesystem.
DE3636394C2 (de) Einrichtung und Verfahren zur Speicherorganisation
DE10101073B4 (de) Bildaufbereitungsvorrichtung mit niedrigeren Speicherkapazitätsanforderungen und Verfahren dafür
EP0038411A2 (de) Einrichtung zur Speicherung und Darstellung graphischer Information
DE3587744T2 (de) Steuerlogik für ein Videosystem mit einer Schaltung, welche die Zeilenadresse ausser Kraft setzt.
DE3889557T2 (de) Vektorgenerator für Raster-Bildschirmanzeige.
DE68925569T2 (de) Dynamischer Video-RAM-Speicher
DE3887517T2 (de) Steuergerät des die Tiefeninformation enthaltenden Buffers.

Legal Events

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