Information processing system and information processing method
US-2024256410-A1 · Aug 1, 2024 · US
US10338965B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-10338965-B2 |
| Application number | US-201213438357-A |
| Country | US |
| Kind code | B2 |
| Filing date | Apr 3, 2012 |
| Priority date | Apr 3, 2012 |
| Publication date | Jul 2, 2019 |
| Grant date | Jul 2, 2019 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
In one example, a controller for managing a set of resources. A first structure has a first entry statically associated with one of the resources. A second structure has a second entry dynamically associative with one of the resources. A resource sharing mechanism borrows for the second structure an idle resource associated with the first structure.
Opening claim text (preview).
What is claimed is: 1. A cache controller for managing resources, comprising: a first tracker structure, in a coherent request tracker, having first tracker entries each statically associated with one of a first set of transaction identifiers that are assigned to the coherent request tracker for use by the coherent request tracker to manage coherent requests issued to a processor external to the cache controller; a second tracker structure, in a victim request tracker, having second tracker entries each dynamically associable with one of a second variable set of the transaction identifiers that are assigned to the victim request tracker for use by the victim request tracker to manage writes to a memory that are associated with eviction of entries from a directory cache; a resource sharing mechanism to, in response to determining that no transaction identifier in the second variable set of the transaction identifiers is available to process a resource request from the cache controller, borrow an idle transaction identifier associated with a first tracker entry among the first tracker entries, associate the borrowed transaction identifier with a second tracker entry among the second tracker entries, and lock the first tracker entry; and the victim request tracker to assign the borrowed transaction identifier to the resource request. 2. The cache controller of claim 1 , wherein the resource sharing mechanism returns the borrowed transaction identifier by unlocking the first tracker entry associated with the borrowed transaction identifier when supply of the second tracker entries exceeds demand for the second tracker entries. 3. The cache controller of claim 1 , wherein each first tracker entry has a state field that directly indicates whether a transaction identifier corresponding to the first tracker entry is idle and a locked field that indicates whether the corresponding transaction identifier is associated with the second tracker structure. 4. The cache controller of claim 1 , wherein each second tracker entry has a resource identifier field that identifies a transaction identifier corresponding to the second tracker entry, and a borrowed field that indicates whether the corresponding transaction identifier is borrowed from the first tracker structure. 5. A cache controller for managing resources, comprising: a first structure, in a coherent request tracker, having first entries each statically associated with, and directly denoting a state of, one of a first fixed set of transaction resources that are assigned to the coherent request tracker for use by the coherent request tracker to manage coherent requests issued to a processor external to the cache controller; a second structure, in a victim request tracker, having second entries each dynamically associable with, and identifying, a resource in a variable-size pool of a second variable set of the transaction identifiers assigned to the victim request tracker for use by the victim request tracker to manage writes to a memory that are associated with eviction of entries from a directory cache; a resource sharing mechanism to, in response to determining that no transaction identifier in the second variable set of the transaction identifiers is available to process a resource request from the cache controller, borrow from the coherent request tracker a transaction identifier in an idle state and assign the borrowed transaction identifier to the victim request tracker; and the cache controller to process the resource request using the borrowed transaction identifier associated with the second entry. 6. The cache controller of claim 5 , wherein the resource sharing mechanism comprises: a deallocation arbiter in the coherent tracker to offer a particular transaction identifier to the victim request tracker when the particular transaction identifier changes from an in-use state to the idle state; and an allocation engine in the victim request tracker, coupled to the deallocation arbiter, to determine whether to borrow the offered transaction identifier. 7. The cache controller of claim 6 , wherein the deallocation arbiter sets, in the first structure, the state of the first entry that corresponds to the borrowed transaction identifier to a locked state while the borrowed transaction identifier is assigned to the victim request tracker to prevent the coherent tracker from using the borrowed transaction identifier. 8. The cache controller of claim 6 , wherein the allocation engine is further configured to: add the borrowed transaction identifier to the pool, responsive to a resource request from the cache controller, select the borrowed transaction identifier from the pool and enter an identifier of the transaction identifier in an unassigned second entry. 9. The cache controller of claim 5 , wherein the resource sharing mechanism returns the borrowed transaction identifier to the coherent request tracker when the victim request tracker is finished using the borrowed transaction identifier by removing the borrowed transaction identifier from a pool of resources in the victim request tracker and setting the first entry which corresponds to the borrowed transaction identifier to the unlocked state. 10. The cache controller of claim 6 , wherein the pool includes a sub-pool of transaction identifiers permanently assigned to the victim request tracker and a sub-pool of transaction identifiers borrowed from the coherent request tracker and temporarily assigned to the victim request tracker. 11. The cache controller of claim 5 , wherein each transaction identifier is a transaction identifier for an in-process memory transaction on a link between the cache controller and the processor, the processor including a memory controller for a memory attached to the processor. 12. The cache controller of claim 11 , wherein a maximum number of in-process memory transactions concurrently allowable is specified to the cache controller by the processor. 13. The cache controller of claim 11 , wherein the coherent request tracker receives a memory access request from a remote processor, assigns a transaction identifier to the request, and uses the transaction identifier to send the access request to the local processor via the link, and wherein the victim request tracker receives modified data from a remote processor in response to a cache eviction event, generates a memory write request for the modified data including a transaction identifier, and uses the transaction identifier to send the write request to the processor via the link. 14. A method of managing a plurality of transaction identifiers, comprising: a coherent request tracker in a cache controller offering, to a victim request tracker in the cache controller, one of the plurality of transaction identifiers statically associated with a first entry in a first structure in the coherent request tracker for use by the coherent request tracker to manage coherent requests issued to a processor external to the cache controller, the offering automatically performed responsive to a transition of the first entry to an idle state; the victim request tracker determining to borrow the offered transaction identifier in response to determining that no transaction identifier in a dynamic pool of transaction identifiers assigned to the victim request tracker is available to process a resource request from the cache controller; the second tracker adding the borrowed transaction identifier to the dynamic pool of resources for use by the victim request tracker to manage writes to a memory that are associated with eviction of entries from a directory cache; the secon
Pool · CPC title
the resource being the memory · CPC title
the resources being hardware resources other than CPUs, Servers and Terminals · CPC title
Transaction processing · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.