IP Library Granted Patent US 7,213,109
Granted Patent B1
US 7,213,109 · App. 10/304,919 · Granted May 1, 2007

System and method for providing speculative ownership of cached data based on history tracking

Assignee: Unisys Corporation
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,213,109
App. No.
10/304,919
Granted
May 1, 2007
Kind
B1
Abstract

A system and method for managing memory data is provided. Data stored within a main memory may be requested by multiple requesters that may include one or more cache memories. When the data is provided by the main memory to a requester, it will be provided in a state that is based on the way the data was recently used by the requesters. For example, if a pattern of read-only usage has been established for the data, the data will be returned to a requester in a shared state. If data that was provided in a shared state must be updated such that the requester is required return to main memory to obtain read/write privileges, the main memory will thereafter provide the data in an exclusive state that allows write operations to be completed. This will continue until a pattern of read-only usage is again established.

Claims (40)

1. A system to manage memory data that is requested by one or more requesters, comprising:

a main memory to store data signals; and

a circuit coupled to the main memory to determine a first state in which requested ones of the data signals are provided by the main memory to a requester, the first state being based on which types of operations were performed on the requested ones of the data signals in the past, the circuit to continue to provide the requested ones of the data signals in the first state in response to at least a maximum number of sequential requests, each of which do not result in utilization of the requested ones of the data signals in a predetermined manner, the logic thereafter to provide the requested ones of the data signals in a second state.

2. The system of claim 1 , wherein the circuit includes logic to determine the first state based on the manner in which the requested ones of the data signals were utilized after being provided by the main memory in response to a predetermined number of recent requests.

3. The system of claim 2 , wherein the circuit includes programming logic to programmably select the predetermined number.

4. The system of claim 3 , wherein the circuit includes logic to utilize the first state only when the requested ones of the data signals are a predetermined type of data signals.

5. The system of claim 4 , wherein the predetermined type is operand data signals.

6. The system of claim 2 , wherein the main memory includes a directory to store, for each of predetermined groups of the data signals, respectively associated state signals indicative of the manner in which an associated predetermined group of the data signals has recently been utilized.

7. The system of claim 1 , wherein the logic determines that after the requested data signals are provided in the second state, the requested data signals will continue to be provided in the second state until the requested data signals are utilized in the predetermined manner.

8. The system of claim 7 , wherein, following any request that results in utilization of the requested ones of the data signals in the predetermined manner, the logic provides the requested ones of the data signals in the first state in response to at least the maximum number of sequential requests.

9. The system of claim 8 , wherein the first state is an exclusive state, the second state is a shared state, and wherein the predetermined manner is one that modifies the requested ones of the data signals.

10. The system of claim 9 , wherein the circuit includes programming logic to allow the maximum number of sequential requests to be programmable.

11. A memory system, comprising:

multiple requesters;

a main memory that is divided into cache lines, each to store a predetermined number of data signals, the main memory coupled to provide any of the requesters with requested ones of the data signals;

a directory included in the main memory to store, for each of the cache lines, respective state information that includes a Read Conditional Response (RCR) value indicative of a recent history of use of the cache line;

a circuit coupled to the main memory to determine access rights specifying one or more types of operations a requester may perform on the requested ones of the data signals, the access rights being determined based on a RCR value for a cache line containing the requested ones of the data signals and that indicates how the requested ones of the data signals were recently used when provided in response to a predetermined number of recent requests; and

a programming circuit to select the predetermined number.

12. The system of claim 11 , wherein the state information includes a cache line state, and wherein the access rights are further determined based on the cache line state for the cache line containing the requested ones of the data signals.

13. The system of claim 12 , wherein the access rights are further determined based on a request type provided with a request for the requested ones of the data signals.

14. The system of claim 13 , wherein the access rights are determined only if the request type is an operand read request.

15. The system of claim 13 , wherein ones of the multiple requesters may provide snoop responses to the main memory, each snoop response including a snoop response type, and wherein the access rights are further determined based on a snoop response type for the requested ones of the data signals.

16. The system of claim 11 , wherein the circuit includes logic to generate a next RCR value for the cache line containing the requested ones of the data signals.

17. The system of claim 16 , wherein the state information includes a cache line state, and wherein the next RCR value is determined based on the cache line state for the cache line containing the requested ones of the data signals.

18. The system of claim 17 , wherein the next RCR value is further determined based on a request type provided with a request for the requested ones of the data signals.

19. The system of claim 18 , wherein ones of the multiple requesters may provide snoop responses to the main memory, each snoop response including a snoop response type, and wherein the next RCR value is further determined based on the snoop response type for the cache line containing the requested ones of the data signals.

20. The system of claim 11 , wherein ones of the multiple requesters are cache memories.

21. For use in a data processing system having a main memory to store data signals, and multiple requesters coupled to the main memory to request ones of the data signals, a method of managing the data signals, comprising:

receiving a request for ones of the data signals from any of the multiple requesters;

providing a directory in the main memory to store state information including a Read Conditional Response (RCR) value indicative of the manner in which the requested ones of the data signals have been utilized in response to a predetermined number of the most recent requests;

determining that a latest copy of the requested ones of the data signals are not resident within the main memory, issuing a snoop request to a different one of the multiple requesters to return the requested ones of the data signals, and returning by the different one of the multiple requesters, a snoop response including a snoop response type;

determining, based on the state information, the snoop response type, and a request type, a state in which the main memory is to provide the requested ones of the data signals, the state indicating types of operations a requester may perform on the requested ones of the data signals and being based on the manner in which the requested ones of the data signals have been utilized in response to a predetermined number of most recent requests for the requested ones of the data signals; and

generating a new RCR value for the requested ones of the data signals.

22. The method of claim 21 , wherein the determined state is utilized only if the request is any one or more of multiple predetermined request types.

23. The method of claim 21 , wherein the predetermined request type is an operand read request type.

24. The method of claim 21 , wherein the state information indicates a cache line state.

25. The method of claim 21 , wherein the new RCR value is determined based on the request type.

26. The method of claim 25 , wherein the new RCR value is determined based on the snoop response type.

27. The method of claim 26 , wherein the new RCR value is determined based on the state.

28. The method of claim 21 , and further including programming the predetermined number.

Assignments (15)
SECURITY INTEREST Recorded Apr 3, 2026
From: STIFEL BANK
To: INTER1 HOLDINGS, LLC
Reel/Frame 074268/0599 →
SECURITY INTEREST Recorded Apr 3, 2026
From: INTER1 HOLDINGS, LLC
To: STIFEL BANK
Reel/Frame 074268/0577 →
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 Sep 14, 2009
From: CITIBANK, N.A.
To: UNISYS CORPORATION; UNISYS HOLDING CORPORATION
Reel/Frame 023263/0631 →
RELEASE BY SECURED PARTY Recorded Jul 31, 2009
From: CITIBANK, N.A.
To: UNISYS CORPORATION; UNISYS HOLDING CORPORATION
Reel/Frame 023312/0044 →
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 Nov 26, 2002
From: BAUMAN, MITCHELL A.; SCHIBINGER, JOSEPH S.
To: UNISYS CORPORATION
Reel/Frame 013540/0087 →