IP Library Granted Patent US 9,471,381
Granted Patent B2
US 9,471,381 · App. 14/657,716 · Granted Oct 18, 2016

Resource allocation in multi-core architectures

Inventor: Yan Solihin (Raleigh, NC)
Assignee: Empire Technology Development LLC
G06F9/5016G06F9/50G06F9/5005G06F2209/503G06F2209/5018
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 9,471,381
App. No.
14/657,716
Granted
Oct 18, 2016
Kind
B2
Abstract

Technologies are generally described for a method, device and architecture effective to allocate resources. In an example, the method may include associating first and second resources with first and second resource identifiers and mapping the first and second resource identifiers to first and second sets of addresses in a memory, respectively. The method may include identifying that the first resource is at least partially unavailable. The method may include mapping the second resource identifier to at least one address of the first set of addresses in the memory when the first resource is identified as at least partially unavailable. The method may include receiving a request for the first resource, wherein the request identifies a particular address of the addresses in the first set of addresses. The method may include analyzing the particular address to identify a particular resource and allocating the request to the particular resource.

Claims (66)

1. A method to allocate resources in a multi-core architecture, the method comprising:

determining, by a controller, that a first resource is at least partially unavailable, wherein the first resource is associated with a first resource identifier;

based on the determination that the first resource is at least partially unavailable, mapping, by the controller, a second resource identifier to a first address in a set of addresses in a memory, wherein the second resource identifier is associated with a second resource;

mapping, by the controller, the second resource identifier to a second address in the memory;

receiving, by the controller, a request for the first resource, wherein the request identifies a particular address in the set of addresses;

analyzing, by the controller, the particular address identified by the request for the first resource;

identifying, by the controller, a particular resource based on the analysis of the particular address; and

allocating, by the controller, the request to the particular resource.

2. The method of claim 1 , wherein:

the set of addresses includes a first set of addresses;

mapping the second resource identifier to the first address in the first set of addresses in the memory includes storing the second resource identifier in a first resource field of a resource map table, where the first resource field corresponds to a first index of the resource map table, and the first index corresponds to the first set of addresses in the memory; and

mapping the second resource identifier to the second address in the memory includes storing the second resource identifier in a second resource field of the resource map table, where the second resource field corresponds to a second index of the resource map table, and the second index corresponds to a second set of addresses in the memory.

3. The method of claim 1 , wherein at least a portion of the particular address corresponds to an index of a resource map table, where the resource map table includes a resource field effective to store a particular resource identifier, and the particular resource identifier corresponds to the particular address.

4. The method of claim 1 , wherein the particular resource includes one of the first resource and the second resource.

5. The method of claim 1 , wherein the set of addresses corresponds to a sum of a number of resources in the multi-core architecture.

6. The method of claim 1 , wherein identifying the particular resource is further based on the particular resource identifier and a validity identifier in a resource map table.

7. The method of claim 6 , further comprising assigning a value to the validity identifier in response to the first resource being determined as at least partially unavailable.

8. The method of claim 1 , wherein:

the first resource identifier is mapped to a first validity identifier prior to determining that the first resource is at least partially unavailable;

the second resource identifier is mapped to a second validity identifier prior to determining that the first resource is at least partially unavailable; and

identifying the particular resource includes analyzing the particular address to identify the particular resource based on the first validity identifier and the second validity identifier.

9. The method of claim 8 , further comprising:

permuting the particular address in the request to produce a permuted address; and

analyzing the permuted address to identify the particular resource based on the first validity identifier and the second validity identifier.

10. A multi-core architecture effective to allocate resources, the multi-core architecture comprising:

a first resource associated with a first resource identifier;

a second resource associated with a second resource identifier; and

a controller configured to be in communication with the first and second resources,

wherein the controller is configured to:

determine that the first resource is at least partially unavailable;

based on the determination that the first resource is at least partially unavailable, map the second resource identifier to a first address in a set of addresses in a memory;

map the second resource identifier to a second address in the memory;

receive a request for the first resource, wherein the request identifies a particular address in the set of addresses;

