IP Library Granted Patent US 6,937,246
Granted Patent B2
US 6,937,246 · App. 10/775,299 · Granted Aug 30, 2005

Cache invalidation method and apparatus for a graphics processing system

Assignee: Micron Technology, Inc.
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 6,937,246
App. No.
10/775,299
Granted
Aug 30, 2005
Kind
B2
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.

Claims (44)

1. A method for caching texture data stored in a memory, comprising:

assigning a first identification (ID) number to a first block of graphics data;

storing the first block of graphics data at memory locations in the memory having corresponding memory addresses;

caching at least a portion of the first block of graphics data;

storing for the cached portion of the first block of graphics data tags related to the memory addresses at which the cached portion is stored in the memory and the first ID number;

assigning a second ID number to a second block of graphics data;

storing the second block of graphics data in at least a portion of the memory locations in the memory;

caching at least a portion of the second block of graphics data; and

storing for the cached portion of the second block of graphics data tags related to the memory addresses at which the cached portion is stored in the memory and the second ID number, in the event a stored tag for graphics data of the cached portion of the first block of graphics data has the same tag for graphics data of the cached portion of the second block of graphics data, replacing the first ID number associated with the graphics data of the cached portion of the first block of graphics data with the second ID number for the graphics data of the cached portion of the second block of graphics data.

2. The method of claim 1 wherein storing the first block of graphics data and storing the second block of graphics data comprises storing a first block of texture graphics data and storing a second block of texture graphics data, respectively.

3. The method of claim 1 wherein storing the first block of graphics data in the memory and storing the second block of graphics data in the memory comprises storing the first and second blocks of graphics data in a computer system memory.

4. The method of claim 1 wherein assigning the first and second ID numbers comprise assigning a value corresponding to a frame number for a graphics frame being rendered.

5. The method of claim 1 wherein assigning the first and second ID numbers comprise assigning a unique value to the blocks of graphics data.

6. A method for providing graphics data of blocks of graphics stored in a memory in response to a request, comprising:

storing blocks of graphics data in the memory;

assigning a value to the blocks of graphics data stored in the memory corresponding to a frame number for a graphics frame for which the graphics data of the stored block of graphics data is used;

storing a tag and the value for each cached block of graphics data;

requesting graphics data corresponding to a requested tag and value;

comparing the requested tag and value to the stored tags and values;

providing the cached block of graphics data corresponding to the tag and value in response to both the requested tag and value matching a stored tag and value; and

otherwise, retrieving the graphics data from the memory corresponding to the requested tag and value and providing the same in response to the request.

7. The method of claim 6 wherein storing blocks of graphics data in the memory comprises storing texture data of texture maps in the memory.

8. The method of claim 6 , further comprising in the event the requested tag matches a stored tag and the requested value does not match the stored value associated with the matching tag, caching the retrieved graphics data corresponding to the requested tag and value and replacing the stored value associated with the matching tag with the value of the retrieved graphics data.

9. The method of claim 6 wherein storing the tag and the value for each cached block of graphics data comprises storing the tag in a tag portion of a tag cache and storing the value in a ID value portion of the tag cache.

10. A method for providing graphics data of blocks of graphics stored in a memory in response to a request, comprising:

storing blocks of graphics data in the memory;

assigning a unique value to each of the blocks of graphics data stored in the memory;

storing a tag and the value for each cached block of graphics data;

requesting graphics data corresponding to a requested tag and value;

comparing the requested tag and value to the stored tags and values;

providing the cached block of graphics data corresponding to the tag and value in response to both the requested tag and value matching a stored tag and value; and

otherwise, retrieving the graphics data from the memory corresponding to the requested tag and value and providing the same in response to the request.

11. The method of claim 10 wherein storing blocks of graphics data in the memory comprises storing texture data of texture maps in the memory.

12. The method of claim 10 , further comprising in the event the requested tag matches a stored tag and the requested value does not match the stored value associated with the matching tag, caching the retrieved graphics data corresponding to the requested tag and value and replacing the stored value associated with the matching tag with the value of the retrieved graphics data.

13. The method of claim 10 wherein storing the tag and the value for each cached block of graphics data comprises storing the tag in a tag portion of a tag cache and storing the value in a ID value portion of the tag cache.

14. A method of caching blocks of graphics data stored in a memory, comprising:

assigning an identification (ID) number to blocks of graphics data 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;

in the event that the requested tag and ID number matches one of the stored tags and ID numbers for a cached block of graphics data, providing the block of graphics data to which the matching tag and ID number are assigned; and

in the event that the requested tag matches one of the stored tags and the requested ID number does not match the corresponding stored ID number, retrieving a block of graphics data corresponding to the requested tag and ID number, storing the tag and ID number of the retrieved block of graphics data, caching the associated block of graphics data, and providing the retrieved block of graphics data.

15. The method of claim 14 wherein assigning the ID number comprises assigning a value corresponding to a frame number for a graphics frame being rendered.

16. The method of claim 14 wherein assigning the ID number comprises assigning a unique value to the blocks of graphics data.

17. The method of claim 14 wherein storing a tag and an ID number for each cached block of graphics data comprises storing the tags in an address portion of a tag memory and storing the ID numbers in an ID portion of the tag memory.

Assignments (7)
RELEASE OF SECURITY INTEREST Recorded Nov 12, 2019
From: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
To: MICRON TECHNOLOGY, INC.; MICRON SEMICONDUCTOR PRODUCTS, INC.
Reel/Frame 051028/0001 →
RELEASE OF SECURITY INTEREST Recorded Oct 9, 2019
From: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
To: MICRON TECHNOLOGY, INC.
Reel/Frame 050937/0001 →
RELEASE OF SECURITY INTEREST Recorded Aug 23, 2018
From: U.S. BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: MICRON TECHNOLOGY, INC.
Reel/Frame 047243/0001 →
SECURITY INTEREST Recorded Jul 13, 2018
From: MICRON TECHNOLOGY, INC.; MICRON SEMICONDUCTOR PRODUCTS, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 047540/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REPLACE ERRONEOUSLY FILED PATENT #7358718 WITH THE CORRECT PATENT #7358178 PREVIOUSLY RECORDED ON REEL 038669 FRAME 0001. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY INTEREST. Recorded Jun 8, 2017
From: MICRON TECHNOLOGY, INC.
To: U.S. BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 043079/0001 →
PATENT SECURITY AGREEMENT Recorded Jun 2, 2016
From: MICRON TECHNOLOGY, INC.
To: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
Reel/Frame 038954/0001 →
SECURITY INTEREST Recorded May 12, 2016
From: MICRON TECHNOLOGY, INC.
To: U.S. BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 038669/0001 →
Continuity (2)
Continuation 0960750400 · Jun 28, 2000
Related Publication 20040155885A1 · Aug 12, 2004