IP Library Granted Patent US 10,303,514
Granted Patent B2
US 10,303,514 · App. 14/941,182 · Granted May 28, 2019

Sharing resources in a multi-context computing system

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 10,303,514
App. No.
14/941,182
Granted
May 28, 2019
Kind
B2
Abstract

In an embodiment, a method of providing quality of service (QoS) to at least one resource of a hardware processor includes providing, in a memory of the hardware processor, a context including at least one quality of service parameter and allocating access to the at least one resource of the hardware processor based on the quality of service parameter of the context, a device identifier, a virtual machine identifier, and the context.

Claims (47)

1. A method of providing access to at least one resource of a hardware processor, the method comprising:

accessing, in a memory of the hardware processor, a context including at least one quality of service (QoS) parameter and information for managing a particular process and/or device or process combination; and

allocating the access to the at least one resource of the hardware processor based on a device identifier, a virtual machine identifier, and the context, wherein the at least one resource is at least one of: a bus, an interface, a bank of cache, and/or other hardware or software resource, wherein the allocating the access to the at least one resource comprises:

providing the access to the at least one resource having the QoS parameter, of the at least one QoS parameter, indicating a priority above a threshold; and

refusing the access to the at least one resource having the QoS parameter indicating a priority below the threshold, and

wherein the allocating the access to the at least one resource further comprises partitioning the at least one resource among a plurality of contexts.

2. The method of claim 1 , wherein the at least one resource is at least one of: a cache and the bus, and wherein the partitioning the at least one resource comprises partitioning multiple lanes of the bus among the plurality of contexts spatially.

3. The method of claim 1 , wherein the QoS parameter is at least one of: a priority information parameter and a partition information parameter.

4. The method of claim 1 , wherein the partitioning the at least one resource comprises partitioning the at least one resource temporally among the plurality of contexts, and wherein the allocating the access to the at least one resource further comprises:

providing access to all of the at least one resource based on one or more contexts of the plurality of contexts associated therewith.

5. The method of claim 1 , wherein the allocating the access to the at least one resource further comprises:

determining a section index based on a bit mask encompassed in a context file; and

using the section index to select the at least one resource.

6. The method of claim 5 , wherein the determining the section index comprises generating a constrained randomly generated number (CRGN).

7. The method of claim 6 , wherein the CRGN comprises a first set of bits and a second set of bits, wherein the first set of bits are bits of a first randomly generated number (RGN), and wherein the second set of bits represents an index position of a located bit in the bit mask.

8. The method of claim 7 , wherein the located bit is a first allowed bit in the bit mask reached during a cycle through of the bit mask in a particular direction.

9. The method of claim 8 further comprising:

using the first RGN to index into a position in the bit mask as a starting position for the cycle through of the bit mask.

10. The method of claim 1 further comprising:

receiving a particular request of a plurality of requests for a virtual memory from a device; and

translating the particular request to the context stored in the memory of the hardware processor,

wherein the allocating the access to the at least one resource further comprises prioritizing the particular request among the plurality of requests based on the QoS parameter of the context.

11. The method of claim 1 further comprising:

promoting the access to said at least one resource to a secure mode based on the device identifier, the virtual machine identifier, and the context.

12. A system for providing access to at least one resource of a hardware processor, the system comprising:

a memory, associated with the hardware processor, configured to provide a context including at least one quality of service (QoS) parameter and information for managing a particular process and/or device or process combination; and

a QoS module configured to allocate the access to the at least one resource of the hardware processor based on a device identifier, a virtual machine identifier, and the context, wherein the at least one resource is at least one of: a bus, an interface, a bank of cache, and/or other hardware or software resource,

wherein the QoS module, to allocate the access to the at least one resource, is configured to:

provide the access to the at least one resource having the QoS parameter, of the at least one QoS parameter, indicating a priority above a threshold; and

refuse the access to the at least one resource having the QoS parameter indicating a priority below the threshold, and

wherein the QoS module, to allocate the access to the at least one resource, is further configured to partition the at least one resource among a plurality of contexts.

13. The system of claim 12 , wherein the at least one resource is at least one of: a cache and the bus.

14. The system of claim 12 , wherein the QoS parameter is at least one of: a priority information parameter and a partition information parameter.

15. The system of claim 12 , wherein the QoS module, to allocate the access to the at least one resource, is further configured to:

partition the at least one resource spatially;

partition the at least one resource temporally among the plurality of contexts; and

provide access to all of the at least one resource based on one or more contexts of the plurality of contexts associated therewith.

16. The system of claim 15 , wherein the QoS module is further configured to:

determine a section index based on a bit mask encompassed in a context file; and

use the section index to select the at least one resource.

17. The system of claim 16 , wherein the QoS module is configured to determine the section index using a constrained randomly generated number (CRGN) generated by a CRGN module.

18. The system of claim 17 , wherein the CRGN comprises a first set of bits and a second set of bits, wherein the first set of bits are bits of a first randomly generated number (RGN), and wherein the second set of bits represents an index position of a located bit in the bit mask.

19. The system of claim 18 , wherein the located bit is a first allowed bit in the bit mask reached during a cycle through of the bit mask in a particular direction.

20. The system of claim 19 , wherein the CRGN module is configured to use the first RGN to index into a position in the bit mask as a starting position for the cycle through of the bit mask.

21. The system of claim 12 further comprising:

a memory management module configured to receive a particular request of a plurality of requests for a virtual memory from a device and translate the particular request to the context stored in the memory of the hardware processor,

wherein the QoS module, to allocate the access to the at least one resource, is further configured to: prioritize the particular request among the plurality of requests based on the QoS parameter of the context.

Assignments (6)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 15, 2020
From: CAVIUM INTERNATIONAL
To: MARVELL ASIA PTE, LTD.
Reel/Frame 053179/0320 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 17, 2020
From: CAVIUM, LLC
To: CAVIUM INTERNATIONAL
Reel/Frame 051948/0807 →
CONVERSION Recorded Oct 6, 2018
From: CAVIUM, INC.
To: CAVIUM, LLC
Reel/Frame 047202/0690 →
RELEASE OF SECURITY INTEREST Recorded Jul 6, 2018
From: JP MORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
To: CAVIUM, INC; CAVIUM NETWORKS LLC; QLOGIC CORPORATION
Reel/Frame 046496/0001 →
SECURITY AGREEMENT Recorded Aug 17, 2016
From: CAVIUM, INC.; CAVIUM NETWORKS LLC
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 039715/0449 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 13, 2015
From: SNYDER, WILSON; OGALE, VARADA; KUJTKOWSKI, ANNA; MA, ALBERT
To: CAVIUM, INC.
Reel/Frame 037038/0849 →