DE69735975T2 - System und Verfahren zur Überlagerung von wahlweise in unterschiedlichen nativen Formaten gespeicherten Bildern - Google Patents

System und Verfahren zur Überlagerung von wahlweise in unterschiedlichen nativen Formaten gespeicherten Bildern Download PDF

Info

Publication number
DE69735975T2
DE69735975T2 DE69735975T DE69735975T DE69735975T2 DE 69735975 T2 DE69735975 T2 DE 69735975T2 DE 69735975 T DE69735975 T DE 69735975T DE 69735975 T DE69735975 T DE 69735975T DE 69735975 T2 DE69735975 T2 DE 69735975T2
Authority
DE
Germany
Prior art keywords
overlay
display
data
display data
fifo
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 - Lifetime
Application number
DE69735975T
Other languages
English (en)
Other versions
DE69735975D1 (de
Inventor
Lawrence P. Chee
John David Mulvenna
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.)
Seiko Epson Corp
Original Assignee
Seiko Epson 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 Seiko Epson Corp filed Critical Seiko Epson Corp
Publication of DE69735975D1 publication Critical patent/DE69735975D1/de
Application granted granted Critical
Publication of DE69735975T2 publication Critical patent/DE69735975T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • 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/001Arbitration of resources in a display system, e.g. control of access to frame buffer by video controller and/or main processor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • G06F3/1423Digital output to display device ; Cooperation and interconnection of the display device with other functional units controlling a plurality of local displays, e.g. CRT and flat panel display
    • G06F3/1431Digital output to display device ; Cooperation and interconnection of the display device with other functional units controlling a plurality of local displays, e.g. CRT and flat panel display using a single graphics controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • G06F3/1423Digital output to display device ; Cooperation and interconnection of the display device with other functional units controlling a plurality of local displays, e.g. CRT and flat panel display
    • G06F3/1438Digital output to display device ; Cooperation and interconnection of the display device with other functional units controlling a plurality of local displays, e.g. CRT and flat panel display using more than one graphics controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • G06F3/147Digital output to display device ; Cooperation and interconnection of the display device with other functional units using display panels
    • 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/08Cursor circuits
    • 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/14Display of multiple viewports
    • 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/363Graphics controllers
    • 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
    • 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/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/395Arrangements specially adapted for transferring the contents of the bit-mapped memory to the screen
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2310/00Command of the display device
    • G09G2310/02Addressing, scanning or driving the display screen or processing steps related thereto
    • G09G2310/0229De-interlacing
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2330/00Aspects of power supply; Aspects of display protection and defect management
    • G09G2330/02Details of power systems and of start or stop of display operation
    • G09G2330/021Power management, e.g. power saving
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2340/00Aspects of display data processing
    • G09G2340/12Overlay of images, i.e. displayed pixel being the result of switching between the corresponding input pixels
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2340/00Aspects of display data processing
    • G09G2340/12Overlay of images, i.e. displayed pixel being the result of switching between the corresponding input pixels
    • G09G2340/125Overlay of images, i.e. displayed pixel being the result of switching between the corresponding input pixels wherein one of the images is motion video
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G3/00Control arrangements or circuits, of interest only in connection with visual indicators other than cathode-ray tubes
    • G09G3/20Control arrangements or circuits, of interest only in connection with visual indicators other than cathode-ray tubes for presentation of an assembly of a number of characters, e.g. a page, by composing the assembly by combination of individual elements arranged in a matrix no fixed position being assigned to or needed to be assigned to the individual characters or partial characters
    • G09G3/34Control arrangements or circuits, of interest only in connection with visual indicators other than cathode-ray tubes for presentation of an assembly of a number of characters, e.g. a page, by composing the assembly by combination of individual elements arranged in a matrix no fixed position being assigned to or needed to be assigned to the individual characters or partial characters by control of light from an independent source
    • G09G3/3406Control of illumination source
    • 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/395Arrangements specially adapted for transferring the contents of the bit-mapped memory to the screen
    • G09G5/397Arrangements specially adapted for transferring the contents of two or more bit-mapped memories to the screen simultaneously, e.g. for mixing or overlay

