IP Library Granted Patent US 7,356,650
Granted Patent B1
US 7,356,650 · App. 11/156,225 · Granted Apr 8, 2008

Cache apparatus and method for accesses lacking locality

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 7,356,650
App. No.
11/156,225
Granted
Apr 8, 2008
Kind
B1
Abstract

Systems and methods are provided for a data processing system and a cache arrangement. The data processing system includes at least one processor, a first-level cache, a second-level cache, and a memory arrangement. The first-level cache bypasses storing data for a memory request when a do-not-cache attribute is associated with the memory request. The second-level cache stores the data for the memory request. The second-level cache also bypasses updating of least-recently-used indicators of the second-level cache when the do-not-cache attribute is associated with the memory request.

Claims (44)

1. A data processing system, comprising:

at least one processor that issues memory requests responsive to instruction execution, the memory requests including a first memory request;

a first-level cache coupled to the at least one processor, wherein the first-level cache bypasses storing data for the first memory request responsive to a do-not-cache attribute associated with the first memory request;

a second-level cache coupled to the first-level cache, wherein the second-level cache bypasses updating of least-recently-used indicators of the second-level cache responsive to the do-not-cache attribute associated with the first memory request and stores the data for the first memory request, wherein the second-level cache stores the data for the first memory request responsive to absence of a do-not-cache attribute associated with the first memory request, stores the data for the first memory request responsive to a mode for the second-level cache having a first value and independent of presence or absence of the do-not-cache attribute, and bypasses storing the data for the first memory request responsive to the do-not-cache attribute associated with the memory request and the mode for the second-level cache having a second value; and

a memory arrangement coupled to the second-level cache.

2. The data processing system of claim 1 , wherein the second-level cache stores the data for the first memory request at a location indicated as least recently accessed by the least-recently-used indicators.

3. The data processing system of claim 1 , wherein the second-level cache stores the data for the first memory request in a location in the second-level cache and updates the least-recently-used indicators indicating that the location is most recently accessed responsive to absence of a do-not-cache attribute associated with the first memory request.

4. The data processing system of claim 1 , wherein a size of a cache line of the first-level cache is different than a size of a cache line of the second-level cache.

5. The data processing system of claim 1 , wherein the first-level cache is a write-through cache and the second-level cache is a write-back cache.

6. The data processing system of claim 1 , wherein the second-level cache is at least 2-way set-associative and has a plurality of sets, each set having at least 2 tag-data pairs.

7. The data processing system of claim 6 , wherein the least-recently-used indicators of the second-level cache indicate for each set, one of the tag-data pairs in the set as least recently accessed.

8. The data processing system of claim 6 , wherein the first memory request is issued with an address for the data, and the second-level cache associates the address with one set of the plurality of sets and associates the address with a tag-data pair in the set.

9. The data processing system of claim 8 , wherein the second-level cache associates the address with the tag-data pair that is least recently accessed in the set responsive to absence of the data in the second-level cache.

10. The data processing system of claim 8 , wherein the second-level cache provides access to the data in the tag-data pair of the set responsive to presence of the data in the second-level cache.

11. The data processing system of claim 8 , wherein the second-level cache updates the least-recently-used indicators indicating that the tag-data pair of the set is most recently accessed responsive to absence of a do-not-cache attribute associated with the first memory request.

12. A cache arrangement for a data processing system, comprising:

a first level cache;

a second level cache coupled to the first level cache, the second-level cache including:

a storage arrangement having storage for a plurality of sets of tag-data pairs, wherein each set has at least two tag-data pairs, and each memory address of a plurality of memory addresses is associated with one of the sets of tag-data pairs;

a plurality of sets of replacement indicators respectively associated with the sets of tag-data pairs, and each set of replacement indicators specifying a replacement order for the associated set of tag-data pairs; and

cache control logic coupled to the storage arrangement and to the replacement indicators, wherein the cache control logic, responsive to absence of a do-not-cache attribute associated with a memory request, stores data indicative of a memory address of the memory request and data referenced by the memory address in one of the tag-data pairs of the set of tag-data pairs associated with the memory address, the one of the tag-data pairs indicated as first in the replacement order by the one of the sets of replacement indicators associated with the one of the tag-data pairs, and updates the one of the sets of replacement indicators indicating that the one of the tag-data pairs is last in the replacement order specified by the one of the sets of replacement indicators, and the cache control logic bypasses update of the one of the sets of replacement indicators and stores data referenced by the memory address in the one of the tag-data pairs, responsive to the do-not-cache attribute being associated with the memory request;

wherein the first level cache stores the data referenced by the memory address in response to absence of the do-not-cache attribute, and bypasses storing of the data referenced by the memory address in response to the do-not-cache attribute being associated with the memory request; and

a mode register coupled to the cache control logic, wherein the cache control logic stores the memory data for the memory request in the tag-data pair in the associated set responsive to the mode register having a first value and independent of presence or absence of the do-not-cache attribute, and bypasses storage of the memory data for the memory request in the tag-data pair in the associated set responsive to the do-not-cache attribute being associated with the memory request and the mode register having a second value.

13. The cache arrangement of claim 12 , wherein the cache control logic stores the memory data for the memory request in the tag-data pair in the associated set.

