DE69814166T2 - COMPUTER WITH ACCELERATED GRAPHIC PORT AND WITH MULTIPLE MEMORY CONTROLS AND METHOD FOR MANUFACTURING THE SAID CONTROLS - Google Patents

COMPUTER WITH ACCELERATED GRAPHIC PORT AND WITH MULTIPLE MEMORY CONTROLS AND METHOD FOR MANUFACTURING THE SAID CONTROLS Download PDF

Info

Publication number
DE69814166T2
DE69814166T2 DE69814166T DE69814166T DE69814166T2 DE 69814166 T2 DE69814166 T2 DE 69814166T2 DE 69814166 T DE69814166 T DE 69814166T DE 69814166 T DE69814166 T DE 69814166T DE 69814166 T2 DE69814166 T2 DE 69814166T2
Authority
DE
Germany
Prior art keywords
memory
address
graphics
control device
configuration register
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
DE69814166T
Other languages
German (de)
Other versions
DE69814166D1 (en
Inventor
Joseph Jeddeloh
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.)
Micron Technology Inc
Original Assignee
Micron Technology Inc
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
Priority claimed from US09/000,511 external-priority patent/US6252612B1/en
Priority claimed from US09/000,517 external-priority patent/US6157398A/en
Application filed by Micron Technology Inc filed Critical Micron Technology Inc
Priority claimed from PCT/US1998/027791 external-priority patent/WO1999034293A1/en
Publication of DE69814166D1 publication Critical patent/DE69814166D1/en
Application granted granted Critical
Publication of DE69814166T2 publication Critical patent/DE69814166T2/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Description

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:

Figure 00130001
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:
Figure 00130001

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:

Figure 00140001
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:
Figure 00140001

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.

Claims (13)

