IP Library Granted Patent US 9,063,779
Granted Patent B2
US 9,063,779 · App. 12/655,786 · Granted Jun 23, 2015

Task list generation, parallelism templates, and memory management for multi-core systems

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,063,779
App. No.
12/655,786
Granted
Jun 23, 2015
Kind
B2
Abstract

There is provided a multi-core system that provides automated task list generation, parallelism templates, and memory management. By constructing, profiling, and analyzing a sequential list of functions to be executed in a parallel fashion, corresponding parallel execution templates may be stored for future lookup in a database. A processor may then select a subset of functions from the sequential list of functions based on input data, select a template from the template database based on particular matching criteria such as high-level task parameters, finalize the template by resolving pointers and adding or removing transaction control blocks, and forward the resulting optimized task list to a scheduler for distribution to multiple slave processing cores. The processor may also analyze data dependencies between tasks to consolidate tasks working on the same data to a single core, thereby implementing memory management and efficient memory locality.

Claims (35)

1. A method of generating a task list comprising a plurality of transaction control blocks for execution on a multi-core system, the method comprising:

receiving input data;

accessing a sequential list of functions constructed for execution on a plurality of slave processing cores;

selecting a subset of functions from said sequential list of functions, said subset of functions using said input data as function parameters;

translating said subset of functions into said task list, wherein said translating includes:

searching in a template database to find a template of said task list corresponding to said subset of functions; and

if the searching is unable to find the template, analyzing said task list for parallel processing of said subset of functions on a plurality of slave processing cores of said multi-core system to create the template for parallel execution of said subset of functions and storing the template in the database;

forwarding, after said translating, said task list having said subset of functions to a scheduler for parallel execution on said plurality of slave processing cores of said multi-core system.

2. The method of claim 1 , wherein said translating uses metadata of said subset of functions to retrieve said template of said task list, wherein said template is optimized for said scheduler to efficiently distribute said task list for parallel execution on said plurality of slave processing cores.

3. The method of claim 2 , wherein said template comprises transaction control blocks with empty data pointers.

4. The method of claim 3 further comprising, prior to said forwarding, resolving references of said subset of functions to finalize said empty data pointers.

5. The method of claim 2 further comprising, prior to said forwarding, inserting additional transaction control blocks to said task list.

6. The method of claim 2 further comprising, prior to said forwarding, removing transaction control blocks from said task list.

7. The method of claim 2 , wherein said metadata includes a high-level task parameter.

8. The method of claim 1 , wherein said translating analyzes data dependencies of said subset of functions to generate said task list.

9. The method of claim 1 , wherein said input data is updated in real-time.

10. The method of claim 1 further comprising, prior to said forwarding, consolidating one or more groups of transaction control blocks using data dependencies to reduce a number of transfers between core local memory of said plurality of slave processing cores and a memory of said multi-core system.

11. A multi-core system comprising:

a lower sub-system including a processor, a scheduler, and a plurality of slave processing cores, said processor configured to:

receive input data;

access a sequential list of functions constructed for execution on said plurality of slave processing cores;

select a subset of functions from said sequential list of functions, said subset of functions using said input data as function parameters;

translate said subset of functions into a task list comprising a plurality of transaction control blocks, wherein said translating includes:

searching in a template database to find a template of said task list corresponding to said subset of functions; and

if the searching is unable to find the template, analyzing said task list for parallel processing of said subset of functions on said plurality of slave processing cores to create the template for parallel execution of said subset of functions and storing the template in the database;

forward, after translating, said task list having said subset of functions to said scheduler for parallel execution on said plurality of slave processing cores.

12. The system of claim 11 , wherein the processor is further configured to use metadata of said subset of functions to retrieve said template of said task list, wherein said template is optimized, for said scheduler to efficiently distribute said task list for parallel execution on said plurality of slave processing cores.

13. The system of claim 12 , wherein said template comprises transaction control blocks with empty data pointers.

14. The system of claim 13 , wherein prior to said forwarding, the processor is further configured to resolve references of said subset of functions to finalize said empty data pointers.

15. The system of claim 12 , wherein prior to said forwarding, the processor is further configured to insert additional transaction control blocks to said task list.

16. The system of claim 12 wherein prior to said forwarding, the processor is further configured to remove transaction control blocks from said task list.

17. The system of claim 12 , wherein said metadata includes a high-level task parameter.

18. The system of claim 11 , wherein said translating analyzes data dependencies of said subset of functions to generate said task list.

19. The system of claim 11 , wherein said input data is updated in real-time.

20. The system of claim 11 wherein prior to said forwarding, the processor is further configured to consolidate one or more groups of transaction control blocks using data dependencies to reduce a number of transfers between core local memory of said plurality of slave processing cores and a memory of said multi-core system.

Assignments (6)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 7, 2017
From: MINDSPEED TECHNOLOGIES, LLC
To: MACOM TECHNOLOGY SOLUTIONS HOLDINGS, INC.
Reel/Frame 044791/0600 →
CHANGE OF NAME Recorded Aug 10, 2016
From: MINDSPEED TECHNOLOGIES, INC.
To: MINDSPEED TECHNOLOGIES, LLC
Reel/Frame 039645/0264 →
SECURITY INTEREST Recorded May 9, 2014
From: M/A-COM TECHNOLOGY SOLUTIONS HOLDINGS, INC.; MINDSPEED TECHNOLOGIES, INC.; BROOKTREE CORPORATION
To: GOLDMAN SACHS BANK USA
Reel/Frame 032859/0374 →
RELEASE OF SECURITY INTEREST Recorded May 9, 2014
From: JPMORGAN CHASE BANK, N.A.
To: MINDSPEED TECHNOLOGIES, INC.
Reel/Frame 032861/0617 →
SECURITY INTEREST Recorded Mar 21, 2014
From: MINDSPEED TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 032495/0177 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 6, 2010
From: LAVROV, NICK J.; TOUKMAJI, NOUR
To: MINDSPEED TECHNOLOGIES, INC.
Reel/Frame 023815/0519 →