Accelerated Graphics Port two level Gart cache having distributed first level caches
First Claim
1. A computer system having a core logic chipset which connects a computer processor and memory to an accelerated graphics port (AGP) processor, said system comprising:
- a system processor executing software instructions and generating graphics data;
a system 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 system 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;
an accelerated graphics port (AGP) processor generating video display data from the graphics data and adapted for connection to a video display to display the video display data;
a core logic chipset having a common second-level cache memory;
said core logic chipset having a first interface logic for connecting said system processor to said system memory;
said first interface logic having a first first-level cache memory, said first first-level cache memory connected to said common second-level cache memory;
said core logic chipset having a second interface logic for connecting said system processor and said system memory to said AGP processor;
said second interface logic having a second first-level cache memory, said second first-level cache memory connected to said common second-level cache memory;
a graphics address remapping table (GART table) having a plurality of entries, each of the plurality of GART table entries comprising an address pointer to a corresponding system 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 system memory and each of the plurality of GART table entries being associated with a block of graphics device addresses;
said AGP processor requests a graphics data transaction by asserting a graphics device address to said second interface logic; and
said second interface logic determines if a required one of the plurality of GART table entries is stored in said second first-level cache memory, wherein;
if the required one of the plurality of GART table entries is stored in said second first-level 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 system memory;
if the required one of the plurality of GART table entries is not stored in said second first-level cache memory, then said core logic chipset determines if the required one of the plurality of GART table entries is stored in said common second-level cache memory;
if the required one of the plurality of GART table entries is stored in said common second-level cache memory, then said core logic chipset stores the required one in said second first-level cache memory, and 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 the corresponding address of the one of the plurality of pages of graphics data stored in said system memory; and
if the required one of the plurality of GART table entries is not stored in said common second-level cache memory, then said core logic chipset accesses said system memory to obtain the required one of the plurality of GART table entries from said GART table, said core logic chipset stores the required one of the plurality of GART table entries from said GART table in said common second-level cache memory and said second first-level cache memory, and 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 the corresponding address of the one of the plurality of pages of graphics data stored in said system 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, and feature flags that may be used to customize the associated page. The core logic chipset caches a subset of the most recently used GART table entries to increase AGP performance when performing the address translation. The core logic chipset uses a two-level GART cache comprising a plurality of first-level GART caches and a common second level GART cache. Each of the plurality of first-level GART caches are coupled to a respective interface in the computer system and effectively de-couple the different interface GART address translations so that GART cache thrashing and cache arbitration delays are substantially reduced. Separate decoupled first-level GART caches for each interface allow concurrent GART address translations among the different interfaces. Individual first-level GART caches may be fined tuned for each associated interface.
108 Citations
34 Claims
-
1. A computer system having a core logic chipset which connects a computer processor and memory to an accelerated graphics port (AGP) processor, said system comprising:
-
a system processor executing software instructions and generating graphics data; a system 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 system 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; an accelerated graphics port (AGP) processor generating video display data from the graphics data and adapted for connection to a video display to display the video display data; a core logic chipset having a common second-level cache memory; said core logic chipset having a first interface logic for connecting said system processor to said system memory; said first interface logic having a first first-level cache memory, said first first-level cache memory connected to said common second-level cache memory; said core logic chipset having a second interface logic for connecting said system processor and said system memory to said AGP processor; said second interface logic having a second first-level cache memory, said second first-level cache memory connected to said common second-level cache memory; a graphics address remapping table (GART table) having a plurality of entries, each of the plurality of GART table entries comprising an address pointer to a corresponding system 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 system memory and each of the plurality of GART table entries being associated with a block of graphics device addresses; said AGP processor requests a graphics data transaction by asserting a graphics device address to said second interface logic; and said second interface logic determines if a required one of the plurality of GART table entries is stored in said second first-level cache memory, wherein; if the required one of the plurality of GART table entries is stored in said second first-level 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 system memory; if the required one of the plurality of GART table entries is not stored in said second first-level cache memory, then said core logic chipset determines if the required one of the plurality of GART table entries is stored in said common second-level cache memory; if the required one of the plurality of GART table entries is stored in said common second-level cache memory, then said core logic chipset stores the required one in said second first-level cache memory, and 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 the corresponding address of the one of the plurality of pages of graphics data stored in said system memory; and if the required one of the plurality of GART table entries is not stored in said common second-level cache memory, then said core logic chipset accesses said system memory to obtain the required one of the plurality of GART table entries from said GART table, said core logic chipset stores the required one of the plurality of GART table entries from said GART table in said common second-level cache memory and said second first-level cache memory, and 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 the corresponding address of the one of the plurality of pages of graphics data stored in said system memory. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28)
-
-
29. A core logic chipset adapted for connection to a computer system processor and system memory, and an accelerated graphics port (AGP), comprising:
-
an accelerated graphics port (AGP) interface having AGP request and reply queues, an AGP data and control logic, an AGP arbiter, and an AGP first-level graphics address remapping table (GART) cache, said AGP interface adapted for connection to an AGP processor, a processor interface having, processor address queues and processor data queues, a processor data and control logic, and a processor first-level GART cache, said processor interface adapted for connection to a computer system processor; a memory interface and control logic adapted for connecting to a computer system memory; and a common second-level GART cache, said common second-level GART cache connected to said processor and AGP first-level GART caches, and said memory interface and control logic; said AGP interface is adapted for receiving a graphics data transaction, such that said AGP interface determines if a required one of a plurality of GART table entries is stored in said AGP first-level GART cache, wherein; if the required one of the plurality of GART table entries is stored in said AGP first-level GART cache, then said AGP interface 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 the computer system memory; if the required one of the plurality of GART table entries is not stored in said AGP first-level GART cache, then said core logic chipset determines if the required one of the plurality of GART table entries is stored in said common second-level GART cache; if the required one of the plurality of GART table entries is stored in said common second-level GART cache, then said core logic chipset stores the required one in said AGP first-level GART cache, and said AGP interface 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 the computer system memory; and if the required one of the plurality of GART table entries is not stored in said common second-level GART cache, then said core logic chipset is adapted to access the computer system memory to obtain the required one of the plurality of GART table entries from a GART table, said core logic chipset is adapted to store the required one of the plurality of GART table entries from the GART in said common second-level GART cache and said AGP second first-level GART cache, and said AGP interface 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 system memory. - View Dependent Claims (30, 31, 32, 33, 34)
-
Specification