Computer (150) mit mindestens einem Prozessor (152), der direkt an einen Prozessorbus (153) und eine erste Speichersteuervorrichtung (154) gekoppelt ist, die an den Prozessorbus (153) gekoppelt ist, und direkt an einen Graphikbeschleuniger (160) gekoppelt ist, und direkt an einen ersten Hauptspeicher (156) gekoppelt ist, darüber hinaus mindestens ein Konfigurationsregister umfassend, das einen Bereich von Adressen definiert, die für Transaktionen des AGP-Steckplatzes zur Verfügung stehen, dadurch gekennzeichnet, dass eine zweite Speichersteuervorrichtung (155), die sich von der ersten Speichersteuervorrichtung (154) unterscheidet, direkt an den Prozessorbus (153) gekoppelt ist, und direkt an einen zweiten Hauptspeicher (157) gekoppelt ist.Computer ( 150 ) with at least one processor ( 152 ) directly to a processor bus ( 153 ) and a first memory control device ( 154 ) connected to the processor bus ( 153 ) and directly to a graphics accelerator ( 160 ) and directly to a first main memory ( 156 ), further comprising at least one configuration register defining a range of addresses available for transactions of the AGP slot, characterized in that a second memory control device ( 155 ) resulting from the first memory control device ( 154 ), directly to the processor bus ( 153 ) and directly to a second main memory ( 157 ) is coupled. System nach Anspruch 1, bei dem die erste Speichersteuervorrichtung (154) eine Graphikadressenwiederumsetzungstabelle unterhält, die mindestens einen Seitentabelleneintrag (PTE) (214) umfasst, der Information zur Übersetzung einer virtuellen Adresse in eine physikalische Adresse (202) bereitstellt, bei dem die virtuelle Adresse einen ersten Teilbereich und einen zweiten Teilbereich beinhaltet, wobei der erste Teilbereich einem PTE (214) in der Graphikadressenwiederumsetzungstabelle entspricht, und der zweite Teilbereich und die vom PTE (214) gelieferte Information miteinander kombiniert werden, um die physikalische Adresse (202) bereitzustellen.The system of claim 1, wherein the first memory control device ( 154 ) maintains a graphics address rewrite table containing at least one page table entry (PTE) ( 214 ), the information for translating a virtual address into a physical address ( 202 ), in which the virtual address includes a first subarea and a second subarea, the first subarea being a PTE ( 214 ) in the graphics address re-conversion table, and the second sub-range and the one from the PTE ( 214 ) are combined with each other to obtain the physical address ( 202 ). System nach Anspruch 2, bei dem der erste Teilbereich ein Feld (204) virtuelle Seitenzahl umfasst.The system of claim 2, wherein the first subarea is a field ( 204 ) includes virtual page number. System nach Anspruch 2, bei dem der zweite Teilbereich ein Zusatzfeld (206) umfasst.System according to claim 2, wherein the second subarea is an additional field ( 206 ). System nach Anspruch 2, bei dem die Graphikadressenwiederumsetzungstabelle dadurch konfiguriert wird, indem das mindestens eine Konfigurationsregister während des Urladens eines Computersystems geladen wird.The system of claim 2, wherein the graphics address re-conversion table is configured by the at least one configuration register while bootstrapping a computer system. System nach Anspruch 1, bei dem das mindestens eine Konfigurationsregister eine Startadresse der Graphikadressenwiederumsetzungstabelle enthält.The system of claim 1, wherein said at least one Configuration register, a start address of the graphic address re-conversion table contains. System nach Anspruch 1, bei dem das mindestens eine Konfigurationsregister eine Grenzadresse enthält, die die niedrigste Adresse eines Graphikadressenwiederumsetzungstabellenbereichs definiert.The system of claim 1, wherein said at least one Configuration register contains a boundary address that has the lowest address of a graphics address rewrite table area. System nach Anspruch 1, bei dem das mindestens eine Konfigurationsregister ein Bereichsregister enthält, das die Speichermenge definiert, die für Transaktionen (190) des AGP-Steckplatzes zur Verfügung steht.The system of claim 1, wherein the at least one configuration register includes a range register defining the amount of memory used for transactions ( 190 ) of the AGP slot is available. System nach Anspruch 1, bei dem eine BIOS-Initialisierung das mindestens eine Konfigurationsregister lädt.The system of claim 1, wherein a BIOS initialization which loads at least one configuration register. System nach Anspruch 1, bei dem eine API-Betriebssystem das mindestens eine Konfigurationsregister lädt.The system of claim 1, wherein an API operating system which loads at least one configuration register. System nach Anspruch 1, bei dem sich der erste Mikrocontroller und der Speicher auf ein und demselben Halbleiterchip befinden.The system of claim 1, wherein the first microcontroller and the memory are located on the same semiconductor chip. Verfahren zur Herstellung eines Mehrfachspeicher-Kontrollercomputers, das folgendes umfasst: eine erste Speichersteuervorrichtung (154) mit einem AGP-Steckplatz (190) an einen Prozessorbus (153) zu koppeln, bei dem der AGP-Steckplatz an einen Graphikbeschleuniger anschließbar ist; und mindestens ein Konfigurationsregister an die erste Speichersteuervorrichtung (154) anzuschließen, bei dem mindestens ein Konfigurationsregister einen Bereich von Adressen in einem Hauptspeicher (156) definiert, die dem AGP-Steckplatz zur Verfügung stehen; den ersten Speicher (156) direkt an die erste Speichersteuervorrichtung (154) anzuschließen, gekennzeichnet durch das direkte Anschließen eines zweiten Hauptspeichers (157) an eine zweite Speichersteuervorrichtung (155) und das direkte Anschließen der zweiten Speichersteuervorrichtung (155) an den Prozessorbus (153).A method of manufacturing a multi-memory controller computer, comprising: a first memory controller ( 154 ) with an AGP slot ( 190 ) to a processor bus ( 153 ) in which the AGP slot is connectable to a graphics accelerator; and at least one configuration register to the first memory control device ( 154 ), wherein at least one configuration register stores a range of addresses in a main memory ( 156 ) that are available to the AGP slot; the first memory ( 156 ) directly to the first memory control device ( 154 ), characterized by the direct connection of a second main memory ( 157 ) to a second memory control device ( 155 ) and the direct connection of the second memory control device ( 155 ) to the processor bus ( 153 ). Anwendungsverfahren für einen Mehrfachspeicher-Kontrollercomputer, der nach Anspruch 12 hergestellt wurde, das folgendes umfasst: eine Graphikadressenwiederumsetzungstabelle in einem Speicher in dem Computer zu speichern, eine Speichertransaktion in der ersten Speichersteuervorrichtung gleichzeitig mit mindestens einem Teil einer Speichertransaktion in der zweiten Speichersteuervorrichtung durchzuführen; eine Graphikadressenverschiebungstabelle innerhalb des Bereichs von Adressen zu speichern, die für Transaktionen (160) des AGP-Steckplatzes zur Verfügung stehen, bei dem die Graphikadressenverschiebungstabelle von der ersten Speichersteuervorrichtung im ersten Speicher (156) gespeichert wird.An application method for a multi-store controller computer manufactured according to claim 12, comprising: storing a graphics address re-conversion table in a memory in the computer, perform a memory transaction in the first memory controller simultaneously with at least a portion of a memory transaction in the second memory controller; store a graphics address translation table within the range of addresses used for transactions ( 160 ) of the AGP slot in which the graphics address translation table from the first memory controller in the first memory ( 156 ) is stored.
DE69814166T 1997-12-30 1998-12-29 COMPUTER WITH ACCELERATED GRAPHIC PORT AND WITH MULTIPLE MEMORY CONTROLS AND METHOD FOR MANUFACTURING THE SAID CONTROLS Expired - Lifetime DE69814166T2 (en)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US517 1997-12-30
US09/000,511 US6252612B1 (en) 1997-12-30 1997-12-30 Accelerated graphics port for multiple memory controller computer system
US511 1997-12-30
US09/000,517 US6157398A (en) 1997-12-30 1997-12-30 Method of implementing an accelerated graphics port for a multiple memory controller computer system
PCT/US1998/027791 WO1999034293A1 (en) 1997-12-30 1998-12-29 Accelerated graphics port for multiple memory controller computer system

