Hintergrund
der Erfindungbackground
the invention
Gebiet der ErfindungField of the invention
Die
vorliegende Erfindung betrifft Computersysteme und insbesondere
ein Computersystem, das eine zweite Speichersteuervorrichtung mit
einem Graphikbeschleunigersteckplatz aufweist.The
The present invention relates to computer systems, and more particularly
a computer system including a second memory controller
a graphics accelerator slot.
Beschreibung des verwandten
Stands der TechnikDescription of the related
State of the art
Wie
in 1 gezeigt ist, umfasst eine herkömmliche
Computersystemarchitektur 100 einen Prozessor 102,
eine Systemlogik 104, einen Hauptspeicher 106,
einen Systembus 108, einen Graphikbeschleuniger 110, der
mit einem lokalen Graphikspeicher 112 kommuniziert, und
mehrere Peripheriegeräte 114.
Der Prozessor 102 kommuniziert mit dem Hauptspeicher 106 über eine
Speicherverwaltungseinheit (MMU – Memory Management Unit) im
Prozessor 102. Die Peripheriegeräte 114 und der Graphikbeschleuniger 110 kommunizieren
mit dem Hauptspeicher 106 und der Systemlogik 104 über den
Systembus 108. Der Standardsystembus 108 ist gegenwärtig das
Peripherals Component Interface (PCI). Der ursprüngliche PC-Bus, der ISA-Bus
(Industry Standard Architecture), ist zu einer Spitzendatenübertragungsgeschwindigkeit
von 8 Megabytes/Sek. fähig
und wird immer noch für
Peripheriegeräte
mit niedrigen Bandbreiten wie NF-Geräte, verwendet. Andererseits
unterstützt
PCI viele Peripheriekomponenten und Zusatzkarten mit einer Spitzenbandbreite
von 132 Megabytes/Sek. Somit ist PCI in der Lage, Bewegtbild-Kommunikationswiedergabe
mit 30 Bildern/Sek., hochauflösende
Echtfarbgraphik und lokale, 100 Megabit/Sek. schnelle Ethernet-Datennetze
zu unterstützen.
Allerdings droht das Aufkommen von Anwendungen mit hohen Bandbreiten,
wie dreidimensionale Graphikanwendungen (3D-Graphikanwendungen),
den PCI-Bus zu überlasten.As in 1 includes a conventional computer system architecture 100 a processor 102 , a system logic 104 , a main memory 106 , a system bus 108 , a graphics accelerator 110 that with a local graphics store 112 communicates, and multiple peripherals 114 , The processor 102 communicates with the main memory 106 via a memory management unit (MMU) in the processor 102 , The peripherals 114 and the graphics accelerator 110 communicate with the main memory 106 and the logic of the system 104 over the system bus 108 , The standard system bus 108 is currently the Peripherals Component Interface (PCI). The original PC bus, the Industry Standard Architecture (ISA) bus, has a peak data transfer rate of 8 megabytes / sec. capable and still used for low bandwidth peripherals such as LF devices. On the other hand, PCI supports many peripheral components and add-in cards with a peak bandwidth of 132 megabytes / sec. Thus, PCI is capable of delivering 30 frames per second full-motion, high-resolution true color graphics and local, 100 megabits per second video. support fast Ethernet data networks. However, the advent of high-bandwidth applications, such as three-dimensional graphics applications (3D graphics applications), threatens to overburden the PCI bus.
Beispielsweise
entsteht ein 3D-Graphikbild, indem ein zweidimensionales Bild genommen
und dieses als Fläche
auf ein 3D-Objekt
gelegt oder darauf abgebildet wird. Die meisten Abbildungsarten
umfassen Texturabbildungen, die sich mit Farben und Texturen befassen,
Buckelkarten, die sich mit physikalischen Oberflächen befassen, Reflexionsabbildungen,
Brechungsabbildungen und Farbabbildungen. Um darüber hinaus eine Szene wirklich
erscheinen zu lassen, verwenden 3D-Graphikbeschleuniger oftmals einen Z-Puffer
zum Entfernen verdeckter Linien und zur Bildtiefensimulation, wobei
ein Intensitätswert
verwendet wird, um die Helligkeit eines Pixels in Abhängigkeit
von der Entfernung zu modifizieren. Ein Z-Pufferspeicher kann so
groß oder sogar
größer als
der Speicher sein, der zum Speichern zweidimensionaler Bilder benötigt wird.
Der Graphikbeschleuniger 110 ruft Daten aus dem lokalen
Graphikspeicher 112 ab und verarbeitet sie, wobei der lokale Graphikspeicher 112 eine
Art teurer Hochleistungsspeicher ist. Um beispielsweise eine durchschnittliche 3D-Szene
(Polygonüberlappung
3) in 16-Bit-Farbe mit 30 Bildern/Sek. bei einer 75 Hz-Bildschirmauffrischung zu übertragen,
werden Bandbreiten von 370 bis 840 Megabytes/Sek. für Bildschirmauflösungen von
640 × 480 Auflösung (VGA)
bis 1024 × 768
Auflösung
(XGA) benötigt.
Somit benötigt
eine Wiedergabe von 3D-Graphiken auf
einem Bildschirm eine große
Bandbreite zwischen dem Graphikbeschleuniger 110 und dem
lokalen Graphikspeicher 112, wo die 3D-Texturabbildungen
und die Z-Pufferdaten typischerweise hinterlegt sind.For example, a 3D graphic image is created by taking a two-dimensional image and placing it as a surface on a 3D object or imaged on it. Most types of images include texture maps that deal with colors and textures, hump maps that deal with physical surfaces, reflection maps, refraction maps, and color maps. In addition, to really make a scene appear, 3D graphics accelerators often use a Z-Buffer to remove hidden lines and image depth simulation, using an intensity value to modify the brightness of a pixel as a function of distance. A Z-buffer may be as large or even larger than the memory needed to store two-dimensional images. The graphics accelerator 110 gets data from the local graphics memory 112 and processes them, using the local graphics memory 112 is a kind of expensive high-performance storage. For example, to plot an average 3D scene (polygon overlap 3) in 16-bit color at 30 fps. at 75 Hz screen refresh, bandwidths of 370 to 840 megabytes / sec. For screen resolutions from 640 × 480 resolution (VGA) to 1024 × 768 resolution (XGA) required. Thus, rendering of 3D graphics on a screen requires a large bandwidth between the graphics accelerator 110 and the local graphics memory 112 where the 3D texture maps and Z buffer data are typically deposited.
Zusätzlich verwenden
viele Computersysteme virtuelle Speichersysteme, um es dem Prozessor 102 zu
ermöglichen,
mehr Speicherplatz zu adressieren als im Hauptspeicher 106 physikalisch
vorhanden ist. Ein virtuelles Speichersystem ermöglicht die Adressierung sehr
großer
Speichermengen, als ob der gesamte Speicher ein Teil des Hauptspeichers
des Computersystems wäre.
Ein virtuelles Speichersystem ermöglicht dies selbst dann, wenn
der tatsächliche
Hauptspeicher möglicherweise
einen etwas geringeren Speicherplatz aufweist als adressiert werden
kann. Beispielsweise kann der Hauptspeicher einen Direktzugriffsspeicher
mit sechzehn Megabyte (16.777.216 Byte) umfassen, während ein
virtuelles Speicheradressiersystem die Adressierung eines Speichers
mit vier Gigabyte (4.294.967.296 Byte) ermöglicht.Additionally, many computer systems use virtual memory systems to give it to the processor 102 to allow more disk space to be addressed than in main memory 106 physically present. A virtual memory system allows the addressing of very large amounts of memory as if the entire memory were part of the main memory of the computer system. A virtual storage system allows this even if the actual main memory may have a slightly smaller storage space than can be addressed. For example, main memory may include sixteen megabyte (16,777,216 bytes) random access memory, while a virtual memory addressing system may allow four gigabyte (4,294,967,296 bytes) of memory to be addressed.
Virtuelle
Speichersysteme stellen diese Kapazität bereit, indem sie eine Speicherverwaltungseinheit (MMU)
einsetzen, um virtuelle Speicheradressen in ihre entsprechenden
physikalischen Speicheradressen zu übersetzen, in denen die gewünschte Information
tatsächlich
hinterlegt ist. Eine besondere physikalische Adresse, die die gewünschte Information
enthält,
kann im Haupt- oder Massenspeicher wie einem Magnetband oder einer
Festplatte hinterlegt sein. Wenn sich die physikalische Adresse
der Information im Hauptspeicher befindet, ist der Zugriff darauf
und ihre Verwertung problemlos. Andernfalls, wenn sich die Information, auf
die sich die physikalische Adresse bezieht, im Massenspeicher befindet, überträgt das System
die Information (für
gewöhnlich
in einem Block, der als Seite bezeichnet wird) zur weiteren Verwendung
an den Hauptspeicher. Diese Übertragung
kann es notwendig machen, andere Information aus dem Hauptspeicher
in den Massenspeicher umzulagern, um für die neue Information Platz
zu schaffen. Ist das der Fall, steuert die MMU die Umlagerung von
Information in den Massenspeicher.Virtual memory systems provide this capacity by employing a memory management unit (MMU) to translate virtual memory addresses into their corresponding physical memory addresses in which the desired information is actually stored. A special physical address containing the desired information may be stored in the main or mass storage such as a magnetic tape or a hard disk. If the physical address of the information is in main memory, accessing it and using it is easy. Otherwise, if the information to which the physical address relates is in mass storage, the system transmits the information (usually in a block called a page) to main memory for further use. This transfer may require other information from the main memory in the Relocate mass storage to make room for the new information. If this is the case, the MMU controls the transfer of information to the mass storage.
Seiten
sind der gewöhnliche
Mechanismus, der zum Adressieren von Information in einem virtuellen Speichersystem
verwendet wird. Die Seiten sind nummeriert und sowohl die physikalischen
als auch die virtuellen Adressen umfassen oftmals eine Seitenzahl
und eine Distanzadresse zur Seite. Darüber hinaus ist die physikalische
und die virtuelle Distanzadresse typischerweise dieselbe. Um zwischen
den virtuellen und den physikalischen Adressen zu übersetzen,
erzeugt ein virtuelles Speicherbasissystem eine Reihe von Nachschlagtabellen,
Seitentabellen genannt, die im Hauptspeicher gespeichert werden.
Diese Seitentabellen speichern die Seitenzahlen der virtuellen Adressen,
die vom Computer verwendet werden. Mit jeder Seitenzahl einer virtuellen
Adresse wird die entsprechende Seitenzahl der physikalischen Adresse
gespeichert, auf die zugegriffen werden muss, um die Information
zu erhalten. Oftmals sind die Seitentabellen so groß, dass
sie selbst nummeriert sind. Die Seitenzahl jeder virtuellen Adresse,
die der Speicherverwaltungseinheit vorgelegt wird, wird mit den
in diesen Tabellen gespeicherten Werten verglichen, um eine Seitenzahl
einer passenden virtuellen Adresse zu finden, die bei der Suche
nach der Seitenzahl einer entsprechenden physikalischen Adresse verwendet
werden soll.pages
are the ordinary ones
Mechanism for addressing information in a virtual storage system
is used. The pages are numbered and both the physical
as well as the virtual addresses often include a page number
and a distance to the side. In addition, the physical
and the virtual offset typically is the same. To between
to translate the virtual and the physical addresses,
creates a virtual storage base system a set of lookup tables,
Called page tables, which are stored in main memory.
These page tables store the page numbers of the virtual addresses,
which are used by the computer. With every page number of a virtual
Address becomes the corresponding page number of the physical address
stored, which must be accessed to the information
to obtain. Often the page tables are so big that
they are numbered themselves. The page number of each virtual address,
which is presented to the memory management unit, is with the
values stored in these tables compared to a page number
to find a matching virtual address when searching
used after the page number of a corresponding physical address
shall be.
Die
Tabellen haben oftmals verschiedene Ebenen, und der Vergleich verbraucht
einen wesentlichen Anteil an Systemtaktzeit. Um beispielsweise eine
physikalische Seitenadresse unter Verwendung von im Hauptspeicher
gespeicherten Nachschlagtabellen zu finden, sieht die typische MMU
erst in einem Register nach der Adresse einer Basistabelle nach,
in der Zeiger zu anderen Tabellenebenen gespeichert sind. Die MMU
sucht diesen Zeiger aus der Basistabelle aus und bringt ihn in einem
anderen Register an. Dann verwendet die MMU diesen Zeiger, um zur nächsten Tabellenebene
zu gehen. Dieser Vorgang wird fortgeführt, bis die physikalische
Seitenadresse der gesuchten Information aufgefunden wurde. Wenn
die physikalische Adresse aufgefunden wurde, wird sie mit der Distanzadresse
kombiniert, die als Teil der virtuellen Adresse bereitgestellt wurde,
und der Prozessor nutzt das Ergebnis, um auf die besondere gewünschte Information
zuzugreifen. Die Fertigstellung eines typischen Nachschlagens in
den Seitentabellen kann auf jeder Ebene der Suche zehn bis fünfzehn Taktzyklen
dauern. Eine solche Leistung ist bei der Verarbeitung graphischer
Anwendungen unannehmbar.The
Tables often have different levels, and the comparison consumes
a significant proportion of system clock time. For example, a
physical page address using in main memory
to find stored lookup tables, sees the typical MMU
first in a register after the address of a base table,
are stored in the pointer to other table levels. The MMU
select this pointer from the base table and bring it in one
other registers. Then the MMU uses this pointer to move to the next table level
to go. This process continues until the physical
Page address of the information sought was found. If
the physical address was found, it becomes with the distance address
combined that was deployed as part of the virtual address,
and the processor uses the result to get to the particular desired information
access. The completion of a typical lookup in
The page tables can search at any level ten to fifteen clock cycles
to last; to endure, to continue. Such performance is more graphic in processing
Applications unacceptable.
Eine
Lösung,
um die Verarbeitung graphischer Daten zu erleichtern, umfasst, über eine Punkt-zu-Punkt-Verbindung
zwischen der Speichersteuervorrichtung und einem Graphikbeschleuniger
zu verfügen.
Eine solche Architektur ist durch die von Intel Corporation veröffentlichte
Accelerated Graphics Port Interface Specification, überarbeitete
Fassung 1.0, (31. Juli 1996) definiert. Ein Problem bei diesen Systemen
ist jedoch, dass der PCI-Bus als Engpass für alle Speichertransaktionen
wirkt. Computerhersteller brauchen ein System, das diesen Engpass
abschafft.A
Solution,
To facilitate processing of graphical data involves, over a point-to-point connection
between the memory controller and a graphics accelerator
to dispose of.
One such architecture is that published by Intel Corporation
Accelerated Graphics Port Interface Specification, Revised
Version 1.0, (July 31, 1996). A problem with these systems
However, the PCI bus is considered a bottleneck for all memory transactions
acts. Computer manufacturers need a system that has this bottleneck
abolish.
Es
gibt andere Lösungen,
um den Speicherzugriff zu erleichtern. Das an Lipovski erteilte
US-Patent Nr. 4,016,545 lehrt die Verwendung mehrerer Speichersteuervorrichtungen.
Allerdings beschreibt Lipovski keine Punkt-zu-Punkt-Verbindung zwischen
einer Speichersteuervorrichtung und einem Graphikbeschleuniger. Solch
eine Verbindung wird für
die Schnellverarbeitung von Graphikdaten benötigt.It
are other solutions,
to facilitate memory access. That gave to Lipovski
U.S. Patent No. 4,016,545 teaches the use of multiple memory controllers.
However, Lipovski does not describe a point-to-point connection between
a memory controller and a graphics accelerator. Such
a connection will be made for
the fast processing of graphics data needed.
Zusätzlich beschreibt
auch die US-Patentanmeldung Nr. 4,507,730 von Johnson die Verwendung mehrerer
Speichersteuervorrichtungen. Johnson jedoch setzt die mehreren Speichersteuervorrichtungen
für Fehlertoleranz
ein. Bei Johnson wird eine Speichersteuervorrichtung, wenn festgestellt
wird, dass sie fehlerbehaftet ist, ausgeschaltet und eine andere
Speichersteuervorrichtung an ihrer Stelle aktiviert. Die Speicher steuervorrichtungen
bei Johnson erleichtern die wirksame Speicherübertragung für Graphikanwendungen nicht.Additionally describes
Johnson U.S. Patent Application No. 4,507,730 also discloses the use of several
Memory controllers. Johnson, however, sets the multiple memory controllers
for fault tolerance
one. At Johnson, a memory controller is detected when detected
is that it is buggy, off and another
Memory controller activated in their place. The memory control devices
Johnson does not facilitate effective memory transfer for graphics applications.
Im
Hinblick auf die vorstehend erörterten
Einschränkungen
benötigen
Computerhersteller eine Architektur mit verbesserten Verfahren zum
Speichern, Adressieren und Abrufen von Graphikdaten aus einem Hauptspeicher.
Um darüber
hinaus den Bedürfnissen
von Graphikanwendungen hoher Bandbreite ohne wesentlichem Anstieg
bei den Systemkosten entgegenzukommen, benötigen Computerhersteller eine
verbesserte Technologie, um die Einschränkungen bei den gegenwärtigen Systembusbandbreiten
zu überwinden.
Die zuvor erwähnten
Vorteile werden durch einen Computer und ein Verfahren erzielt,
wie sie in den Ansprüchen definiert
sind.in the
With regard to those discussed above
restrictions
need
Computer manufacturers an architecture with improved procedures for
Store, address and retrieve graphic data from a main memory.
To over it
out to the needs
high-bandwidth graphics applications with no significant increase
to accommodate system costs, computer manufacturers need one
improved technology to the limitations of the current system bus bandwidths
to overcome.
The aforementioned
Benefits are achieved through a computer and a method
as defined in the claims
are.
Kurze Beschreibung
der ZeichnungenShort description
the drawings
1 ist
ein Blockschema, das die Architektur eines Computersystems nach
dem Stand der Technik darstellt. 1 Figure 12 is a block diagram illustrating the architecture of a prior art computer system represents.
2 ist
ein Blockschema, das eine Ausführungsform
eines Computersystems der Erfindung darstellt. 2 Figure 4 is a block diagram illustrating one embodiment of a computer system of the invention.
3 ist
ein Blockschema, das den Adressraum eines Prozessors einer Ausführungsform
der Erfindung darstellt. 3 Figure 12 is a block diagram illustrating the address space of a processor of one embodiment of the invention.
4 ist
ein Blockschema, das eine zweite Ausführungsform der Erfindung darstellt. 4 Fig. 12 is a block diagram illustrating a second embodiment of the invention.
5 ist
ein Blockschema, das die Übersetzung
einer virtuellen Adresse in eine physikalische Adresse einer Ausführungsform
der Erfindung darstellt. 5 Figure 12 is a block diagram illustrating the translation of a virtual address into a physical address of an embodiment of the invention.
6 ist
eine Darstellung eines Seitentabelleneintrags der Graphikadressenwiederumsetzungstabelle
einer Ausführungsform
der Erfindung. 6 FIG. 13 is an illustration of a page table entry of the graphics address re-conversion table of one embodiment of the invention. FIG.
7 ist
ein Blockschema, das die Erzeugung eines Übersetzungseintrags eines assoziativen
Pufferspeichers einer Ausführungsform
der Erfindung darstellt. 7 Figure 13 is a block diagram illustrating the creation of an associative cache translation entry of an embodiment of the invention.
Ausführliche
Beschreibung der ErfindungFull
Description of the invention
Die
folgende ausführliche
Beschreibung gibt eine Beschreibung bestimmter spezifischer Ausführungsformen
der Erfindung wieder. Jedoch kann sich die Erfindung auch auf viele
verschiedene Weisen darstellen, wie sie in den Ansprüchen beschrieben
und von diesen abgedeckt sind. In dieser Beschreibung wird Bezug auf
die Zeichnungen genommen, worin gleiche Teile durchgehend mit gleichen
Bezugszeichen bezeichnet sind.The
following detailed
Description is a description of certain specific embodiments
the invention again. However, the invention can be applied to many
represent different ways as described in the claims
and are covered by these. In this description, reference is made to
taken the drawings, wherein the same parts throughout with the same
Reference numerals are designated.
2 ist
ein Blockschema, das ein Computersystem einer Ausführungsform
der Erfindung darstellt. Dieser Computer 150 umfasst mindestens
einen Prozessor 152, der über einen Prozessor- oder Hauptrechnerbus
an eine erste Speichersteuervorrichtung 154 und eine zweite
Speichersteuervorrichtung 155 angeschlossen ist. Der Computer 150 weist
auch einen ersten Hauptspeicher 156 und einen zweiten Hauptspeicher 157 auf,
die an die erste Speichersteuervorrichtung 154 bzw. die
zweite Speichersteuervorrichtung 155 angeschlossen sind.
Ein Graphikbeschleuniger 160 kommuniziert mit einem lokalen
Graphikspeicher 162 und der ersten Speichersteuervorrichtung 154 über einen
Graphikbeschleunigersteckplatz (AGP – Accelerated Graphics Port) 166.
Der AGP 166 ist kein Bus, sondern eine Punkt-zu-Punkt-Verbindung
zwischen einem AGP-konformen
Ziel, welches die erste Speichersteuervorrichtung 154 ist,
und einem AGP-konformen Taktgeber, welcher der Graphikbeschleuniger 160 ist.
Die Punkt-zu-Punkt-Verbindung des AGP 166 ermöglicht eine Datenübertragung
sowohl bei ansteigenden als auch abfallenden Taktflanken, verbessert
die Datenintegrität, vereinfacht
AGP-Protokolle und macht Buszuteilungsorganisation überflüssig. Der
AGP sorgt für
eine Protokollverbesserung, indem rs eine Fließbandverarbeitung für Lese-
und Schreibzugriffe zum Hauptspeicher 156 ermöglicht.
Die erste Speichersteuervorrichtung 154 und die zweite
Speichersteuervorrichtung 155 nehmen auch Speicherabfragen
aus einem PCI-Bus 158 entgegen. 2 Figure 13 is a block diagram illustrating a computer system of one embodiment of the invention. This computer 150 includes at least one processor 152 via a processor or host bus to a first memory controller 154 and a second memory control device 155 connected. The computer 150 also has a first main memory 156 and a second main memory 157 to the first memory controller 154 or the second memory control device 155 are connected. A graphics accelerator 160 communicates with a local graphics memory 162 and the first memory control device 154 via a graphics accelerator slot (AGP - Accelerated Graphics Port) 166 , The AGP 166 is not a bus, but a point-to-point connection between an AGP-compliant target, which is the first memory controller 154 and an AGP compliant clock which is the graphics accelerator 160 is. The point-to-point connection of the AGP 166 enables data transfer on both rising and falling clock edges, improves data integrity, simplifies AGP protocols, and eliminates the need for a bus arbitration organization. The AGP provides protocol improvement by allowing rs to perform read / write pipeline processing to main memory 156 allows. The first memory control device 154 and the second memory control device 155 also take memory queries from a PCI bus 158 opposite.
Wie
oben festgestellt, ermöglicht
es die Ausführungsform
von 2 dem Graphikbeschleuniger 160, sowohl
auf den ersten Hauptspeicher 156 als auch den lokalen Graphikspeicher 162 zuzugreifen.
Aus der Perspektive des Graphikbeschleunigers 160 sind
der Hauptspeicher 156 und der lokale Graphikspeicher 162 von der
Logik her äquivalent.
Um die Leistung des Systems zu optimieren, können somit Graphikdaten entweder im
ersten Hauptspeicher 156 oder im lokalen Graphikspeicher 162 gespeichert
werden. Im Gegensatz zum Modell des direkten Speicherzugriffs (DMA – Direct
Memory Access), bei dem vor der Verwendung Graphikdaten durch eine
lange sequentielle Blockübertragung
aus dem Hauptspeicher 156 in den lokalen Graphikspeicher 162 kopiert
werden, kann der Graphikbeschleuniger 160 der vorliegenden
Erfindung Graphikdaten auch direkt aus dem Speicher, in dem sie
abgelegt sind, verwenden oder „abrufen" (das „Abruf"-Modell).As stated above, the embodiment of FIG 2 the graphics accelerator 160 , both on the first main memory 156 as well as the local graphics memory 162 access. From the perspective of the graphics accelerator 160 are the main memory 156 and the local graphics memory 162 from the logic equivalent. Thus, to optimize the performance of the system, graphics data may be stored either in the first main memory 156 or in the local graphics memory 162 get saved. In contrast to the direct memory access (DMA) model, in the case of the prior use of graphics data by a long sequential block transfer from the main memory 156 in the local graphics memory 162 can be copied, the graphics accelerator 160 The present invention also uses or "retrieves" graphics data directly from the memory in which it is stored (the "fetch" model).
3 stellt
eine Ausführungsform
des Adressraums 180 des Computersystems 150 (2)
der Erfindung dar. Beispielsweise verfügt ein 32-Bit-Prozessor 152 (2) über einen
Adressraum 180 mit 232 (oder 4,294,967,296) verschiedenen
Adressen. Ein Computersystem 150 (2) verwendet
typischerweise verschiedene Bereiche des Adressraums 180 für verschiedene
Geräte
und Systemagenten. In einer Ausführungsform
umfasst der Adressraum 180 einen Bereich 184 einer
Graphikadressenwiederumsetzungstabelle (GART – Graphics Address Remapping
Tabele) und einen Hauptspeicherbereich 186. 3 represents an embodiment of the address space 180 of the computer system 150 ( 2 For example, a 32-bit processor has 152 ( 2 ) via an address space 180 With 232 (or 4,294,967,296) various addresses. A computer system 150 ( 2 ) typically uses different areas of the address space 180 for different devices and system agents. In one embodiment, the address space includes 180 an area 184 a graphics address remapping table (GART) and main memory area 186 ,
Die
erste Speichersteuervorrichtung 154 stellt einen Satz Register
bereit, um den Bereich zu definieren, der für AGP-Transaktionen zur Verfügung steht.
Ein Basisregister 165 wird verwendet, um die Basisadresse
der AGP-Adressen zu definieren. Ein Bereichsregister 166 wird
verwendet, um die Speichermenge nach der Basisadresse, die den AGP-Transaktionen
reserviert wird, festzulegen. Alternativ kann ein oberes und unteres
Adressenregister verwendet werden, um den AGP-Adressenbereich zu definieren. Ein Betriebssystem, dem
diese Werte bereitgestellt werden, wird darauf abzielen, diese GART-Seiten
innerhalb dieses Speicherbereichs zuzuordnen. Im Gegensatz zu Systemen
aus dem Stand der Technik, zielt das Betriebssystem zuerst darauf
ab, die in den GART-Bereich 184 fallenden Adressen wieder
in der ersten Speichersteuervorrichtung 154 abzubilden.The first memory control device 154 Provides a set of registers to define the area which is available for AGP transactions. A base register 165 is used to define the base address of the AGP addresses. An area register 166 is used to set the amount of memory after the base address reserved for the AGP transactions. Alternatively, upper and lower address registers may be used to define the AGP address range. An operating system that provides these values will aim to map those GART pages within that space. Unlike state-of-the-art systems, the operating system first targets those in the GART area 184 falling addresses again in the first memory control device 154 map.
Indem
ein erster bzw. zweiter Hauptspeicher 156 bzw. 157 und
zwei Speichersteuervorrichtungen 154, 155 verwendet
werden, findet eine schnellere Transaktionsverarbeitung statt als
bei den Systemen aus dem Stand der Technik, die einen einzigen Systemspeicher
und eine einzige Speichersteuervorrichtung verwenden. Insbesondere
können
zwei Speichertransaktionen gleichzeitig durchgeführt werden, indem eine Transaktion mittels
der ersten Speichersteuervorrichtung 154 erfolgt, während eine
weitere Transaktion von der zweiten Speichersteuervorrichtung 155 durchgeführt wird.
Graphikdaten werden typischerweise viele Male gelesen ohne jemals
geändert
oder überschrieben
zu werden. Schreib- und Leseverzögerungszeiten
werden verkürzt, indem
die Graphikdaten in der ersten Speichersteuervorrichtung 154 gespeichert
werden, während
andere Daten in der zweiten Speichersteuervorrichtung 155 gespeichert
werden.By a first or second main memory 156 respectively. 157 and two memory controllers 154 . 155 faster transaction processing takes place than in the prior art systems which use a single system memory and a single memory controller. In particular, two memory transactions may be performed simultaneously by performing a transaction using the first memory controller 154 takes place while another transaction from the second memory control device 155 is carried out. Graphics data is typically read many times without ever being changed or overwritten. Write and read delay times are shortened by the graphics data in the first memory controller 154 while other data in the second memory controller 155 get saved.
Mit
erneutem Bezug auf 3 verfügt der Computer 150 über einen
Hauptspeicher 218 mit 64 Megabyte, der 0 bis 0×03FFFFFF physikalische
Adressen umfasst. 32 Megabyte des Speichers sind der ersten Speichersteuervorrichtung 154,
und 32 Megabyte sind der zweiten Speichersteuervorrichtung 155 zugeteilt. Unter
Verwendung der Basisregister 165 und Bereichsregister 166,
die von der ersten Speichersteuereinheit 154 bereitgestellt
werden, hat das Betriebssystem seine AGP-bezüglichen Daten so eingestellt,
dass sie die unteren 32 Megabyte des ersten Hauptspeichers 156 einnehmen,
die mit den physikalischen Adressen 0×00000000 bis 0×01FFFFFF
bezeichnet sind. Beginnt beispielsweise der GART-Bereich 184 bei
der 256 Megabyte-Grenzadresse
0×10000000
der virtuellen Adressen, ermöglicht
die Erfindung eine Übersetzung
der virtuellen Adressen innerhalb des GART-Bereichs 184 in physikalische
Adressen in den unteren 32 Megabyte des ersten Hauptspeichers 156,
die physikalischen Adressen im Bereich 0×00000000 bis 0×01FFFFFF
entsprechen.With renewed reference to 3 the computer has 150 via a main memory 218 with 64 megabytes, which includes 0 to 0x03FFFFFF physical addresses. 32 megabytes of memory are the first memory controller 154 and 32 megabytes are the second memory controller 155 allocated. Using the base registers 165 and area registers 166 that from the first memory controller 154 provided, the operating system has its AGP-related data set to the lower 32 megabytes of the first main memory 156 occupy the physical addresses 0x00000000 through 0x10FFFFFF. Begins, for example, the GART area 184 at the 256 megabyte boundary address 0x10000000 of the virtual addresses, the invention enables a translation of the virtual addresses within the GART area 184 in physical addresses in the lower 32 megabytes of the first main memory 156 , which correspond to physical addresses in the range 0 × 00000000 to 0 × 01FFFFFF.
Nach
einer Anforderung durch den Graphikbeschleuniger 160 analysiert
die erste Speichersteuervorrichtung 154 die Adresse in
der Anforderung, um festzustellen, ob sich die Adresse im ersten
Hauptspeicher 156 befindet. Befindet sich die Adresse nicht
im ersten Hauptspeicher 156, leitet die erste Speichersteuervorrichtung 154 die
Anforderung an die zweite Speichersteuervorrichtung 155 um.
Dadurch, dass sich die GART-Tabellen und deren diesbezüglicher
Speicher in der ersten Speichersteuervorrichtung 154 mit
dem AGP befinden, ist die Umleitung der Speicherabfrage zur anderen
Speichersteuervorrichtung 155 minimiert.After a request by the graphics accelerator 160 analyzes the first memory controller 154 the address in the request to determine if the address is in the first main memory 156 located. If the address is not in the first main memory 156 , derives the first memory control device 154 the request to the second memory control device 155 around. By having the GART tables and their related memory in the first memory controller 154 with the AGP, is the redirection of the memory polling to the other memory controller 155 minimized.
In
einer anderen Ausführungsform
leitet eine Hardwareabstraktionsschicht (HAL) das Betriebssystem dazu
an, die GART-Tabelle und den Texturspeicher in der ersten Speichersteuervorrichtung 154 abzulegen. HAL
ist eine kleine Softwareschicht, die dem restlichen Computersystem
ein abstraktes Modell irgendeiner Hardware bietet, die nicht Teil
des Prozessors 152 ist. HAL verbirgt plattformspezifische Details
vor dem Rest des Systems und beseitigt somit die Notwendigkeit,
dass das Betriebssystem für
Plattformen verschiedener Lieferanten über verschiedene Versionen
verfügen
muss.In another embodiment, a hardware abstraction layer (HAL) initiates the operating system, the GART table, and the texture memory in the first memory controller 154 store. HAL is a small software layer that provides the rest of the computer system with an abstract model of any hardware that is not part of the processor 152 is. HAL hides platform-specific details from the rest of the system, eliminating the need for the operating system to have different versions for multi-vendor platforms.
Eine
zweite Ausführungsform
der Erfindung ist mit Bezug auf 4 dargestellt.
Diese zweite Ausführungsform
weist eine zweite Speichersteuervorrichtung 190 auf, die
auch über
einen Graphikbeschleunigersteckplatz 192 zur Verwendung
durch einen Graphikbeschleuniger 170 verfügt. Jede
der Speichersteuervorrichtungen 154, 190 stellt
einen Registersatz bereit, der einen Bereich an Adressen definiert,
die vom Betriebssystem für
Transaktionen des Graphikbeschleunigersteckplatzes verwendet werden.
In einer dritten Ausführungsform
enthält
ein einzelner Chip mehrere Speichersteuervorrichtungen, wobei jede
Speichersteuervorrichtung einen AGP aufweist, und einen Satz von
Konfigurationsregistern, die einen Bereich von Adressen kennzeichnen,
die für
AGP-Transaktionen verwendet werden.A second embodiment of the invention is described with reference to 4 shown. This second embodiment has a second memory control device 190 which also has a graphics accelerator slot 192 for use by a graphics accelerator 170 features. Each of the memory controllers 154 . 190 provides a set of registers defining a range of addresses used by the operating system for graphics accelerator slot transactions. In a third embodiment, a single chip includes a plurality of memory controllers, each memory controller including an AGP, and a set of configuration registers identifying a range of addresses used for AGP transactions.
5 stellt
die Übersetzung
einer virtuellen Adresse 200 in eine physikalische Adresse 202 bei
einer Ausführungsform
der Erfindung dar. Wie zuvor erörtert,
zielt das Betriebssystem bei einer Ausführungsform darauf ab, diese
virtuellen Adressen, die in den GART-Bereich 184 (3)
fallen, dem ersten Hauptspeicher 156 (3)
zuzuteilen. 5 Represents the translation of a virtual address 200 into a physical address 202 in one embodiment of the invention. As discussed previously, in one embodiment, the operating system is intended to target those virtual addresses that are in the GART area 184 ( 3 ), the first main memory 156 ( 3 ) allot.
Eine
virtuelle Adresse 200 umfasst ein virtuelles Seitenzahlenfeld 204 und
ein Distanzadressenfeld 206. Die Übersetzung des Inhalts des
virtuellen Seitenzahlenfelds 204 findet statt, indem ein
Seitentabelleneintrag (PTE – Page
Tabele Entry), der dem virtuellen Seitenzahlenfeld 204 einer
Vielzahl von GART-Seitentabelleneinträgen 208 in der GART-Tabelle 210 entspricht,
gefunden wird. Um den geeigneten Seitentabelleneintrag PTE mit der
physikalischen Adressenübersetzung
zu erkennen, wird die GART-Basisadresse 212 bei einem Stadium 213 mit dem
Inhalt des virtuellen Seitenzahlenfelds 204 kombiniert,
um eine PTE-Adresse 214 zu
erhalten. Der durch die PTE-Adresse 214 bezeichnete Inhalt
liefert die physikalische Seitenzahl 216, die der virtuellen
Seitenzahl 204 entspricht. Die physikalische Seitenzahl 216 wird
dann bei einem Stadium 217 mit dem Inhalt des Distanzadressenfelds 206 kombiniert,
um die physikalische Adresse 202 zu bilden. Die physikalische
Adresse 202 bezeichnet wiederum eine Stelle im ersten Hauptspeicher 156,
die die gewünschte
Information aufweist.A virtual address 200 includes a virtual page number field 204 and a distance address field 206 , The translation of the contents of the virtual page number field 204 takes place by adding a page table entry (PTE) to the virtual page number field 204 a variety of GART page table entries 208 in the GART table 210 corresponds, is found. To recognize the appropriate page table entry PTE with the physical address translation, the GART base address 212 at one stage 213 with the contents of the virtual page number field 204 combined to a PTE address 214 to obtain. The one by the PTE address 214 designated content provides the physical page number 216 that's the virtual page number 204 equivalent. The physical page number 216 is then at a stage 217 with the content of the distance address field 206 combined to the physical address 202 to build. The physical address 202 again denotes a location in the first main memory 156 having the desired information.
Die
GART-Tabelle 210 kann mehrere PTEs 208 mit einer
Größe beinhalten,
die der Speicherseitengröße entspricht,
die von den Poozessoren 152 (2) verwendet
wird. Beispielsweise arbeitet ein Intel® Pentium®-
oder Pentium® Pro-Prozessor
mit Speicherseiten, die eine Größe von 4K
haben. Somit kann eine GART-Tabelle 210, die zum Einsatz
mit diesen Prozessoren ausgelegt ist, PTEs beinhalten, die sich
auf 4K-Seiten beziehen. In einer Ausführungsform umfasst das virtuelle
Seitenzahlenfeld 204 die oberen 20 Bits, und das Distanzadressenfeld 206 umfasst
die unteren 12 Bits einer 32 Bit umfassenden virtuellen Adresse 200.
Somit umfasst jede Seite 212 – 4096
(4K) Adressen, und in den unteren 12 Bits des Distanzfeldes 206 befindet
sich die gewünschte
Information in einer Seite, auf die die oberen 20 Bits des virtuellen
Seitenzahlenfelds 204 verweisen.The GART table 210 can have several PTEs 208 with a size corresponding to the page size of the memory, that of the processor 152 ( 2 ) is used. For example, an Intel® Pentium® or Pentium® Pro processor with memory pages that are 4K in size works. Thus, a GART table 210 Designed for use with these processors, PTEs are related to 4K pages. In one embodiment, the virtual page number field includes 204 the upper 20 bits, and the offset address field 206 includes the lower 12 bits of a 32-bit virtual address 200 , Thus, each page includes 212-4096 (4K) addresses, and in the lower 12 bits of the distance field 206 The information you want is in a page that points to the top 20 bits of the virtual page number field 204 refer.
6 stellt
ein mögliches
Format für
einen GART-PTE 220 dar. Der GART-PTE 220 umfasst
ein Merkmalbitfeld 222 und ein Feld 224 für physikalische
Seitenübersetzung
(PPT – Physical
Page Translation). Im Gegensatz zu Systemen aus dem Stand der Technik,
bei denen eine festverdrahtete Schaltung ein Seitentabellenformat
festlegt, kann die GART-Tabelle 210 (5)
PTEs mit konfigurierbarer Länge
umfassen, die eine Optimierung der Tabellengröße und die Verwendung von Merkmalbits
ermöglicht,
die von der Software definiert sind. Das PPT-Feld 224 umfasst
PPTSize-Bits zur Erzeugung einer physikalischen Adresse 202 (5). PPTSize
definiert die Anzahl übersetzbarer
Adressen. 6 represents a possible format for a GART-PTE 220 dar. The GART-PTE 220 includes a feature bit field 222 and a field 224 for physical page translation (PPT). Unlike prior art systems where a hardwired circuit sets a page table format, the GART table 210 ( 5 ) Comprise configurable-length PTEs that allow for optimization of the table size and the use of feature bits defined by the software. The PPT field 224 includes PPTSize bits for generating a physical address 202 ( 5 ). PPTSize defines the number of translatable addresses.
In
einer Ausführungsform
implementiert eine BIOS-Initialisierung die GART-Tabelle 210 (5),
indem während
des Urladens des Systems Konfigurationsregister in die erste Speichersteuervorrichtung 154 (2)
geladen werden. In einer anderen Ausführungsform implementiert das
Betriebssystem die GART-Tabelle 210 (5)
unter Verwendung eines API-Betriebssystems, um die Konfigurationsregister
während
des Urladens des Systems in die erste Speichersteuervorrichtung 154 (3)
zu laden.In one embodiment, a BIOS initialization implements the GART table 210 ( 5 ) while booting the system configuration registers into the first memory controller 154 ( 2 ) getting charged. In another embodiment, the operating system implements the GART table 210 ( 5 ) using an API operating system to transfer the configuration registers during booting of the system into the first memory controller 154 ( 3 ) to load.
Wie
zuvor bereits festgestellt, umfasst eine GART-Tabelle 210 viele
PTEs, wobei jeder eine physikalische Seitenübersetzungsinformation 224 und
Softwaremerkmalbits 222 aufweist. Die GART-Tabelle 210 kann bei
jeder physikalischen Adresse im Hauptspeicher 218 hinterlegt
werden, wie beispielsweise die 2 Megabyte umfassende physikalische
Adresse 0×00200000.
Das Betriebssystem zielt darauf ab, die GART-Tabelle 210 im
Speicherbereich zu hinterlegen, der von den Registern 165, 166 in
der ersten Speichersteuervorrichtung 154 bereitgestellt
wird, falls Speicherplatz verfügbar
ist. Indem die GART-Tabelle 210 in diesem Speicherbereich
hinterlegt wird, müssen
im Vergleich zu herkömmlichen
Systemen weniger Abfragen aus dem Graphikbeschleuniger 160 über den
PCI-Bus 158 zur zweiten Speichersteuervorrichtung 166 laufen.
Für ein
System mit einer Speicherseitengröße von 4K und einem GART-PTE 220 von
8 Byte Länge,
ist die GART-Tabelle 210 wie folgt konfiguriert: As noted earlier, a GART table includes 210 many PTEs, each with physical page translation information 224 and software feature bits 222 having. The GART table 210 can be at any physical address in main memory 218 stored, such as the 2 megabyte physical address 0 × 00200000. The operating system aims to get the GART table 210 in the memory area to be stored by the registers 165 . 166 in the first memory control device 154 is provided if space is available. By the GART table 210 in this memory area, fewer queries need to be taken from the graphics accelerator compared to conventional systems 160 over the PCI bus 158 to the second memory control device 166 to run. For a system with a memory page size of 4K and a GART-PTE 220 of 8 bytes in length, is the GART table 210 configured as follows:
Um
die Anzahl von PTEs in der GART-Tabelle 210 zu bestimmen,
wird die Größe des physikalischen Adressraums
im Hauptspeicher 218, die den AGP-bezogenen Daten zugeteilt
ist, die oberen 32 Megabyte – 33554432
Byte, durch die Speicherseitengröße, 4 K – 4096 Byte,
dividiert, um 8192 PTEs zu erhalten. Da in jedem PTE 8 Byte enthalten
sind, besteht die GART-Tabelle aus 65.536 Byte (8192 × 8). Wenn
8192 – 213 – 2PTESize,
ist somit PTESize = 13. Unter Verwendung der von den Basis- und
Bereichsregistern bereitgestellten Werte, programmiert das Betriebssystem
die Konfigurationsregister mit den folgenden Werten, um die GART-Tabelle 210 zu
konfigurieren: To the number of PTEs in the GART table 210 The size of the physical address space in main memory is determined 218 , which is allocated to the AGP-related data, divides the upper 32 megabytes - 33554432 bytes, by the memory page size, 4K - 4096 bytes, to obtain 8192 PTEs. Since there are 8 bytes in each PTE, the GART table consists of 65,536 bytes (8192 × 8). Thus, if 8192 - 213 - 2PTESize, then PTESize = 13. Using the provided by the base and range registers values, the operating system programs the configuration registers with the following values to the GART table 210 to configure:
Es
ist festzuhalten, dass das Betriebssystem wählte, GARTBase und PhysBase
im Bereich von Adressen einzustellen, die vom Basisregister 165 und
Bereichsregister 166 vorgeschlagen wurden, die in der ersten Speichersteuervorrichtung 154 hinterlegt
waren.It should be noted that the operating system chose to set GARTBase and PhysBase in the range of addresses from the base register 165 and area registers 166 have been proposed in the first memory control device 154 were deposited.
7 stellt
die Übersetzung
einer virtuellen Adresse 200 in eine physikalische Adresse 202 (5a) mittels eines assoziativen Übersetzungspufferspeichers
(TLB) 240 dar (TLB – Translation
Lookaside Buffer). Wie zuvor umfasste eine virtuelle Adresse 200 ein
virtuelles Seitenzahlenfeld 204 und ein Distanzadressenfeld 206.
Die Übersetzung
des virtuellen Seitenzahlenfelds 204 findet dadurch statt,
dass ein PTE der GART-Tabelle 210, der dem Inhalt des virtuellen
Seitenzahlenfelds 204 entspricht, gefunden wird. Die GART-Basisadresse 212 wird
bei 213 mit dem Inhalt des virtuellen Seitenzahlenfelds 204 kombiniert,
um eine PTE-Adresse 214 zu erhalten. Die PTE-Adresse 214 wiederum
stellt die physikalische Seitenzahl 216 bereit, die der
virtuellen Seitenzahl 204 entspricht. An diesem Punkt wird
ein TLB-Eintrag 242 gebildet, der ein virtuelles Seitenfeld 246,
sein entsprechendes physikalisches Seitenfeld 244, einen
LRU-Zähler 250 (LRU – Least
Recently Used) zur Bestimmung des relativen Alters des TLB-Eintrags 242 und
einen Statusanzeiger 248 aufweist, der bestimmt, wann der
TLB 240 über
gültige
Information verfügt.
Der TLB-Eintrag 242 wird in einem TLB 240 mit mehreren
TLB-Einträgen 252 gespeichert.
In einer Ausführungsform
gibt es genügend
viele TLB-Einträge 252, um
alle übersetzbaren
Adressen im gesamten GART-Bereich 184 (3)
abzudecken. In dieser Ausführungsform
umfasst die erste Speichersteuervorrichtung 154 (2)
einen Registerblock, um den TLB 240 zu implementieren.
In einer anderen Ausführungsform
umfasst die erste Speichersteuervorrichtung 154 (2)
einen Schnellspeicherabschnitt, wie einen Cache-SRAM, um den TLB 240 zu
implementieren. 7 Represents the translation of a virtual address 200 into a physical address 202 ( 5a ) using an associative translation buffer (TLB) 240 (TLB - Translation Lookaside Buffer). As before, included a virtual address 200 a virtual page number field 204 and a distance address field 206 , The translation of the virtual page number field 204 This is done by making a PTE of the GART table 210 that is the contents of the virtual page number field 204 corresponds, is found. The GART base address 212 is at 213 with the contents of the virtual page number field 204 combined to a PTE address 214 to obtain. The PTE address 214 in turn represents the physical page number 216 ready, that of the virtual page number 204 equivalent. At this point, a TLB entry is made 242 formed, which is a virtual page field 246 , its corresponding physical side field 244 , an LRU counter 250 (LRU - Least Recently Used) to determine the relative age of the TLB entry 242 and a status indicator 248 which determines when the TLB 240 has valid information. The TLB entry 242 will be in a TLB 240 with several TLB entries 252 saved. In one embodiment, there are enough TLB entries 252 to all translatable addresses throughout the GART area 184 ( 3 ) cover. In this embodiment, the first memory control device comprises 154 ( 2 ) a register block to the TLB 240 to implement. In another embodiment, the first memory control device 154 ( 2 ) a fast memory section, such as a cache SRAM, around the TLB 240 to implement.
Die
Erfindung überwindet
mehrere Einschränkungen
bestehender Technologien und Alternativen auf vorteilhafte Weise.
Beispielsweise kann der AGP-Anschluss Datenübertragungen über 500
Megabyte in der Sekunde unterstützen.
Indem ein Speichersatz festgelegt wird, der für AGP-Transaktionen verfügbar ist,
können
Betriebssysteme die Systemleistung optimieren, indem sie die Graphikdaten
auf der Speichersteuervorrichtung mit dem Graphikbeschleunigersteckplatz
speichern. Die Speichersteuervorrichtung mit dem Graphikbeschleunigersteckplatz
verarbeitet Speichertransaktionen, wobei gleichzeitig von der anderen
Speichersteuervorrichtung Transaktionen verarbeitet werden.The
Overcomes invention
several restrictions
existing technologies and alternatives in an advantageous way.
For example, the AGP port can transfer data over 500
Support megabytes per second.
By specifying a saveset available for AGP transactions,
can
Operating systems optimize system performance by using the graphics data
on the memory controller with the graphics accelerator slot
to save. The memory controller with the graphics accelerator slot
processes memory transactions, being simultaneously from the other
Storage control device transactions are processed.
Zusätzlich ermöglicht die
Erfindung die Speicherung, Adressierung und das Abrufen von Graphikdaten aus
einem relativ kostengünstigen Hauptspeicher
ohne Bandbreiteneinschränkungen
gegenwärtiger
Systembusauslegungen. Es ist festzuhalten, dass in einer alternativen
Ausführungsform
der Erfindung die Speichersteuervorrichtungen sich auf demselben
Halbleiterchip befinden können
wie der Speicher, den sie steuern.In addition, the
The invention relates to the storage, addressing and retrieval of graphic data
a relatively inexpensive main memory
without bandwidth restrictions
current
Systembusauslegungen. It should be noted that in an alternative
embodiment
In accordance with the invention, the memory controllers are on the same
Semiconductor chip can be located
like the store they control.
Im
Gegensatz zur herkömmlichen
Computersystemarchitektur 100 (1) ermöglichen
es Ausführungsformen
der Erfindung, einen Teil der 3D-Graphikdaten, wie Texturdaten,
aus dem lokalen Graphikspeicher in den Hauptspeicher zu verlegen,
der mit einer dafür
vorgesehenen Speichersteuervorrichtung verbunden ist, um die Größe und somit
die Kosten des lokalen Graphikspeichers zu reduzieren und die Systemleistung
zu verbessern. Da Texturdaten beispielsweise im Allgemeinen nur
gelesen werden, verursacht ihre Umsiedlung in den Hauptspeicher
keine Probleme bei der Kohärenz
oder Datenkonsistenz.Unlike the traditional computer system architecture 100 ( 1 Embodiments of the invention allow a portion of the 3D graphics data, such as texture data, to be moved from the local graphics memory to main memory coupled to a dedicated memory controller to reduce the size and thus the cost of the local graphics memory and Improve system performance. For example, since texture data is generally read only, its relocation to main memory does not cause problems in coherence or data consistency.
Da
darüber
hinaus die Komplexität
und Qualität
von 3D-Bildern zugenommen hat, führte
das Belassen von 3D-Graphikdaten im lokalen Graphikspeicher 112 mit
der Zeit zu einem Anstieg der Computersystemkosten. Indem 3D-Graphikdaten
in eine Speichersteuervorrichtung mit eigenem Hauptspeicher umgelagert
werden, reduziert die Architektur der Erfindung die gesamten Systemkosten,
da es weniger teuer ist, den Hauptspeicher 156 mit einer
zweiten Steuervorrichtung 154 auszubauen, als den lokalen
Graphikpufferspeicher 112 zu vergrößern.Moreover, as the complexity and quality of 3D images has increased, leaving 3D graphics data in local graphics memory has resulted 112 Over time, computer system costs increase. By relocating 3D graphics data to a memory controller having its own main memory, the architecture of the invention reduces the overall system cost, since it is less expensive, the main memory 156 with a second control device 154 as the local graphics cache 112 to enlarge.