Description

  • Die vorliegende Erfindung betrifft allgemein Grafiksysteme, und genauer ist die vorliegende Erfindung auf die Verarbeitung von Grafiküberlagerungen gerichtet.
  • Ein Multimedia-Grafiksystem, das verschiedene Arten digitaler Informationen anzeigt, wie verschiedene Arten von Standard-Interframe-Video, Grafik und Fernsehen, wird in der EP-A-0675478 beschrieben. Das System umfasst eine Mehrzahl von FIFOs für Daten, die zu der Mehrzahl von verschiedenen Formaten gehören, die anzuzeigen sind, und einen Timing-FIFO, der mit einer Zeitgebungsvorrichtung zum Erzeugen von Zeitsignalen verbunden ist. Eine Mehrzahl von Anzeigevorrichtungen kann angeschlossen werden, jedoch ist das System ebenso in der Lage, verschiedene Formate auf einer einzigen Anzeigevorrichtung zu überlagern (z.B. Videos in einem Fenster auf einem Bildschirm anzuzeigen, der Grafik anzeigt). Daher umfasst das System einen Pixel-Priorität-Multiplexer. Der Grafikspeicher umfasst getrennte Bereiche für verschiedene Formate, wie Grafik und Video, wobei das Video in einem Standardformat, wie NTSC oder PAL, gespeichert ist. Die Merkmale des Oberbegriffs der unabhängigen Ansprüche sind aus diesem Dokument bekannt.
  • Die Idee des doppelten Pufferns von Anzeigedaten unter Verwendung zweier Speicherblöcke, um die Überlagerung verschiedener Bildebenen auf einem Bildschirm zu verarbeiten, wird in dem Artikel „RAMDAC Enhancement for Double Buffered Graphics System", IBM Technical Disclosure Bulletin, Bd. 36(4), 189–191, 1993 erläutert.
  • Das Dokument EP-A-0610829 betrifft ein System zum Anzeigen von Informationen, wie Grafiken und Video, auf einem Bildschirmmonitor. Verschiedene Speicherbereiche werden für die Grafikdaten und Videodaten zur Verfügung gestellt. Ein digitaler Multiplexer wird zum Überlagern der Daten auf dem Bildschirm, wie Videobilder in einem Fenster über Grafiken, verwendet. Besondere Aufmerksamkeit wird auf verschiedene Aspekte der Verarbeitung digitaler Bilddaten für die Anzeige, wie einer Farbraumkonversion und Verwendung von Interpolationstechniken für eine Verbesserung der Leistungsfähigkeit, gelegt.
  • Die Patentschrift US-A-4009407 beschreibt ein System zum Definieren einer Priorität von Anforderungen in einem Datenverarbeitungssystem. Das System kombiniert Präventiv- und Rotations-Prioritäts-Kriteria unter Verwendung eines Multi-Tier-Ansatzes.
  • Eine herkömmliche Busvermittelungsschaltung ist im Zusammenhang mit dem US Patent Nr. 4453214 (im folgenden das Patent '214 genannt), veröffentlicht am 5. Juni 1984, von Ralph L. Adcock, bekannt. Entsprechend dem Patent '214 stellt ein Bus-Arbitrator- und ein Speichermanager (BAMM) eine Priorität unter konkurrierenden operierenden Einheiten eines Computersystems her. Der BAMM sortiert Anforderungen für den Zugriff auf den Speicher entsprechend einer Priorität und erlaubt der Vorrichtung mit der höchsten Priorität den Zugriff vor den anderen Vorrichtungen. Es scheint, dass, sobald einer Vorrichtung Zugriff auf den Speicher erlaubt wird, eine Unterbrechung dieses Zugriffes nicht erlaubt wird, wenn eine Anforderung für den Zugriff von einer anderen Vorrichtung mit einer höheren Priorität von dem BAMM des Patents '214 empfangen wird. Wenn eine Vorrichtung, die Speicherzugriff gehabt hat, diesen Zugriff beendet hat, liefert sie ein „Sign-Off"-Signal und erlaubt dadurch dem BAMM, Speicherzugriff der Vorrichtung zu erlauben, die um Zugriff anfragt und die höchste Priorität hat.
  • Mit einem BAMM der Art, die in dem Patent '214 offenbart ist, könnte einem Anzeige-FIFO eines Computersystems Zugriff auf den DRAM möglicherweise zu einer Zeit verweigert werden, wenn ein Anzeige-FIFO fast oder vollständig ohne Informationen für die Anzeige ist. Somit könnte die Kontinuität des Betriebes der Anzeige des Computersystems unterbrochen werden. Es ist verständlich, dass diese Art der Anzeigenunterbrechung für einen Benutzer des Computersystems bedenklich und verwirrend sein würde.
  • Ein anderes herkömmliches Grafiksystem mit einem Grafikcontroller und einem DRAM-Controller ist im Zusammenhang mit dem US Patent Nr. 4991112 (im folgenden das Patent '112 genannt), veröffentlicht am 5. Februar 1991, von Jean-Michel Callemyn, bekannt. Entsprechend dem Patent '112 empfängt ein DRAM-Controller Refresh-Anforderungen und Anforderungen für einen Zugriff auf den DRAM in Bursts und vermittelt unter den Anforderungen. Während eines Anzeigestadiums, nach einem vorbereitenden Lesen, wird die höchste Priorität dem Anzeige-FIFO zugeteilt. Ein Lesen von dem DRAM in Bursts kann unterbrochen werden, wenn der FIFO voll ist. In diesem Fall wird die Priorität einem möglichen vorbereitenden Lesen gegeben. In Ermangelung einer Anforderung für ein vorbereitendes Lesen wird eine Anforderung durch die CPU gewürdigt und ein Zugriff auf den DRAM wird für die CPU bewirkt. Sobald der FIFO eine Anforde rung für einen Zugriff ausgibt, wird jedoch der CPU-Zugriff unterbrochen, und das vorher unterbrochene Lesen in Bursts für den FIFO wird wieder aufgenommen. Während des Line-Return-Stadiums werden unterschiedliche Prioritäten für den Zugriff auf den DRAM festgelegt. Das heißt, dem Refreshen des DRAMs wird die höchste Priorität gegeben, gefolgt von der Füllung des Anzeige-FIFOs. Als drittes in der Priorität folgt Befolgung der Zugriffsanforderungen von dem Grafikprozessor und dann die Zugriffe für die CPU. Jedoch anders als die Unterbrechung, die oben beschrieben wird, wird von dem Patent '112 nicht angenommen, dass es eine Unterbrechung eines Zugriffes auf den DRAM, sobald dieser Zugriff erlaubt worden ist, erlaubt. Zudem ist die Unterbrechung, die von dem Patent '112 zugelassen wird, eine inhärente Unterbrechung, die notwendig ist, zu verhindern, dass Daten des FIFOs durch neue Daten überschrieben werden, weil der FIFO voll ist.
  • Noch ein anderer herkömmlicher DRAM-Refresh-Controller mit einem Bus-Arbiter-Schema ist in Übereinstimmung mit dem US-Patent Nr. 5345577 bekannt (im folgenden das Patent '577 genannt), veröffentlicht am 6. September 1994, von Tzoyao Chan und Milton Cheung. Entsprechend dem Patent '577 wird ein Cache-Controller sowohl mit einem Burst- als auch einem Hidden-Refresh-Modus versehen. Refresh-Anforderungen werden gezählt, aber es wird nicht mit Erlauben des Speicherzugriffs darauf reagiert, bis eine bestimmte Anzahl von diesen Anforderungen empfangen worden sind. Auf der anderen Seite werden Hidden-Refreshs ausgeführt, ohne dass ein Haltsignal an die CPU gesendet wird, während der Refresh erfolgt. Bis der Refresh beendet ist, wird ein lokaler Speicherzugriff jedoch kein Remote-Speicherzugriff gewährt. Infolgedessen wird der CPU ein Speicherzugriff während eines Hidden-Refreshs verweigert, jedoch erwartet sie sowieso keinen sofortigen Zugriff auf den Speicher, so dass der Hidden-Refresh und die CPU-Operation sich nicht stören. Eine Unterbrechung des Speicherzugriffs, wenn er einmal bewilligt ist, scheint nicht ein Merkmal dieses Patents zu sein.
  • Unter Berücksichtigung allgemeiner Betrachtungen ist in einem Grafikcontroller, wie einem VDC im Allgemeinen oben beschrieben, eine vermittelnde DRAM-Schnittstelle (Zugriff) unter den verschiedenen Vorrichtungen des Systems der kritischste Teil des Controllers. Der Zugriff auf den DRAM schreibt vor, wie und wann Vorrichtungen wie die Bit-BLT-Engine, der Anzeige-FIFO und der lokale Bus (das heißt die CPU) Zugriff auf den DRAM haben. Zugriffsanforderungen durch die CPU- und Bit-BLT-Engine schließen sich gegenseitig aus und werden nicht gleichzeitig auftreten. Gewöhnlich muss, wann immer Zugriff auf den DRAM für eine Vorrichtung unterbrochen wird und für eine andere Vorrichtung zugelassen wird, auf eine neue Page des DRAM zugegriffen werden. Das heißt, der DRAM kann als eine zweidimensionale Anordnung von Speicherpositionen visualisiert werden. Dieser Speicher benutzt Reihen und Spalten von Speicherpositionen (oder Speicherzellen) mit einem Reihenzeiger und einem Spaltenzeiger. Solange der Speicherzugriff auf eine einzige Reihe des Speichers erfolgt, wobei der Spaltenzeiger sich einfach entlang der Reihe bewegt, wenn Daten zu Adressenposition von der Reihe geschrieben werden oder daraus gelesen werden, dann wird ein Single-Page-Zugriff auf den Speicher bewirkt, und es ist keine Page-Unterbrechung notwendig. Wenn jedoch auf eine andere Reihe (d.h. eine andere Page) des Speichers zugegriffen werden muss, muss eine Pre-Charge-Sequenz in Vorbereitung zu dem Zugreifen auf die folgende Reihe der Speicherpositionen durchgeführt werden. Diese Pre-Charge-Sequenz dauert Zeit, so dass ein Mehrfach-Page-Zugriff auf den Speicher nicht annähernd so leistungsfähig wie ein Einzel-Page-Zugriff ist, was die Datenmenge anbelangt, die während des Zeitintervalls eines solchen Speicherzugriffs in den Speicher geschrieben wird oder aus dem Speicher gelesen wird.
  • Somit ist der Page-Modus-Zugriff auf den DRAM hinsichtlich der Zeitverwendung viel leistungsfähiger, als der wahlfreie Zugriff auf den DRAM wegen der vielen Page-Unterbrechungen, die für den wahlfreien Zugriff erforderlich sind. Wenn der Page-Modus für den DRAM nicht beibehalten wird, dann muss mindestens ein vorbereitender Pre-Charge-Zyklus ausgeführt werden, um Zugriff zu einer anderen unterschiedlichen Page des DRAM zusätzlich zu dem Zeitintervall zu erlauben, das erforderlich ist, die Daten in die Speicherzellen zu schreiben oder die Daten aus diesen zu lesen. Wenn ein Zugriff auf den DRAM für die Bit-BLT erlaubt wird, sind diese Zugriffe gewöhnlich Mehr-Page-Zugriffe, die beträchtliche Zeit verbrauchen, aber eine Anforderung für diesen Zugriff erfordert nicht, dass ein sofortiger Zugriff auf den DRAM bewilligt wird. Auf der anderen Seite ist der CPU (lokaler Bus) – Zugriff auf den DRAM normalerweise ein Einzel-Page-Zugriff, der beträchtlich weniger Zeit als ein Bit-BLT-Zugriff erfordert und auch nicht erfordert, dass eine Anforderung in einem sofortigen Zugriff resultiert. Wenn jedoch von der CPU gefordert wird, dass sie auf den DRAM-Zugriff wartet, wird der Systemdurchsatz verringert, und die WINMARKS (Industriestandard-Leistungs-Benchmarks) für das Computersystem werden auch verringert. Weiterhin fordert der Anzeige-FIFO eines Grafikcontrollers auch einen DRAM-Zugriff, und kann als Sammelbehälter für Wasser (Daten) vorgestellt werden, das mit einer gleichförmigen Rate von der Unterseite ausläuft, und nur gelegentlich wieder von der Oberseite nachgefüllt wird. Der Anzeige-FIFO speichert Bildinformationen, die zu den Anzeigevorrichtungen zu senden sind (d.h. z.B. zu der CRT oder zu dem LCD). Die Rate der Entleerung der Daten von dem Anzeige-FIFO hängt von dem Modus des Anzeigenbetriebes ab. Wenn die Anzeige in einem Grauskalen-Modus betrieben wird, der vier Bits pro Pixel erfordert, dann läuft der Anzeige-FIFO nicht sehr schnell leer. Auf der anderen Seite kann, wenn der Benutzer die Anzeige in einem Farbmodus laufen lässt, jedes Pixel der Anzeige acht Bits oder sechzehn Bits oder möglicher Weise mehr als sechzehn Bits an Informationen erfordern; und der Anzeige-FIFO läuft entsprechend schneller leer.
  • Wenn er wieder gefüllt wird, ist die Wiederfüllrate des Anzeige-FIFOs viel höher als die Auslaufrate. Aber das Wiederfüllen kann zeitweilig sein und unterbrochen werden für die Genehmigung anderer Aktivitäten, die Zugriff auf den DRAM erfordern. Weiterhin muss es verstanden werden, dass, während der FIFO wieder gefüllt wird, komplette Doppelwörter von Daten von dem DRAM eingegeben werden müssen. Wenn es einen unzulänglichen Raum an der Oberseite des Anzeige-FIFOs gibt, um sämtliche der letzten Doppelwörter der Daten, die zu einer bestimmten Zeit eingegeben werden, zu akzeptieren, dann werden einige der vorhandenen Daten überschrieben und gehen verloren. Herkömmlicher Weise wird eine FIFOLO-Anforderung (ein Anforderung für DRAM-Zugriff niedriger Priorität) durch den Anzeige-FIFO an den DRAM-Controller ausgegeben, sobald der Anzeige-FIFO Raum an der Oberseite für mindestens ein Doppelwort von neuen Daten hat, ohne dass die vorhandenen Daten überschrieben werden, die darauf warten an die Anzeigevorrichtung gesendet zu werden.
  • Infolgedessen können ein oder mehr Zugriffe auf den DRAM dem Anzeige-FIFO in Erwiderung auf die FIFOLO-Anforderung bewilligt werden. Diese Anforderung wird nicht gelöscht, bis der FIFO gefüllt ist. Wenn der Anzeige-FIFO nicht ausreichend in Erwiderung auf der FIFOLO-Anforderung wiedergefüllt wird, dann wird, sobald der Anzeige-FIFO damit beginnt, sein letztes Doppelwort von Daten in die Anzeige zu schreiben, eine FIFOHI-Anfoderung für einen Zugriff auf den DRAM ausgegeben. Diese FIFOHI-Anforderung wird sofort gewürdigt. Wieder wird die FIFOHI-Anforderung nicht gelöscht, bis der FIFO vollständig gefüllt ist. Infolgedessen löscht ein herkömmlicher DRAM-Controller gleichzeitig sowohl FIFOLO als auch FIFOHI, nachdem eine FIFOHI-Anforderung ausgegeben worden ist. Wieder würden diese Anforderungen für einen DRAM-Zugriff herkömmlich nicht gelöscht werden, bis der FIFO vollständig mit neuen Daten gefüllt ist.
  • 1, Linie 1, stellt ein Zeitdiagramm bildlich dar, das eine idealisierte Reihenfolge von Zugriffen auf einen DRAM eines VDCs zeigt, die zwischen einem Anzeige-FIFO und einer Bit-BLT-Engine wechseln. Linie 2 dieser 1 zeigt auch eine idealisierte Reihenfolge von Zugriffen auf den DRAM durch einen Anzeige-FIFO und die CPU. Diese idealisierten Zeitdiagramme zeigen, dass es weder für die Bit-BLT noch für die CPU erforderlich ist, auf den DRAM-Zugriff zu warten, dass der DRAM keine untätige Zeit hat und dass die Zugriffe, die bewilligt werden, für die Bit-BLT verhältnismäßig lang sind, so dass Mehr-Page-Zugriffe vollendet werden können. Herkömmliche Computersystem-Grafikcontroller erzielen kein solches idealisiertes Management des DRAM-Zugriffes.
  • Außerdem sind in einem tatsächlichen Computersystem-Grafikcontroller (d.h. einem VDC) das Aufreihen der Anforderungen für den Zugriff auf den DRAM und die Zugriffe auf den DRAM, die wirklich bewilligt werden, nicht idealisiert. Dementsprechend stellt die hypothetische 2 (gekennzeichnet als Stand der Technik) ein Zeitdiagramm bildlich dar, wie es in einem tatsächlichen herkömmlichen Computersystem-Grafikcontroller erfahren werden kann.
  • Unter Betrachtung von 2, zeigt die erste der drei Zeitlinien dieses Diagramms Anforderungen für einen Zugriff auf den DRAM von der CPU. Die nächsten zwei Linien zeigen Zugriffsanforderungen von dem Anzeige-FIFO: die erste auf einer Basis niedriger Priorität (FIFOLO) – anzeigend, dass der Anzeige-FIFO hinreichend Anzeigeinformation verlustig gegangen ist, dass mindestens ein Doppelwort an neuen Informationen in diesen FIFO geschrieben werden kann, ohne vorhandene Daten zu überschreiben; und die zweite auf einer Basis hoher Priorität (FIFOHI) – anzeigend, dass der Anzeige-FIFO sein letztes Doppelwort an Informationen benutzt und in Gefahr ist, keine Informationen mehr zu besitzen, die an den Benutzer mittels der Anzeigevorrichtung (d.h. z.B. der CRT oder des LCD) bereitzustellen sind. Diese FIFOLO- und FIFOHI-Anforderungen werden nicht gelöscht (d.h. entfernt oder eingestellt), bis dem Anzeige-FIFO der DRAM-Zugriff bewilligt ist und der FIFO vollständig mit Daten gefüllt ist. In diesem herkömmlichen Grafikcontroller wird ein Zugriff auf den DRAM mit der höchsten Priorität für eine Anzeige-FIFOHI-Anforderung zugelassen, wobei selbst ein Zugriff unterbrochen wird, der bereits der CPU oder einer anderen Vorrichtung des Computersystems bewilligt worden ist.
  • Unter Betrachtung von 2 wird der CPU während des Intervalls # 1 DRAM-Zugriff bewilligt und sie benachrichtigt über das Ende. Während des Intervalls # 2 ist der DRAM untätig. Der Anfang des Intervalls # 3 zeigt den Anfang des Anzeigengrafikprozesses mit dem leeren Anzeige-FIFO und die gleichzeitige Austeilung einer FIFOLO- und FIFOHI-Anforderung an. Die FIFOHI-Anforderung wird gewürdigt, aber diese Anforderungen (FIFOLO und FIFOHI) werden nicht gelöscht, bis der Anzeige-FIFO vollständig mit Daten gefüllt ist. Infolgedessen zeigt der Anfang des Intervalls # 4 eine Anforderung von der CPU für einen DRAM-Zugriff an, der nicht gewürdigt wird, bis die FIFOHI-Anforderung gelöscht ist. Intervall # 4 zeigt eine Wartezeit für die CPU an. Das Ende des Intervalls # 4 zeigt die simultane Löschung sowohl der FIFOLO als auch der FIFOHI und den Anfang des Intervalls # 5 an, während dessen der CPU schließlich DRAM-Zugriff bewilligt wird. Intervall # 9 zeigt die Austeilung einer FIFOLO-Anforderung von dem Anzeige-FIFO für einen DRAM-Zugriff an. Weil unzulängliche Daten zu dem Anzeige-FIFO in Erwiderung auf die FIFOLO-Anforderung (eine andere Vorrichtung, wie z.B. die Bit-BLT, kann einen DRAM-Zugriff ausführen, so dass die FIFOLO-Anforderung nicht hinreichend gewürdigt wird) zur Verfügung gestellt werden, gibt der Anzeige-FIFO eine FIFOHI-Anforderung am Anfang des Intervalls # 10 aus. Diese FIFOHI-Anforderung wird sofort während des Intervalls # 10 gewürdigt. Jedoch resultiert ein anderes Intervall (Intervall # 10), während dessen der CPU Zugriff auf den DRAM verweigert wird. Am Ende des Intervalls # 10 werden die FIFOLO- und die FIFOHI-Anforderung beide gleichzeitig gelöscht, und der CPU wird der DRAM-Zugriff bewilligt.
  • Außerdem zeigt 2, dass das herkömmliche Vermittlungsschema darin resultiert, den DRAM manchmal untätig sein zu lassen (Intervalle 2, 6 und 8) und darin, dass entweder die CPU oder der Anzeige-FIFO auf Zugriff auf den DRAM wartet (Intervalle 4, 9 und 10). Sobald eine FIFOHI-Anforderung erfolgt ist, wird von der CPU gefordert, dass sie wartet, bis der Anzeige-FIFO vollständig gefüllt ist, bevor der CPU Zugriff auf den DRAM bewilligt werden kann, obwohl der Anzeige-FIFO genügend Daten empfangen haben mag, so dass nicht länger eine unmittelbare Gefahr besteht, dass er keine Daten mehr für die Anzeigen besitzt. Dieser herkömmliche Grafikcontroller kann den Page-Modus für den DRAM nicht beibehalten und verringert auch die Durchsatzrate für das Computersystem.
  • Dementsprechend ist eine lang bemerkte Notwendigkeit für eine leistungsfähigere und wirkungsvollere Weise des Entscheidens über den Zugriff auf den DRAM eines Grafikcontrollers erkannt worden ist.
  • Weiterhin ist ein herkömmlicher Anzeigencontroller in Übereinstimmung mit dem US Patent Nr. 5138305 (im folgenden das Patent '305 genannt), veröffentlicht am 11. August 1992, von Yuichi Tomiyasu, bekannt. Es wird geglaubt, dass das Patent '305 einen Anzeigencontroller lehrt, welcher einen LCD unter Verwendung von VGA-Formatsignalen betreibt, die für eine CRT beabsichtigt sind. Das Patent '305 scheint sich nicht auf das gleichzeitige Betreiben doppelter Anzeigen, jede mit einem anderen Bild, zu beziehen.
  • Eine andere herkömmliche VGA-Controllerkarte ist in Übereinstimmung mit dem US Patent Nr. 5150109 (im folgenden das Patent '109 genannt), veröffentlicht am 22. September 1992, von Wayne F. Berry, bekannt. Es wird geglaubt, dass das Patent '109 eine auf einem Bus installierbare VGA-Controllerkarte für IBM-kompatible Computer offenbart, die das Betreiben eines LCDs oder einer CRT oder des LCDs und der CRT gleichzeitig erlaubt. Jedoch zeigen beide Anzeigevorrichtungen das selbe Bild. Es wird nicht angenommen, dass das Patent '109 sich auf das Betreiben von zwei Anzeigevorrichtungen gleichzeitig bezieht, wenn jede Anzeigevorrichtung ein anderes Bild zeigt.
  • Es ist noch ein anderes herkömmliches System für eine Rasterbildgebung mit automatischem Zentrieren und Kompression des Bildes in Übereinstimmung mit dem US Patent Nr. 5293474 (im folgenden das Patent '474 genannt), veröffentlicht am 8. März 1994, von Subas S. Patil, et al., bekannt. Es wird geglaubt, dass das Patent '474 sich auf ein Videoanzeigesteuersystem bezieht, in dem horizontales oder vertikales Zentrieren eines Bildes, wie es auf einer Anzeige gezeigt wird, oder beides sowie Bildkompression, um einer Anzeigengröße angepasst zu sein, ohne einen Speicherframepuffer zu verwenden. Es wird nicht angenommen, dass das Patent '474 sich auf das Betreiben von zwei Anzeigevorrichtungen gleichzeitig bezieht, wenn jede Anzeigevorrichtung ein anderes Bild besitzt.
  • Es ist ein Ziel der vorliegenden Erfindung, einen verbesserten Grafikcontroller, der eine effiziente Verwaltung von Überlagerungsdaten ermöglicht, und ein entsprechendes Verfahren zum Verarbeiten von Überlagerungsdaten zur Verfügung zu stellen.
  • Dieses wird durch die Merkmale der unabhängigen Ansprüche erreicht.
  • Die vorliegende Erfindung kennzeichnet einen Grafikcontroller, der zwei Pipelines einschließt, die einzeln für Hintergrundsgrafikanzeigedaten und Überlagerungsanzeigedaten (Overlay Display Data) bestimmt sind. Überlagerungsanzeigedaten werden von einer oder mehr Quellen in einem Off-Screen-Bereich eines Grafikspeichers gespeichert. Da die Überlagerungsanzeigedaten in einem Format gespeichert werden, das der erzeu genden Quelle zugehörig ist, werden CPU-Funktionen, die mit Formatumwandlung, Skalierung, Interpolation und Randschärfen assoziiert sind, dadurch beseitigt. Zusätzlich wird ein dazugehöriger lokaler Busverkehr zwischen der CPU und dem Grafikspeicher beseitigt.
  • Um diese Prozessänderungen zu kompensieren, wird eine Überlagerungs-FIFO-Pipeline innerhalb eines Grafikcontrollers für die Verarbeitung von Überlagerungsanzeigedaten bestimmt. Diese Überlagerungs-FIFO-Pipeline greift auf die Überlagerungsanzeigedaten aus dem Off-Screen-Bereich des Grafikspeichers zu und führt jede notwendige Formatkonvertierung, Interpolation, Skalierung, usw. durch. Verarbeitete Überlagerungsanzeigedaten werden zu einem Überlagerungsmultiplexer gesendet, der zwischen den verarbeiteten Überlagerungsanzeigedaten und den Hintergrundsgrafikdaten von einer Anzeige-FIFO-Pipeline auswählt.
  • Dadurch dass er eine Hardwarelösung für mehrfache Überlagerungen zur Verfügung stellt, weist der Grafikcontroller einen Satz Register jeder Überlagerung zu. Diese Register kennzeichnen die Position der Überlagerung, die unskalierte Größe der Überlagerung, den Skalierungsfaktor, die Adresse der Überlagerungsdaten in dem Speicher, ein natives Format und einen Freigabebit. Zuweisung dieser Registersätze auf der Grundlage der vorbestimmten Position der Überlagerung auf der Anzeige kann die Reihenfolge definieren, in der Überlagerungsdaten durch die Überlagerungs-FIFO-Pipeline gelesen und verarbeitet werden sollen. Zusätzlich ermöglicht der Gebrauch von dem Freigabebit, um ergänzende Überlagerungsspeicherbereiche zu definieren, dem Grafikcontroller, doppelt gepufferte Überlagerungsanzeigedaten zu verarbeiten. Schließlich vermittelt eine Prioritätslogik innerhalb des Grafikcontrollers Anforderungen für einen Speicherzugriff an den Grafikspeicher unter Verwendung eines Tier-Ansatzes. Der Tier-Ansatz ermöglicht es Upper-Tier-Speicherzugriff-Anforderungen, bestehende Lower-Tier-Speicherzugriff-Anforderungen zu unterbrechen, wodurch der Systemdurchsatz verbessert wird.
  • Die vorangehenden und andere Merkmale und Vorteile der Erfindung werden aus der folgenden bestimmteren Beschreibung einer bevorzugten Ausführungsform der Erfindung offensichtlich, wie sie in den begleitenden Zeichnungen veranschaulicht ist. In den Zeichnungen bezeichnen die selben Bezugszeichen identische oder funktional gleiche Elemente. Zusätzlich kennzeichnet die Ziffer ganz links eines Bezugszeichens die Zeichnung, in der das Bezugszeichen das erste Mal auftritt.
  • 1 stellt eine grafische Darstellung idealisierter Zugriffe auf einen dynamischen Wahlfreier-Zugriff-Speicher durch eine Bitblockübertragungs (Bit-BLT) – Engine und durch eine zentrale Verarbeitungseinheit (CPU) zur Verfügung.
  • 2 stellt ein hypothetisches Zeitdiagramm dar, das in einem Computersystem des Stands der Technik erfahren werden kann, das einen herkömmlichen Grafikcontroller besitzt.
  • 3 stellt eine bildhafte Darstellung eines Computersystems, einschließlich eines Notebook-Computers, der eine LCD-Anzeige besitzt, um ein erstes Bild anzuzeigen, und auch eines Fernsehers, der als eine Anzeigevorrichtung für das Computersystem 10 verwendet wird, um ein anderes zweites Bild anzuzeigen, zur Verfügung;
  • 4 ist ein schematisches Funktionsblockdiagramm des Computersystems, das in 1 gesehen wird;
  • 5 stellt ein schematisches Funktionsblockdiagramm des Videoanzeigecontrollers (VDC) des Computersystems, das in den vorhergehenden Abbildungen gesehen wird, zur Verfügung;
  • 6 ist eine grafische Darstellung eines First-In-First-Out-Anzeigespeichers des Computersystems, das in den vorhergehende Abbildungen gesehen wird;
  • 7 ist ein schematisches Funktionsblockdiagramm einer Ablaufsteuerung-und-Controller-Einheit (SEQC) des vorliegenden Computersystems;
  • 8 stellt eine Tabellierung eines Zwei-Tier-Prioritäts-Arbiter-Schemas zur Verfügung, das für das Erlauben des Zugriffes auf einen DRAM des vorliegenden Computersystems implementiert wird;
  • 9 stellt zwei gleichzeitig laufende Flussdiagramme zur Verfügung, die durch den Anzeige-FIFO der vorliegenden Erfindung beim Entscheiden über den Zugriff auf den DRAM implementiert werden;
  • 10 stellt eine Tabellierung eines Drei-Tier-Prioritäts-Arbiter-Schemas zur Verfügung, das für das Erlauben des Zugriffes auf einen DRAM einer alternativen Ausführungsform des vorliegenden Computersystems implementiert wird;
  • 11 und 12 stellen Zeitdiagramme zur Verfügung, die das Resultat der Entscheidung über den Zugriff auf den DRAM veranschaulichen, der durch des SEQC des vorliegenden Computersystems durchgeführt wird;
  • 13 ist ein Funktionsblockdiagramm eines herkömmlichen Computersystems, welches die Fähigkeit hat, zwei Anzeigevorrichtungen zu betreiben, die unterschiedliche Bilder anzeigen, und das unterschiedliche Prozesskanäle für Bildinformationen von einem DRAM des Computersystems zu den Anzeigevorrichtungen besitzt;
  • 14 stellt ein Funktionsblockdiagramm eines Teils des VDCs eines Computersystems, welches die vorliegende Erfindung darstellt, zur Verfügung;
  • 15 ist ein Funktionsblockdiagramm eines Teils des VDCs, der in 14 dargestellt wird; und
  • 16, 17 und 18 sind Funktionsblockdiagramme von Teilen des VDCs, der in 14 und 15 gesehen wird.
  • 19 veranschaulicht eine Software-Lösung zur Verarbeitung von Überlagerungen.
  • 20 veranschaulicht eine Hardware-Lösung zur Verarbeitung von Überlagerungen.
  • 21 veranschaulicht eine bevorzugte Ausführungsform eines Grafikcontrollers für die Verarbeitung von Überlagerungen.
  • 22 veranschaulicht eine Scan-Linie, die für die Erzeugung einer Anzeige benutzt wird.
  • 23 veranschaulicht die Bedeutung der Registerwerte, die jeder Überlagerung zugewiesen werden.
  • 24A und 24B veranschaulichen die Zuweisung von Registern bei der Ausführung einer doppelten Pufferfunktion.
  • 25 veranschaulicht eine Ausführungsform des Steuerteils des Grafikcontrollers.
  • 26 veranschaulicht die Nicht-Anzeige-Bereiche, die durch horizontale und vertikale Zähler gekennzeichnet werden.
  • 27 veranschaulicht ein Zeitdiagramm von Steuersignalen zwischen dem Controller und der Überlagerungs-FIFO-Pipeline.
  • 28 veranschaulicht eine Ausführungsform der Überlagerungs-FIFO-Pipeline.
  • Unter Betrachtung von 3 schließt ein Computersystem 10 einen Notebookcomputer 12 und eine zusätzliche Anzeigevorrichtung 14, die an dem Notebookcomputer 12 über ein Kabel 16 angeschlossen ist, ein. Die zusätzliche Anzeigevorrichtung 14 wird als ein herkömmlicher Fernseher veranschaulicht. Die Fachleute werden erkennen, dass der Fernseher Signale in dem NTSC-Format akzeptiert und ein verschachteltes (interlaced) Bild anzeigt. Alternativ kann das Computersystem 10 an einen herkömmlichen CRT-Monitor, der RGB-Signale (und horizontale und vertikale Synchronisationssignale) verwendet, angeschlossen werden und ein nicht-verschachteltes Bild zur Verfügung stellen. Der Notebookcomputer 12 schließt verschiedene Eingabegeräte, wie eine Tastatur 18, ein Diskettenlaufwerk 20 und einen Trackball 22, ein. Die Fachleute werden erkennen, dass der Trackball im wesentlichen ein stationäres Mauseingabegerät ist. Das Computersystem 10 kann zusätzliche Eingabegeräte, wie ein Festplattenlaufwerk, einen CD-ROM und einen seriellen Eingangs-/Ausgangs-(I/O-)Port einschließen. Mehrere dieser Einrichtungen arbeiten auch als Ausgabeeinrichtungen für das Computersystem 10 zusätzlich zu einer Flüssigkristallanzeige 24. Wie hierin unten weiter beschrieben, wird die Anzeige 24 in Form einer Zwei-Element-Art dargestellt. Wie bildlich dargestellt, wird der Notebookcomputer benutzt, um eine Multitasking-Operation durchzuführen. Der Notebookcomputer 12 kann z.B. benutzt werden, um eine Finanzanalyse durchzuführen, für die die Daten auf einem LCD 24 angezeigt werden, und wovon eine grafische Darstellung auf der CRT 14 angezeigt wird.
  • 4 stellt ein schematisches Blockdiagramm des Computersystems 10 zur Verfügung, wenn die Eingabegeräte sämtlich innerhalb eines Repräsentativblockes 26 zu sammengefasst sind. Die Eingabegeräte werden an einen Mikroprozessor 28 angeschlossen, der auch eine Schnittstelle mit einer Speichereinrichtung 30 aufweist, die einen dynamischen Wahlfreier-Zugriffsspeicher (DRAM) einschließt. Ein Datenbus 32 ist an dem Mikroprozessor 28 angeschlossen und stellt eine Schnittstelle mit den Ausgabegeräten, einschließlich der LCD- und CRT-Bildanzeigevorrichtungen 14 und 24, zur Verfügung. Die anderen Ausgabegeräte für das Computersystem 10 werden in einem Repräsentativblock 14 zusammengefasst. Um den Anschluss mit den Bildsichtanzeigevorrichtungen 14 und 24 zu erreichen, schließt das Computersystem 10 einen Videoanzeigecontroller (VDC) 6, der an dem Bus 32 angeschlossen ist und Treibersignale für den LCD 24 und die CRT 14 bereitstellt, ein. Der VDC 36 hat eine Schnittstelle mit dem DRAM, wie es in 4 mit den schematischen Blöcken 38 dargestellt ist. Ebenso besitzt der VDC 36 eine Schnittstelle mit einer Stromverwaltungseinrichtung 40 des Computersystems 10. Ein bestimmter Taktgeber 42 stellt dem VDC 36 eine Bezugstaktrate zur Verfügung.
  • Mit Bezug nun auf 5 ist es ersichtlich, dass der VDC 36 einen internen Taktgeber 44 einschließt, der auf das Taktsignal von dem bestimmten Taktgeber 42 bezogen ist und Taktsignale einem Videoabschnitt 46 des VDCs zur Verfügung stellt. Die Taktsignale, die durch den internen Taktgeber 44 bereitgestellt werden, können einen Pixeltaktgeber (Pclk) und einen Speichertaktgeber (Mclk) einschließen, deren Gebrauch weiter unten erklärt wird. Um den Videoabschnitt 46 an den Bus 32 und folglich an den Mikroprozessor 28 anzuschließen, schließt der Videoabschnitt 46 eine programmierbare Hostsschnittstelle 48 ein. Die Hostschnittstelle 48 ist programmierbar, um den VDC 36 zum Anschluss an einer Anzahl von herkömmlichen Buskonfigurationen zu konfigurieren. Die Hostschnittstelle 48 kann z.B. zum Anschluss an einen herkömmlichen lokalen INTEL 486DX – Bus, an einen VL-Bus und an einen PCI-Schnittstellenbus konfiguriert werden. Die Hostschnittstelle 48 schließt den Bus 32 an einen VGA-Kernbereich 50 des VDCs 36 an. Dieser VGA-Kernbereich schließt eine Ablaufsteuerung, die weiter unten beschrieben wird, einen Kathodenstrahlröhrencontroller (CRTC), einen Grafikcontroller, einen Attribut-Controller und einen herkömmlichen VGA-Schaltkreis ein.
  • Um dem VGA-Kern 50 zu ermöglichen, den Text, Grafiken und andere auf der CRT und dem LCD anzuzeigende Sichtzeichen (wie z.B. einen Cursor und Icons) zu erzeugen und zu steuern, wird der VGA-Kern an einen Hardware-Cursor-Generator 52, eine Bit-BLT-Engine 54 und einen Anzeige-FIFO 56 angeschlossen. Zusätzliche zwei Anzeige-FIFOs 56' und 56'' werden ebenfalls an dem VGA-Kern 50 angeschlossen. Eine alterna tive Ausführungsform des VDCs 36, die nur eine einzelne Anzeigevorrichtung (entweder LCD oder CRT) unterstützt, schließt nur einen einzelnen Anzeige-FIFO ein und wird weiter unten erklärt. Eine andere alternative Ausführungsform, die zwei Anzeigevorrichtungen unterstützt (einen LCD und eine CRT), schließt zwei Anzeige-FIFOs 56 und 56' ein. Selbstverständlich unterstützt diese Ausführungsform auch eine einzelne Anzeigevorrichtung von einer LCD- oder CRT-Art. Wie erklärt werden wird, wird die Ausführungsform, welche den Anzeige-FIFO 56 und die zusätzlichen zwei Anzeige-FIFOs 56' und 56'' einschließt, verwendet, um den Doppelanzeigebetrieb des Computersystems 10 unter Verwendung eines Standardfernsehers als der zweiten Anzeigevorrichtung, wie es mit Bezug auf 3 erklärt wurde, zu unterstützen.
  • Wenn eine Anzeigevorrichtung, die ein verschachteltes Bild bereitstellt, dazu benutzt wird, normalerweise nicht-verschachtelte Computergrafikbilder anzuzeigen, weist das Bild gewöhnlich ein starkes Flimmern auf. Jedoch schließt das Computersystem 10 (VDC 36) die zwei zusätzlichen Anzeige-FIFOs 56' und 56'' ein, die verwendet werden, um alternierende Linien der nicht-verschachtelten Bilder zu speichern und diese alternierenden Linien der Bilder an den Fernseher 24 für die Anzeige als ein verschachteltes Bild mit verringertem Flimmern der Reihe nach zu liefern. Wenn sich dementsprechend im folgenden auf den Anzeige-FIFO 56 bezogen wird, schließt diese Bezugnahme auch die Anzeige-FIFOs 56' und 56'' mit ein. Wie unten weiter erklärt wird, kann die alternative Ausführungsform der Erfindung, die nur einen einzelnen Anzeige-FIFO besitzt, ein vereinfachtes Entscheidungsschema beim Entscheiden über das Erlauben eines Zugriffes auf den DRAM 38 implementieren.
  • Der Hardware-Cursor-Generator 52 stellt selektiv einen Cursor erhöhter Größe (d.h. z.B. zweimal so groß wie normal) dem visuell einfacher zu folgen ist, wenn er über einen Bildschirm bewegt wird, in Reaktion auf die Detektion einer bestimmten vorgewählten Geschwindigkeit der Bewegung des Cursors, wie sie durch ein Software-Programm bereitgestellt wird, das auf dem Mikroprozessor 28 läuft, zur Verfügung. Wenn somit ein Benutzer des Computersystems 10 die Maus oder die Tastaturtasten verwendet, um den Cursor eines Programms zu verschieben, dann wird, wenn die Geschwindigkeit der Bewegung die vorgewählte Schwelle erreicht, der Cursor verdoppelt oder größer. Die Bit-BLT-Engine sorgt, wie zuvor erklärt wurde, für Blockübertragungen von Bits, die erzeugt werden, um Grafiken und andere solche Sichtzeichen auf den CRT- und LCD-Schirmen 14 und 24 zur Verfügung zu stellen.
  • Genauer führt die Bit-BLT-Engine Lesen, Schreiben und Blockübertragungen von Bits durch, die diese Zeichen, durchgängige Füllungen, Zielumkehrungen und Musterfüllungen darstellen. Die Bit-BLT führt sämtliche Datenausrichtungen und Maskierungen an den Grenzen der blockübertragenen Zeichen sowie Texterweiterungen durch, um das Schreiben von einfarbigen Bildern zu beschleunigen. Wie oben erklärt wurde, speichert der Anzeige-FIFO vorübergehend Bits von Informationen in ganzzahligen Vielfachen der Doppelwortgrößen-Einheiten oder -niveaus und erwartet das Schreiben dieser Bits zu den Pixeln der Anzeigen 14 und 24. Vorzugsweise ist der Anzeige-FIFO 56 ein achtstufiger FIFO, der acht 32-Bit-Doppelwörter an Anzeigeinformation für das Senden zu der CRT und dem LCD 14 und 24 speichert.
  • Der Hardware-Cursor-Generator 52, die Bit-BLT 54 und der Anzeige-FIFO 56 werden sämtlich auch an einen DRAM-Controller 58 angeschlossen. Dieser DRAM-Controller 58 implementiert, wie im weiteren erklärt, die Funktionen des DRAM-Controllers/der Ablaufsteuerung, die allgemein oben besprochen wurden, um Anforderungen für einen Zugriff auf den DRAM durch verschiedene Funktionseinheiten des Computersystems 10, einschließlich anderer Bereiche des VDCs 36, zu vermitteln und zu implementieren. Wie in 5 gesehen wird, hat der DRAM-Controller 50 eine Schnittstelle mit dem DRAM 38. Zwecks Einfachheit der Abbildung wird der DRAM 38 in 5 als einzelner Funktionsblock gezeigt. Jedoch erkennen die Fachleute, dass dieser DRAM einen oder mehrere DRAM-Chips umfassen kann. Der Anzeige-FIFO 56 besitzt eine Schnittstelle (über den VGA-Controller 50 und DRAM-Controller 58) sowohl mit einem Palettencontroller 60 als auch mit einem Schnittstellencontroller 62 einer Flüssigkristallanzeige (LCD). Der Palettencontroller 60 ist an einem Digital-zu-Analog-Wandler (DAC) 61 angeschlossen. Der Palettencontroller implementiert die 256-zu-18-VGA-Standardpalette, während der LCD-Schnittstellencontroller eine Frame-Modulation und Dithering für 64 Farbtöne von Grau in einem einfarbigen Modusbetrieb und 64K Farbtöne von Rot, Grün und Blau für Farben von vollen 256K in einem Farbenmodusbetrieb durchführt.
  • Um diese Erklärung der Struktur, die in 4 dargestellt wird, zu beenden, wird bemerkt, dass der VDC 36 einen Ausschaltcontroller 64 einschließt. Dieser Ausschaltcontroller weist eine Verbindung mit einem Ausschaltregister 65 auf, das selbst eine generalisierte Verbindung innerhalb des VDCs 36 besitzt. Diese generalisierte Verbindung des Ausschaltregisters 65 wird in 5 durch die Mehrzahl von Pfeilen, die das Register 65 verlassen, angezeigt. Diese Verbindungen des Ausschaltregisters 65 durchdringen den VDC 36 und erlauben, dass er für verschiedene Betriebsarten und für verschiedene ent sprechende Ausschaltmodi konfiguriert wird. Auch weist der Abschaltcontroller 64 eine Schnittstelle mit dem LCD 24 auf, um solche Energieeinsparfunktionen wie Ausschalten der LCD-Hintergrundsbeleuchtung und der LCD-Anzeige unter Steuerung von Parametern, die durch den Benutzer des Computersystems 10 gesetzt werden, zu erleichtern.
  • Mit Bezug nunmehr auf 6 wird eine vereinfachte grafische Darstellung des Anzeige-FIFOs 56 dargestellt. Vorzugsweise hat dieser Anzeige-FIFO 56 eine Kapazität von 8 32-Bit-Doppelwörtern oder Niveaus. Diese Niveaus werden durch die Bezugszeichen 18 entlang der linken Seite von 6 angezeigt. Andere Speicherkapazitäten können für einen Anzeige-FIFO, ohne den Geist und den Bereich der vorliegenden Erfindung zu verlassen, verwendet werden. Von der Unterseite dieses Anzeige-FIFOs werden, während die Anzeige 14 oder 24 aktiv ist, ununterbrochen Daten zu den Anzeigeeinheiten mit einer Rate ausgelassen, die, wie oben erklärt wurde, modusabhängig ist. An der Oberseite wird der Anzeige-FIFO stoßweise mit einer Rate wieder gefüllt, die von der Geschwindigkeit des DRAMs 38 und des Speichertaktgebers des VDCs (sowie anderer Parameter des Computersystems 10) abhängig ist. Dieses Wiederfüllen des Anzeige-FIFOs ist diskontinuierlich und tritt entsprechend der Verwendbarkeit des DRAMs 38 auf, wie unten weiter erklärt wird. Entlang der rechten Seite der grafischen Darstellung von 6 werden zwei bewegliche Zeiger gesetzt. Einer dieser Zeiger (Zeiger 66) zeigt an, dass, wenn die Datenebene in dem FIFO unterhalb dieses Zeiger fällt, dann eine FIFOLO-Anforderung für zusätzliche Daten von dem DRAM ausgegeben wird. Dieser Zeiger 66 hat eine zulässige Position von 4 bis 7. Der andere Zeiger 68 zeigt die Austeilung einer FIFOHI-Anforderung für zusätzliche Daten von dem DRAM 38 an. Zeiger 68 hat eine zulässige Position von 0 bis 7. In jedem Fall zeigt die Austeilung einer FIFOLO- oder FIFOHI-Anforderung an, dass der FIFO 56 mindestens ein zusätzliches Doppelwort-Niveau an Daten aufnehmen kann.
  • Die Position des Zeigers 68 entlang dem FIFO 56 hängt von der Betriebsart der Anzeigen 14 und 24 (die auf die Rate der Leerung des FIFO 56 hinweisend sind) und der Rate der möglichen Füllung dieses FIFOs (festgelegt durch den Abstand des Pixel- und des Speichertaktgeber des VDCs, die Geschwindigkeit des DRAMs 38 und der anderer Verknüpfungsintervalle- und -Datenübertragungsintervalle des VDCs) ab, so dass eine FIFOHI-Anforderung schon in Niveau 7 oder so spät wie auf dem Nullniveau von Daten in dem FIFO 56 ausgegeben werden kann, um zu gewährleisten, dass dem FIFO die Daten nicht ausgehen. Wie oben betont werden, wenn eine FIFOHI ausgegeben wird, andere Zugriffe auf den DRAM 38 unterbrochen. Dementsprechend kann, wenn der An zeige-FIFO langsam ausläuft und das Computersystem den FIFO schnell wieder füllen kann, der Zeiger 68 auf null eingestellt werden, und der Anzeige werden trotzdem nicht die Daten ausgehen.
  • Der Zeiger 66 ist hinsichtlich seiner Position von dem Modus des Anzeigenbetriebes und ähnlichen Parametern des Computersystems 10 abhängig. Dieser Zeiger wird in den Bereich von 4 bis 7 gesetzt, um sowohl eine frühe Füllung des FIFOs 56 mit einer minimalen Anzahl von ausgegebenen FIFOHI-Anforderungen zu erleichtern, als auch um anderen Vorrichtungen des Computersystems besten Zugriff auf den DRAM 38 zu erlauben. Verständlicher Weise ist der Einstellpunkt für die FIFOLO-Anforderung (Zeiger 68) nicht so kritisch wie der für die FIFOHI-Anforderung, und, wie ersichtlich werden wird, passt das Niveau für diesen FIFOLO-Anforderungs-Zeiger in ein Lower-Tier-Prioritätsschema, das durch den DRAM-Controller 58 implementiert wird. Es wird jedoch die FIFOLO-Anforderung auf einem Niveau des FIFO ausgegeben, bei dem versucht wird, einen hinreichenden Zugriff auf den DRAM zu erreichen, so dass eine FIFOHI-Anforderung nicht ausgegeben wird oder so dass die Intervalle zwischen den FIFOHI-Anforderungen maximiert werden.
  • Wie ersichtlich werden wird, zählt eine Adressenzustandseinrichtung ununterbrochen neue Niveaus (Doppelwörter) von Daten, die in den FIFO 56 eingegangen sind, und wenn in den FIFO jede vorgewählte Zahl von Niveaus von Daten eingefüllt worden ist, wird eine Entscheidung getroffen, ob man die FIFOLO- oder FIFOHI-Anforderungen entfernt. Zu keiner anderen Zeit wird eine Anforderung für Daten von dem FIFO 56 gelöscht. Der Anzeige-FIFO braucht nicht vollständig gefüllt zu werden, um eine FIFOLO- oder FIFOHI-Anforderung zu löschen.
  • Mit Bezug nun auf 7 wird ein Funktionsblockdiagramm der Verbindungen des DRAM-Controllers 58 und des DRAMs mit den verschiedenen Vorrichtungen des Computersystems 10 bildlich dargestellt. Das Bezugszeichen 70 innerhalb eines Blockes zeigt eine mögliche Anforderung für einen DRAM-Refresh-Zyklus an, wobei die Anforderung in einem regelmäßigen sich wiederholenden Zeitabstand durch einen Taktgeber in dem VDC 38 (in 5 als "DR-TAKTGEBER" angezeigt) ausgegeben wird. Somit ist der Empfang dieser Anforderung sicher. Die Zeitablaufsteuerung dieser Anforderung innerhalb der anderen Anforderungen ist unsicher. Ähnlich zeigt das Bezugszeichen 72 innerhalb eines Blockes eine mögliche Anforderung für einen Zugriff auf den DRAM durch einen Half-Frame-Puffer des LCD-Controllers 62 an (in 5 durch das Bezugs zeichen 62' angezeigt). Dieser Half-Frame-Puffer empfängt und speichert vorübergehend Pixelwerte in dem DRAM 38, die zu den Elementen des LCD 24 geschrieben werden. Wenn es erforderlich ist, dass die Pixelwerte erneuert werden, empfängt eines der Elemente Refresh-Informationen von seinem dazugehörigen Anzeige-FIFO über den LCD-Controller 62. Das andere Element empfängt eine Wiederholung der vorhergehenden Pixelwerte, die vorher vorübergehend durch den Half-Frame-Puffer 62' in dem DRAM gespeichert worden waren.
  • Die Elemente des LCDs 24 wechseln sich darin ab, neue Bilddaten von dem Anzeige-FIFO und von dem Half-Frame-Puffer 62' zu empfangen, wobei der Half-Frame-Puffer vorübergehend die neuen Pixelwerte in den DRAM 38 für den Gebrauch beim Refreshen des bestimmten Elements der Anzeige 24 speichert, während das andere der zwei Elemente neue Bilddaten empfängt. Dieser Half-Frame-Puffer weist eine begrenzte Menge an internem Speicher auf. Dementsprechend empfängt der Half-Frame-Puffer 62' während eines Speicherzugriffs auf den DRAM 38 genügend Pixelwerte, um das Erneuern einiger Pixel auf der Anzeige 24 zur Verfügung zu stellen. Der Half-Frame-Puffer gibt Anforderungen für einen Zugriff auf den DRAM auf einer FRAMELO – (niedrige Priorität) oder FRAMEHI – (hohe Priorität) Basis in Abhängigkeit von der Menge der Daten aus, die in der begrenzten Speicherkapazität des Half-Frame-Puffers für die Nutzung bei dem Erneuern der Pixel des LCD 24 verbleiben.
  • Das Bezugszeichen 74 innerhalb des Blockes 28 zeigt eine mögliche Anforderung an, die durch die CPU 28 für einen Zugriff auf den DRAM 38 erfolgt. Das Bezugszeichen 76 innerhalb des Blockes 54 zeigt eine möglichen Anforderung für einen Zugriff auf den DRAM 38 an, die durch die Bit-BLT-Engine 54 ausgegeben wird, während das Bezugszeichen 78 innerhalb des Blockes 56 mögliche Anforderungen (FIFOLO oder FIFOHI), die durch den Anzeige-FIFO 56 ausgegeben werden, der neue Daten sucht, die für das Senden zu den Anzeigevorrichtungen 14 oder 24 vorübergehend zu halten sind, anzeigt. Wie im weiteren erklärt wird, können die FIFO-Anforderungen eine FIFOLO- oder FIFOHI-Anforderung von und identifiziert durch jeden der FIFOs 56, 56' und 56'' enthalten. Anforderungen, die einmal erfolgten, werden fortgesetzt (verbleiben als anhängig), bis sie befriedigt werden, oder bis sie, in dem Fall der FIFOLO- und FIFOHI-Anforderungen, anderweitig gelöscht werden.
  • Weiterhin unter Betrachtung von 7 zeigt das Bezugszeichen 80 innerhalb eines Blockes eine mögliche Anforderung an, die von den Mousebildgeneratorschaltungen (die oben eingeführt und erklärt wurden) für einen Zugriff auf den DRAM 38 empfangen wird, um ein Mousebild zu zeichnen. Das Bezugszeichen 82 innerhalb eines Blockes stellt einen Adressengenerator dar, der dem Anzeige-FIFO 56 (oder den FIFOs 56, 56' und 56'') dient, indem er Adressen für den Gebrauch beim Lesen von Daten von dem DRAM 38 zu dem Anzeige-FIFO in Erwiderung auf eine Anforderung für solche Daten erzeugt. Die Fachleute werden erkennen, dass die Ausführungsform, die mehrfache Anzeige-FIFOs 56, 56', etc. besitzt, auch einen eigenen Adressengenerator 82 für jeden dieser Anzeige-FIFOs besitzt. Ein DRAM-Adressenmultiplexer 84 stellt die erzeugten Adressen dem DRAM 38 zur Verfügung. Dieser Adressenmultiplexer schließt auch einen Service für das Erkennen ein, wann erzeugte Adressen ein Page-Break in dem DRAM 38 erfordern, und stellt ein Page-Break-Signal (angezeigt durch den nummerierten Pfeil 88) dem SEQC 86 zur Verfügung, das für das Initiieren der Pre-Charge-Sequenz verwendet wird, die in dem DRAM 38 notwendig ist, um zu erlauben, dass auf eine andere Page dieses Speichers zugegriffen wird. Dieses Page-Break-Signal wird angezeigt, wenn neue Daten eine andere Reihenadresse als die letzte vorhergehende Dateneingabe in den DRAM 38 haben. In dem Fall, dass die neuen Daten die gleiche Reihenadresse haben, wird kein Page-Break-Signal ausgegeben, und der Page-Modus-Betrieb des DRAM wird ohne Zeitverlust für eine Pre-Charge-Sequenz beibehalten, selbst wenn die letzten vorhergehenden Daten und die neuen Daten von unterschiedlichen Vorrichtungen des Computers 10 stammen. Das bedeutet, dass eine Änderung der Vorrichtung, die auf den DRAM 38 zugreift, nicht notwendigerweise ein Page-Break in dem DRAM 38 verursacht.
  • Innerhalb des SEQC 86 befindet sich eine Prioritätslogikeinheit 90, die ein logisches Auswahlverfahren unter den anhängigen Anforderungen für einen Zugriff auf den DRAM 38 implementiert, wie es in den 8 und 10 veranschaulicht wird. 8 stellt die einfachere Alternative eines DRAM-Controllers dar, der nur einen einzelnen Anzeige-FIFO 56 hat und wird zuerst betrachtet. Unter Betrachtung von 8 ist es ersichtlich, dass die anhängigen Anforderungen für einen Zugriff auf den DRAM 38 als erstes einer von zwei Tiers (einer Upper-Tier und einer Lower-Tier) zugewiesen werden, wie im weiteren erklärt wird. Innerhalb der Upper-Tier werden anhängige Anforderungen in der Reihenfolge der Priorität geordnet (nummeriert von 1U bis 5U). Ähnlich werden innerhalb der Lower-Tier anhängige Anforderungen in der Reihenfolge der Priorität geordnet (angezeigt als 1L bis 3L). Innerhalb dieser logischen Struktur von geordneten anhängigen Anforderungen für einen Zugriff auf den DRAM 38, kann jede Upper-Tier-Anforderung jeden vorhandenen Zugriff auf den DRAM 38 unterbrechen, der in Erwiderung auf eine andere Upper-Tier-Anforderung mit einem niedrigeren Rank bewilligt worden ist, und kann ebenso einen Zugriff unterbrechen, der in Erwiderung auf sämtliche der Lower-Tier-Anforderungen gebilligt worden ist. Somit wird, wenn ein Zugriff auf den DRAM für den Anzeige-FIFO in Erwiderung auf eine FIFOLO-Anforderung (mit Rang 1L) unterwegs ist, und eine Anforderung, den DRAM zu refreshen von dem SEQC (Rang 4U) empfangen wird, dann der Anzeige-FIFO-Zugriff unterbrochen. Der DRAM wird dann refresht.
  • Wenn jedoch während dieses Refreshen des DRAMs, eine CPU-Anforderung für einen Zugriff auf den DRAM (Rang 5U) empfangen wird, muss die CPU für den Zugriff auf den DRAM warten, weil der SEQC keine Unterbrechung für eine Anforderung niedrigeren Rangs, selbst in der Upper-Tier, erlaubt. Auf der anderen Seite wird, wenn eine FIFOHI-Anforderung (Rang 2U) während eines Refreshs des DRAMs 38 empfangen wird, dann diese Anforderung durch eine Unterbrechung des DRAM-Refreshs und Bewilligen des Zugriffes auf den DRAM durch den Anzeige-FIFO für das Empfangen neuer Daten für die Anzeige gewürdigt. Innerhalb der Lower-Tier von Anforderungen werden keine Unterbrechungen von vorhandenen Zugriffen auf den DRAM 38 erlaubt. Diesen Lower-Tier-Anforderungen wird einfach Zugriff auf den DRAM in der Reihenfolge der Priorität gewährt, und sie können durch jede mögliche Upper-Tier-Anforderung unterbrochen werden. Das heißt, dass ein Zugriff auf den DRAM 38, der in Erwiderung auf eine Bit-BLT-Anforderung bewilligt ist (Rank 3L), nicht durch irgendeine andere Lower-Tier-Anforderung unterbrochen wird, sondern durch jede mögliche Uper-Tier-Anforderung unterbrochen werden kann.
  • Weiterhin zu dem oben genannten stellt 9 grafisch eine zusätzliche Funktion bildlich dar, die durch den DRAM-Controller 58 unter Verwendung eines Niveauzählers 92 durchgeführt wird (in 7 zu sehen), wobei daran erinnert wird, dass der Anzeige-FIFO 56 und der DRAM-Controller 58 sich beide innerhalb des VDCs 36 befinden und aneinander angeschlossen sind. Der Niveauzähler 92 überwacht ununterbrochen Adressen, die für das Zugreifen auf Daten innerhalb des DRAMs 38 erzeugt werden, und die verwendet werden, wenn diese Daten zu dem Anzeige-FIFO 56 geschrieben werden. Jedes N-te Niveau von Daten ("N" stellt ein gewähltes ganzzahliges Vielfaches der Niveaus von Daten dar, die dem Anzeige-FIFO 56 zur Verfügung gestellt werden) setzt der Niveauzähler 92 eine Flag oder ein Register in dem SEQC 86 zurück. Wie in 9 veranschaulicht, prüft der DRAM-Controller 58 gleichzeitig und unabhängig das Resultat zweier verschiedener Fragen. Eine Frage ist, ob das Niveau von Daten in dem Anzeige-FIFO 56 unterhalb des FIFOLO-Zeigers liegt. Wenn die Antwort "nein" lautet, wird die Frage fortgesetzt. Wenn die Antwort ja" lautet, dann wird die FIFOLO-Anforderung aus gegeben. Jedes N-te Niveau von Daten, die zu dem Anzeige-FIFO 56 geschrieben werden (wie es durch die Zurückstellungs-Flag oder das Zurückstellungsregister wie oben erklärt angezeigt wird), wird die Frage erneut gestellt, und wenn die Antwort "nein" ist, wird die FIFOLO-Anforderung gelöscht. Somit kann die FIFOLO gelöscht werden, ohne dass der Anzeige-FIFO vollständig mit Daten gefüllt ist.
  • Ähnlich lautet die andere Frage, ob das Niveau von Daten in dem Anzeige-FIFO 56 unterhalb des FIFOHI-Zeigers liegt. Wenn die Antwort "nein" lautet, wird die Frage fortgesetzt. Wenn die Antwort zu dieser Frage "ja" ist, dann wird die FIFOHI-Anforderung ausgegeben. Wie oben betont, bewirkt die FIFOHI (Rang 2U, es sein an 8 erinnert) eine Unterbrechung aller anderen Anforderungen für einen Zugriff auf den DRAM 38, außer der Mouseanforderung (Rang 1U). Somit bewirkt die Austeilung der FIFOHI in einer sehr kurzen Zeit, dass auf Daten in dem DRAM 38 zugegriffen wird und dass sie in den Anzeige-FIFO 56 geschrieben werden. Jedes N-te Niveau von Daten, die in den Anzeige-FIFO 56 geschrieben werden (wie es durch die Zurückstellungs-Flag oder das Zurückstellungsregister wie oben erklärt angezeigt wird), wird die Frage wieder gestellt, und wenn die Antwort "nein" ist, wird die FIFOHI-Anforderung gelöscht. Somit kann auch die FIFOHI gelöscht werden, ohne dass die Anzeige-FIFO vollständig gefüllt ist oder sogar bis zu dem Niveau des FIFOLO-Zeigers gefüllt ist. Der Anzeige-FIFO 56 muss lediglich bis zu einem Niveau oberhalb des FIFOHI-Zeigers bei der Beendigung des Schreibens von N Niveaus von Daten in den Anzeige-FIFO gefüllt sein.
  • Vorzugsweise wird der Wert von "N" zu vier (4) gewählt. Dieser Wert für N ist mit einem Anzeige-FIFO verträglich, der wie beschrieben acht Niveaus besitzt, wobei jedes dieser Niveaus von 32 Bits ist. In einigen VGA-Betriebsarten nimmt jedes Pixel 4 Bits, und der Framepuffer erneuert die LCD-Anzeige alle 32 Pixel, so dass es eine vorteilhafte Wechselbeziehung in diesen Betriebsarten zwischen der Abfolge der Frame-Refreshes und dem Schreiben der N Niveaus von Daten in den Anzeige-FIFO gibt. Selbstverständlich braucht der Anzeige-FIFO nicht acht Niveaus tief zu sein, und N braucht nicht zu vier gewählt zu werden. N wird angesichts der Wechselwirkung zwischen der Größe des Anzeige-FIFOs und der Geschwindigkeit gewählt, mit der auf Daten zugegriffen werden kann (DRAM-Geschwindigkeit) und mit der diese zu diesem Anzeige-FIFO geschrieben werden können, sowie der Rate, mit der der Anzeige-FIFO Daten verbraucht, und der Anforderungen für andere Vorrichtungen eines bestimmten Systems für den Zugriff auf den DRAM.
  • Unter Betrachtung nun von 10 wird das Prioritätslogikschema, das durch die Prioritätslogikeinheit 90 in der komplizierteren Alternative eines DRAM-Controllers, der zwei oder mehr Anzeige-FIFOs 56, 56', 56'', etc., besitzt, implementiert ist, grafisch dargestellt. Bei Betrachtung von 10 wird es ersichtlich, dass die anhängigen Anforderungen für einen Zugriff auf den DRAM 38 zuerst alle einer der drei Tiers (eine Upper-Tier, eine Middle-Tier und eine Lower-Tier) zugewiesen werden, wie es weiter erklärt wird. Innerhalb der Upper-Tier werden anhängige Anforderungen in der Reihenfolge der Priorität geordnet (mit 1U bis 3U nummeriert). Es sei bemerkt, dass diese Tier einige gleiche Anforderungen für einen Rang besitzt, wie es weiter erklärt wird. Innerhalb der Middle-Tier werden Anforderungen von 1M bis 2M geordnet. Ähnlich werden innerhalb der Lower-Tier anhängige Anforderungen in der Reihenfolge der Priorität von 1L bis 3L geordnet. Innerhalb dieser logischen Struktur von eingestuften anhängigen Anforderungen für einen Zugriff auf den DRAM 38 wird jede Upper-Tier-Anforderung in einer Warteschlange von Anforderungen in dieser Tier platziert.
  • Diese Anforderungen für einen Zugriff auf den DRAM 38 werden in der Reihenfolge ihrer Position in der Warteschlange gewürdigt. Die Upper-Tier-Anforderungen können keinen vorhandenen Zugriff auf den DRAM 38 unterbrechen, der in Erwiderung auf einen anderen Upper-Tier-Anforderung bewilligt worden ist. Es wird bemerkt, dass diese Upper-Tier-Anforderungen 1U–3U einen Rank (2U) einschließen, der einige gleiche Anforderungen enthält. Das heißt, dass der Upper-Tier-Rang 2U mehrere Anforderungen FIFO-HIn enthält, wobei der untere Index "n" anzeigt, dass einer von mehreren FIFOs 561-n die Anforderung ausgibt. Unter Betrachtung von 5 wird es ersichtlich, dass die FIFOs 56, 56' und 56'' jeder eine numerische Kennung 1–3 tragen, wobei diese Kennung verwendet wird, um die Quelle einer FIFO-Zugriffsanforderung in 10 zu kennzeichnen. Auf der anderen Seite kann eine Upper-Tier-Anforderung jeden vorhandenen Zugriff auf den DRAM unterbrechen, der in Erwiderung auf irgendeine Middle-Tier-Anforderung oder Lower-Tier-Anforderung bewilligt worden ist. Eine Middle-Tier-Anforderung kann keinen Upper-Tier-Zugriff unterbrechen und kann nur jeden möglichen DRAM-Zugriff, der in Erwiderung auf eine Middle-Tier-Anforderung mit einem niedrigeren Rank bewilligt worden ist, oder irgendeinen Zugriff, der in Erwiderung auf eine Lower-Tier-Anforderung bewilligt worden ist, unterbrechen. Die Lower-Tier-Anforderungen sind nicht in der Lage, irgend einen anderen Zugriff auf den DRAM zu unterbrechen und werden in einer jeweilige Warteschlange für den Service platziert. Es sei bemerkt, dass diese Lower-Tier-Anforderungen auch einen Rank (1 L) einschließen, der einige gleiche Anforderungen enthält. Das heißt, dass der Lower-Tier-Rang 1L mehrere Anforderungen FIFOLOn ent hält, wobei der untere Index "n" ähnlich anzeigt, dass einer der mehreren 561-n FIFOs die Anforderung ausgibt.
  • 11 und 12 zeigen Zeitdiagramme, die (nur als Beispiel) ein Resultat der Zwei-Tier-Vermittlung für einen Zugriff auf den DRAM veranschaulichen, die von dem SEQC des vorliegenden Computersystems ausgeführt wird. Ein ähnliches Resultat kann mit einem Drei-Tier-Vermittlungsschema erwartet werden, wie es in 10 dargestellt ist. Bei Betrachtung zunächst von 11 ist es ersichtlich, dass in dem Intervall # 1, die Bit-BLT eine Anforderung für einen Zugriff auf den DRAM ausgegeben hat, und dass dieser Anforderung bewilligt wird. Am Anfang des Intervalls # 2 hat der Anzeige-FIFO eine Anforderung für einen Zugriff auf den DRAM ausgegeben. Die Tatsache, dass sowohl FIFOLO als auch FIFOHI gleichzeitig ausgegeben werden, zeigt, dass der Anzeige-FIFO keine Anzeigedaten hat. In Intervall # 2 übergeht der Anzeige-FIFO die Bit-BLT-Anforderung (es sei an das Prioritätsschema von 8 erinnert) und empfängt hinreichende Anzeigedaten, um dazu zu führen, dass die FIFOHI-Anforderung annulliert wird (es sei an den Test erinnert, der durch das Flussdiagramm von 9 durchgeführt wird). In dem Intervall # 3 wird der Anzeige-FIFO noch von dem DRAM bedient, weil eine FIFOLO-Anforderung (noch anhängig) eine höhere Priorität als die anhängige Bit-BLT-Anforderung aufweist.
  • In dem Intervall # 4 wird die FIFOLO-Anforderung annulliert (kein Anzeichen für einen vollen FIFO, sondern für ein FIFO-Niveau oberhalb des FIFOLO-Zeigers), und die Bit-BLT-Anforderung wird gewürdigt. Am Anfang des Intervalls # 5 wird die FIFOLO-Anforderung ausgegeben, aber die Bit-BLT-Engine behält Zugriff auf den DRAM, weil Lower-Tier-Anforderungen einander nicht unterbrechen können (es sei an 8 erinnert). In Intervall # 6 wird eine FIFOHI ausgegeben, und der Zugriff der Bit-BLT wird unterbrochen. Intervall # 7 zeigt an, dass die FIFOHI annulliert worden ist, dass aber der Anzeige-FIFO Zugriff auf den DRAM behält, wiederum weil die anhängige Bit-BLT-Anforderung auch eine Lower-Tier-Anforderung ist und die noch anhängige FIFOLO-Anforderung nicht unterbrechen kann. Intervall # 8 zeigt an, dass, wenn die FIFOLO annulliert wird, dann die anhängige Bits-BLT-Anforderung gewürdigt wird.
  • 12 stellt eine ähnliche Vermittlungsepisode dar, wobei dieses mal der SEQC zwischen der CPU und dem Anzeige-FIFO vermittelt. Unter Betrachtung von 12 zeigt Intervall # 1 eine CPU-Anforderung für einen Zugriff auf den DRAM an. Diese Anforderung wird bewilligt und die CPU meldet die Beendigung. In dem Intervall # 2 ist der DRAM untätig, aber Intervall # 3 zeigt an, dass der Anzeige-FIFO eine Anforderung für einen Zugriff auf den DRAM ausgegeben hat. Wiederum zeigt die Tatsache, dass die FIFOLO und FIFOHI gleichzeitig ausgegeben werden, an, dass der Anzeige-FIFO keine Anzeigedaten besitzt. In Intervall # 3 übergeht der Anzeige-FIFO die CPU-Anforderung (man erinnere sich an das Prioritätsschema von 8) und empfängt hinreichende Anzeigedaten, um dazu zu führen, dass die FIFOHI-Anforderung annuliert wird (es sei wieder an den Test erinnert, der durch das Flussdiagramm von 9 durchgeführt wird).
  • In Intervall # 4 wird der CPU der Zugriff auf den DRAM erlaubt, weil eine Upper-Tier-Anforderung einen Zugriff unterbrechen kann, der für jede mögliche Lower-Tier-Anforderung bewilligt worden ist (wobei eine FIFOLO eine Lower-Tier-Anforderung ist). In Intervall # 5 hat die CPU die Beendigung des Zugriffs auf den DRAM gemeldet, und es wird die FIFOLO-Anforderung gewürdigt. Intervall # 6 zeigt an, dass die CPU eine Anforderung für einen Zugriff auf den DRAM ausgegeben hat, welche den Anzeige-FIFO-Zugriff unterbricht, weil nur die FIFOLO anhängig ist. Wenn die CPU die Beendigung des Zugriffs auf den DRAM mitteilt (Intervall # 7), wird der DRAM-Zugriff dem Anzeige-FIFO zurückgegeben. Am Anfang des Intervalls # 8 wird die FIFOHI-Anforderung ausgegeben und gewürdigt, gleichwohl dieses Intervall # 8 die Ausgabe einer CPU-Anforderung für einen Zugriff auf den DRAM einschließt, die nicht gewürdigt wird, weil die CPU eine höherrangige Upper-Tier-Anforderung nicht unterbrechen kann. Intervall # 9 zeigt die Annullierung der FIFOHI und das Bewilligen des Zugriffes für die CPU an, weil die CPU die Anzeige-FIFO-Anforderung unterbrechen kann, die auf der anhängigen FIFOLO-Anforderung basiert.
  • Nach dem Betrachten des SEQC 86 und des Betriebs des Anzeige-FIFOs 56 mag die Aufmerksamkeit nun auf die Architektur des VDCs 36 gerichtet werden, der es ermöglicht, dass Treibersignale einer Zweifachanzeigevorrichtung zur Verfügung gestellt werden. Wie oben erklärt wurde, kann die Zweifachanzeigevorrichtung eine oder zwei CRTs, einen oder zwei LCDs oder eine Mischung aus einer CRT und einem LCD einschließen, von denen jeder unterschiedliche Anzeigebilder zeigt. Alternativ kann ein herkömmlicher Fernseher die CRT ersetzen, wie es in Bezug auf die Anzeige-FIFOs 56' und 56'' erklärt wurde, die den Interlacing-Chore für das Bereitstellen eines NTSC-Formatsignals für den Fernseher regeln. Unter Betrachtung nun von 13 wird eine herkömmliche Architektur für ein Computersystem 94 gezeigt. Diese herkömmliche Architektur schließt einen DRAM 96 ein, innerhalb dessen ein Virtueller-Speicher-Desktop-Raum 98 gebildet wird. Innerhalb des Desktop-Raums 98 werden zwei Anzeigenspeicherräume 100 und 102 gebildet, einer, der mit # 1 bezeichnet wird, und ein anderer, der mit # 2 bezeichnet wird, um anzuzeigen, welcher der zwei Anzeigen der jeweilige Speicherraum zugeteilt ist. Innerhalb des Desktop-Speicherraumes 98 können die zwei Speicherräume 100 und 102 verschoben werden und von einem Benutzer des Computersystems 94 wahlweise positioniert werden. Die Speicherräume 100 und 102 werden wahlweise auf dem Desktop 98 von dem Benutzer positioniert, indem er die Position einer Bezugsecke 104 bzw. 106 jedes Speicherraumes spezifiziert. Der Benutzer muss auch die Größe jeder Anzeige spezifizieren – wobei der Speicherraum die selbe virtuelle Größe hat, wie die dazugehörige Anzeige.
  • Der virtuelle Desktop ist groß genug, so dass der Benutzer die Speicherräume 100 und 102 im Verhältnis zueinander, z.B. einen über den anderen oder nebeneinander, in Position bringen kann. Wie sie so in Position gebracht sind, können sich, wenn der Benutzer die nahen Ränder der Speicherräume 100 und 102 nahe zu einander setzt, dann Bilder von einem Anzeigeschirm zu dem anderen ohne einen Bruch erstrecken, und ein Cursor kann über den Speicherraum 98 verschoben werden und z.B. eine Anzeige verlassen, um sofort in der anderen Anzeige zu erscheinen. Wenn man jedoch betrachtet, wie die herkömmliche Architektur diese doppelte Anzeigenfunktion erzielt, wird es erkannt, dass das Computersystem eine Ablaufsteuerung 108 enthält, die Zugriffe auf den DRAM 96 erlaubt, und Anzeigedaten in ein Paar bestimmter Anzeigeverarbeitungskanäle oder Pipelines speist, die allgemein mit den Bezugszeichen 110 und 112 bezeichnet sind. Herkömmlicher Weise würde jede dieser Anzeigenpipelines einen jeweiligen Anzeige-FIFO 114 und einen jeweiligen Anzeigenprozessor 116 einschließen, die jeder Anzeige-Treibersignale in die jeweilige der zwei Anzeigen speist, die jede mit dem Bezugszeichen 118 bezeichnet ist.
  • Wie leicht gesehen werden kann, erfordert diese herkömmliche Architektur für ein Computersystem die Verdopplung einer beträchtlichen Zahl an Schaltungen und Bestandteilen des Computersystems. Es ist in der Vergangenheit z.B. herkömmlich der Fall gewesen, ein Computersystem mit doppelten Anzeigen und einer separaten Videocontrollerkarte (Monochrom oder Farbe), die für die bestimmte Anzeigevorrichtung bestimmt ist, das durch die bestimmte Karte betrieben wird, zu betreiben. Somit wird erkannt, dass eine Änderung der Konfiguration des Computersystems nicht leicht zu bewerkstelligen ist. Weiterhin wird es, wenn das Computersystem von einer Notebook- oder portablen Konfiguration ist, die eine einzelne Anzeige hat (normalerweise der Art des Flachelement-LCDs), nicht leicht erreicht, das Computersystem an welche Art von CRT, Monitor oder Fernseher auch immer, die an einer bestimmten Position vorhanden ist, anzuschließen, um die doppelte Anzeigefähigkeit des Computersystems zu nutzen.
  • Sich nun 14 zuwendend wird ein anderer Teil der internen Architektur des VDCs zusammen mit seiner Verbindung zu in Verbindung stehenden Vorrichtungen des Computersystems 10 bildlich dargestellt. Um Bezugszeichen für den Gebrauch zu erhalten, wenn man die Struktur beschreibt, die in den 14 bis 18 gesehen wird, wird eine Struktur, die dieselbe ist wie die oder äquivalent ist zu der Struktur oder Funktion, die oben beschrieben wird, mit dem selben Bezugszeichen bezeichnet, das oben verwendet wird, und weist einen hinzugefügten Strich auf ('), wenn es notwendig ist, um eine Verwechslung zu vermeiden. In diesem Fall werden die zwei Anzeigevorrichtungen mit den Bezugszeichen 14/24 und 14/24' bezeichnet, um anzuzeigen, dass jede der Anzeigevorrichtungen entweder eine CRT oder ein LCD sein kann. Die Konfiguration des Computersystems, das in 14 zu sehen ist, ist nicht dafür gedacht, einen herkömmlichen Fernseher als Ersatz für eine der CRTs zu betreiben. Jedoch kann, wie oben erklärt wurde, der SEQC drei (anstatt nur zwei) Anzeige-FIFOs 56 (d.h. 56' und 56'') einschließen, so dass ein verschachteltes Bildsignal an einen herkömmlichen Fernseher zur Verfügung gestellt werden. Weiterhin werden kopierte Bestandteile mit dem gleichen Bezugszeichen wie oben verwendet, und besitzen einen oder mehrere Striche dazu hinzugefügt. Dementsprechend werden die Fachleute erkennen, dass die Architektur, die mit Bezug auf 14 beschrieben wird, durch eine weitere Stufe erweitert werden kann, um einen herkömmlichen Fernseher zu betreiben.
  • Mit Hinblick auf 14 wird es erkannt, dass der VDC 36 ein Paar von Anzeige-FIFOs (bezeichnet mit den Bezugszeichen 56 und 56') einschließt, von denen jeder einen dazugehörigen Anzeige-FIFO-Zähler 92, 92' und einen dazugehörigen Adressengenerator 82, 82' besitzt. Zur Einfachheit der Abbildung wird die Hostschnittstelle 48 in 14 lediglich als eine punktierte Liniengrenze bildlich dargestellt. Innerhalb des DRAMs 38 wird ein virtueller Desktop erzeugt, wie derjenige der oben mit Bezug auf 13 erklärt wurde. Der virtuelle Desktop schließt unterschiedliche Speicherräume 100' und 102' ein, von denen jeder einer der zwei Anzeigevorrichtungen 14/24 zugeteilt wird. Wie oben in Bezug auf den SEQC 86 des DRAM-Controllers 58 erklärt wurde, vermittelt dieser SEQC Anforderungen für einen Zugriff auf den DRAM 38, einschließlich der Zugriffe auf den virtuellen Desktop und die Speicherräume 100', 102'. Der Anzeige-FIFO 56 greift auf Anzeigedaten von dem Speicherraum 100' zu und liefert diese Daten an eine anzeigedatenverarbeitende Pipeline (im folgenden "die Pipeline" oder nur "Pipeline" genannt), die allgemein mit dem Bezugszeichen 120 angezeigt wird, für das Senden zu der dazugehörigen Anzeigevorrichtung 14/24. Die Fachleute werden erkennen, dass die Pipeline 120 nicht eine Leitung ist, sondern eine komplexe anzeigedatenverarbeitende Schaltung (DDPC), wie es weiter unten erklärt wird. Ähnlich greift der Anzeige-FIFO 56' auf Daten von dem Speicherraum 102' für das Senden an die dazugehörige Anzeigevorrichtung 14/24' über die selbe verarbeitende Pipeline 120 zu.
  • Die verarbeitende Pipeline (DDPC) 120 akzeptiert die Anzeigedaten, die von dem bestimmten von den Anzeige-FIFOs 56 und 56' bereitgestellt werden, und liefert Signale, welche die dazugehörige Anzeige 14/24 und 14/24' betreiben. Wie oben erwähnt, verwendet der SEQC 86, weil der VDC mehr als einen Anzeige-FIFO hat, das Drei-Tier-Prioritätsschema, das oben erklärt wurde, um Zugriffe auf den DRAM 38 zu vermitteln. Jedoch wird dem Anzeige-FIFO 56 und 56' ein hinreichender Zugriff auf den DRAM 38 erlaubt, so dass den FIFOs die Anzeigedaten nicht ausgehen, die mit den einzelnen Speicherräumen 100' und 102' entstehen. Dementsprechend wird jeder der Anzeige-FIFOs 56 und 56', obgleich die Zugriffe auf den DRAM 38 für jede der Anzeigen 14/24 und 14/24' zeitweilig aussetzend sind, gleichzeitig mit unterschiedlichen Anzeigedaten versorgt. Das heißt, dass der Benutzer des Computersystems 10 ein unterschiedliches Bild sieht, das gleichzeitig auf den Anzeigen 14 und 24 dargestellt wird. Um einen Teil der variablen Konfiguration der Anzeigenpipeline 120 so zu steuern, dass er mit verschiedenen CRTs arbeitet, schließt der VDC 36 einen Kathodenstrahlröhrenzähler (CRTCNTR) 122 ein. Abhängig von den Fähigkeiten der bestimmten CRTs, die an das Computersystem 10 angeschlossen sind, kann der CRTCNTR 122 in der Lage sein, die Anzahl der Zeilen der Auflösung zu lesen, die der Monitor zur Verfügung stellen kann. In anderen Fällen, in denen Monitore, die keinen Kommunikationsbus besitzen, über den diese Daten gelesen werden können, an den Computer 10 angeschlossen sind, muss der Benutzer diese Informationen eintragen.
  • 15 stellt ein High-Level-Funktionsblockdiagramm der Anzeigen-Verabeitungs-Pipeline (DDPC) 120 zur Verfügung. Obwohl diese Anzeigen-Verabeitungs-Pipeline zwei verschiedene Verarbeitungskanäle darzustellen scheint, von denen jeder einem der Anzeige-FIFOs 56 oder 56' dient, werden die Verarbeitungskanäle in funktionell zusammenarbeiten Elementen oder einem Komplex und einer variabel konfigurierbaren Schaltung definiert. Das heißt, dass die verarbeitende Pipeline 120 variabel konfigurierbar ist, um den Verarbeitungsanforderungen der Betriebsart und der Art der Anzeigevorrichtungen, die an sie angeschlossen sind, angepasst zu sein. Allgemein gesprochen liefert die Anzeigenpipeline 120 mindestens ein Paar von bestimmten und variabel konfigurierbaren Data-Decode-And-Over-Scan-Sites (DDOS) 124 oder 124' für jeden der Anzeige-FIFOs 56 bzw. 56'.
  • Wie oben mit Bezug auf den Betrieb der Anzeige-FIFOs 56 erklärt wurde, werden die Anzeigedaten in Einheiten von 32-Bit-Doppelwörtern zur Verfügung gestellt. Jedes DDOS 124 akzeptiert 32-Bit-Doppelwörter von Daten und manipuliert diese Daten in einer Form, die für die bestimmte Art von Anzeigevorrichtung 14/24 erkennbar und annehmbar ist, die das Bild von jedem dazugehörigen Speicherraum 100' oder 102' anzeigt, wie weiter erklärt wird. In dem Falle z.B., in dem eine der Anzeigevorrichtungen 14/24 in dem Modus mit 16 Farben betrieben wird, erfordert dann jedes Pixel 4 Bits von Daten von dem Anzeigenspeicherraum 100' oder 102' des DRAMs 38. In diesem Fall übermittelt jedes 32-Bit-Doppelwort von Daten 8 Pixelwerte, von denen jeder 4 Bits hat. Auf der anderen Seite erfordert, wenn die Anzeige in dem Modus mit 256 Farben betrieben wird, dann jedes Pixel 8 Bits von Anzeigedaten. In diesem Fall übermittelt jedes 32-Bit-Doppelwort von Daten 4 Pixelwerte, jeder von 8 Bits. Für beide Modi mit 16 und 256 Farben stellen die Pixeldatenwerte Indizes in einer Farbpalette dar. Dementsprechend wird auf die Farbwerte in der Farbpalette vor dem Senden der Pixeldaten zu der Anzeige zugegriffen.
  • Alternativ erfordert in dem 64K-Farb-Modus jedes Pixel 18 Bits (16 plus 2) und die 32-Bit-Doppelwörter können zwei Pixelwerte übermitteln, von denen jeder 16 Bits hat. In dem 64K- (oder 32K-)Farb-Modus stellen die Pixelwerte die tatsächlichen Farbwerte dar. Somit ist kein Nachschlagen in einer Farbpalette erforderlich. Die Addition der zusätzlichen zwei Bits für jedes Pixel wird unten beschrieben.
  • Jedes DDOS 124 oder 124' führt Pixelwerte einem Flip-Flop 126 oder 126' zu, der jeweils eine LCD-Schnittstelle 62, wenn die Anzeigevorrichtung ein LCD 14 ist, oder ein DAC 61, wenn die Anzeigevorrichtung eine CRT ist, speist. 16 veranschaulicht eine der möglichen alternativen variablen Konfigurationen für einen DDOS 124 innerhalb der Pipeline 120. In dieser Konfiguration werden die Doppelwörter von Daten in den jeweiligen Positionen (mit 0–7 in 16 nummeriert) eines 8-Kanal-Demultiplexers 128 eingetragen. Von dem Demultiplexer 128 werden die Bits, vier zur selben Zeit, über ein Flip-Flop erhalten, so dass sie als die vier am wenigsten signifikanten Bits eines 8-Bit-Wortes erscheinen. Die restlichen vier Bits (d.h. die signifikantesten Bits) werden durch ein Register 132, alle als Nullwerte, hinzugefügt. Dieses ist das erforderliche Bit- Wortformat für den Modus des Anzeigenbetriebes mit 16 Farben. Die Anzeigevorrichtung wird in dem Modus mit 16 Farben betrieben. Dem gemäß stellt das DDOS 8-Bit-Wörter von Anzeigedaten einer LCD-Schnittstelle 62', wie oben erklärt, zur Verfügung. Ein Zähler 134 verfolgt die Eingabe gegenüber der Ausgabe des Demultiplexers 128 und stellt einem Anforderungsgenerator 136 ein Signal zur Verfügung, wenn ein zusätzliches 32-Bit-Wort von Anzeigedaten von dem dazugehörigen Anzeige-FIFO 56 oder 56' zur Verfügung gestellt werden kann.
  • 17 stellt eine Abbildung einer alternativen variablen Konfiguration für ein DDOS 124' der Pipeline 120 zur Verfügung. In diesem Fall wird eine Anzeigevorrichtung in dem Modus mit 256 Farben betrieben. Der Demultiplexer 128' ist von einer 4-Kanal-Konfiguration. Infolgedessen werden die acht Bitwerte zur gleichen Zeit über den Flip-Flop 130' zu einer Anzeigevorrichtung gebracht. Wiederum nimmt die LCD-Schnittstelle 62' 8-Bit-Wörter von Anzeigedaten an, dieses Mal einen Modusbetrieb mit 256 Farben bereitstellend.
  • Schließlich stellt 18 ein Funktionsblockdiagramm von noch einer anderen alternativen variablen Konfiguration für ein DDOS 124'' innerhalb der Pipeline 120 zur Verfügung. In diesem Fall sind die Anzeigedaten von einem Anzeige-FIFO 56 oder 56' in ein 64K-Modus-Farbbild zu decodieren. Dem gemäß sind achtzehn Bits für jeden Pixelwert erforderlich. Die sechzehn am wenigsten signifikanten Bits werden von entsprechenden Positionen eines Zweikanaldemultiplexers 128' erhalten. Ein Register 132'' stellt die benötigten zusätzlichen am meisten signifikanten Bits für jedes Anzeigedatenwort zur Verfügung. Die Datenwörter der 18-Bit-Anzeige-Datenwörter werden einem DAC 61' und folglich einer CRT zur Verfügung gestellt.
  • Angesichts des oben genannten erkennen die Fachleute, dass die DDOS 124, 124' und 124'' viele Ähnlichkeiten untereinander aufweisen. Die Zahl der Kanäle, die in dem Demultiplexer 128, 128' und 128'' verwendet werden, ist ein bedeutendster Unterschied in diesen DDOS-Konfigurationen. Entsprechende Zählwerte werden in jedem Zähler 134, 134' und 134'' entsprechend der Zahl der Kanäle verwendet, die in den Demultiplexern 128 verwendet werden. Dementsprechend wird es erkannt, dass die Konfiguration der internen DDOS der Anzeigenpipeline 120 der Betriebsart der bestimmten Anzeigevorrichtung sowie der Art der Anzeigevorrichtung entspricht, um die Konfigurationseinzelheiten unter Beibehalten der gleichen allgemeinen Konfiguration im allgemeinen zu variieren, wie es in den 16 bis 18 ersichtlich ist. Auf diese Weise kann eine einzelne verarbeitende Pipeline einer variabel konfigurierbaren Anzeige mit weit größerer Flexibilität und niedrigeren Kosten, als es durch die bestimmten Anzeigenpipeline-Schaltungskonfigurationen, die oben beschrieben und in 13 veranschaulicht sind, gefordert wird, eingesetzt werden.
  • Nach der Beschreibung des VDCs 36, der ein Paar Anzeige-FIFOs einschließt, von denen jeder eine dazugehörige Anzeige hat, wird nun eine Ausführungsform beschrieben, die ein Paar Anzeige-FIFOs für die Anzeige der Überlagerungen in einer einzelnen Anzeigevorrichtung 14/24 benutzt. Im Allgemeinen sind Überlagerungen Fenster auf irgendeinem vorhandenen Grafikhintergrund, die eine Animation, Videofilme oder dergleichen enthalten. Quellen für Überlagerungsdaten schließen Videokameras, CD-ROMs, Festplatten, Netzwerke, Modem, usw. ein. Diese Überlagerungsdaten können in einer Vielzahl von Formaten, einschließlich 16-Bit-RBG, 24-Bit-RGB, 422-YUV, MPEG, usw., definiert sein.
  • Herkömmliche Multimediasysteme, die einzelne oder mehrfache Überlagerungen unterstützen, beruhen auf Software-Lösungen. Ein Beispiel einer herkömmlichen Software-Lösung wird in 19 veranschaulicht. In dieser Software-Lösung wird ein Videostrom "A" durch eine Quelle 1910 erzeugt und zunächst in einem Systemspeicher 1920 gespeichert. Um Bilddaten "A" 1922 in das Format von Hintergrundsanzeigedaten "b" 1962 zu setzen, konvertiert eine CPU 1930 Bilddaten "A" 1922 und schreibt neue Bilddaten "a" in einen Systemspeicher 1970. In diesem Umwandlungsprozess kann die CPU 1930 die Bilddaten "A" 1922 auch skalieren, interpolieren und randformen.
  • Die CPU 1930 greift nachfolgend auf die Bilddaten "a" 1924 von dem Systemspeicher 1970 zu und schreibt sie direkt in einen Grafikspeicher 1960. Die Bilddaten "a" 1924 werden dann den Hintergrundsanzeigedaten 1962 überlagert. Zuletzt rastert der Grafikcontroller 1950 das kombinierte Bild und die Hintergrundsanzeigedaten in dem Grafikspeicher 1960 zu der Anzeige 14/24.
  • Eine der Beeinträchtigungen in dieser herkömmlichen Software-Lösung ist die Leistung. Das Skalieren, die Interpolation, das Randformen und die Datenformatumwandlungsfunktionen, die von der CPU 1930 durchgeführt werden, sind prozessorintensiv. Somit kann, wenn eine einzelne Überlagerung verarbeitet wird, der Systemdurchsatz bis zu dem Punkt vermindert werden, in dem die CPU 1930 die 30 Frames/Sekunde, die für ein Bewegungsvideo erforderlich sind, nicht unterstützen kann. Wie man leicht erkennen kann, wird der Systemdurchsatz durch das Bestehen mehrfacher Überlagerungen, die durch eine oder mehr Quellen erzeugt werden, weitert vermindert.
  • Die vorliegende Erfindung verbessert die Systemleistung, indem sie die CPU-Verarbeitung verringert, die durch software-gegründete Lösungen verlangt wird. Genauer stellt die vorliegende Erfindung eine hardware-gegründete Lösung dar, die eine Bahn (oder Pipeline) der Verarbeitung von Anzeigedaten für eine oder mehr Überlagerungen bestimmt. Diese Bahn ist von der Pipeline verschieden, die für die Verarbeitung von Anzeigedaten für Hintergrundsgrafiken bestimmt ist.
  • Ein High-Level-Überblick über die System-Bedienung wird mit Bezug auf 20 zur Verfügung gestellt. Wie gezeigt, senden Quellen 2002, 2004 und 2006 Überlagerungsanzeigedaten zu einem Grafikcontroller 2050 über einen lokalen Bus 1920. Der Grafikcontroller 2050 leitet dann die Überlagerungsanzeigedaten an einen Grafikspeicher 1960 weiter. Alternativ können Überlagerungsdaten den lokalen Bus 2020 über einen direkten Videoport (nicht gezeigt), der in dem Grafikcontroller 2050 integriert ist, umgehen.
  • Wie weiter in 20 gezeigt, werden Überlagerungsanzeigedaten 2062, 2064, 2066 und 2068 in ihrem nativen Format in einem Off-Screen-Bereich des Grafikspeichers 2060 gespeichert. Dieser Prozess ist von den herkömmlichen Lösungen verschieden, die konvertierte Überlagerungsanzeigedaten 1924 in einem On-Screen-Bereich des Grafikspeichers 1960 speichern. Wie detaillierter unten beschrieben wird, wird auf Überlagerungsanzeigedaten 2062, 2064, 2066 und 2068 zugegriffen und sie werden durch eine Überlagerungspipeline innerhalb des Grafikcontrollers 2050 verarbeitet und schließlich zu der Anzeige 14/24 gerastert. Die Überlagerungspipeline führt sämtliches Skalieren, Interpolieren, Randformen und die Datenformatumwandlungsfunktionen für die Überlagerungsdaten 2062, 2064, 2066 und 2068 aus, um angezeigte Bilder 2072, 2074, 2076 bzw. 2078 zu erzeugen.
  • Indem man diese Funktionen innerhalb des Grafikcontrollers 2050 einbaut, wird die CPU von allen Überlagerungsoperationen entlastet. Außerdem wird der Verkehr auf dem lokalen Bus 1920 verringert, da der Verkehr zwischen der Quelle 1910 und dem Systemspeicher 1970 beseitigt wird. Diese zusätzliche Bandbreite bringt die Überlagerungsdaten aus einer Mehrzahl von Quellen 2002, 2004 und 2006 unter.
  • Ein zusätzlicher Nutzen der Architektur der vorliegenden Erfindung liegt in der Unterstützung für eine hardware-unterstützte doppelten Pufferung für Überlagerungen. Doppeltes Puffern wird detaillierter in J.D. Foley et al., "Computer Graphics: Principles and Practice", 2. Auflage, Addison-Wesley Publishing, 1990, das durch Hinweis in seiner Ganzheit aufgenommen wird, beschrieben. Im Allgemeinen wird eine doppelte Pufferung weitgehend verwendet, wo eine glatte Animation kritisch ist. In diesem Prozess zeichnet eine Anwendung in einen ersten Bereich des Speichers, während ein zweiter Bereich von identischen Maßen als eine Quelle für die Anzeige dient. Wenn die Anwendung den Zeichnungsprozess in dem ersten Bereich des Speichers beendet, Swapen der Grafikcontroller und die Anwendung Speicherpositionen. Die Anwendung zeichnet jetzt in den zweiten Bereich des Speichers, während der erste Bereich des Speichers als die neue Quelle für die Anzeige fungiert. Die Implementierung dieses Doppel-Puffermerkmals wird detaillierter unten beschrieben.
  • Nachdem die allgemeine Funktionalität beschrieben worden ist, wird eine detailliertere Ansicht von dem Grafikcontroller 2050 in der 21 zur Verfügung gestellt. Wie oben bemerkt, überträgt der Grafikcontroller 2050 sowohl Überlagerungsdaten als auch Hintergrundsdaten von dem Grafikspeicher 1960 unter Verwendung unterschiedlicher Pipelines zu der Anzeige 14/24. Der Grafikcontroller 2050 umfasst einen Speichercontroller 2102, eine Anzeige-FIFO-Pipeline 2104, eine Überlagerungs-FIFO-Pipeline 2106, einen CRTC 2108 und einen Überlagerungsmultiplexer 2110. Der Speichercontroller 2102 ist die Schnittstelle zu dem Grafikspeicher 1960. Der Speichercontroller 2102 empfängt Speicherzugriffsanforderungen einschließlich jener Anforderungen, die in 7 beschrieben werden. In einer bevorzugten Ausführungsform wird das Prioritätsschema, das in 10 gezeigt wird, verwendet, um Anforderungen zu vermitteln, die von mehreren FIFOs (d.h. der Anzeige-FIFO-Pipeline 2104 und der Überlagerungs-FIFO-Pipeline 2106) empfangen werden können.
  • Wie oben beschrieben, ist die Anzeige-FIFO-Pipeline 2104 die herkömmliche Pipeline, die Grafikhintergrunddaten von dem Hintergrundbereich (nicht gezeigt) des Grafikspeichers 1960 ausliest und die Hintergrundsanzeigedaten in dem Format der Fernsehanzeige 2140 ausgibt (z.B. 24-Bit-RGB). Wie in 21 gezeigt, greift die Anzeige-FIFO-Pipeline 2104 auf die Hintergrundsanzeigedaten von dem Grafikspeicher 1960 über den Speichercontroller 2102 und den Pfad 2124 zu. Die Hintergrundsanzeigedaten werden von der Anzeige-FIFO-Pipeline 2104 über den Pfad 2128 an den Multiplexer 2110 ausgegeben.
  • Die Überlagerungs-FIFO-Pipeline 2106 ist auf der anderen Seite die Pipeline, die für die Überlagerungsdaten bestimmt ist. Die Überlagerungs-FIFO-Pipeline 2106 greift auf die Überlagerungsanzeigedaten von dem Grafikspeicher 1960 über den Speichercontroller 2102 und den Pfad 2122 zu. Die Überlagerungsanzeigedaten werden von der Überlagerungs-FIFO-Pipeline 2106 ausgegeben, um den Multiplexer 2110 über den Pfad 2126 überlagert zu werden.
  • Eine Ausführungsform der Überlagerungs-FIFO-Pipeline 2106 wird in 28 veranschaulicht. Der Überlagerungs-FIFO 2802 liest Überlagerungsdaten (nicht gezeigt) von einem Off-Screen-Grafikspeicher ein und gibt die Überlagerungsdaten in dem Format der Anzeige aus. Da die Überlagerungsdaten in ihrem nativen Format gespeichert werden, ist der Formatkonverter 2804 für das Durchführen jeder möglichen erforderlichen Formatumwandlung verantwortlich. Wie oben bemerkt, ist die Überlagerungs-FIFO-Pipeline 2106 auch für das Durchführen jeder möglichen erforderlichen Skalierung und Interpolation verantwortlich. Diese Funktionen werden von einer Skalierungs- und Interpolations-Einheit 2806 durchgeführt. Die Funktion und Definition der Eingabe-/Ausgabe-Signale von der Überlagerungs-FIFO-Pipeline 2106 sind unten mit Bezug auf den CRTC 2108 beschrieben.
  • Der Überlagerungsmultiplexer 2110 empfängt die Datenströme von der Anzeige-FIFO-Pipeline 2104 und von der Überlagerungs-FIFO-Pipeline 2106 über die Pfade 2128 bzw. 2126 und wählt den Datenstrom aus, der zu der Anzeige auszugeben ist. Die Wahl des richtigen Datenstromes basiert auf Steuersignalen (nicht gezeigt) von dem CRTC 2108. Der CRTC 2108 steuert auch den weiteren Verlauf von Daten innerhalb des Anzeige-FIFOs 2104 und der Überlagerungs-FIFO-Pipeline 2106.
  • In der Ausführungsform, die in 21 gezeigt wurde, gibt der Überlagerungsmultiplexer 2110 nicht verschachtelte Anzeigedaten an den Fernsehkonverter 2130 aus. Die Funktionen des Fernsehkonverters 2130 enthalten (1) die Umwandlung von nicht geschachtelten Anzeigedaten zu verschachtelten Anzeigedaten und (2) die Farbumwandlung von RGB-Daten zu den YIQ-(NTSC-Standard) oder YUV-(PAL-Standard) Daten. Die umgewandelten Daten werden dann an die Fernsehanzeige 2410 ausgegeben. In anderen Ausführungsformen könnte der Überlagerungsmultiplexer 2110 Anzeigedaten zu einer CRT 14 oder einem LCD 24 über den DAC 61' bzw. den LCD I/F 62' senden.
  • Ein Überblick über den Betrieb des Überlagerungsmultiplexers 2110 wird mit Bezug auf 22 beschrieben. 22 veranschaulicht eine Scan-Linie 2220, die für die Erzeugung der Anzeige 2200 benutzt wird. Die Scan-Linie 2220 wird durch den Überlagerungsmultiplexer 2110 erzeugt und schließt Anzeigedaten ein, die mit der Hintergrundsanzeige 2202, „a"-Überlagerungsdaten 2204 und „d"-Überlagerungsdaten 2208 assoziiert sind. Im Normalbetrieb wird der Datenstrom von der Anzeige-FIFO-Pipeline 2104 benutzt, um die Hintergrundsanzeige 2202 auf Rasterart (d.h. Scan-Linie um Scan-Linie) zu zeichnen. Dieser Datenstrom wird durch die Anzeige-FIFO-Pipeline 2104 erzeugt und entsteht in dem Hintergrundbereich 1962 des Grafikspeichers 1960.
  • Wenn jedoch der CRTC 2108 feststellt, dass ein oder mehr Überlagerungsstreifen 2232, 2234 innerhalb der gegenwärtigen Scan-Linie vorhanden sind, weist der CRTC 2108 die Überlagerungs-FIFO-Pipeline 2106 an, Überlagerungsdaten von dem Grafikspeicher 1960 zu laden. In dem Zusammenhang der Scan-Linie 2220 weist der CRTC 2108 die Überlagerungs-FIFO-Pipeline 2106 an, zuerst „A"-Überlagerung-Anzeigedaten 2062 von dem Grafikspeicher 1960 zu laden. Nach der Formatumwandlung und der dazugehörigen Verarbeitung (z.B. Skalieren) werden Daten für einen "a-"Überlagerungsstreifen 2232 erzeugt und über den Pfad 2126 zu dem Überlagerungsmultiplexer 2110 gesendet. Die Daten für den "a-"Überlagerungsstreifen 2232 werden durch den Überlagerungsmultiplexer 2110 ausgewählt, wenn Punkt 2222 der Scan-Linie 2220 erreicht wird. Wenn Punkt 2224 der Scan-Linie 2220 erreicht wird, nimmt der Überlagerungsmultiplexer 2110 die normale Routine des Übermittelns von Hintergrundsanzeigedaten zu der Anzeige 14/24 wieder auf.
  • Wie weiter in 22 veranschaulicht, schließt die Scan-Linie 2220 auch einen "d-"Überlagerungsstreifen 2234 ein. Auf eine ähnliche Art und Weise weist der CRTC 2108 die Überlagerungs-FIFO-Pipeline 2106 an, "D-"Überlagerung-Anzeigedaten 2068 von dem Grafikspeicher 1960 zu laden. Nach Formatumwandlung werden Daten für den "d-"Überlagerungsstreifen 2234 erzeugt und über den Pfad 2126 zu dem Überlagerungsmultiplexer 2110 gesendet. Die Daten für den "d-"Überlagerungsstreifen 2234 werden von dem Überlagerungsmultiplexer 2110 ausgewählt, wenn Punkt 2226 der Scan-Linie 2220 erreicht wird. Wenn Punkt 2228 erreicht wird, nimmt der Überlagerungsmultiplexer 2110 das Vermitteln der Hintergrundsanzeigedaten zu der Anzeige 14/24 wieder auf. Dieser Prozess des Wählens zwischen Hintergrundsanzeigedaten 2202 und Überlagerungsanzeigedaten 2204, 2206, 2208 oder 2210 wird für jede Scan-Linie 2220 in der Anzeige 2200 wiederholt.
  • Wie in der Beispielsanzeige von 22 gezeigt, werden mehrfache Überlagerungen durch die vorliegende Erfindung unterstützt. Die Zahl der möglichen Überlagerungen ist implementierungsabhängig. Im Allgemeinen wird in der Hardwarearchitektur der vorliegenden Erfindung jeder Überlagerung ein Satz von Überlagerungsregistern zugewiesen. Die Überlagerungsregister, die in Tabelle 1 definiert sind, werden mit Bezug auf 23 beschrieben. Wie in 23 gezeigt, enthalten die Register RegOf<#>Höhe und RegOf<#>Breite die Maße eines unskalierten Überlagerungsbilds 2302, das von einer der Quellen 2002, 2004, 2006 und 2008 ausgegeben wird. Nachdem das unskalierte Überlagerungsbild 2302 in die Überlagerungs-FIFO-Pipeline 2106 geladen worden ist, kann die Interpolations- und Skalierungs-Einheit 2806 die Maße des unskalierten Überlagerungsbilds 2302 auf der Grundlage der Werte der Register RegOf<#>SkalaX und RegOf<#>SkalaY anpassen. Speziell werden die Maße des skalierten Überlagerungsbildes 2304 auf der Anzeige 14/24 durch eine Multiplikation der Maße des unskalierten Überlagerungsbilds 2302 mit Skalierungsfaktoren SkalaX und SkalaY erzeugt. Weiterhin wird mit Bezug auf das skalierte Überlagerungsbild 2304 die Position auf der Anzeige 14/24 durch einen Ursprung definiert (z.B. obere linke Ecke). Die X-, Y-Koordinaten dieses Ursprungspunktes werden durch Register RegOf<#>StartX und RegOf<#>StartY definiert.
  • Figure 00350001
  • Figure 00360001
    • „#" = Registernummer
    • „*" = Multiplikation
  • Tabelle 1
  • Schließlich wird die Positionierung von Daten des unskalierten Überlagerungsbildes 2302 in den Grafikspeicher 1960 durch eine Startadresse im Register RegOf<#>StartAdr definiert. Das Register RegOf<#>Versatz definiert den Adressenversatz zwischen Linien des unskalierten Überlagerungsbilds 2302. Speziell ist die Adresse des ersten Pixels von Linie n der Überlagerung <#> = RegOf<#>StartAdr + (n * RegOf<#>Versatz). Durch diese Berechnungen weiß die Überlagerungs-FIFO-Pipeline 2106, welche Daten für eine bestimmte Scan-Linie zu laden sind.
  • Durch den Gebrauch von den Registern, die in Tabelle 1 definiert werden, kann die vorliegende Erfindung eine doppelte Pufferbetriebsfunktion leicht unterstützen. Wie oben bemerkt, bezieht doppeltes Puffern den Gebrauch von zwei Bereichen des Speichers für die Anzeige einer einzelnen Überlagerung ein. In diesem Prozess wechselt eine Anwen dung das Zeichnen zwischen dem ersten und dem zweiten Bereich des Speichers, während der Grafikcontroller unter Verwendung des ersten und zweiten Bereichs des Speichers als die Quelle der Anzeige wechselt. 24A und 24B veranschaulichen eine beispielhafte Registerzuweisung, die diese Funktion unterstützt.
  • 24A veranschaulicht eine Standardzuweisung der Register zu den Überlagerungen. Speziell werden vier Überlagerungen 2422, 2424, 2426 und 2428, die von einer der Quellen 2402, 2404 erzeugt werden, jede einem einzelnen Registersatz zugewiesen (d.h. < # > = 0, 1, 2 oder 3). Tabelle 2 veranschaulicht mögliche Registerwerte für diese bestimmte Registerzuweisung.
  • Figure 00370001
    Tabelle 2
  • Wie es Tabelle 2 veranschaulicht, definiert jeder aktivierte Registersatz eine eindeutige X-, Y-Startkoordinate, Startadresse, Höhe, Breite und Skalierungsfaktoren für Überlagerungsdaten, die in den Speicherbereichen 2412, 2414, 2416 und 2418 gespeichert werden. Überlagerungsdaten 2412, 2414, 2416, und 2418 in dem Grafikspeicher 1960 weisen eine Eins-zu-Eins-Korrespondenz mit Überlagerungen 2422, 24422, 2426 bzw. 2428 auf der Anzeige 14/24 auf.
  • 24B veranschaulicht auf der anderen Seite eine beispielhafte Registerzuweisung, welche das Merkmal des doppelten Pufferns unterstützt. Hier entsprechen Speicherbereiche 2412 und 2414 der Überlagerung 2432, während Speicherbereiche 2416 und 2418 der Überlagerung 2434 entsprechen. Durch diese Doppelzuweisung können Quellen 2402, 2404 Anzeigedaten in einen der zwei Speicherbereiche abwechselnd schreiben, die mit einer einzelnen Überlagerung assoziiert sind. Z.B. schreibt Quelle 2402 abwechselnd in die Speicherbereiche 2412 und 2414. Somit dienen die Speicherbereiche 2412 und 2414 abwechselnd als eine Quelle für die Überlagerung 2432. Tabelle 3 ver anschaulicht mögliche Registerwerte für diese Zuweisung von Registern der doppelten Pufferung.
  • Figure 00380001
    Tabelle 3
  • Wie Tabelle 3 veranschaulicht, sind die zwei sich ergänzenden Speicherbereiche in der Größe identisch, wie es durch die identischen Registerwerte für die X-, Y-Startkoordinate, Höhe, Breite und Skalierungsfaktoren angezeigt wird. Da die zwei Speicherbereiche verschieden sind, hat jeder eine eindeutige Startadresse. In Bezug auf das Bit in dem Aktivierungsregister kann nur einer der zwei sich ergänzenden Speicherbereiche auf einmal eingestellt werden. In anderen Worten kann zu jeder bestimmten Zeit nur einer der Speicherbereiche als eine Quelle der Anzeige dienen.
  • Weiterhin weist mit Bezug auf Registerzuweisungen eine Ausführungsform der vorliegenden Erfindung Register den Überlagerungen auf der Grundlage der Nähe der Überlagerungen auf der Anzeige zu. Speziell wird, wenn zwei oder mehr Überlagerungen angezeigt werden, die sich am weitesten links befindende Überlagerung in den niedrigsten Überlagerungsregistersatz programmiert. Wenn z.B. vier Überlagerungen angezeigt werden, wird die sich am weitesten links befindende Überlagerung dem Registersatz 0 zugewiesen, wird die mittlere linke Überlagerung dem Registersatz 1 zugewiesen, wird die mittlere rechte Überlagerung dem Registersatz 2 zugewiesen und wird die sich am weitesten rechts befindende Überlagerung dem Registersatz 3 zugewiesen. Diese Zuweisungen können für jede der Überlagerungen auf dem Wert des Registers RegOf<#>StartX basieren.
  • Im Allgemeinen kann diese Zuweisungsmethodik die Menge der Hardwareverarbeitung des CRTC 2108 verringern, die erforderlich ist, festzustellen, welche Überlagerungsdaten in die Überlagerungs-FIFO-Pipeline 2106 für eine bestimmte Scan-Linie zu laden sind. Man betrachte z.B. das Szenario, in dem es Überlagerungen nicht erlaubt wird, einander zu überlappen. In diesem Szenario bestimmt der CRTC 2108 zuerst, welche Überlagerungen auf einer bestimmten Scan-Linie bestehen. Diese Ermittlung basiert nur auf der Y-Koordinate, der Höhe und dem Skalierungsfaktor. Für den Satz von Überlagerungen, die auf dieser bestimmten Scan-Linie vorhanden sind, bestimmt der CRTC 2108 die Reihenfolge, in der Überlagerungsdaten in die FIFOpipeline 2106 zu laden sind. Diese Reihenfolge basiert einfach auf der Reihenfolge der Registernummern.
  • Man betrachte z.B. wieder mit Bezug auf 22 die Scan-Linie 2220 in der Anzeige 2200, die "a-" und "d-"Überlagerungen 2204, 2208 einschließt. Auf der Grundlage der am weitesten links liegenden Positionierung der X-Startkoordinate wird der "a-"Überlagerung 2204 Register 0 zugewiesen und wird der "d-"Überlagerung 2208 Register 2 zugewiesen. Einfach auf dieser Reihenfolge der Register basierend weiß der CRTC 2108, dass die "a-"Überlagerung 2204 vor der "d-"Überlagerung 2208 verarbeitet werden sollte.
  • Wie man leicht erkennen kann erfordert, wenn überlappende Überlagerungen erlaubt sind, der CRTC 2108 eine zusätzliche Softwareverarbeitung, um die Reihenfolge zu bestimmen, in der die Überlagerungs-FIFO-Pipeline 2106 Überlagerungsdaten lädt. Insbesondere sind, wie es den Fachleuten bekannt ist, überlappende Überlagerungen (oder die Fenster) auf der Grundlage der Prioritätsmechanismen unterscheidbar, die die relativen Bereiche des Schirmbesitzes anzeigen. Schirmbesitzbetrachtungen würden folglich die Verwendung der CRTC von Koordinaten-Registerdaten ergänzen.
  • Im Allgemeinen ist, wie oben bemerkt, der CRTC 2108 der Koordinator des Grafikcontrollers 2050. Der CRTC 2108 koordiniert die Funktionen der Anzeige-FIFO-Pipeline 2104 und der Überlagerungs-FIFO-Pipeline 2106. Spezieller schließen die Funktionen des CRTC 2108 die Koordination davon ein (1), wann die Anzeige-FIFO-Pipeline 2104 und die Überlagerungs-FIFO-Pipeline 2106 Hintergrunds- bzw. Überlagerungsdaten einlesen sollten und (2) wann die Anzeige-FIFO-Pipeline 2104 und die Überlagerungs-FIFO-Pipeline 2106 das Verarbeiten der geladenen Daten beginnen sollten. Die Funktionen des CRTC 2108 schließen die Koordination davon ein, welcher Anzeigedaten-Überlagerungsmultiplexer (Hintergrund oder Überlagerung) 2110 ausgewählt werden sollte.
  • 25 veranschaulicht ein High-Level-Blockdiagramm eines Steuerteils des CRTC 2108. Die Grundlage des CRTC 2108 bilden zwei Zähler, ein horizontaler Zähler 2502 und vertikaler Zähler 2504, die zu dem Anfang jedes neuen Anzeigeframes ausgelöst werden. Die Werte der Zähler 2502, 2504 stellen die Koordinaten der Anzeige dar. Diese Koordinaten werden mit Bezug auf einen Ursprung (z.B. obere linke Ecke) erzeugt.
  • Wie in 26 veranschaulicht, kennzeichnen der horizontale Zähler 2502 und der vertikale Zähler 2504 auch Koordinaten der nicht angezeigten Bereiche. Die Koordinaten dieser nicht angezeigten Bereiche werden als eine horizontale nicht-angezeigte Periode (HNDP) und eine vertikale nicht-angezeigte Periode (VNDP) bezeichnet. Der horizontaler Zähler 2502 zählt folglich von null an auf jeder Linie und wird für jedes folgende Pixel erhöht, bis die Breite der Anzeige plus dem HNDP-Seitenrand erreicht ist. Ebenso zählt vertikaler Zähler 2504 von null an für die erste Scan-Linie und wird für jede folgende Scan-Linie erhöht, bis die Höhe der Anzeige plus dem VNDP-Seitenrand erreicht ist.
  • Im Allgemeinen weist vor dem Anfang jeder möglicher Linie, die nicht innerhalb des VNDP liegt, der CRTC 2108 die Anzeige-FIFO-Pipeline 2104 an, damit zu beginnen, Hintergrundsgrafikdaten einzulesen. Wenn der horizontaler Zähler 2502 nicht in dem HNDP ist, weist der CRTC 2108 die Anzeige-FIFO-Pipeline 2104 an, die Hintergrundsgrafikdaten zu verarbeiten. Der CRTC 2108 muss genügend Zeit für die Anzeige-FIFO-Pipeline 2104 zur Verfügung stellen, dass sie Hintergrundsdaten laden kann, bevor das Verarbeiten beginnen kann.
  • In Bezug auf die Überlagerungs-FIFO-Pipeline 2106 werden ähnliche Grundregeln angewendet. Vor der Anzeige einer bestimmten Überlagerung muss der CRTC 2108 die Überlagerungs-FIFO-Pipeline 2106 anweisen, spezielle Überlagerungsdaten einzulesen. Kurz danach weist der CRTC 2108 die Überlagerungs-FIFO-Pipeline 2106 an, damit zu beginnen, die Überlagerungsdaten für die letztlich erfolgende Anzeige vorzubereiten. In dem Zusammenhang mit der Scan-Linie 2220 von 22, weist der CRTC zuerst die Überlagerungs-FIFO-Pipeline 2106 an, Daten für die Überlagerung "a" 2204 zu lesen. Der CRTC 2108 kann die Überlagerungs-FIFO-Pipeline 2106 nicht anweisen, Daten für die Überlagerung "d" 2208 zu lesen, bis die Überlagerungs-FIFO-Pipeline 2106 den CRTC 2108 darüber informiert, dass die Überlagerungs-Scan-Linie 2232 vollständig eingelesen worden ist. In einer bevorzugten Ausführungsform wird diese Koordination der Verarbeitung der mehrfachen Überlagerungen durch bidirektionales Handshaking ermöglicht. Genauer sendet die Überlagerungs-FIFO-Pipeline 2106 zu dem CRTC 2108 ein OfMemLoadDone-Signal, das anzeigt, dass die Überlagerungs-FIFO-Pipeline 2106 das Einlesen einer gesamten Überlagerungslinie beendet hat und dass sie bereit ist, einen Anforderung anzunehmen, damit zu beginnen, die folgende Überlagerungslinie zu lesen. Bidirektionales Handshaking wird auch verwendet, um das Überlagerungsskaliermerkmal der Überlagerungs-FIFO-Pipeline 2106 unterzubringen. Man nehme z.B. an, dass die Überlagerungs-FIFO-Pipeline 2106 Überlagerungsdaten hat, die eine horizontale Vergrößerung erfordern. Da das Skalieren innerhalb der Überlagerungs-FIFO-Pipeline 2106 durchgeführt wird, kann der CRTC 2108 nicht die endgültigen Überlagerungsbildmaße im voraus feststellen. Somit stellt am Ende jeder gezeichneten Überlagerungslinie die Überlagerungs-FIFO-Pipeline 2106 dem CRTC 2108 ein VpCTCDone-Signal zur Verfügung, das anzeigt, dass die Verarbeitung des letzten Pixels in der Überlagerungslinie beendet ist. Ähnlich stellt mit Bezug auf eine vertikale Vergrößerung die Überlagerungs-FIFO-Pipeline 2106 dem CRTC 2108 ein VpCTCNewLine-Signal zur Verfügung, das anzeigt, ob sie die selbe Überlagerungslinie oder eine neue Überlagerungslinie des unskalierten Überlagerungsbilds erfordert, wenn die Überlagerung das nächste Mal gezeichnet werden soll.
  • Wie in 25 veranschaulicht, werden diese Handshaking-Signale OfMemLoadDone, VpCTCDone und VpCTCNewLine, als Eingaben dem CRTC 2108 zur Verfügung gestellt. Der Betrieb des Restes des Steuerteils des CRTC 2108 wird jetzt beschrieben.
  • Wie oben bemerkt, stellt der CtcVZähler 2504 eine vertikale Koordinate für eine bestimmte Scan-Linie zur Verfügung. Diese vertikale Koordinate wird dem CtcOfVDE 2506 zur Verfügung gestellt. Der CtcOfVDE 2506 erzeugt ein Freigabesignal für die vertikale Anzeige für jede der Überlagerungen. Speziell zeigen die Signale CtcOf<#>VDE, die dem CtcOfSel 2508 zur Verfügung gestellt werden, wenn aktive high gilt, an, dass die Überlagerung < # > auf der Scan-Linie sichtbar ist, die zur Zeit gezeichnet wird. In dem Beispiel der Scan-Linie 2220 von 22, sind CtcOf<0>VDE und CtcOf<2>VDE aktive high und CtcOf<1>VDE und CtcOf<3>VDE sind inactive low.
  • Beim Empfang der Signale CtcOf<#>VDE bestimmt der CtcOfSel 2508 die Reihenfolge der Überlagerungen, die in die Überlagerungs-FIFO-Pipeline 2106 zu laden sind. Wenn ein Überlappen der Überlagerungen nicht erlaubt ist, betrifft diese Bestimmung einfach die numerische Reihenfolge der ermöglichten Überlagerungen. Für die Scan-Linie 2220 wird die Überlagerung "0" zuerst geladen und die Überlagerung "2" wird als zweites geladen. Wie oben bemerkt, kann, wenn ein Überlappen der Überlagerungen erlaubt ist, diese Bestimmung eine kompliziertere Hardwareverarbeitung erfordern, die die relative Priorität des Schirmbesitzes auf dieser Scan-Linie mit einbezieht.
  • Um das bidirektionale Handshaking zu ermöglichen, gibt der CtcOfSel 2508 die Signale CtcOfMemLoad und CtcOfSel aus. CtcOfMemLoad weist die Überlagerungs-FIFO-Pipeline 2106 an, damit zu beginnen, die Überlagerungsdaten von dem Speicher einzulesen. CtcOfSel definiert die bestimmte Überlagerung, die die Überlagerungs-FIFO-Pipeline 2106 von dem Speicher einliest. Zusätzlich gibt CtcOfLoadAdr 2512 CtcOfLoadAdr aus, das die Startadresse der von dem Speicher einzulesenden Überlagerung definiert.
  • Auf der Grundlage der Reihenfolge der zu verarbeitenden Überlagerungen bestimmt CtcOfHDE, wann die Überlagerungs-FIFO-Pipeline damit beginnen sollte, Überlagerungsdaten für die abschließende Anzeige vorzubereiten. Auf der Grundlage der Eingabe von dem CtcHZähler 2502, gibt CtcOfHDE 2510 CtcOfHde aus, das die Überlagerungs-FIFO-Pipeline 2106 darüber informiert, wann sie mit dem Verarbeiten der Überlagerungsdaten zu beginnen hat. CtcOfHDE 2510 gibt auch CtcDpOfSel aus, das die gegenwärtige Überlagerung definiert, die vorbereitet wird.
  • Wie beschrieben, sind CtcOfMemLoad, CtcOfSel, CtcOfLoadAdr und OfMemLoadDone alles Signale, die sich auf das Lesen von Daten von dem Speicher in die Überlagerungs-FIFO-Pipeline 2108 beziehen. CtcOfHde, CtcDpOfSel, VpCtcDone und VpCtcNewLine sind auf der anderen Seite Signale, die sich auf die Verarbeitung der Überlagerungsdaten beziehen. Ein Beispiel die Wechselwirkung dieser Signale wird in dem Zeitdiagramm von 27 veranschaulicht.
  • Im Allgemeinen tritt die Bestätigung des CtcOfMemLoad vor einer steigenden Flanke von CtcOfHde auf. In anderen Worten werden Überlagerungsdaten, bevor sie verarbeitet werden, geladen. In 27 ist die Zeitverzögerung zwischen der steigenden Flanke 2702 zur Zeit t1 und der steigenden Flanke 2710 zur Zeit t2 sowie zwischen der steigenden Flanke 2704 zur Zeit t6 und der steigenden Flanke 2712 zur Zeit t7 von hinreichender Dauer, um es der Überlagerungs-FIFO-Pipeline 2106 zu ermöglichen, die ersten Daten der spezifizierten Überlagerung von dem Grafikspeicher 1960 einzulesen.
  • Wie von dem CtcOfSel angezeigt, ist die spezifizierte Überlagerung für die erste Last Überlagerung "0", und die spezifizierte Überlagerung für die zweite Last ist Überlagerung "2". Die Startadressen werden von CtcOfLoadAdr als ADR0 bzw. ADR2 spezifiziert.
  • Wie oben bemerkt, beginnt die Verarbeitung von Überlagerungsdaten mit der Bestätigung von CtcOfHde. Für die Überlagerung "0" beginnt die Verarbeitung an der steigenden Flanke 2710 zur Zeit t2 an. Für die Überlagerung "2" beginnt die Verarbeitung an der steigenden Flanke 2712 zur Zeit t7. Es sollte auch bemerkt werden, dass VpCtcDone im Allgemeinen nach OfMemLoadDone auftritt. Speziell tritt die steigende Flanke 2714 zur Zeit t5 im Allgemeinen nach der steigenden Flanke 2706 zur Zeit t3 auf. Wenn die steigende Flanke 2714 vor der steigenden Flanke 2706 auftritt, kann das letzte Überlagerungspixel gezeichnet worden sein, bevor die Überlagerungs-FIFO-Pipeline 2106 die gesamte Überlagerungslinie einliest. Ein verhängnisvoller FIFO-Underflow-Zustand kann folglich aufgetreten sein.

Claims (9)

  1. Ein Grafikkontroller zur Verwendung in einem Computersystem, worin das Computersystem eine Grafikspeichereinrichtung (1960) zum Speichern von Hintergrundsgrafikanzeigedaten (1962) und Überlagerungsanzeigedaten (1924, 2062, 2064, 2066, 2068, 2412, 2414, 2416, 2418) besitzt, wobei die Grafikspeichereinrichtung (1960) einen Off-Screen-Bereich zum Speichern der Überlagerungsanzeigedaten (1924, 2062, 2064, 2066, 2068, 2412, 2414, 2416, 2418) in einem Format umfasst, das einer Quelle (2002, 2004, 2006, 2008, 2412, 2414) zugehörig ist, welche die Überlagerungsanzeigedaten (1924, 2062, 2064, 2066, 2068, 2412, 2414, 2416, 2418) erzeugt, wobei der Grafikkontroller umfasst: eine Anzeige-FIFO-Pipeline (2104), die dazu eingerichtet ist, die Hintergrundsgrafikanzeigedaten (1962) aus dem Grafikspeicher (1960) einzulesen; eine Überlagerungs-FIFO-Pipeline (2106), die dazu eingerichtet ist, die Überlagerungsanzeigedaten (1924, 2062, 2064, 2066, 2068, 2412, 2414, 2416, 2418) aus dem Grafikspeicher (1960) einzulesen; und einen Überlagerungs-Multiplexer (2110) zum wahlweisen Ausgeben entweder der Hintergrundsgrafikanzeigedaten (1962) oder der Überlagerungsanzeigedaten (1924, 2062, 2064, 2066, 2068, 2412, 2414, 2416, 2418) an eine Anzeige (14, 24) für eine gegenwärtige Scan-Linie (2220), dadurch gekennzeichnet, dass der genannte Grafikkontroller eingerichtet ist, die Anzeige einer Menge einer Mehrzahl von Überlagerungen (2072, 2074, 2076, 2078, 2422, 2424, 2426, 2428, 2432, 2434), von denen jede aus einem Bild besteht, das den Hintergrundsgrafiken (2202) zu überlagern ist, und durch entsprechende Daten (2062, 2064, 2066, 2068, 2412, 2414, 2416, 2418) der genannten Überlagerungsanzeigedaten repräsentiert wird, zu bewirken; und dadurch, dass der genannte Grafikkontroller weiterhin umfasst eine Steuereinheit (2108), wobei die genannte Steuereinheit (2108) umfasst: einen Vertikalzähler (2504); eine Einheit zur Ermöglichung einer vertikalen Anzeige (2506), die mit dem genannten Vertikalzähler (2504) verbunden ist, wobei die Einheit zur Ermöglichung einer vertikalen Anzeige (2506) eingerichtet ist, zu bestimmen, ob eine Untermenge von Überlagerungen (2072, 2074, 2076, 2078, 2422, 2424, 2426, 2428, 2432, 2434) auf der genannten gegenwärtigen Scan-Linie (2220) sichtbar ist; und eine Überlagerungswahleinheit (2508, 2512), die mit der genannten Einheit zur Ermöglichung einer vertikalen Anzeige (2506) verbunden ist, wobei die Überlagerungswahleinheit (2508, 2512) eingerichtet ist, eine Reihenfolge zu bestimmen, in der Überlagerungsdaten (2062, 2064, 2066, 2068, 2412, 2414, 2416, 2418) für die genannte Untermenge von Überlagerungen (2072, 2074, 2076, 2078, 2422, 2424, 2426, 2428, 2432, 2434) in die genannte Überlagerungs-FIFO-Pipeline (2106) geschrieben werden, wobei die genannte Überlagerungswahleinheit (2508, 2512) weiterhin eingerichtet ist, eine Speicherlast, eine Überlagerungswahl und Startadressensignale zu der genannten Überlagerungs-FIFO-Pipeline (2106) zu senden.
  2. Der Grafikkontroller von Anspruch 1, worin die genannte Überlagerungs-FIFO-Pipeline (2106) umfasst: einen FIFO (2802), der eingerichtet ist, die Überlagerungsdaten (1924, 2062, 2064, 2066, 2068, 2412, 2414, 2416, 2418) von dem genannten Off-Screen-Bereich des Grafikspeichers (1960) zu empfangen; und einen Formatkonvertierer (2804) zum Konvertieren der Überlagerungsdaten (1924, 2062, 2064, 2066, 2068, 2412, 2414, 2416, 2418) von dem genannten Format, das der genannten Quelle (2002, 2004, 2006, 2008, 2402, 2404) zugehörig ist, welche die Überlagerungsanzeigedaten (1924, 2062, 2064, 2066, 2068, 2412, 2414, 2416, 2418) erzeugt, in ein Format, das von der genannten Anzeige (14, 24) angezeigt werden kann.
  3. Der Grafikkontroller von Anspruch 2, worin die genannte Überlagerungs-FIFO-Pipeline (2106) weiterhin eine Einheit (2806) zum Skalieren der Überlagerungsanzeigedaten (1924, 2062, 2064, 2066, 2068, 2412, 2414, 2416, 2418) umfasst, die mit dem genannten Formatkonvertierer (2804) verbunden ist.
  4. Der Grafikkontroller von Anspruch 2, worin die genannte Überlagerungs-FIFO-Pipeline (2106) weiterhin eine Einheit (2806) zum Interpolieren der Überlagerungsanzeigedaten (1924, 2062, 2064, 2066, 2068, 2412, 2414, 2416, 2418) umfasst, die mit dem genannten Formatkonvertierer (2804) verbunden ist.
  5. Der Grafikkontroller von einem der Ansprüche 1 bis 4, worin die genannte Steuereinheit (2108) weiterhin umfasst: eine Einheit zur Ermöglichung einer horizontalen Anzeige (2510), die mit der genannten Überlagerungswahleinheit (2508) verbunden ist, wobei die genannte Einheit zur Ermöglichung einer horizontalen Anzeige (2510) eingerichtet ist, die genannte Überlagerungs-FIFO-Pipeline (2106) anzuweisen, wann sie mit der Verarbeitung der genannten Überlagerungsanzeigedaten (1924, 2062, 2064, 2066, 2068, 2412, 2414, 2416, 2418) zu beginnen hat.
  6. Der Grafikkontroller von einem der Ansprüche 1 bis 5, weiterhin umfassend eine Prioritätslogikeinheit (2102) zum Entscheiden über Anforderungen eines Speicherzugriffs auf den genannten Grafikspeicher (1960) unter Verwendung eines Multi-Tier-Ansatzes, wobei Anforderungen eines Upper-Tier-Speicherzugriffs bestehende Anforderungen eines Lower-Tier-Speicherzugriffs unterbrechen können.
  7. Ein Verfahren zum Verarbeiten von Überlagerungsanzeigedaten, die Schritte umfassend: Speichern von Überlagerungsanzeigedaten (1924, 2062, 2064, 2066, 2068, 2412, 2414, 2416, 2418) in einem Off-Screen-Bereich eines Grafikspeichers (1960), worin die genannten Überlagerungsanzeigedaten (1924, 2062, 2064, 2066, 2068, 2412, 2414, 2416, 2418) in einem Format gespeichert werden, das zumindest einer Quelle (2002, 2004, 2006, 2008, 2402, 2404) zugehörig ist, welche die ge nannten Überlagerungsanzeigedaten (1924, 2062, 2064, 2066, 2068, 2412, 2414, 2416, 2418) erzeugt; Zugreifen auf Hintergrundsgrafikanzeigedaten (1962) aus einem On-Screen-Bereich des genannten Grafikspeichers (1960) über eine Anzeige-FIFO-Pipeline (2104); Zugreifen auf Überlagerungsanzeigedaten (1924, 2062, 2064, 2066, 2068, 2412, 2414, 2416, 2418) für eine Quelle (2002, 2004, 2006, 2008, 2402, 2404), welche die Überlagerungsanzeigedaten (1924, 2062, 2064, 2066, 2068, 2412, 2414, 2416, 2418) erzeugt, über eine Überlagerungs-FIFO-Pipeline (2106); Konvertieren der genannten erhaltenen Überlagerungsanzeigedaten (1924, 2062, 2064, 2066, 2068, 2412, 2414, 2416, 2418) in ein Format, das von einer Anzeige (14, 24) angezeigt werden kann, durch die genannte Überlagerungs-FIFO-Pipeline (2106); und Senden einer der genannten Hintergrundsgrafikanzeigedaten (1962) und der genannten konvertierten Überlagerungsanzeigedaten über einen Überlagerungs-Multiplexer (2110) an die genannte Anzeige (14, 24), dadurch gekennzeichnet, dass weiterhin die Schritte umfasst werden: Bestimmen, welche Überlagerungsanzeigedaten einer Mehrzahl von Überlagerungsanzeigedaten (1924, 2062, 2064, 2066, 2068, 2412, 2414, 2416, 2418), die angezeigt werden können, auf einer gegenwärtigen Scan-Linie (2220) sichtbar sind, und Bestimmen einer Reihenfolge, in der die genannte Überlagerungs-FIFO-Pipeline (2106) Überlagerungsanzeigedaten (1924, 2062, 2064, 2066, 2068, 2412, 2414, 2416, 2418) aus dem genannten Grafikspeicher ausliest.
  8. Das Verfahren von Anspruch 7, worin der genannte Schritt des Bestimmens einer Reihenfolge den Schritt des Bestimmens der genannten Reihenfolge auf der Grundlage einer relativen Zuweisung von Registern umfasst.
  9. Ein Computersystem, umfassend: einen Mikroprozessor (28); einen Datenbus (32), der mit dem genannten Mikroprozessor (28) verbunden ist; eine Grafikspeichereinrichtung (1960) zum Speichern von Hintergrundsgrafikanzeigedaten (1962) und Überlagerungsanzeigedaten (1924, 2062, 2064, 2066, 2068, 2412, 2414, 2416, 2418), worin die Grafikspeichereinrichtung (1960) einen Off-Screen-Bereich zum Speichern der Überlagerungsanzeigedaten (1924, 2062, 2064, 2066, 2068, 2412, 2414, 2416, 2418) in einem Format umfasst, das einer Quelle (2002, 2004, 2006, 2008, 2402, 2404) zugehörig ist, welche die genannten Überlagerungsanzeigedaten (1924, 2062, 2064, 2066, 2068, 2412, 2414, 2416, 2418) erzeugt; und einen Grafikkontroller (36, 2050) gemäß einem der Ansprüche 1 bis 6, der mit dem genannten Datenbus (32) verbunden ist.
DE69735975T 1996-04-19 1997-04-03 System und Verfahren zur Überlagerung von wahlweise in unterschiedlichen nativen Formaten gespeicherten Bildern Expired - Lifetime DE69735975T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/632,543 US5877741A (en) 1995-06-07 1996-04-19 System and method for implementing an overlay pathway
US632543 1996-04-19

Publications (2)

Publication Number Publication Date
DE69735975D1 DE69735975D1 (de) 2006-07-06
DE69735975T2 true DE69735975T2 (de) 2006-10-26

Family

ID=24535928

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69735975T Expired - Lifetime DE69735975T2 (de) 1996-04-19 1997-04-03 System und Verfahren zur Überlagerung von wahlweise in unterschiedlichen nativen Formaten gespeicherten Bildern

Country Status (6)

Country Link
US (1) US5877741A (de)
EP (1) EP0802519B1 (de)
JP (1) JPH1049125A (de)
KR (1) KR970071254A (de)
CN (1) CN1126039C (de)
DE (1) DE69735975T2 (de)

Families Citing this family (106)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6098084A (en) * 1996-11-12 2000-08-01 Sun Microsystem, Inc. Method and apparatus for visually indicating status of a dataset when presenting portions of the dataset
US6604242B1 (en) 1998-05-18 2003-08-05 Liberate Technologies Combining television broadcast and personalized/interactive information
US5991799A (en) * 1996-12-20 1999-11-23 Liberate Technologies Information retrieval system using an internet multiplexer to focus user selection
US6381741B1 (en) 1998-05-18 2002-04-30 Liberate Technologies Secure data downloading, recovery and upgrading
US6441812B1 (en) * 1997-03-31 2002-08-27 Compaq Information Techniques Group, L.P. Hardware system for genlocking
US6400371B1 (en) 1997-05-16 2002-06-04 Liberate Technologies Television signal chrominance adjustment
US6326970B1 (en) 1997-05-16 2001-12-04 Liberate Technologies TV centric layout
US6513116B1 (en) 1997-05-16 2003-01-28 Liberate Technologies Security information acquisition
US7631188B2 (en) * 1997-05-16 2009-12-08 Tvworks, Llc Hierarchical open security information delegation and acquisition
US6075545A (en) * 1997-10-29 2000-06-13 Microsoft Corporation Methods and apparatus for storing, accessing and processing images through the use of row and column pointers
US6177946B1 (en) * 1997-11-14 2001-01-23 Ati Technologies, Inc. Method and apparatus for processing video data and graphics data by a graphic controller
DE69825393T2 (de) * 1997-11-19 2005-08-11 Sharp K.K. Schaltung zum simultanen Ansteuern eines Flüssigkristall-Bildschirms und eines Fernsehbildschirms
US6091431A (en) * 1997-12-18 2000-07-18 Intel Corporation Method and apparatus for improving processor to graphics device local memory performance
US6192428B1 (en) * 1998-02-13 2001-02-20 Intel Corporation Method/apparatus for dynamically changing FIFO draining priority through asynchronous or isochronous DMA engines in response to packet type and predetermined high watermark being reached
EP0954171A1 (de) * 1998-04-29 1999-11-03 CANAL+ Société Anonyme Empfänger/Dekodierer und Verfahren zur Videodatenbearbeitung
TW475140B (en) 1998-04-29 2002-02-01 Samsung Electronics Co Ltd Analog/digital display adapter and a computer system having the same
US6577351B1 (en) 1998-05-18 2003-06-10 Liberate Technologies Anti-aliasing television signals for display
US6563506B1 (en) * 1998-12-14 2003-05-13 Ati International Srl Method and apparatus for memory bandwith allocation and control in a video graphics system
US6621499B1 (en) * 1999-01-04 2003-09-16 Ati International Srl Video processor with multiple overlay generators and/or flexible bidirectional video data port
GB2345988B (en) * 1999-01-21 2000-12-20 John Quentin Phillipps Portable electronic apparatus
WO2000077974A1 (en) 1999-06-11 2000-12-21 Liberate Technologies Hierarchical open security information delegation and acquisition
US8434113B1 (en) 1999-10-06 2013-04-30 Tvworks, Llc Electronic commerce using streaming media
US6717577B1 (en) 1999-10-28 2004-04-06 Nintendo Co., Ltd. Vertex cache for 3D computer graphics
US6618048B1 (en) 1999-10-28 2003-09-09 Nintendo Co., Ltd. 3D graphics rendering system for performing Z value clamping in near-Z range to maximize scene resolution of visually important Z components
US7441014B1 (en) 2000-02-09 2008-10-21 Tvworks, Llc Broadcast distribution using low-level objects and locator tables
JP2001255862A (ja) * 2000-03-10 2001-09-21 Seiko Epson Corp オーバレイ画像処理装置およびオーバレイ画像表示装置
US6774912B1 (en) * 2000-03-16 2004-08-10 Matrox Graphics Inc. Multiple display device display controller with video overlay and full screen video outputs
US6897874B1 (en) * 2000-03-31 2005-05-24 Nvidia Corporation Method and apparatus for providing overlay images
JP2001282218A (ja) * 2000-03-31 2001-10-12 Pioneer Electronic Corp 画像処理装置
US7538772B1 (en) * 2000-08-23 2009-05-26 Nintendo Co., Ltd. Graphics processing system with enhanced memory controller
US6937245B1 (en) * 2000-08-23 2005-08-30 Nintendo Co., Ltd. Graphics system with embedded frame buffer having reconfigurable pixel formats
JP4683760B2 (ja) * 2000-08-23 2011-05-18 任天堂株式会社 再構成可能なピクセルフォーマットを有する組み込みフレームバッファを有するグラフィックスシステム
US7196710B1 (en) * 2000-08-23 2007-03-27 Nintendo Co., Ltd. Method and apparatus for buffering graphics data in a graphics system
US6636214B1 (en) 2000-08-23 2003-10-21 Nintendo Co., Ltd. Method and apparatus for dynamically reconfiguring the order of hidden surface processing based on rendering mode
US6700586B1 (en) 2000-08-23 2004-03-02 Nintendo Co., Ltd. Low cost graphics with stitching processing hardware support for skeletal animation
US6707458B1 (en) 2000-08-23 2004-03-16 Nintendo Co., Ltd. Method and apparatus for texture tiling in a graphics system
EP1182617A3 (de) * 2000-08-23 2004-01-02 Nintendo Co., Limited Graphisches System mit eingebettetem rekonfigurierbarem Rasterpuffer und mit Daten-Convertierung während Kopieroperationen von dem eingebettetem Rasterpuffer zu dem Hauptspeicher
US6811489B1 (en) 2000-08-23 2004-11-02 Nintendo Co., Ltd. Controller interface for a graphics system
US7576748B2 (en) * 2000-11-28 2009-08-18 Nintendo Co. Ltd. Graphics system with embedded frame butter having reconfigurable pixel formats
US6980218B1 (en) * 2000-08-23 2005-12-27 Nintendo Co., Ltd. Method and apparatus for efficient generation of texture coordinate displacements for implementing emboss-style bump mapping in a graphics rendering system
FR2820925A1 (fr) * 2001-02-13 2002-08-16 Koninkl Philips Electronics Nv Systeme de traitement de motifs graphiques
IL159232A0 (en) * 2001-06-07 2004-06-01 Genoa Technologies Ltd Device, system and method for displaying graphics in mixed formats on a monitor
EP1288891A1 (de) 2001-08-27 2003-03-05 Hewlett-Packard Company Verfahren und Einrichtung zur Datenanzeige in einem spezifischen Anzeigebereich in einem Computer oder Interaktiven Endgerät unter Kontrolle einer LAN-Karte und unabhängig vom Betriebssystem
US20030189581A1 (en) * 2002-04-08 2003-10-09 Nasoff David G. Content based window filtering for simultaneous display of multiple high-quality video and graphics windows
JP2004070148A (ja) * 2002-08-08 2004-03-04 Oki Electric Ind Co Ltd 液晶表示制御装置
US20040160384A1 (en) * 2003-02-18 2004-08-19 Eric Jeffrey Hardware method for arranging dual-STN display data in a single memory bank to eliminate a half frame buffer
US7681112B1 (en) 2003-05-30 2010-03-16 Adobe Systems Incorporated Embedded reuse meta information
US7852405B1 (en) * 2003-06-27 2010-12-14 Zoran Corporation Method and apparatus for high definition capture
KR100807601B1 (ko) 2003-06-30 2008-03-03 엔이씨 일렉트로닉스 가부시키가이샤 평판 디스플레이용 메모리 제어기 및 데이터 드라이버
US20050030319A1 (en) * 2003-08-06 2005-02-10 Rai Barinder Singh Method and apparatus for reducing the transmission requirements of a system for transmitting image data to a display device
JP4046078B2 (ja) * 2003-12-10 2008-02-13 ソニー株式会社 入力装置及び入力方法、並びに電子機器
US7102645B2 (en) * 2003-12-15 2006-09-05 Seiko Epson Corporation Graphics display controller providing enhanced read/write efficiency for interfacing with a RAM-integrated graphics display device
US7221407B2 (en) * 2004-01-06 2007-05-22 Sharp Laboratories Of America, Inc. Television having a java engine and a removable device port
US7746357B2 (en) * 2004-01-06 2010-06-29 Sharp Laboratories Of America, Inc. Dual-plane graphics
US8704837B2 (en) * 2004-04-16 2014-04-22 Apple Inc. High-level program interface for graphics operations
US7248265B2 (en) 2004-04-16 2007-07-24 Apple Inc. System and method for processing graphics operations with graphics processing unit
US7847800B2 (en) * 2004-04-16 2010-12-07 Apple Inc. System for emulating graphics operations
US7231632B2 (en) * 2004-04-16 2007-06-12 Apple Computer, Inc. System for reducing the number of programs necessary to render an image
US8134561B2 (en) 2004-04-16 2012-03-13 Apple Inc. System for optimizing graphics operations
US8130237B2 (en) * 2004-06-24 2012-03-06 Apple Inc. Resolution independent user interface design
US8068103B2 (en) * 2004-06-24 2011-11-29 Apple Inc. User-interface design
US7490295B2 (en) 2004-06-25 2009-02-10 Apple Inc. Layer for accessing user interface elements
US7761800B2 (en) * 2004-06-25 2010-07-20 Apple Inc. Unified interest layer for user interface
US8239749B2 (en) 2004-06-25 2012-08-07 Apple Inc. Procedurally expressing graphic objects for web pages
US7652678B2 (en) * 2004-06-25 2010-01-26 Apple Inc. Partial display updates in a windowing system using a programmable graphics processing unit
US20050285866A1 (en) * 2004-06-25 2005-12-29 Apple Computer, Inc. Display-wide visual effects for a windowing system using a programmable graphics processing unit
US8453065B2 (en) * 2004-06-25 2013-05-28 Apple Inc. Preview and installation of user interface elements in a display environment
US8566732B2 (en) * 2004-06-25 2013-10-22 Apple Inc. Synchronization of widgets and dashboards
US8302020B2 (en) * 2004-06-25 2012-10-30 Apple Inc. Widget authoring and editing environment
US7546543B2 (en) 2004-06-25 2009-06-09 Apple Inc. Widget authoring and editing environment
US20060044328A1 (en) * 2004-08-26 2006-03-02 Rai Barinder S Overlay control circuit and method
US8140975B2 (en) 2005-01-07 2012-03-20 Apple Inc. Slide show navigation
US8773328B2 (en) * 2005-02-12 2014-07-08 Broadcom Corporation Intelligent DMA in a mobile multimedia processor supporting multiple display formats
CN101147120A (zh) * 2005-03-22 2008-03-19 诺基亚公司 用于共有内容可视化的多处理器实施的处理设备、系统以及方法
US8543931B2 (en) 2005-06-07 2013-09-24 Apple Inc. Preview including theme based installation of user interface elements in a display environment
TWI285837B (en) * 2005-09-21 2007-08-21 Quanta Comp Inc Display controller capable of reducing cache memory and frame adjusting method thereof
US20070080971A1 (en) * 2005-10-06 2007-04-12 Sung Chih-Ta S Method and apparatus of image buffer compression for display device
JP4845475B2 (ja) 2005-10-20 2011-12-28 富士通セミコンダクター株式会社 画像表示装置およびその制御方法
US7752556B2 (en) * 2005-10-27 2010-07-06 Apple Inc. Workflow widgets
US7954064B2 (en) * 2005-10-27 2011-05-31 Apple Inc. Multiple dashboards
US20070101279A1 (en) * 2005-10-27 2007-05-03 Chaudhri Imran A Selection of user interface elements for unified display in a display environment
US8543824B2 (en) * 2005-10-27 2013-09-24 Apple Inc. Safe distribution and use of content
US7743336B2 (en) * 2005-10-27 2010-06-22 Apple Inc. Widget security
US9104294B2 (en) * 2005-10-27 2015-08-11 Apple Inc. Linked widgets
US7707514B2 (en) 2005-11-18 2010-04-27 Apple Inc. Management of user interface elements in a display environment
US7492371B2 (en) * 2005-12-02 2009-02-17 Seiko Epson Corporation Hardware animation of a bouncing image
US20070162850A1 (en) * 2006-01-06 2007-07-12 Darin Adler Sports-related widgets
US8155682B2 (en) * 2006-05-05 2012-04-10 Research In Motion Limited Handheld electronic device including automatic mobile phone number management, and associated method
US8869027B2 (en) * 2006-08-04 2014-10-21 Apple Inc. Management and generation of dashboards
EP2082393B1 (de) * 2006-10-13 2015-08-26 Freescale Semiconductor, Inc. Bildverarbeitungsvorrichtung zum überlagern von fenstern, die videodaten mit verschiedenen bildfrequenzen anzeigen
US20080168367A1 (en) * 2007-01-07 2008-07-10 Chaudhri Imran A Dashboards, Widgets and Devices
TWI397899B (zh) * 2007-04-30 2013-06-01 Mstar Semiconductor Inc 多視窗顯示控制器及相關方法
US20090005071A1 (en) * 2007-06-28 2009-01-01 Apple Inc. Event Triggered Content Presentation
US8954871B2 (en) * 2007-07-18 2015-02-10 Apple Inc. User-centric widgets and dashboards
US20090021486A1 (en) * 2007-07-19 2009-01-22 Apple Inc. Dashboard Surfaces
US8667415B2 (en) * 2007-08-06 2014-03-04 Apple Inc. Web widgets
US8156467B2 (en) * 2007-08-27 2012-04-10 Adobe Systems Incorporated Reusing components in a running application
US8176466B2 (en) 2007-10-01 2012-05-08 Adobe Systems Incorporated System and method for generating an application fragment
US9619304B2 (en) 2008-02-05 2017-04-11 Adobe Systems Incorporated Automatic connections between application components
US8656293B1 (en) 2008-07-29 2014-02-18 Adobe Systems Incorporated Configuring mobile devices
US8698823B2 (en) * 2009-04-08 2014-04-15 Nvidia Corporation System and method for deadlock-free pipelining
US8356071B2 (en) * 2010-05-14 2013-01-15 Mitel Networks Corporation Presentational system and method for IP telephones and other devices
US9256316B2 (en) * 2013-05-04 2016-02-09 Nvidia Corporation Power gating a display of a data processing device during cloning thereof across an external display while retaining touch-sensibility thereof
JP6843581B2 (ja) * 2016-10-24 2021-03-17 キヤノン株式会社 画像形成装置、その制御方法及びプログラム
WO2021020239A1 (ja) * 2019-08-01 2021-02-04 株式会社ソニー・インタラクティブエンタテインメント 表示制御装置、表示制御方法及びプログラム
US11662798B2 (en) * 2021-07-30 2023-05-30 Advanced Micro Devices, Inc. Technique for extended idle duration for display to improve power consumption

Family Cites Families (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4009470A (en) * 1975-02-18 1977-02-22 Sperry Rand Corporation Pre-emptive, rotational priority system
US4317114A (en) * 1980-05-12 1982-02-23 Cromemco Inc. Composite display device for combining image data and method
GB2130855B (en) * 1982-11-03 1986-06-04 Ferranti Plc Information display system
JPS6061794A (ja) * 1983-09-14 1985-04-09 シャープ株式会社 画面分割表示装置
JPS61213896A (ja) * 1985-03-19 1986-09-22 株式会社 アスキ− デイスプレイコントロ−ラ
JPH0736104B2 (ja) * 1985-03-27 1995-04-19 株式会社アスキ− デイスプレイコントロ−ラ
JP2557828B2 (ja) * 1985-09-11 1996-11-27 株式会社東芝 画像処理システム
JPS62276673A (ja) * 1986-05-26 1987-12-01 Toshiba Corp マルチウインドウ表示装置
FR2610160B1 (fr) * 1987-01-27 1989-03-24 Radiotechnique Compelec Dispositif synthetiseur d'images
US4933877A (en) * 1987-03-30 1990-06-12 Kabushiki Kaisha Toshiba Bit map image processing apparatus having hardware window function
EP0295689B1 (de) * 1987-06-19 1995-03-29 Kabushiki Kaisha Toshiba Anzeigesteuergerät für eine Kathodenstrahlröhre-/Plasmaanzeigeeinheit
JPS6410322A (en) * 1987-07-03 1989-01-13 Sharp Kk Display device for picture information
JPS6459426A (en) * 1987-08-31 1989-03-07 Toshiba Corp Bit map display device
US4907086A (en) * 1987-09-04 1990-03-06 Texas Instruments Incorporated Method and apparatus for overlaying a displayable image with a second image
JPH01248185A (ja) * 1988-03-30 1989-10-03 Toshiba Corp ディスプレィコントローラ
US4954970A (en) * 1988-04-08 1990-09-04 Walker James T Video overlay image processing apparatus
US5216413A (en) * 1988-06-13 1993-06-01 Digital Equipment Corporation Apparatus and method for specifying windows with priority ordered rectangles in a computer video graphics system
US5001469A (en) * 1988-06-29 1991-03-19 Digital Equipment Corporation Window-dependent buffer selection
US5293485A (en) * 1988-09-13 1994-03-08 Kabushiki Kaisha Toshiba Display control apparatus for converting color/monochromatic CRT gradation into flat panel display gradation
US5222212A (en) * 1988-09-16 1993-06-22 Chips And Technologies, Inc. Fakeout method and circuitry for displays
US5043923A (en) * 1988-10-07 1991-08-27 Sun Microsystems, Inc. Apparatus for rapidly switching between frames to be presented on a computer output display
US5150109A (en) * 1989-02-13 1992-09-22 Touchstone Computers, Inc. VGA controller card
US5293474A (en) * 1989-04-10 1994-03-08 Cirrus Logic, Inc. System for raster imaging with automatic centering and image compression
US5091717A (en) * 1989-05-01 1992-02-25 Sun Microsystems, Inc. Apparatus for selecting mode of output in a computer system
JPH07105914B2 (ja) * 1990-05-23 1995-11-13 三菱電機株式会社 画像出力制御装置
US5327156A (en) * 1990-11-09 1994-07-05 Fuji Photo Film Co., Ltd. Apparatus for processing signals representative of a computer graphics image and a real image including storing processed signals back into internal memory
DE69126962D1 (de) * 1991-05-16 1997-09-04 Ibm Speicheranordnung
US5406306A (en) * 1993-02-05 1995-04-11 Brooktree Corporation System for, and method of displaying information from a graphics memory and a video memory on a display monitor
US5463422A (en) * 1993-10-13 1995-10-31 Auravision Corporation Data processing technique for limiting the bandwidth of data to be stored in a buffer
EP0675478B1 (de) * 1994-03-16 2000-09-13 Brooktree Corporation Multimedia graphische Systeme mit andauernd hoher Taktrate
US5598525A (en) * 1995-01-23 1997-01-28 Cirrus Logic, Inc. Apparatus, systems and methods for controlling graphics and video data in multimedia data processing and display systems
US5767866A (en) * 1995-06-07 1998-06-16 Seiko Epson Corporation Computer system with efficient DRAM access

Also Published As

Publication number Publication date
CN1173670A (zh) 1998-02-18
DE69735975D1 (de) 2006-07-06
JPH1049125A (ja) 1998-02-20
US5877741A (en) 1999-03-02
EP0802519A1 (de) 1997-10-22
KR970071254A (ko) 1997-11-07
EP0802519B1 (de) 2006-05-31
CN1126039C (zh) 2003-10-29

Similar Documents

Publication Publication Date Title
DE69735975T2 (de) System und Verfahren zur Überlagerung von wahlweise in unterschiedlichen nativen Formaten gespeicherten Bildern
EP0834111B1 (de) Rechnersystem mit zwei anzeigeeinheiten , die gleichzeitig verschiedene anzeigebilder darstellen
DE10196846B4 (de) Verfahren und System zur Eingabe von Daten
DE69635403T2 (de) Grafikbibliothek auf geteilten Ebenen
DE69534331T2 (de) Verfahren und Vorrichtung zur Hervorhebung der Einzelheit einer Baumstruktur
DE19807028C2 (de) Synchronisation für das Rahmenpufferaustauschen in Multipipeline-Computergraphikanzeigesystemen
DE60126967T2 (de) Verfahren und Vorrichtung für Anti-Aliasing durch Überabtastung
DE102006022062A1 (de) Verfahren und Vorrichtung zur effizienten Bilddrehung
DE10005812B4 (de) Vom Benutzer ausgewählte Anzeige von zweidimensionalem Fenster in drei Dimensionen auf einem Rechnerbildschirm
DE69633477T2 (de) Bildspeicher für graphische Daten
DE3346816A1 (de) Sichtanzeigeanordnung fuer verschiedenartige zeicheninformationen
DE60105510T2 (de) Bilderzeugungsgerät
DE60015213T2 (de) Paralelle Wiedergabevorrichtung
DE10159357A1 (de) Vorrichtung zum Ausführen einer transparenten Verarbeitung von Stand- und Bewegtbildern und Verfahren zur Durchführung
US4375079A (en) Digital data display system
DE112004002817T5 (de) Bildverarbeitungsvorrichtung und Graphikspeichereinheit
DE69534890T2 (de) Verfahren zum schnellen Ausmalen und Kopieren von Bildelementen kurzer Wortlänge in einem breiteren Rasterpufferspeicher
EP0468973B2 (de) Monitorsteuerschaltung
DE112014002912T5 (de) Anzeigevorrichtung
DE3516416A1 (de) Schaltungsanordnung zur erzeugung graphischer darstellungen auf einer anzeigeeinrichtung
EP0695451B1 (de) Verfahren zum scrollen von mehreren rasterzeilen in einem fenster eines im grafikmodus betriebenen bildschirms eines personalcomputers
DE69914814T2 (de) Bildverarbeitungsgerät
EP0026269A1 (de) Anzeigesystem für digitale Farbdaten
DE3810232C2 (de)
DE4015430C2 (de) Verfahren zur unabhängigen Steuerung des Kontrastes und/oder der Helligkeit einer Vielzahl von Bildern und Schaltungsanordnung zur Durchführung dieses Verfahrens

Legal Events

Date Code Title Description
8364 No opposition during term of opposition