System and method for providing speculative ownership of cached data based on history tracking
First Claim
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.
13 Assignments
0 Petitions
Accused Products
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.
29 Citations
28 Claims
-
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. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
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. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19, 20)
-
-
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. - View Dependent Claims (22, 23, 24, 25, 26, 27, 28)
-
Specification