Accelerated graphics port multiple entry gart cache allocation system and method
First Claim
1. A computer system, comprising:
- a processor executing software instructions and generating graphics data;
a main memory having an addressable memory space comprising a plurality of bytes of storage, wherein each of the plurality of bytes of storage has a unique address;
the software instructions and the graphics data being stored in some of the plurality of bytes of storage of said main memory, wherein the graphics data is stored in a plurality of pages of graphics data, each of the plurality of pages of graphics data comprising a number of the plurality of bytes of storage;
a graphics processor generating video display data from the graphics data and adapted for connection to a video display to display the video display data;
a first interface logic for connecting said processor to said main memory;
a second interface logic for connecting said processor and said main memory to said graphics processor;
said second interface logic having a cache memory for storing a plurality of 32 bit wide GART table entries;
a graphics address remapping table (GART table) having a plurality of 32 bit entries, each of the plurality of GART table entries comprising an address pointer to a corresponding main memory address of each of the plurality of pages of graphics data, the plurality of GART table entries being stored in some other of the plurality of bytes of storage of said main memory and each of the plurality of GART table entries being associated with a block of graphics device addresses; and
said graphics processor requesting a graphics data transaction by asserting a graphics device address to said second interface logic, wherein said second interface logic determines if a required one of the plurality of GART table entries is stored in said cache memory;
if the required one of the plurality of GART table entries is stored in said cache memory then said second interface logic uses the required one of the plurality of GART table entries to translate the graphics device address of the requested graphics data transaction to a corresponding address of a one of the plurality of pages of graphics data stored in said main memory;
if the required one of the plurality of GART table entries is not stored in said cache memory, then said second interface logic reads at least two of the plurality of GART table entries from said main memory, wherein one of the at least two being the required one of the plurality of GART table entries needed for address translation and the at least two of the plurality of GART table entries are quadword aligned; and
said second interface logic stores the quadword aligned at least two of the plurality of GART table entries in said cache memory, and uses the required one of the plurality of GART table entries to translate the graphics device address of the requested graphics data transaction to the corresponding address of the one of the plurality of pages of graphics data stored in said main memory.
4 Assignments
0 Petitions
Accused Products
Abstract
A computer system having a core logic chipset that functions as a bridge between an Accelerated Graphics Port ("AGP") bus device such as a graphics controller, and a host processor and computer system memory wherein a Graphics Address Remapping Table ("GART table") is used by the core logic chipset to remap virtual memory addresses used by the AGP graphics controller into physical memory addresses that reside in the computer system memory The GART table enables the AGP graphics controller to work in contiguous virtual memory address space, but actually use non-contiguous blocks or pages of physical system memory to store textures, command lists and the like. The GART table is made up of a plurality of entries, each entry comprising an address pointer to a base address of a page of graphics data in memory. The core logic chipset may cache a subset of the most recently used GART table entries to increase AGP performance when performing the address translation. When a GART table entry is not found in the cache, a memory access is required to obtained the needed GART table entry. There are two GART table entries in each quadword returned in toggle mode of the cacheline of memory information returned from the memory read access. At least one quadword (two GART table entries) are stored in the cache each time a memory access is required because of a cache miss.
61 Citations
24 Claims
-
1. A computer system, comprising:
-
a processor executing software instructions and generating graphics data; a main memory having an addressable memory space comprising a plurality of bytes of storage, wherein each of the plurality of bytes of storage has a unique address; the software instructions and the graphics data being stored in some of the plurality of bytes of storage of said main memory, wherein the graphics data is stored in a plurality of pages of graphics data, each of the plurality of pages of graphics data comprising a number of the plurality of bytes of storage; a graphics processor generating video display data from the graphics data and adapted for connection to a video display to display the video display data; a first interface logic for connecting said processor to said main memory; a second interface logic for connecting said processor and said main memory to said graphics processor; said second interface logic having a cache memory for storing a plurality of 32 bit wide GART table entries; a graphics address remapping table (GART table) having a plurality of 32 bit entries, each of the plurality of GART table entries comprising an address pointer to a corresponding main memory address of each of the plurality of pages of graphics data, the plurality of GART table entries being stored in some other of the plurality of bytes of storage of said main memory and each of the plurality of GART table entries being associated with a block of graphics device addresses; and said graphics processor requesting a graphics data transaction by asserting a graphics device address to said second interface logic, wherein said second interface logic determines if a required one of the plurality of GART table entries is stored in said cache memory; if the required one of the plurality of GART table entries is stored in said cache memory then said second interface logic uses the required one of the plurality of GART table entries to translate the graphics device address of the requested graphics data transaction to a corresponding address of a one of the plurality of pages of graphics data stored in said main memory; if the required one of the plurality of GART table entries is not stored in said cache memory, then said second interface logic reads at least two of the plurality of GART table entries from said main memory, wherein one of the at least two being the required one of the plurality of GART table entries needed for address translation and the at least two of the plurality of GART table entries are quadword aligned; and said second interface logic stores the quadword aligned at least two of the plurality of GART table entries in said cache memory, and uses the required one of the plurality of GART table entries to translate the graphics device address of the requested graphics data transaction to the corresponding address of the one of the plurality of pages of graphics data stored in said main memory. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19)
-
-
20. A method, in a computer system, of caching at least two of a plurality of graphics address remapping table (GART table) entries stored the computer system memory, said method comprising the steps of:
-
storing a plurality of pages of graphics data in any order in a computer system memory; storing a plurality of entries of a graphics address remapping table (GART table) in the computer system memory, wherein each one of the plurality of GART table entries comprises 32 bits, corresponds to a one of the plurality of pages of graphics data stored in the computer system memory and is used for translating graphics device addresses to corresponding addresses of the plurality of pages of graphics data in the computer system memory; translating a graphics device address of a graphics data transaction request by determining if a required one of the plurality of GART table entries is stored in a cache memory of the computer system; if the required one is stored in the cache memory then using the required one for translating the graphics device address to a corresponding address of a one of the plurality of pages of graphics data stored in the system memory; if the required one is not stored in the cache memory then reading at least two of the plurality of GART table entries stored in the computer system memory, wherein one of the at least two being the required one of the plurality of GART table entries needed for address translation and the at least two of the plurality of GART table entries are quadword aligned; and storing the quadword aligned at least two of the plurality of GART table entries read from the computer system memory into the cache memory then using the required one for translating the graphics device address to the corresponding address of the one of the plurality of pages of graphics data stored in the system memory. - View Dependent Claims (21, 22, 23, 24)
-
Specification