analyze the particular address identified by the request for the first resource;

identify a particular resource based on the analysis of the particular address; and

allocate the request to the particular resource.

11. The multi-core architecture of claim 10 , further comprising a resource map table, wherein the resource map table includes:

an index that corresponds to the particular address; and

a resource field effective to store a particular resource identifier that corresponds to the particular address.

12. The multi-core architecture of claim 11 , wherein the resource map table further includes a validity identifier.

13. The multi-core architecture of claim 12 , wherein the controller is configured to identify the particular resource based on the particular address, the particular resource identifier that corresponds to the particular address, and the validity identifier.

14. The multi-core architecture of claim 12 , wherein the controller is further configured to assign a value to the validity identifier based upon the determination that the first resource is at least partially unavailable.

15. The multi-core architecture of claim 11 , wherein the index corresponds to a portion that is less than an entirety of the particular address.

16. The multi-core architecture of claim 10 , wherein:

the first resource identifier is mapped to a first validity identifier prior to the determination that the first resource is at least partially unavailable;

the second resource identifier is mapped to a second validity identifier prior to the determination that the first resource is at least partially unavailable; and

the controller is further configured to:

permute the particular address in the request to produce a permuted address; and

analyze the permuted address to identify the particular resource based on the first validity identifier and the second validity identifier.

17. A system effective to allocate resources in a multi-core architecture, the system comprising:

a memory configured to store a resource map table;

a controller configured to be in communication with the memory, the controller is configured to:

determine that a first resource is at least partially unavailable, wherein the first resource is associated with a first resource identifier;

based on the determination that the first resource is at least partially unavailable, store a second resource identifier in a first resource field of the resource map table, wherein the first resource field corresponds to a first index of the resource map table, and the first index corresponds to a first address in a set of addresses in the memory, and the second resource identifier is associated with a second resource;

store the second resource identifier in a second resource field of the resource map table, wherein the second resource field corresponds to a second index of the resource map table, and the second index corresponds to a second address in the memory;

receive a request for the first resource, wherein the request identifies a particular address in the set of addresses;

analyze the particular address to identify the particular resource; and

allocate the request to the particular resource.

18. The system of claim 17 , wherein the resource map table further includes a validity identifier field.

19. The system of claim 17 , wherein the controller is configured to identify the particular resource based on the particular address, a particular resource identifier that corresponds to the particular address, and a validity identifier.

20. The system of claim 17 , wherein:

the first resource identifier is mapped to a first validity identifier prior to the determination that the first resource is at least partially unavailable;

the second resource identifier is mapped to a second validity identifier prior to the determination that the first resource is at least partially unavailable; and

the controller is further configured to:

permute the particular address in the request to produce a permuted address; and

analyze the permuted address to identify the particular resource based on the first validity identifier and the second validity identifier.

Assignments (4)
RELEASE OF SECURITY INTEREST IN PATENTS, RECORDED ON JANUARY 29, 2019 AT REEL 048373 FRAME 0217 Recorded Sep 22, 2025
From: CRESTLINE DIRECT FINANCE, L.P., AS COLLATERAL AGENT
To: EMPIRE TECHNOLOGY DEVELOPMENT LLC
Reel/Frame 072936/0464 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 3, 2020
From: EMPIRE TECHNOLOGY DEVELOPMENT, LLC
To: MERCURY KINGDOM ASSETS LIMITED
Reel/Frame 053378/0053 →
RELEASE OF SECURITY INTEREST Recorded Jun 26, 2020
From: CRESTLINE DIRECT FINANCE, L.P.
To: EMPIRE TECHNOLOGY DEVELOPMENT LLC
Reel/Frame 053047/0864 →
SECURITY INTEREST Recorded Jan 29, 2019
From: EMPIRE TECHNOLOGY DEVELOPMENT LLC
To: CRESTLINE DIRECT FINANCE, L.P.
Reel/Frame 048373/0217 →
Continuity (2)
Continuation 13812400
Related Publication 20150186186A1 · Jul 2, 2015