IP Library Granted Patent US 9,244,629
Granted Patent B2
US 9,244,629 · App. 13/926,765 · Granted Jan 26, 2016

Method and system for asymmetrical processing with managed data affinity

Inventors: Lisa R. Hsu (Raleigh, NC); Gabriel H. Loh (Bellevue, WA); James Michael O'Connor (Austin, TX); Nuwan S. Jayasena (Sunnyvale, CA)
Assignee: Advanced Micro Devices, Inc.
G06F3/067G06F9/5033G06F9/4881
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,244,629
App. No.
13/926,765
Granted
Jan 26, 2016
Kind
B2
Abstract

Methods, systems and computer readable storage mediums for more efficient and flexible scheduling of tasks on an asymmetric processing system having at least one host processor and one or more slave processors, are disclosed. An example embodiment includes, determining a data access requirement of a task, comparing the data access requirement to respective local memories of the one or more slave processors selecting a slave processor from the one or more slave processors based upon the comparing, and running the task on the selected slave processor.

Claims (52)

1. A method of processing in an asymmetrical processing system having at least one host processor and one or more slave processors, the method comprising:

determining data access requirements of a task and a location of instructions associated with the task in memory;

comparing the data access requirement of the task and the location of instructions associated with task to information about respective local memories of the one or more slave processors;

selecting a slave processor from one or more slave processors based upon comparing the data access requirement of the task and the location of instructions associated with task to information about respective local memories of the one or more slave processors; and

running the task on the selected slave processor.

2. The method of claim 1 , wherein the comparing includes

detecting one or more accesses to a stored data by the task, and determining one or more memory pages including the stored data, wherein the one or more memory pages are located in the respective local memories.

3. The method of claim 1 , wherein the selecting a slave processor comprises:

detecting a data segment corresponding to the data access requirement in a second local memory which is not a local memory of the selected slave processor; and

copying the data segment to the local memory of the selected slave processor.

4. The method of claim 1 , further comprising:

configuring the at least one host processor to execute an operating system; and

configuring the one or more slave processors without an operating system.

5. The method of claim 1 , wherein the running comprises accessing a chip-stacked memory of the selected slave processor as a local memory.

6. The method of claim 1 , further comprising:

configuring the selected slave processor to map virtual pages to physical pages using a page table in the local memory of the selected slave processor.

7. The method of claim 6 , wherein the slave processor is further programmed to execute an operating system helper code.

8. The method of claim 1 , further comprising:

receiving information regarding a failed memory allocation by the selected slave processor;

allocating a memory to the selected slave processor; and

informing the slave processor regarding the allocated memory.

9. The method of claim 8 , wherein the allocated memory portion is in the local memory of the selected slave processor.

10. The method of claim 8 , wherein the allocated memory portion is in a second local memory, wherein the second local memory is local to a second slave processor.

11. The method of claim 1 , further comprising:

configuring a pool of memory in the local memory of the selected slave processor for control by an operating system helper code executing on the selected slave processor.

12. The method of claim 1 , further comprising:

configuring a subset of a page hierarchy that corresponds to one or more virtual address ranges of data contained within the local memory of the selected slave processor for control by the selected slave processor.

13. The method of claim 1 , further comprising:

copying one or more selected data from a second processor to the selected slave processor, wherein the copied one or more selected data corresponds to the data access requirement of the task.

14. The method of claim 1 , further comprising:

allocating operating system input/output file buffers in the associated local memory of the selected slave processor, wherein the allocated operating system input/output file buffers are configured for use by the task when executing on the selected slave processor.

15. An asymmetrical processing system, comprising:

at least one host processor executing an operating system;

one or more slave processors communicatively coupled to the at least one host processor, each of the slave processors having a local memory,

wherein the at least one host processor is configured to:

determine data access requirements of a task and a location of instructions associated with the task in memory;

compare the data access requirement of the task and the location of instructions associated with task to information about respective local memories of the one or more slave processors;

select a slave processor from the one or more slave processors based upon comparing the data access requirement of the task and the location of instructions associated with task to information about respective local memories of the one or more slave processors; and

run the task on the selected slave processor.

16. The asymmetrical processing system of claim 15 , wherein the at least one host processor is further configured to:

detect one or more accesses to a stored data by the task; and

determine one or more memory pages including the stored data, wherein the one or more memory pages are located in the respective local memories.

17. The asymmetrical processing system of claim 15 , wherein the respective local memory of each of the one or more slave processors is a chip-stacked memory.

18. The asymmetrical processing system of claim 15 , wherein the at least one host processor is further configured to:

copy one or more selected data from a second processor to the selected slave processor, wherein the copied one or more selected data corresponds to the data access requirement of the task.

19. The asymmetrical processing system of claim 15 , wherein the at least one host processor is further configured to:

allocate operating system input/output file buffers in the associated local memory of the selected slave processor, wherein the allocated operating system input/output file buffers are configured for use by the task when executing on the selected slave processor.

20. A non-transitory computer readable storage medium having instructions encoded thereon, execution of which by at least one host processor in an asymmetrical processing system having the at least one host processor and one or more slave processors cause execution of a method, the method including operations comprising:

determining data access requirements of a task and a location of instructions associated with the task in memory;

comparing the data access requirement of the task and the location of instructions associated with task to information about respective local memories of the one or more slave processors;

selecting a slave processor from one or more slave processors based upon comparing the data access requirement of the task and the location of instructions associated with task to information about respective local memories of the one or more slave processors; and

running the task on the selected slave processor.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 3, 2014
From: HSU, LISA R.; LOH, GABRIEL H.; O'CONNOR, JAMES MICHAEL; JAYASENA, NUWAN S.
To: ADVANCED MICRO DEVICES, INC.
Reel/Frame 034349/0569 →
Continuity (1)
Related Publication 20140380003A1 · Dec 25, 2014