Cache invalidation method and apparatus for a graphics processing system
First Claim
1. A cache memory system for storing blocks of graphics data in a graphics processing system, the cache memory system comprising:
- a first memory to store an address and an associated ID number for each block of graphics data stored in the cache memory, the address corresponding to a storage location in the cache memory and the associated ID number assigned to distinguish between blocks of graphics data having the same address;
a second memory to store blocks of graphics data corresponding to the addresses and associated ID numbers stored in the first memory; and
a cache controller coupled to the first and second memories, in response to receiving a requested address and ID number for graphics data matching one of the addresses and associated ID numbers stored in the first memory, the cache controller controlling the second memory to output the block of graphics data corresponding to the matching address and associated ID number, in response to a stored entry having an address tag matching the requested address but an associated ID number not matching the requested ID number, the cache controller retrieving from a third memory graphics data corresponding to the requested address and ID number, replacing in the first memory the associated ID number for the stored entry and the corresponding graphics data in the second memory with the retrieved graphics data, and controlling the second memory to output the retrieved graphics data.
1 Assignment
0 Petitions
Accused Products
Abstract
A cache for a graphics system storing both an address tag and an identification number for each block of data stored in the data cache. An address and identification number of a requested block of data is provided to the cache, and is checked against all of the address and identification number entries present. A block of data is provided if both the address and the identification number of the requested data matches an entry in the cache. However, if the address of the requested data is not present, or if the address matches an entry but the associated identification number does not match, a cache miss occurs, and the requested graphics data must be retrieved from a system memory. The address and identification number are updated, and the requested data replaces the former graphics data in the data cache. As a result, a block of data stored in the cache having the same address as the requested data, but having data that is invalid, can be invalidated without invalidating the entire cache.
53 Citations
21 Claims
-
1. A cache memory system for storing blocks of graphics data in a graphics processing system, the cache memory system comprising:
-
a first memory to store an address and an associated ID number for each block of graphics data stored in the cache memory, the address corresponding to a storage location in the cache memory and the associated ID number assigned to distinguish between blocks of graphics data having the same address;
a second memory to store blocks of graphics data corresponding to the addresses and associated ID numbers stored in the first memory; and
a cache controller coupled to the first and second memories, in response to receiving a requested address and ID number for graphics data matching one of the addresses and associated ID numbers stored in the first memory, the cache controller controlling the second memory to output the block of graphics data corresponding to the matching address and associated ID number, in response to a stored entry having an address tag matching the requested address but an associated ID number not matching the requested ID number, the cache controller retrieving from a third memory graphics data corresponding to the requested address and ID number, replacing in the first memory the associated ID number for the stored entry and the corresponding graphics data in the second memory with the retrieved graphics data, and controlling the second memory to output the retrieved graphics data. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A cache memory for storing graphics data in a graphics processing system, the cache memory comprising:
-
a first memory means for storing addresses corresponding to memory addresses at which the graphics data is stored;
a second memory means for storing an ID number associated with the graphics data for each address stored in the first memory means;
a data cache means for storing the graphics data corresponding to the addresses and ID numbers stored in the first and second memory means, respectively;
a cache controller means coupled to the first and second memory means and the data cache means, in response to receiving an address and ID number for requested graphics data matching an entry stored in the first and second memory means, respectively, the cache controller means generating a hit signal causing the data cache means to provide the graphics data corresponding to the matching address and ID number, in response to a stored entry having an address tag matching the requested address but an associated ID number not matching the requested ID number, the cache controller means retrieving from a third memory graphics data corresponding to the requested address and ID number, replacing in the second memory means the associated ID number for the stored entry and the corresponding graphics data in the data cache means with the retrieved graphics data, and causing the data cache means to provide the retrieved graphics data. - View Dependent Claims (7)
-
-
8. A computer system, comprising:
-
a central processing unit;
a system memory coupled to the CPU;
a bus coupled to the CPU; and
a graphics processing system coupled to the bus having a graphics processor assigning ID numbers to blocks of graphics data stored in the system memory and a graphics processing stage receiving a requested address and ID number for graphics data from the graphics processor, the graphics processing stage including a cache memory for storing blocks of graphics data written to the system memory, the cache memory comprising;
a first memory to store an address and an associated ID number for each block of graphics data stored in the cache memory, the address corresponding to a storage location in the system memory and the associated ID number assigned by the graphics processor to distinguish between blocks of graphics data having the same address;
a second memory to store blocks of graphics data corresponding to the addresses and associated ID numbers stored in the first memory; and
a cache controller coupled to the first and second memories, in response to receiving a requested address and ID number for graphics data matching one of the addresses and associated ID numbers stored in the first memory, the cache controller controlling the second memory to output the block of graphics data corresponding to the matching address and associated ID number, in response to a stored entry having an address tag matching the requested address but an associated ID number not matching the requested ID number, the cache controller retrieving from a third memory graphics data corresponding to the requested address and ID number, replacing in the first memory the associated ID number for the stored entry and the corresponding graphics data in the second memory with the retrieved graphics data, and controlling the second memory to output the retrieved graphics data. - View Dependent Claims (9, 10, 11, 12)
-
-
13. A computer system, comprising:
-
a central processing unit;
a system memory coupled to the CPU;
a bus coupled to the CPU; and
a graphics processing system coupled to the bus having a graphics processor assigning ID numbers to blocks of graphics data stored in the system memory and a graphics processing stage receiving a requested address and ID number for graphics data from the graphics processor, the graphics processing stage including a cache memory for storing blocks of graphics data written to the system memory, the cache memory retrieving the cached graphics data by;
comparing the requested address and ID number to stored entries in a first memory having an address tag and associated ID number;
providing from a second memory graphics data corresponding to one of the stored entries having an address tag and an associated ID number matching the requested address and ID number;
retrieving from a third memory a retrieved graphics data corresponding to the requested address and ID number in response to a stored entry having an address tag matching the requested address but an associated ID number not matching the requested ID number;
replacing in the first memory the associated ID number for the stored entry and the corresponding graphics data in the second memory with the retrieved graphics data; and
providing from the second memory the retrieved graphics data. - View Dependent Claims (14)
-
-
15. A method of caching blocks of graphics data stored in a memory, comprising:
-
assigning an ID number to blocks of graphics data stored in the memory, the ID number distinguishing between blocks of graphics data presently and formerly stored in the memory;
storing a tag and an ID number for each cached block of graphics data;
comparing a requested tag and ID number to the stored tags and ID numbers;
providing the cached block of graphics data corresponding to the tag and ID number matching the requested tag and ID number;
retrieving graphics data corresponding to the requested address and ID number in response to a stored tag matching the requested tag but the ID number associated with the stored tag not matching the requested ID number;
replacing the ID number associated with the stored tag and replacing the corresponding graphics data with the retrieved graphics data; and
providing the retrieved graphics data. - View Dependent Claims (16, 17)
-
-
18. A method of retrieving graphics data from a cache, comprising:
-
comparing a requested address and ID number to stored entries in a first memory having an address tag and associated ID number;
providing from a second memory graphics data corresponding to one of the stored entries having an address tag and an associated ID number corresponding to the requested address and ID number;
retrieving from a third memory a retrieved graphics data corresponding to the requested address and ID number in response to a stored entry having an address tag matching the requested address but an associated ID number not matching the requested ID number;
replacing in the first memory the associated ID number for the stored entry and the corresponding graphics data in the second memory with the retrieved graphics data; and
providing from the second memory the retrieved graphics data.
-
-
19. A graphics processing system for a computer system having a system memory, the graphics processing system, comprising:
-
a graphics processor assigning ID numbers to blocks of graphics data stored in the system memory;
a graphics processing stage receiving a requested address and ID number for graphics data from the graphics processor, the graphics processing stage including a cache memory for storing blocks of graphics data written to the system memory, the cache memory retrieving the cached graphics data by;
comparing the requested address and ID number to stored entries in a first memory having an address tag and associated ID number;
providing from a second memory graphics data corresponding to one of the stored entries having an address tag and an associated ID number matching the requested address and ID number;
retrieving from a third memory a retrieved graphics data corresponding to the requested address and ID number in response to a stored entry having an address tag matching the requested address but an associated ID number not matching the requested ID number;
replacing in the first memory the associated ID number for the stored entry and the corresponding graphics data in the second memory with the retrieved graphics data; and
providing from the second memory the retrieved graphics data. - View Dependent Claims (20, 21)
-
Specification