IP Library Granted Patent US 9,898,601
Granted Patent B2
US 9,898,601 · App. 15/643,408 · Granted Feb 20, 2018

Allocation of shared system resources

Inventors: Rahul Gautam Patel (Austin, TX); Nachiketh Rao Potlapally (Arlington, VA); William John Earl (Burien, WA); Matthew Shawn Wilson (Seattle, WA)
Assignee: Amazon Technologies, Inc.
G06F21/55G06F9/45533G06F9/468G06F9/5077G06F21/53
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,898,601
App. No.
15/643,408
Granted
Feb 20, 2018
Kind
B2
Abstract

Techniques are described for allocating resources to a task from a shared hardware structure. A plurality of tasks may execute on a processor, wherein the processor may include one or more processing cores and each task may include a plurality of computer executable instructions. In accordance with one technique for allocating resources to a task from a shared hardware structure amongst multiple tasks, aspects of the disclosure describe assigning a first identifier to a first task from the plurality of tasks, associating a portion of the shared hardware resource with the first identifier, and restricting access and/or observability for computer executable instructions executed from any other task than the first task to the portion of the hardware resource associated with the first identifier.

Claims (45)

1. A computing device, comprising:

a processor executing at least one computer executable instruction belonging to a first task and at least another computer executable instruction belonging to a second task, wherein neither of the computer executable instructions have completed execution;

a bus in the processor being accessed by operations associated with execution of computer executable instructions for the first task and the second task;

a hardware resource allocator, to:

assign a first identifier to the first task; and

associate a portion of time for accessing the bus with the first identifier; and

a hardware resource manager in the processor to restrict access to the bus, for the operations associated with the computer executable instructions executed from the first task, such that the operations associated with the first task access the bus for the portion of the time that the bus is associated with the first identifier, thereby preventing the computer executable instructions from the second task from obtaining information associated with the execution of the computer executable instructions from the first task.

2. The computing device of claim 1 , wherein the hardware resource manager is further configured to prevent access for the operations of the computer executable instructions executed from the second task to the bus associated with the first identifier for the portion of the time.

3. The computing device of claim 1 , wherein associating the portion of the time for accessing the bus with the first identifier comprises the hardware resource allocator being further configured to:

assign a second identifier to the bus for the portion of the time; and

associate the first identifier with the second identifier.

4. The computing device of claim 1 , wherein the bus is a memory bus.

5. The computing device of claim 1 , wherein the processor comprises a plurality of processing cores.

6. The computing device of claim 1 , wherein the first task and the second task are one or more of a processing thread, a process, or an application executing on the processor.

7. The computing device of claim 1 , wherein the first task executes the computer executable instructions in a first virtual machine and the second task executes the computer readable instructions in a second virtual machine.

8. The computing device of claim 1 , wherein the first task and the second task execute their respective computer readable instructions using same execution pipeline on a processing core of the processor.

9. A method, comprising:

executing, by a processor, at least one computer executable instruction belonging to a first task and at least another computer executable instruction belonging to a second task, wherein neither of the computer executable instructions have completed execution;

assigning, a first identifier to the first task;

associating a portion of time associated with accessing a bus in the processor with the first identifier; and

restricting observability to the bus for the portion of the time that the bus is associated with the first identifier for computer executable instructions executed from the second task by preventing access by operations associated with the computer executable instructions executed from the second task to the bus for the portion of the time that the bus is associated with the first identifier, thereby preventing the computer executable instructions from the second task from obtaining information associated with the execution of the computer executable instructions from the first task.

10. The method of claim 9 , wherein restricting observability to the bus for the portion of the time that the bus is associated with the first identifier further comprises a hardware resource manager restricting access by computer executable instructions executed from the first task to the bus associated with the first identifier for the portion of the time, such that operations associated with the first task only access the bus for the portion of the time that the bus is associated with the first identifier.

11. The method of claim 9 , wherein associating the portion of the time for accessing the bus with the first identifier comprises:

assigning a second identifier to the bus for the portion of the time; and

associating the first identifier with the second identifier.

12. The method of claim 9 , wherein the processor comprises a plurality of processing cores.

13. The method of claim 9 , wherein the first task and the second task are one or more of a processing thread, a process or an application executing on the processor.

14. The method of claim 9 , wherein the first task executes the computer executable instructions in a first virtual machine and the second task executes the computer readable instructions in a second virtual machine.

15. The method of claim 9 , wherein the first task and the second task execute their respective computer readable instructions using same execution pipeline on a processing core of the processor.

16. A computing device, comprising:

a processor executing at least one computer executable instruction belonging to a first task and at least another computer executable instruction belonging to a second task, wherein neither of the computer executable instructions have completed execution;

a bus in the processor being accessed by operations associated with execution of computer executable instructions for the first task and the second task;

a hardware resource allocator, to:

assign a first identifier to the second task; and

associate a portion of time for accessing the bus with the first identifier; and

a hardware resource manager in the processor to restrict, for the operations of the computer executable instructions executed by the second task, access to the bus during the portion of the time that the bus is associated with the first identifier, thereby preventing the computer executable instructions from the second task from obtaining information associated with the execution of the computer executable instructions from the first task, wherein restricting access to the bus for the portion of the time that the bus is associated with the first identifier comprises preventing access, by the operations of the computer executable instructions executed from the second task, to the bus for the portion of the time that the bus is associated with the first identifier.

17. The computing device of claim 16 , wherein the first task and the second task are one or more of a processing thread, a process, or an application executing on the processor.

18. The computing device of claim 16 , wherein the first task executes the computer executable instructions in a first virtual machine and the second task executes the computer readable instructions in a second virtual machine.

19. A method, comprising:

executing, by a processor, at least one computer executable instruction belonging to a first task and at least another computer executable instruction belonging to a second task, wherein neither of the computer executable instructions have completed execution;

assigning, a first identifier to the second task;

associating a portion of time associated with accessing a bus in the processor with the first identifier; and

restricting observability to the bus for the portion of the time that the bus is associated with the first identifier for operations associated with computer executable instructions executed from the second task, wherein restricting observability to the bus for the portion of the time that the bus is associated with the first identifier comprises preventing access, by operations of the computer executable instructions executed from the second task, to the bus for the portion of the time that the bus is associated with the first identifier, thereby preventing the computer executable instructions from the second task from obtaining information associated with the execution of the computer executable instructions from the first task.

20. The method of claim 19 , wherein the first task and the second task are one or more of a processing thread, a process, or an application executing on the processor.

21. The method of claim 19 , wherein the first task executes the computer executable instructions in a first virtual machine and the second task executes the computer readable instructions in a second virtual machine.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 6, 2017
From: PATEL, RAHUL GAUTAM; POTLAPALLY, NACHIKETH RAO; EARL, WILLIAM JOHN; WILSON, MATTHEW SHAWN
To: AMAZON TECHNOLOGIES, INC.
Reel/Frame 042927/0410 →
Continuity (2)
Continuation 14502891 · Sep 30, 2014
Related Publication 20170308696A1 · Oct 26, 2017