DE69918022T2 - Keine blockierung erforderndes textur-cache-system - Google Patents

Keine blockierung erforderndes textur-cache-system Download PDF

Info

Publication number
DE69918022T2
DE69918022T2 DE69918022T DE69918022T DE69918022T2 DE 69918022 T2 DE69918022 T2 DE 69918022T2 DE 69918022 T DE69918022 T DE 69918022T DE 69918022 T DE69918022 T DE 69918022T DE 69918022 T2 DE69918022 T2 DE 69918022T2
Authority
DE
Germany
Prior art keywords
module
texel
cache
cache module
memory
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
DE69918022T
Other languages
English (en)
Other versions
DE69918022D1 (de
Inventor
Dong-Ying Kuo
Zhou Hong
Randy Zhao
Roger Niu
Poornachandra Rao
Lin Chen
Jeremy Alves
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.)
S3 Graphics Co Ltd
Original Assignee
S3 Graphics Co Ltd
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 S3 Graphics Co Ltd filed Critical S3 Graphics Co Ltd
Application granted granted Critical
Publication of DE69918022D1 publication Critical patent/DE69918022D1/de
Publication of DE69918022T2 publication Critical patent/DE69918022T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0875Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with dedicated cache, e.g. instruction or stack
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0864Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using pseudo-associative means, e.g. set-associative or hashing

