Managing a set of resources

US10338965B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-10338965-B2
Application numberUS-201213438357-A
CountryUS
Kind codeB2
Filing dateApr 3, 2012
Priority dateApr 3, 2012
Publication dateJul 2, 2019
Grant dateJul 2, 2019

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

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.

First claim

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

Assignees

Inventors

Classifications

  • Pool · CPC title

  • G06F9/5016Primary

    the resource being the memory · CPC title

  • the resources being hardware resources other than CPUs, Servers and Terminals · CPC title

  • Transaction processing · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US10338965B2 cover?
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.
Who is the assignee on this patent?
Brueggen Christopher Michael, Ray Harvey, Sherlock Derek Alan, and 1 more
What technology area does this patent fall under?
Primary CPC classification G06F9/5016. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Jul 02 2019 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).