Publications (2)

Publication Number Publication Date
DE69814166D1 DE69814166D1 (en) 2003-06-05
DE69814166T2 true DE69814166T2 (en) 2006-08-03

Family

ID=26667749

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69814166T Expired - Lifetime DE69814166T2 (en) 1997-12-30 1998-12-29 COMPUTER WITH ACCELERATED GRAPHIC PORT AND WITH MULTIPLE MEMORY CONTROLS AND METHOD FOR MANUFACTURING THE SAID CONTROLS

Country Status (2)

Country Link
AT (1) ATE239252T1 (en)
DE (1) DE69814166T2 (en)

Also Published As

Publication number Publication date
DE69814166D1 (en) 2003-06-05
ATE239252T1 (en) 2003-05-15

Similar Documents

Publication Publication Date Title
DE69918022T2 (en) NO BLOCKING REQUIRING TEXTURE CACHE SYSTEM
DE60026539T2 (en) INPUT / OUTPUT ADDRESS TRANSLATION IN A BRIDGE NEAR THE LOCAL IN / OUT BUS
DE102011076894B9 (en) Persistent storage for a main memory of a processor
DE102007032307A1 (en) Dedicated mechanism for page imaging in a GPU
US6157398A (en) Method of implementing an accelerated graphics port for a multiple memory controller computer system
DE69736611T2 (en) Reorganization of memory references for pixels in a page-oriented memory architecture
DE69722117T2 (en) Uniform memory architecture with dynamic graphics memory allocation
DE69629140T2 (en) Cache-ability attribute for virtual addresses in caches with both virtual and physical index
DE60211076T2 (en) Data transfer between virtual addresses
US6717582B2 (en) Accelerated graphics port for a multiple memory controller computer system
DE19526007C2 (en) Horizontally partitioned instruction cache
DE19620847B4 (en) Texture mapping method and apparatus
DE69734129T2 (en) Hierarchical data processing system with symmetric multiprocessors
DE102016211642B4 (en) PATCH MEMORY SYSTEM
DE69819686T2 (en) OBJECT AND METHOD FOR PROVIDING EFFICIENT MULTIPLE-USER ACCESS TO DISTRIBUTED OPERATING SYSTEM CORE CODE BY INSTANCING
DE69635403T2 (en) Graphics library on split levels
DE60310720T2 (en) METHOD AND DEVICE FOR CODING TEXTURE INFORMATION
DE102008062044B4 (en) 1In-memory, in-page directory cache coherency configuration
DE202010017667U1 (en) Data storage device with flash memory chips
DE4022885C2 (en) Method for moving storage areas and hierarchy storage system
DE102013018135B4 (en) Address bit remapping scheme for reducing an access resolution of DRAM accesses
DE19709227A1 (en) Rapid loading of texture image data into memory of computer graphics system
DE69815482T2 (en) Computer arrangement with processor and memory hierarchy and its operating method
DE112021001345T5 (en) ON-DEMAND STORAGE ALLOCATION
DE60003426T2 (en) STATUS BITS FOR CACHE MEMORY

Legal Events

Date Code Title Description
8364 No opposition during term of opposition