14. The cache arrangement of claim 12 , wherein, for the memory request with write data to write to the memory address, the cache control logic updates with the write data a portion of the tag-data pair associated with the memory address in the set associated with the memory address.

15. A method for accessing a memory address in a computing system, comprising

issuing from a requester a read request for data at the memory address;

providing the data for the read request to the requester;

storing the data in a first-level cache in response to absence of a do-not-cache attribute associated with the read request;

bypassing storage of the data in the first-level cache in response to the do-not-cache attribute being associated with the read request;

storing the data in a set associative second-level cache, the second-level cache having a plurality of sets and each set including at least two tag-data pairs, wherein the data is stored in a set associated with the memory address and in a first tag-data pair of the set that is first in a replacement order of the tag-data pairs of the set;

adjusting the replacement order of the tag-data pairs in the set associated with the memory address in response to absence of a do-not-cache attribute associated with the read request, wherein the first tag-data pair is made last in the replacement order;

bypassing adjustment of the replacement order in response to the do-not-cache attribute being associated with the read request;

storing the data in the second-level cache responsive to absence of a do-not-cache attribute associated with the read request;

storing the data in the second-level cache responsive to a mode for the second-level cache having a first value and independent of presence or absence of the do-not-cache attribute; and

bypassing storing of the data in the second-level cache responsive to the do-not-cache attribute associated with the memory read and the mode for the second-level cache having a second value.

16. The method of claim 15 , wherein providing the data for the read request to the requester further comprises:

providing the data from the first-level cache in response to presence of the data in the first-level cache;

providing the data from the second-level cache in response to absence of the data in the first-level cache and presence of the data in the second-level cache; and

providing the data from a memory arrangement in response to absence of the data in the first-level cache and second-level cache.

17. The method of claim 15 , further comprising:

issuing from the requester a write request with update data to update the data at the memory address;

updating the first-level cache with the update data in response to presence of the data in the first-level cache; and

updating the second-level cache with the update data.

Assignments (13)
AMENDED AND RESTATED PATENT SECURITY AGREEMENT Recorded Jun 27, 2025
From: UNISYS CORPORATION; UNISYS HOLDING CORPORATION; UNISYS NPL, INC.; UNISYS AP INVESTMENT COMPANY I
To: COMPUTERSHARE TRUST COMPANY, N.A., AS COLLATERAL TRUSTEE
Reel/Frame 071759/0527 →
RELEASE OF SECURITY INTEREST Recorded Oct 28, 2020
From: WELLS FARGO BANK, NATIONAL ASSOCIATION
To: UNISYS CORPORATION
Reel/Frame 054231/0496 →
RELEASE OF SECURITY INTEREST Recorded Nov 9, 2017
From: WELLS FARGO BANK, NATIONAL ASSOCIATION (SUCCESSOR TO GENERAL ELECTRIC CAPITAL CORPORATION)
To: UNISYS CORPORATION
Reel/Frame 044416/0358 →
SECURITY INTEREST Recorded Oct 6, 2017
From: UNISYS CORPORATION
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 044144/0081 →
PATENT SECURITY AGREEMENT Recorded Apr 27, 2017
From: UNISYS CORPORATION
To: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS COLLATERAL TRUSTEE
Reel/Frame 042354/0001 →
RELEASE OF SECURITY INTEREST Recorded Mar 26, 2013
From: DEUTSCHE BANK TRUST COMPANY AMERICAS, AS COLLATERAL TRUSTEE
To: UNISYS CORPORATION
Reel/Frame 030082/0545 →
RELEASE OF SECURITY INTEREST Recorded Mar 15, 2013
From: DEUTSCHE BANK TRUST COMPANY
To: UNISYS CORPORATION
Reel/Frame 030004/0619 →
SECURITY AGREEMENT Recorded Jun 27, 2011
From: UNISYS CORPORATION
To: GENERAL ELECTRIC CAPITAL CORPORATION, AS AGENT
Reel/Frame 026509/0001 →
PATENT SECURITY AGREEMENT (JUNIOR LIEN) Recorded Oct 13, 2009
From: UNISYS CORPORATION
To: DEUTSCHE BANK TRUST COMPANY AMERICAS, AS COLLATERAL TRUSTEE
Reel/Frame 023364/0098 →
PATENT SECURITY AGREEMENT (PRIORITY LIEN) Recorded Oct 12, 2009
From: UNISYS CORPORATION
To: DEUTSCHE BANK TRUST COMPANY AMERICAS, AS COLLATERAL TRUSTEE
Reel/Frame 023355/0001 →
RELEASE BY SECURED PARTY Recorded Jul 31, 2009
From: CITIBANK, N.A.
To: UNISYS CORPORATION; UNISYS HOLDING CORPORATION
Reel/Frame 023086/0255 →
SECURITY AGREEMENT Recorded Jun 20, 2006
From: UNISYS CORPORATION; UNISYS HOLDING CORPORATION
To: CITIBANK, N.A.
Reel/Frame 018003/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 17, 2005
From: ENGLIN, DONALD C.; WILLIAMS, JAMES A.
To: UNISYS CORPORATION
Reel/Frame 016708/0419 →