CACHE FOR A MULTI THREAD AND MULTI CORE SYSTEM AND METHODS THEREOF
First Claim
1. A cache for a processor, the cache comprising:
- a plurality of instruction queues configured to handle at least one out-of-order instruction return;
a data Random Access Memory (RAM) capable of storing a plurality of data;
a tag RAM capable of storing memory addresses and data of the plurality of data stored in the data RAM;
an in-flight RAM capable ofholding information for all outstanding requests forwarded to a next-level memory subsystem;
clearing information associated with a serviced request after the request has been fulfilled;
determining if a subsequent request matches an address supplied to one or more requests already in-flight to the next-level memory subsystem;
matching fulfilled requests serviced by the next-level memory subsystem to at least one requester who issued requests while an original request was in-flight to the next-level memory subsystem; and
storing information specific to each request, the information including a set attribute and a way attribute, the set and way attributes configured to identify where the returned data should be held in the data RAM once the data is returned, the information specific to each request further including at least one of thread ID, instruction queue position and color; and
an arbiter for scheduling hit and miss data returns.
1 Assignment
0 Petitions
Accused Products
Abstract
According to one embodiment, the present disclosure generally provides a method for improving the performance of a cache of a processor. The method may include storing a plurality of data in a data Random Access Memory (RAM). The method may further include holding information for all outstanding requests forwarded to a next-level memory subsystem. The method may also include clearing information associated with a serviced request after the request has been fulfilled. The method may additionally include determining if a subsequent request matches an address supplied to one or more requests already in-flight to the next-level memory subsystem. The method may further include matching fulfilled requests serviced by the next-level memory subsystem to at least one requester who issued requests while an original request was in-flight to the next level memory subsystem. The method may also include storing information specific to each request, the information including a set attribute and a way attribute, the set and way attributes configured to identify where the returned data should be held in the data RAM once the data is returned, the information specific to each request further including at least one of thread ID, instruction queue position and color. The method may additionally include scheduling hit and miss data returns. Of course, various alternative embodiments are also within the scope of the present disclosure.
39 Citations
20 Claims
-
1. A cache for a processor, the cache comprising:
-
a plurality of instruction queues configured to handle at least one out-of-order instruction return; a data Random Access Memory (RAM) capable of storing a plurality of data; a tag RAM capable of storing memory addresses and data of the plurality of data stored in the data RAM; an in-flight RAM capable of holding information for all outstanding requests forwarded to a next-level memory subsystem; clearing information associated with a serviced request after the request has been fulfilled; determining if a subsequent request matches an address supplied to one or more requests already in-flight to the next-level memory subsystem; matching fulfilled requests serviced by the next-level memory subsystem to at least one requester who issued requests while an original request was in-flight to the next-level memory subsystem; and storing information specific to each request, the information including a set attribute and a way attribute, the set and way attributes configured to identify where the returned data should be held in the data RAM once the data is returned, the information specific to each request further including at least one of thread ID, instruction queue position and color; and an arbiter for scheduling hit and miss data returns. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A multi core and a multi thread system, the system comprising:
-
a plurality of cores; and a cache connected to the plurality of cores, the cache comprising a plurality of instruction queues configured to handle at least one out-of-order instruction return; a data Random Access Memory (RAM) capable of storing a plurality of data; a tag RAM capable of storing memory addresses and data of the plurality of data stored in the data RAM; an in-flight RAM capable of holding information for all outstanding requests forwarded to a next-level memory subsystem; clearing information associated with a serviced request after the request has been fulfilled; determining if a subsequent request matches an address supplied to one or more requests already in-flight to the next-level memory subsystem; matching fulfilled requests serviced by the next-level memory subsystem to at least one requester who issued requests while an original request was in-flight to the next-level memory subsystem; and storing information specific to each request, the information including a set attribute and a way attribute, the set and way attributes configured to identify where the returned data should be held in the data RAM once the data is returned, the information specific to each request further including at least one of thread ID, instruction queue position and color; and an arbiter for scheduling hit and miss data returns. - View Dependent Claims (9, 10, 11, 12, 13, 14)
-
-
15. A method for improving performance of a cache of a processor, the method comprising:
-
storing a plurality of data in a data Random Access Memory (RAM); storing memory addresses of the plurality of data stored in the data RAM in a tag RAM; holding information for all outstanding requests forwarded to a next-level memory subsystem; clearing information associated with a serviced request after the request has been fulfilled; determining if a subsequent request matches an address supplied to one or more requests already in-flight to the next-level memory subsystem; matching fulfilled requests serviced by the next-level memory subsystem to at least one requestor who issued requests while an original request was in-flight to the next-level memory subsystem; storing information specific to each request, the information including a set attribute and a way attribute, the set and way attributes configured to identify where the returned data should be held in the data RAM once the data is returned, the information specific to each request further including at least one of thread ID, instruction queue position and color; and scheduling hit and miss data returns. - View Dependent Claims (16, 17, 18, 19, 20)
-
Specification