Description

  • HINTERGRUND DER ERFINDUNG
  • Gebiet der Erfindung
  • Diese Erfindung betrifft im Allgemeinen das Gebiet von Computergraphiksystemen und insbesondere die Erzeugung und Verarbeitung von Texturen in rechnergestützten graphischen Bildern.
  • Beschreibung des Standes der Technik
  • Um Realismus in einem dreidimensionalen computererzeugten graphischen Bild auf Pixelbasis zu erzielen, muss eine realistische Oberflächenschattierung zum graphischen Bild hinzugefügt werden, um Oberflächenmerkmale der realen Welt wie z.B. Oberflächentextur zu simulieren. Eine herkömmliche Art und Weise zum Erzeugen solcher Oberflächeneigenschaften ist die Texturabbildung.
  • Die Texturabbildung ist ein relativ effizientes Verfahren zum Erzeugen des Aussehens eines komplexen Bildes ohne die Langwierigkeit und den übermäßigen Rechenaufwand, wenn man direkt dreidimensionale Details auf der Oberfläche eines dreidimensionalen graphischen Bildes wiedergeben muss. Insbesondere wird ein Quellen- (Textur-) Bild, das aus einzelnen Elementen (Texeln) besteht, durch Pixelzusammensetzung auf das dreidimensionale graphische Bild abgebildet. Um beispielsweise ein graphisches Bild eines Eichentisches zu erzeugen, wird zuerst die Struktur des Stuhls erzeugt. Zweitens wird ein Texturbild von Eichenholz über der Strukturoberfläche des Stuhls abgebildet. Um dieses Eichentexturbild korrekt in den Stuhl zu integrieren, wird eine vordefinierte Anzahl von Texeln interpoliert, um jedes Pixel der Oberfläche des Stuhls zu erzeugen.
  • Wie auf dem Fachgebiet gut bekannt ist, sind zwei der üblicheren Texturabbildungsverfahren zum effektiven Interpolieren von Pixeln von einem Texturbild bilineare Filterung und trilineare Filterung. Bei der bilinearen Filterung werden vier Texel verwendet, um jedes Pixel des graphischen Bildes zu interpolieren. Bei der trilinearen Filterung werden acht Texel verwendet, um jedes Pixel des graphischen Bildes zu interpolieren.
  • Um potentiell überwältigende Bandbreitenanforderungen zu vermeiden, die der Verwendung dieser Texturabbildungsverfahren zuzuschreiben sind, wird häufig eine Mip- (multum in parvo) Abbildung verwendet, um das Texturbild in Texturabbildungen mit verschiedenen "d" Auflösungsniveaus zu komprimieren. Während der Abtastumwandlungsphase der Rasterisierungsphase wird jede dieser Mip-Abbildungen der Texturabbildung mit einem spezifischen "d"-Detailniveau vorberechnet und wird separat gespeichert. In Abhängigkeit vom Detailniveau des graphischen Bildes auf Pixelbasis wird ein spezifisches "d"-Niveau der Texturabbildung für die Texturfilterung abgerufen. Wenn das graphische Bild beispielsweise als kleineres Bild im Hintergrund einer vom Computer erzeugten graphischen Szene angezeigt wird, ist das Detailniveau niedrig, wodurch ermöglicht wird, dass eine Texturabbildung mit niedrigerer Auflösung (z.B. d = 4) verwendet wird. Wenn weniger Texel für die Texturfilterung erforderlich sind, führt die Texturabbildung mit niedrigerer Auflösung zu niedrigeren Systembandbreitenanforderungen. Wenn das graphische Bild alternativ als Bild mit voller Größe im Vordergrund einer graphischen Szene angezeigt wird, wird eine Texturabbildungsoberfläche mit höherer Auflösung (z.B. d = 0) verwendet, wodurch die gesamten Systembandbreitenanforderungen erhöht werden.
  • Wie in "Hardware Accelerated Rendering of Anti-aliasing Using a Modified A-Buffer Algorithm", Computer Graphics, 307–316 (Siggraph '97 Proceedings), erörtert, sind leider in einer Echtzeitumgebung, in der mehrere zig Millionen Pixel jede Sekunde durch diese komplexen Texturabbildungsverfahren erzeugt werden müssen, hohe Rechenanforderungen und ungeheure Bandbreiten für ein Texturabbildungssystem unvermeidbar. Wenn beispielsweise ein Hauptziel des Texturabbildungssystems das Erzielen einer mittleren Pixelzusammensetzungsrate von einem Pixel pro Taktzyklus ist, muss ohne Verwendung einer Cachespeicherung ein Speicherblock (z.B. vier 32-Bit-Texel in einer 2x2-Matrixkonfiguration) jeden Taktzyklus abgerufen werden. Auf der Basis einer Taktfrequenz von ungefähr 100 MHz sind die entsprechenden Bandbreitenanforderungen zum Erzielen einer solchen idealen Datenübertragungsrate ungefähr 1600 MBytes pro Sekunde (MBps).
  • Aufgrund der immer mehr zunehmenden Benutzererwartungen an Realismus in computererzeugten Graphiken sowie des Bedarfs für wirtschaftliche Texturabbildungssysteme ist das Erzielen solcher idealen Datenübertragungsraten mit einem wirtschaftlichen Preis häufig unerreichbar. Es stehen beispielsweise kommerziell erhältliche Systeme zur Verfügung, die ein Texturabbildungssystem zusammen mit einer parallelen DRAM-Speichermodul-Untersystemkonstruktion integrieren. Selbst wenn solche Systeme hohe Datenübertragungsraten bieten, sind sie aufgrund des hohen Preises solcher Konstruktionen für den durchschnittlichen Verbraucher wirtschaftlich unpraktisch.
  • Eine weniger aufwändige Implementierung der Texturabbildungssystem-Konstruktion ist die Integration des Texturabbildungssystems in eine Graphikbeschleunigerkarte, die über eine Schnittstelle eines erweiterten Graphikanschlusses/einer peripheren Komponentenverbindung (AGP/PCI) mit einem relativ kostengünstigen Unversal-Personalcomputer koppelt. Dieser Implementierung stehen jedoch mindestens zwei signifikante Leistungsbegrenzungen gegenüber.
  • Da die AGP/PCI-Schnittstelle nur eine Bandbreite von ungefähr 512 MBps aufweist, ist erstens die Fähigkeit des Texturabbildungssystems, Datenraten von 1600 MBps zu erzielen, stark eingeschränkt. Insbesondere führt ein solcher Bandbreitenengpass zu einer relativ signifikanten Wartezeit zwischen dem System, das eine Vielzahl von Texeln (Speicherblock) vom Speichermodul anfordert, und dem System, das den angeforderten Speicherblock zurückempfängt. Durch Ausgeben dieser Speicherblockanforderungen in der Reihenfolge, in der die Pixelidentifikatoren durch das Abtastmodul erzeugt werden, muss das Texturabbildungssystem zweitens häufig DRAM-Seiten innerhalb des Speichermoduls seitenweise wechseln, um die erforderlichen Speicherblöcke zu erhalten, wodurch zusätzliche Wartezeit in das gesamte Texturabbildungssystem eingeführt wird.
  • Um solche Leistungsprobleme anzugehen, verwenden kostengünstige Texturabbildungssysteme ein Cachemodul, das sich intern innerhalb des Systems befindet, um zu versuchen, die Begrenzungen der AGP/PCI zu minimieren. Durch Abrufen von Speicherblöcken, bevor irgendwelche der im Speicherblock enthaltenen Texel benötigt werden, wird die Wartezeit, die dem Abrufen dieser Texel über die AGP/PCI-Schnittstelle zuzuschreiben ist, verringert.
  • Die Leistungsvorteile dieser lokalen Cachekonstruktion hängen jedoch von der Erfolgs- ("Treffer"-) Rate der Speicherung der erforderlichen Speicherblöcke innerhalb des Cachemoduls ab. Wenn beispielsweise bestimmte Formen (wie z.B. lange, schmale Dreiecke) als Texturgrundelemente wiedergegeben werden, können Probleme eines schlechten Speicherorts auftreten. Aufgrund von Kosteneinschränkungen, die erfordern, dass das Cachemodul eine begrenzte Speichergröße aufweist, wird der innerhalb des Cachemoduls gespeicherte Speicherblock, der dem Beginn der Abtastumwandlung zugeordnet ist, nicht mehr lokal innerhalb des Cachemoduls gespeichert, bis das Ende einer Abtastumwandlungsspanne erreicht ist. Diese Situation führt nicht nur zu einer Steigerung der Fehler- (Misserfolgs-) Rate beim Auffinden eines speziellen Speicherblocks innerhalb des Cachemoduls, sondern auch zu einer Steigerung des Bedarfs, Speicherblöcke übermäßig in das und aus dem Cachemodul auszulagern. Um dieses Ortsproblem zu minimieren, erfordern Texturabbildungssysteme eine genaue Synchronisation zwischen dem Speichermodul und dem Cachemodul, ohne die Kosten des Systems drastisch zu erhöhen.
  • EP 0 747 858 A2 offenbart die teilweise Speicherung von MIP-Abbildungen und einer entsprechenden Textur auf einer Texturabbildungskarte, während der vollständige Satz von MIP-Abbildungen in einem Hauptspeicher eines Hauptrechners gespeichert wird. Im Cachespeicher der Texturabbildungskarte werden Grundelemente, die von MIP-Abbildungen wiedergegeben werden, gespeichert. Texel stehen im Cachespeicher der Karte zur Verfügung, während im Hauptspeicher nur MIP-Abbildungen gespeichert sind.
  • Was erforderlich ist, ist ein Cachesystem und -verfahren, das die Probleme der Übertragung von so vielen Texelanforderungen so früh wie möglich effektiv angehen kann.
  • Die Erfindung ist in den Ansprüchen 1 bzw. 7 definiert. Spezielle Ausführungsbeispiele sind in den abhängigen Ansprüchen dargelegt.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Gemäß dem System und Verfahren der vorliegenden Erfindung wird ein beschleunigtes Cachesystem bereitgestellt, um die Operationsgleichzeitigkeit zwischen einem Cachemodul und einem Speichermodul zu steigern. Anspruch 6 stellt eine effiziente Synchronisation eines FIFO-Schemas bereit. Das Cachespeichersystem kann ein Abtastmodul, ein Speichermodul, ein Texturcachemodul, ein Texturfiltermodul und eine Pixelverarbeitungseinheit umfassen. Das System und das Verfahren synchronisieren die Verarbeitung von Texelanforderungen und der entsprechenden Texel und vermeiden Bandbreitenbegrenzungen in einer kosteneffizienten Weise.
  • Das Abtastmodul erzeugt Pixelidentifikatoren entsprechend sowohl speziellen Pixeln in einem dreidimensionalen graphischen Bild als auch Speicherblöcken von Texeln innerhalb des Speichermoduls. Das Texturcachemodul zerlegt jeden dieser Pixelidentifikatoren in seine entsprechenden Speicherblock- (MB) Identifikator- und Texelidentifikator-Unterkomponenten. Auf der Basis eines FIFO-Schemas verwendet das Texturcachemodul jeden MB-Identifikator, um festzustellen, ob ein dem MB-Identifikator entsprechender Speicherblock bereits lokal innerhalb des Cachemoduls gespeichert wurde. Wenn der Speicherblock bereits lokal cachegespeichert ist, synchronisiert das Texturcachemodul die Übertragung der Texel innerhalb des Speicherblocks zum Texturfiltermodul. Wenn der Speicherblock noch nicht lokal innerhalb des Texturcachemoduls cachegespeichert ist, ruft das Texturcachemodul den erforderlichen Speicherblock aus dem Speichermodul ab und speichert den Speicherblock an einer speziellen Stelle innerhalb des Texturcachemoduls. Wenn diese Texel zur Pixelzusammensetzung erforderlich sind, überträgt das Texturcachemodul die Texel zum Texturfiltermodul.
  • Dieses System und Verfahren stellen sicher, dass ein kosteneffizientes FIFO-Cachespeicherschema mit hoher Leistung erzielt wird, indem die Operationsgleichzeitigkeit zwischen dem Cachemodul und dem Speichermodul durch eine effiziente Synchronisation gesteigert wird.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • 1 ist eine Darstellung hoher Ebene eines bevorzugten Ausführungsbeispiels des Texturabbildungssystems des bevorzugten Ausführungsbeispiels der vorliegenden Erfindung.
  • 2 ist eine detaillierte Darstellung des Texturcachemoduls des bevorzugten Ausführungsbeispiels.
  • 3 ist eine detaillierte Darstellung des Adressenmoduls des bevorzugten Ausführungsbeispiels.
  • 4 ist eine Darstellung des Steuermoduls des bevorzugten Ausführungsbeispiels.
  • 5 ist eine Darstellung der Umsetzung des Speicherblock-Speicherschemas in das Cacheblock-Speicherschema im bevorzugten Ausführungsbeispiel.
  • AUSFÜHRLICHE BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSBEISPIELE
  • Ein bevorzugtes Ausführungsbeispiel der vorliegenden Erfindung wird nun mit Bezug auf die Figuren beschrieben, in denen gleiche Bezugsziffern identische oder funktional ähnliche Elemente kennzeichnen und die am weitesten links liegende Ziffer jeder Bezugsziffer der Figur entspricht, in der die Bezugsziffer zum ersten Mal verwendet wird.
  • 1 ist ein Überblick über das System des bevorzugten Ausführungsbeispiels der vorliegenden Erfindung zum Verbessern der Leistung der Cachespeicherung von Texeln zur Pixelzusammensetzung. Das System 100 umfasst ein Speichermodul 140, ein Abtastmodul 160, ein Texturcachemodul (TCM) 130, ein Texturfiltermodul (TFM) 180 und eine Pixelverarbeitungseinheit (PPU) 190. In diesem Ausführungsbeispiel besteht das Speichermodul 140 aus einem dynamischen Direktzugriffsspeicher (DRAM), der jede 4x4-Matrix von Texeln in einem einer Vielzahl von Speicherblöcken speichert.
  • Das Abtastmodul 160, das mit dem TCM 130 gekoppelt ist, überträgt eine Vielzahl von Pixelidentifikatoren 510 (in 5 gezeigt) zum TCM 130. Das TCM 130 verwendet jeden dieser Pixelidentifikatoren 510, um sicherzustellen, dass ein dem Pixelidentifikator 510 entsprechender Speicherblock aus dem Speichermodul 140 abgerufen und lokal innerhalb des TCM 130 cachegespeichert wurde. Sobald die Speicherblöcke lokal cachegespeichert sind, wird jedes Texel innerhalb des dem Pixelidentifikator 510 entsprechenden Speicherblocks zum TFM 180 übertragen. Das TFM 180 filtert die empfangenen Texel in resultierende Texel, die dann zur Pixelzusammensetzung zur PPU 190 übertragen werden.
  • 2 ist eine detailliertere Darstellung des TCM 130 des bevorzugten Ausführungsbeispiels der vorliegenden Erfindung. Das TCM 130 umfasst ein Cachemodul 220, einen Datenformatierer 255, einen Abrufpuffer 260, einen Anforderungspuffer 250, ein Adressenmodul 210, ein Puffermodul 240 und ein Steuermodul 290.
  • Das Cachemodul 220, das in diesem Ausführungsbeispiel aus einem SRAM mit einem 4-Weg-4-Satz-Zusammenhang besteht, speichert lokal eine Teilmenge der innerhalb des Speichermoduls 140 gespeicherten Speicherblöcke. Wie in 5 dargestellt ist, führt ein solcher Zusammenhang dazu, dass das Cachemodul 220 organisatorisch in vier Wege (z.B. Wege 0–3) unterteilt wird, wobei jeder Weg vier Quadranten (Sätze) aufweist. Jeder Satz mit einer eindeutigen Cacheblockadresse (z.B. einer Zahl zwischen 0 und 15) stellt eine 4x4-Matrix von Texeln (Cacheblock) dar.
  • Das Adressenmodul 210, das mit dem Abtastmodul 160 und dem Cachemodul 220 gekoppelt ist, empfängt vom Abtastmodul 160 einen Pixelidentifikator 510 (u.uf, v.vf, d.df), der einen ganzzahligen Teil (u., v., d.) und einen Bruchteil (_.uf, _.vf, _.df) umfasst, für jedes abgetastete Pixel. Aus dem ganzzahligen Teil jedes Pixelidentifikators 510 erzeugt das Adressenmodul 210 einen Speicherblock- (MB) Identifikator und einen Texelidentifikator 520. Das Adressenmodul 210 verwendet den MB-Identifikator 530, um einen Speicherblock innerhalb des Speichermoduls 140 zu identifizieren. Das Adressenmodul 210 verwendet den Texelidentifikator 520, um ein spezielles Texel innerhalb dieses Speicherblocks aufzufinden. Das Adressenmodul 210 stützt sich auf den Bruchteil des Pixelidentifikators 510 als Interpolationsfaktor zum linearen Interpolieren der dem Texelidentifikator 520 entsprechenden Texel zur Pixelzusammensetzung.
  • 5 stellt in Verbindung mit 2 die Verwendung jedes dieser Identifikatoren im bevorzugten Ausführungsbeispiel besser dar. Für die bilineare Filterung erzeugt das Abtastmodul 160 vier Pixelidentifikatoren 510 mit 11 Bits [10:0] für jedes Pixel des dreidimensionalen graphischen Bildes. Das Adressenmodul 210 zerlegt jeden ganzzahligen Teil des Pixelidentifikators 510 in einen MB-Identifikator 530 mit 9 Bits und einen Texelidentifikator 520 mit 2 Bits. Der MB-Identifikator 530, der einen 4x4-Texelspeicherblock innerhalb des Speichermoduls 140 darstellt, besteht aus den höchsten 8 Bits [10:2] des ganzzahligen Teils. Der Texelidentifikator 520, der eine orthogonale Koordinate für ein Texel innerhalb dieses Speicherblocks darstellt, besteht aus den niedrigeren 2 Bits [1:0] des ganzzahligen Teils.
  • Das Adressenmodul 210 verwendet den MB-Identifikator 530, um festzustellen, ob der dem MB-Identifikator 530 entsprechende Speicherblock bereits lokal innerhalb eines Cacheblocks des Cachemoduls 220 gespeichert wurde. wenn das Adressenmodul 210 feststellt, dass der Speicherblock bereits lokal an einer speziellen Cacheblockadresse cachegespeichert ist (Treffer), erzeugt und überträgt das Adressenmodul 210 ein Übertragungskennzeichensignal zum Puffermodul 240. Das Übertragungskennzeichensignal umfasst die Cacheblockadresse, den Texelidentifikator 520, die Interpolationsfaktoren und eine Treffermarkierung. Das TCM 130 stützt sich auf die Treffermarkierung, um Übertragungskennzeichensignale entsprechend Speicherblöcken zu identifizieren, die bereits lokal innerhalb des Cachemoduls 220 cachegespeichert sind.
  • Wenn der Speicherblock noch nicht lokal cachegespeichert ist (Misserfolg), leitet das Adressenmodul 210 eine Anforderung zum Abrufen des Speicherblocks aus dem Speichermodul 140 durch Übertragen eines Abrufsignals zum Anforderungspuffer 250 ein, der als FIFO-Warteschlange arbeitet. In diesem Ausführungsbeispiel kann der Anforderungspuffer 250 bis zu 4 Abrufsignale gleichzeitig empfangen. Das Abrufsignal umfasst den MB-Identifikator 530 und eine lineare Speichermoduladresse. Da das Abrufsignal nicht schneller zum Speichermodul 140 übertragen werden kann als es die AGP/PCI-Schnittstelle (nicht dargestellt) erlaubt, überträgt der Anforderungspuffer 250 kontinuierlich die Abrufsignale zum Speichermodul 140 in der Reihenfolge, in der die entsprechenden Pixelidentifikatoren 510 vom Adressenmodul 210 empfangen wurden. Die RGP/PCI-Schnittstelle begrenzt jedoch die Übertragungsrate des Anforderungspuffers 250 auf eine ungefähre maximale Rate von 512 MBps.
  • Das Speichermodul 140 reagiert auf den Empfang der Abrufsignale durch Übertragen des Speicherblocks, der dem MB-Identifikator 530 entspricht, zurück zum TCM 130. Aufgrund von Kosteneinschränkungen, die die Speicherkapazität des Cachemoduls 220 auf eine endliche Größe begrenzen, können jedoch nicht alle aus dem Speichermodul 140 abgerufenen Speicherblöcke sofort innerhalb des Cachemoduls 220 gespeichert werden. Bis der dem Speicherblock zugeordnete Cacheblock zum Speichern des Speicherblocks zur Verfügung steht, speichert der Abrufpuffer 260, der auch als FIFO-Warteschlange arbeitet, statt dessen die empfangenen Speicherblöcke vorübergehend in der empfangenen Reihenfolge. In diesem Ausführungsbeispiel empfängt der Abrufpuffer 260 den 256-Bit-Speicherblock innerhalb 2 Taktzyklen eines Systemtakts.
  • Zusätzlich zum Übertragen des Abrufsignals zum Anforderungspuffer 250 erzeugt und überträgt das Adressenmodul 210 auch ein Abrufkennzeichensignal und ein Übertragungskennzeichensignal zum Puffermodul 240. Das Abrufkennzeichensignal umfasst einen Kennzeichen-Bezugszählerwert, der mit Bezug auf 3 erörtert wird, und eine Cacheblockadresse, die einen speziellen Cacheblock innerhalb des Cachemoduls 220 festlegt, wo der dem MB-Identifikator 530 entsprechende abgerufene Speicherblock gespeichert wird. Das Adressenmodul 210 ermittelt die spezielle Cacheblockadresse für jedes Abrufkennzeichensignal durch Stützen auf einen Algorithmus der ältesten Verwendung (LRU). Das Übertragungskennzeichensignal umfasst die Cacheblockadresse, den Texelidentifikator, Interpolationsfaktoren und eine Misserfolgsmarkierung.
  • Das Steuermodul 290 stützt sich auf die Abrufkennzeichensignale im Puffermodul 240, um die Übertragung der Speicherblöcke vom Abrufpuffer 260 zum dem Speicherblock zugeordneten Cacheblock zu steuern. Wie mit Bezug auf 4 genauer erörtert wird, löst das Steuermodul 290, wenn das Steuermodul 290 feststellt, dass der Cacheblock für den zugehörigen Speicherblock an der Oberseite des Abrufpuffers 260 zur Verfügung steht, die Übertragung des Speicherblocks zum Datenformatierer 255 aus. Der Datenformatierer 255 transformiert diesen Speicherblock von seinem ursprünglichen Format in ein Cachemodulformat, das in diesem Ausführungsbeispiel ein herkömmliches ARGB-Format ist. Der Datenformatierer 255 überträgt dann jeden dieser umformatierten Speicherblöcke zum Cachemodul 220, wo die Speicherblöcke in ihren zugehörigen Cacheblöcken gespeichert werden.
  • Das Steuermodul 290 stützt sich auf die durch das Adressenmodul 210 isolierte Interpolationsinformation, um festzustellen, wann die Übertragung jedes Texels, das jedem Übertragungskennzeichensignal zugeordnet ist, vom Cachemodul 220 zum TFM 180 auszulösen ist. Da ein Filterverfahren wie z.B. bilineare Filterung, mehr als ein Texel erfordert, um eine Pixelzusammensetzung durchzuführen, und die Möglichkeit besteht, dass sich jedes dieser Texel aufgrund der 4-Weg-4-Satz-Organisation des Cachemoduls 220 in einem anderen Cacheblock befinden kann, müssen bis zu vier Übertragungskennzeichensignale für jede Zusammensetzung eines Pixels zum Cachemodul 220 übertragen werden.
  • 3 ist eine detailliertere Darstellung des Adressenmoduls 210 und des Puffermoduls 240. Das Adressenmodul 210 umfasst eine Adressensteuereinheit 310, ein Kennzeichenmodul 320 und einen Kennzeichenbezugszähler (TRC) 330. Das Puffermodul 240 umfasst einen Cachepuffer 335 und einen Übertragungspuffer 345. Jeder Puffer 335 und 345 kann bis zu 4 Kennzeichensignale gleichzeitig empfangen. Das Kennzeichenmodul, das mit der Adressensteuereinheit 310 gekoppelt ist, speichert Zusammenhänge zwischen jeder Cacheblockadresse und dem MB-Identifikator 530 entsprechend dem innerhalb dieses Cacheblocks gespeicherten Speicherblock. In diesem Ausführungsbeispiel ist das Kennzeichenmodul 320 eine Tabelle, die durch die Adressensteuereinheit 310 aufbereitet wird.
  • Die Adressensteuereinheit 310 ist mit dem Anforderungspuffer 250, dem Kennzeichenmodul 320, dem TRC 330, dem Cachepuffer 335, dem Übertragungspuffer 345 und dem Abtastmodul 160 gekoppelt. In diesem bevorzugten Ausführungsbeispiel ist die Adressensteuereinheit 310 eine Zustandsmaschine, die entweder ein Softwareprogramm ist, das von einer Zentralverarbeitungseinheit (CPU) (nicht dargestellt) eines Personalcomputers auf Intel-Basis ausgeführt wird, oder alternativ aus einer Hardware besteht, die zum Implementieren einer Zustandsmaschine organisiert ist. Nach dem Empfang der Pixelidentifikatoren 510 vom Abtastmodul 160 vergleicht die Adressensteuereinheit 310 den Teil des MB-Identifikators 530 jedes Pixelidentifikators 510 mit den MB-Identifikatoren 530, die im Kennzeichenmodul 320 gespeichert sind. Der TRC 330 zeichnet die fortlaufende Anzahl von Malen auf, die die Adressensteuereinheit 310 eine Übereinstimmung (Treffer) zwischen diesen zwei MB-Identifikatoren 530 erzielt. In diesem Ausführungsbeispiel ist der TRC 330 ein 8-Bit-Zähler, der anfänglich auf 0 gesetzt wird.
  • Wenn die Adressensteuereinheit 310 einen empfangenen MB-Identifikator 530 mit einem innerhalb des Kennzeichenmoduls 350 gespeicherten MB-Identifikator 530 als übereinstimmend feststellt, erzeugt die Adressensteuereinheit 310 das vorher erwähnte Übertragungskennzeichensignal, das die Treffermarkierung, den dem MB-Identifikator 530 entsprechenden Texelidentifikator 520 und die Cacheblockadresse, die dem MB-Identifikator 530 zugeordnet ist, enthält. Die Adressensteuereinheit 310 inkrementiert auch den TRC 330 um einen Wert von 1.
  • Wenn die Adressensteuereinheit 310 einen empfangenen MB-Identifikator 530 nicht mit einem der im Kennzeichenmodul 320 gespeicherten MB-Identifikatoren 530 als übereinstimmend feststellen kann, erzeugt die Adressensteuereinheit 310 ein Abrufkennzeichensignal, das den MB-Identifikator 530 und eine lineare Speichermoduladresse umfasst. Außerdem werden ein Übertragungskennzeichensignal und ein Abrufkennzeichensignal erzeugt und zum Puffermodul 240 übertragen. Das Abrufkennzeichensignal umfasst den aktuellen TRC-Wert und eine Cacheblockadresse, die, wie vorher erörtert, durch die Adressensteuereinheit 310 dem nicht-übereinstimmenden MB-Identifikator 530 durch die Verwendung des LRU-Algorithmus zugeordnet wird. Diese Cacheblockadresse wird später als Ort innerhalb des Cachemoduls 220 verwendet, wo der dem nicht-übereinstimmenden MB-Identifikator 530 entsprechende abgerufene Speicherblock gespeichert wird. Im Gegensatz zur "Treffer"-Situation wird in der "Misserfolgs"-Situation der TRC 330 nicht um 1 inkrementiert. Vielmehr wird der aktuelle Wert des TRC 330 in das Abrufkennzeichensignal integriert und der TRC 330 wird auf 1 zurückgesetzt. Dieser TRC-Wert stellt die Anzahl von aufeinanderfolgenden "Treffern" dar, bevor die Adressensteuereinheit 310 die "Misserfolgs"-Situation identifiziert hat. Das Übertragungskennzeichensignal für die "Misserfolgs"- Situation umfasst den Texelidentifikator 520, die dem Texelidentifikator 520 entsprechende Cacheblockadresse und eine "Misserfolgs"-Markierung. Die "Misserfolgs"-Markierung wird verwendet, um diejenigen Übertragungskennzeichensignale zu identifizieren, die Speicherblöcken entsprechen, die aus dem Speichermodul 140 abgerufen werden müssen. Sowohl das Abrufkennzeichensignal als auch das Übertragungskennzeichensignal werden dann an das Ende des Cachepuffers 335 bzw. des Übertragungspuffers 345 angehängt.
  • 4 stellt eine detaillierte Ansicht des Steuermoduls 290 des TCM 130 dar. Das Steuermodul 290 umfasst eine Abrufsteuereinheit 410, eine Übertragungssteuereinheit 430, einen Datenbezugszähler (DRC) 440 und ein Zustandsmodul 450. Der DRC 440 zeichnet die Anzahl von aufeinanderfolgenden Übertragungskennzeichensignalen mit einer "Treffer"-Markierung auf, die zum Cachemodul 220 übertragen werden. In diesem Ausführungsbeispiel ist der DRC 440 ein 8-Bit-Zähler und das Zustandsmodul 450 ist eine Tabelle, in der jede Cacheblockadresse einem Logikzustand (z.B. "Nur-Lese"-Logikzustand oder "Nur-Schreib"-Logikzustand) zugeordnet ist.
  • Die Übertragungssteuereinheit 430, die mit dem Übertragungspuffer 350, dem DRC 440 und dem Zustandsmodul 450 gekoppelt ist, steuert, wann die Texel innerhalb eines Speicherblocks, die den Übertragungskennzeichensignalen an der Oberseite des Übertragungspuffers 350 entsprechen, durch das TCM 130 weiterverarbeitet werden. Im bevorzugten Ausführungsbeispiel ist die Übertragungssteuereinheit 430 eine Zustandsmaschine, die entweder ein von einer CPU eines Personalcomputers auf Intel-Basis ausgeführtes Softwareprogramm ist oder alternativ Hardwarekomponenten umfasst, die zum Implementieren einer solchen Zustandsmaschine organisiert sind. Wenn die Übertragungskennzeichensignale bezüglich eines speziellen Pixels sowohl eine "Treffer"-Markierung enthalten als auch die nächsten durch den Übertragungspuffer 350 zu übertragenden Signale sind, ebenso wie der Logikzustand im Zustandsmodul 450 der entsprechenden Cacheblöcke auf den "Nur-Lese"-Zustand gesetzt ist, löst die Übertragungssteuereinheit 430 den Übertragungspuffer 350 aus, um die Übertragungskennzeichensignale zum Cachemodul 220 zu übertragen. Das Cachemodul 220 überträgt dann die den Übertragungskennzeichensignalen entsprechenden Texel zum TFM 180. Ungefähr zur gleichen Zeit inkrementiert die Übertragungssteuereinheit 430 auch den DRC 440, der anfänglich auf einen wert von 0 gesetzt ist, um Eins. Wenn mindestens eines der Übertragungskennzeichensignale, das sich an der Oberseite des Übertragungspuffers 350 befindet und einem speziellen Pixelidentifikator 510 zugeordnet ist, eine "Misserfolgs"-Markierung enthält, löst die Übertragungssteuereinheit 430 nicht sofort den Übertragungspuffer 350 aus, um die Übertragungskennzeichensignale zum Cachemodul 220 zu übertragen. Vielmehr ändert die Abrufsteuereinheit 410 die Logikzustände der Cacheblöcke vom "Nur-Lese"- in den "Nur-Schreib"-Zustand und löst den Abruf des Speicherblocks aus dem Abrufpuffer 260 aus. Auf das Erfassen der Änderung des Logikzustands auf "Nur Schreiben" hin ändert die Übertragungssteuereinheit 430 den Logikzustand wieder auf den "Nur-Lese"-Zustand, inkrementiert den DRC um 1 und löst den Übertragungspuffer 350 aus, um die Übertragungskennzeichensignale, die zur Pixelzusammensetzung erforderlich sind, zum Cachemodul 220 zu übertragen.
  • Die Abrufsteuereinheit 410 ist mit dem Abrufpuffer 260, dem Cachepuffer 340, dem DRC 440 und dem Zustandsmodul 450 gekoppelt. Im bevorzugten Ausführungsbeispiel ist die Abrufsteuereinheit 410 eine Zustandsmaschine, die ein von einer CPU eines Personalcomputers auf Intel-Basis ausgeführtes Softwareprogramm ist oder alternativ eine Hardware umfasst, die zum Implementieren einer solchen Zustandsmaschine organisiert ist. Die Abrufsteuereinheit 410 ist für das Synchronisieren des Schreibens von Speicherblöcken innerhalb des Cacheblocks 220 durch Ändern des einem speziellen Cacheblock innerhalb des Zustandsmoduls 450 zugeordneten Logikzustands von "Nur Lesen" auf "Nur Schreiben" verantwortlich. Insbesondere wartet die Abrufsteuereinheit 410, dass der dem Abrufkennzeichensignal entsprechende Speicherblock durch den Abrufpuffer 260 vom Speichermodul 140 empfangen wird. Sobald er empfangen ist, vergleicht die Abrufsteuereinheit 410 den aktuellen DRC-Wert mit dem TRC-Wert innerhalb des Abrufkennzeichensignals. Wenn dieser TRC-Wert größer als 0 und geringer als der DRC-Wert ist, hält die Abrufsteuereinheit 410 an. Wenn der DRC-wert größer als oder gleich dem TRC-Wert ist und der Abrufpuffer 260 nicht leer ist, setzt die Abrufsteuereinheit 410 den der Cacheblockadresse entsprechenden Logikzustand auf "Nur Schreiben" und setzt den DRC-Wert auf 0 zurück.
  • Wie vorstehend erörtert, führt das Ändern des Logikzustands auf "Nur Schreiben" dazu, dass die Abrufsteuereinheit 410 den Cachepuffer 340 auslöst, um den abgerufenen Speicherblock an der Oberseite des Abrufpuffers 260 zur Umformatierung zum Datenformatierer 255 zu übertragen. Der Datenformatierer 255 überträgt dann den umformatierten Speicherblock zum Cachemodul 220, wo der Speicherblock im dem Abrufkennzeichensignal entsprechenden Cacheblock gespeichert wird. Sobald der Speicherblock innerhalb des Cachemoduls 220 gespeichert ist, reagiert die Übertragungssteuereinheit 430 auf die Änderung im Logikzustand auf "Nur Schreiben" durch Ändern des Logikzustands des Cacheblocks zurück auf "Nur Lesen". Selbst wenn dieses ganze Verfahren das Risiko aufweisen kann, dass Speicherblöcke, die Texel enthalten, die zu einem späteren Zeitpunkt gebraucht werden können, möglicherweise überschrieben werden, gleicht das Ausmaß an Wartezeit, das durch dieses Verfahren vermieden wird, weitaus die geringfügige Verzögerung aus, die dem zuzuschreiben ist, dass diese Speicherblöcke erneut abgerufen werden müssen.
  • Die vorangehende Beschreibung des bevorzugten Ausführungsbeispiels wurde für die Zwecke der Erläuterung und Beschreibung dargestellt. Sie soll weder erschöpfend sein, noch die Erfindung auf die genaue offenbarte Form begrenzen. Viele Modifikationen und Veränderungen sind angesichts der obigen Lehre möglich. Trilineare Filterung anstatt bilinearer Filterung kann beispielsweise durch ein alternatives Ausführungsbeispiel der vorliegenden Erfindung unterstützt werden. Das bevorzugte Ausführungsbeispiel wurde gewählt und beschrieben, um die Prinzipien der Erfindung und ihre praktische Anwendung am besten zu erläutern, um dadurch anderen Fachleuten zu ermöglichen, die Erfindung in verschiedenen Ausführungsbeispielen und mit verschiedenen Modifikationen, die für die in Betracht gezogene spezielle Verwendung geeignet sind, am besten zu verwenden. Das System und Verfahren können jedoch in einer beliebigen anderen Situation verwendet werden, in der ein Bandbreitenengpass die effiziente Verarbeitung von großen Mengen an Daten behindert. Es ist vorgesehen, dass der Schutzbereich der Erfindung durch die Ansprüche und ihre Äquivalente definiert ist.

Claims (12)

  1. Cachesystem mit: einem Speichermodul (140) zum Speichern einer Vielzahl von Texeln; einem mit dem Speichermodul (140) gekoppelten Cachemodul (220) zum Speichern eines ersten Texels der Vielzahl von Texeln; einem Adressenmodul (210) zum Speichern eines Zusammenhangs zwischen einem ersten Identifikatorsignal und dem ersten Texel; einem mit dem Cachemodul (220) und dem Adressenmodul (210) gekoppelten Steuermodul (290) zum Reagieren auf ein zweites Identifikatorsignal, das dem ersten Identifikatorsignal entspricht, durch Auslösen der Übertragung des ersten Texels vom Cachemodul (220) und zum Reagieren auf das zweite Signal, das dem ersten Identifikatorsignal nicht entspricht, durch Abrufen eines zweiten Texels der Vielzahl von Texeln aus dem Speichermodul (140); wobei das zweite Texel einen Zusammenhang mit dem zweiten Identifikatorsignal aufweist; und einem Abrufpuffer (260), der mit dem Steuermodul (290) gekoppelt ist, wobei das Speichermodul (140) und das Cachemodul (220) zum Verzögern der Speicherung des zweiten Texels in dem Cachemodul (220) synchronisiert werden, bis das Steuermodul (290) den Abrufpuffer (260) zum Speichern des zweiten Texels im Cachemodul (220) auslöst.
  2. System nach Anspruch 1, welches ferner umfasst: ein mit dem Steuermodul (290) gekoppeltes Puffermodul (240) zum Synchronisieren der Übertragung des ersten Texels vom Cachemodul (220).
  3. System nach Anspruch 2, welches ferner umfasst: eine mit dem Puffermodul (240) gekoppelte Speichervorrichtung (320) zum Speichern eines Zusammenhangs zwischen dem Cachemodul (220) und einer Vielzahl von Logikzuständen.
  4. System nach Anspruch 1, 2 oder 3, welches ferner umfasst einen ersten Zähler (440) innerhalb des Steuermoduls (290) zum Reagieren auf das zweite Identifikatorsignal, das dem ersten Identifikatorsignal entspricht, durch Ändern eines ersten Werts auf einen zweiten Wert.
  5. System nach Anspruch 2, 3 oder 5, welches ferner umfasst: einen mit dem Puffermodul (240) gekoppelten zweiten Zähler (330) zum Reagieren auf die Übertragung des ersten Texels durch das Cachemodul (220) durch Ändern eines dritten Werts auf einen vierten Wert.
  6. System nach einem der vorangehenden Ansprüche, wobei der Abrufpuffer (260) eine FIFO-Warteschlange ist.
  7. Verfahren zum Anfordern von Texeln, wobei das Verfahren die Schritte umfasst: Speichern der Vielzahl von Texeln in einem Speichermodul (140); Speichern eines ersten Texels der Vielzahl von Texeln in einem Cachemodul (220); Speichern eines Zusammenhangs zwischen einem ersten Identifikatorsignal und dem ersten Texel in einem Adressenmodul (210); Reagieren auf ein zweites Identifikatorsignal, das dem ersten Identifikatorsignal entspricht, durch Auslösen der Übertragung des ersten Texels vom Cachemodul (220); Reagieren auf das zweite Identifikatorsignal, das dem ersten Identifikatorsignal nicht entspricht, durch Abrufen eines zweiten Texels der Vielzahl von Texeln mit einem Zusammenhang mit dem zweiten Identifikatorsignal aus dem Speichermodul (140); Steuern der Übertragung des ersten Texels vom Cachemodul (220); Auslösen der Speicherung des zweiten Texels im Cachemodul (220); und Synchronisieren der Übertragung des ersten Texels vom Cachemodul (220) und der Speicherung des zweiten Texels im Cachemodul (220) durch einen Abrufpuffer (260), der mit dem Steuermodul (290), dem Speichermodul (140) und dem Cachemodul (220) gekoppelt ist; Verzögern der Speicherung des zweiten Texels im Cachemodul (220), bis das Steuermodul (290) den Abrufpuffer (260) zum Speichern des zweiten Texels im Cachemodul (220) auslöst.
  8. Verfahren nach Anspruch 7 mit dem zusätzlichen Schritt: Speichern eines Zusammenhangs zwischen dem Cachemodul (220) und einer Vielzahl von Logikzuständen.
  9. Verfahren nach Anspruch 7 oder 8 mit dem zusätzlichen Schritt: Reagieren auf das zweite Identifikatorsignal, das dem ersten Identifikatorsignal entspricht, durch Ändern eines ersten Werts auf einen zweiten Wert.
  10. Verfahren nach Anspruch 7, 8 oder 9 mit dem zusätzlichen Schritt: Reagieren auf die Übertragung des ersten Texels durch das Cachemodul (220) durch Ändern eines dritten Werts auf einen vierten Wert.
  11. Verfahren nach Anspruch 10 mit dem zusätzlichen Schritt: Reagieren auf den vierten Wert mit einem Wert, der mindestens so groß ist wie der zweite Wert, durch Auslösen der Speicherung des zweiten Texels im Cachemodul (220).
  12. Verfahren nach Anspruch 7, wobei die Verzögerung zum Speichern des zweiten Texels den zusätzlichen Schritt umfasst: Übertragen des zweiten Texels, das vor einem dritten Texel empfangen wurde, bevor das dritte Texel übertragen wird.
DE69918022T 1998-04-09 1999-03-04 Keine blockierung erforderndes textur-cache-system Expired - Lifetime DE69918022T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US57628 1998-04-09
US09/057,628 US6011565A (en) 1998-04-09 1998-04-09 Non-stalled requesting texture cache
PCT/US1999/004778 WO1999053402A1 (en) 1998-04-09 1999-03-04 Non-stalled requesting texture cache system and method

Publications (2)

Publication Number Publication Date
DE69918022D1 DE69918022D1 (de) 2004-07-22
DE69918022T2 true DE69918022T2 (de) 2005-07-07

Family

ID=22011786

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69918022T Expired - Lifetime DE69918022T2 (de) 1998-04-09 1999-03-04 Keine blockierung erforderndes textur-cache-system

Country Status (7)

Country Link
US (1) US6011565A (de)
EP (1) EP0998709B1 (de)
JP (1) JP4205176B2 (de)
AU (1) AU2983199A (de)
CA (1) CA2293634C (de)
DE (1) DE69918022T2 (de)
WO (1) WO1999053402A1 (de)

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6259460B1 (en) * 1998-03-26 2001-07-10 Silicon Graphics, Inc. Method for efficient handling of texture cache misses by recirculation
US7136068B1 (en) 1998-04-07 2006-11-14 Nvidia Corporation Texture cache for a computer graphics accelerator
US6300953B1 (en) * 1998-10-15 2001-10-09 Nvidia Apparatus and method for grouping texture cache requests
US6353438B1 (en) * 1999-02-03 2002-03-05 Artx Cache organization—direct mapped cache
US6181352B1 (en) * 1999-03-22 2001-01-30 Nvidia Corporation Graphics pipeline selectively providing multiple pixels or multiple textures
US6919895B1 (en) * 1999-03-22 2005-07-19 Nvidia Corporation Texture caching arrangement for a computer graphics accelerator
US6650333B1 (en) 1999-06-09 2003-11-18 3Dlabs Inc., Ltd. Multi-pool texture memory management
US6744438B1 (en) * 1999-06-09 2004-06-01 3Dlabs Inc., Ltd. Texture caching with background preloading
US6683615B1 (en) 1999-06-09 2004-01-27 3Dlabs Inc., Ltd. Doubly-virtualized texture memory
US6587113B1 (en) 1999-06-09 2003-07-01 3Dlabs Inc., Ltd. Texture caching with change of update rules at line end
US7050061B1 (en) 1999-06-09 2006-05-23 3Dlabs Inc., Ltd. Autonomous address translation in graphic subsystem
US7061500B1 (en) 1999-06-09 2006-06-13 3Dlabs Inc., Ltd. Direct-mapped texture caching with concise tags
US6677952B1 (en) 1999-06-09 2004-01-13 3Dlabs Inc., Ltd. Texture download DMA controller synching multiple independently-running rasterizers
US6750872B1 (en) * 1999-09-17 2004-06-15 S3 Graphics, Co., Ltd. Dynamic allocation of texture cache memory
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
US6717577B1 (en) 1999-10-28 2004-04-06 Nintendo Co., Ltd. Vertex cache for 3D computer graphics
US6433789B1 (en) 2000-02-18 2002-08-13 Neomagic Corp. Steaming prefetching texture cache for level of detail maps in a 3D-graphics engine
US7710425B1 (en) 2000-06-09 2010-05-04 3Dlabs Inc. Ltd. Graphic memory management with invisible hardware-managed page faulting
US6707458B1 (en) 2000-08-23 2004-03-16 Nintendo Co., Ltd. Method and apparatus for texture tiling in a graphics system
US7538772B1 (en) * 2000-08-23 2009-05-26 Nintendo Co., Ltd. Graphics processing system with enhanced memory controller
US7196710B1 (en) * 2000-08-23 2007-03-27 Nintendo Co., Ltd. Method and apparatus for buffering graphics data in a graphics system
US7576748B2 (en) * 2000-11-28 2009-08-18 Nintendo Co. Ltd. Graphics system with embedded frame butter having reconfigurable pixel formats
US6811489B1 (en) 2000-08-23 2004-11-02 Nintendo Co., Ltd. Controller interface for a graphics system
US6700586B1 (en) 2000-08-23 2004-03-02 Nintendo Co., Ltd. Low cost graphics with stitching processing hardware support for skeletal animation
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
US6937245B1 (en) * 2000-08-23 2005-08-30 Nintendo Co., Ltd. Graphics system with embedded frame buffer having reconfigurable pixel formats
US20030030646A1 (en) * 2001-08-10 2003-02-13 Yeh Kwo-Woei Trilinear texture filtering method with proper texel selection
US20070211070A1 (en) * 2006-03-13 2007-09-13 Sony Computer Entertainment Inc. Texture unit for multi processor environment
JP5310079B2 (ja) * 2009-02-24 2013-10-09 富士通セミコンダクター株式会社 画像描画装置
JP5669199B2 (ja) * 2011-02-25 2015-02-12 Necソリューションイノベータ株式会社 画像描画装置、画像描画方法、及びプログラム
WO2013030861A1 (ja) * 2011-08-26 2013-03-07 三菱電機株式会社 テクスチャマッピング装置
KR20140095296A (ko) * 2013-01-24 2014-08-01 삼성전자주식회사 픽셀 캐시 및 픽셀 캐시의 동작 방법
US9483843B2 (en) 2014-01-13 2016-11-01 Transgaming Inc. Method and system for expediting bilinear filtering
CN112862724B (zh) * 2021-03-12 2022-09-09 上海壁仞智能科技有限公司 用于计算的方法、计算设备和计算机可读存储介质

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69635638T2 (de) * 1995-06-06 2006-07-20 Hewlett-Packard Development Co., L.P., Houston Pufferspeicher für Texturdaten
US5751292A (en) * 1995-06-06 1998-05-12 Hewlett-Packard Company Texture mapping method and system
US5828382A (en) * 1996-08-02 1998-10-27 Cirrus Logic, Inc. Apparatus for dynamic XY tiled texture caching
US5831640A (en) * 1996-12-20 1998-11-03 Cirrus Logic, Inc. Enhanced texture map data fetching circuit and method

Also Published As

Publication number Publication date
EP0998709A4 (de) 2000-05-24
EP0998709B1 (de) 2004-06-16
US6011565A (en) 2000-01-04
DE69918022D1 (de) 2004-07-22
EP0998709A1 (de) 2000-05-10
CA2293634C (en) 2008-08-05
AU2983199A (en) 1999-11-01
WO1999053402A1 (en) 1999-10-21
JP2002504251A (ja) 2002-02-05
CA2293634A1 (en) 1999-10-21
JP4205176B2 (ja) 2009-01-07

Similar Documents

Publication Publication Date Title
DE69918022T2 (de) Keine blockierung erforderndes textur-cache-system
DE69836924T2 (de) Block- und bandorientierter durchlauf in dreidimensionaler dreieckswiedergabe
DE60017222T2 (de) Verfahren und Gerät zur Steuerung von komprimierter Z-Information in einem Videographiksystem
DE69736611T2 (de) Reorganisation von Speicherreferenzen für Pixel in einer seitenorientierten Speicherarchitektur
DE19620847B4 (de) Verfahren und Vorrichtung zur Texturabbildung
DE60026539T2 (de) Ein-/ausgabeadressübersetzung in einer brücke in unmittelbarer nähe eines lokalen ein-/ausgabebuses
DE69917799T2 (de) Texturierungssysteme zur verwendung in drei-dimensionalen abbildungssystemen
DE69635066T2 (de) Unterbrechungsschema zum Aktualisieren eines Lokalspeichers
DE69636599T2 (de) Verfahren und system zur wiedergabe von grafischen objekten durch teilung in bildstücke und zusammensetzen von bildlagen zu einem wiedergabebild
DE69635638T2 (de) Pufferspeicher für Texturdaten
DE69630165T2 (de) Herunterladen von Texturdaten unter Umgehung der 3D-Schaltungen
DE69909437T2 (de) Graphisches system mit superabtasten mit veränderlicher auflösung
EP0038411B1 (de) Einrichtung zur Speicherung und Darstellung graphischer Information
DE60004827T2 (de) Segmentierung von komprimierten graphischen daten zur parallelen dekomprimierung und darstellung
DE60000686T2 (de) Graphisches system mit super-abgetastetem musterpuffer mit erzeugung von ausgangpixeln unter verwendung von selektiven adjustierung der filterung zur artifaktverminderung
DE69728002T2 (de) Steuerprozessor für einen drei-dimensionalen Beschleuniger, der die Fähigkeit geometrischer Dekompression besitzt und Verfahren zur Bearbeitung von geometrischen Daten in diesem Beschleuniger
DE10101073B4 (de) Bildaufbereitungsvorrichtung mit niedrigeren Speicherkapazitätsanforderungen und Verfahren dafür
DE19917092A1 (de) Verfahren zur Rasterisierung eines Graphikgrundelements
DE19713654B4 (de) Progressiv darstellbare Umrissschrift und Verfahren zum Erzeugen, Übertragen und Darstellen derselben
DE3114923A1 (de) Video-ausgabe-prozessor, insbesondere fuer ein computergraphiksystem
DE102013014779A1 (de) Textelement-datenstruktur für programmierbare schattierungseinheit für eine graphikverarbeitungseinheit und verfahren zum betreiben davon
DE69730923T2 (de) Verfahren und Gerät zur Bilderzeugung
DE602005003575T2 (de) Vorwärts-texturabbildungs-3d-graphiksystem
DE602004011234T2 (de) Verfahren und Vorrichtung zur Erzeugung dreidimensionaler Bilder
DE19503401A1 (de) Signalverarbeitungsverfahren und -vorrichtung für ein Graphiksystem

Legal Events

Date Code Title Description
8327 Change in the person/name/address of the patent owner

Owner name: S3 GRAPHICS CO.LTD., CAYMAN ISLANDS, KY

8364 No opposition during term of opposition