PROGRAMMING A MULTI-PROCESSOR SYSTEM
First Claim
1. A computer-implemented method for creating a program for a multi-processor system, wherein the multi-processor system comprises a plurality of processors and a plurality of memories coupled to the processors, wherein each of the processors is coupled to at least one other processor, wherein there are multiple communication mechanisms between the respective processors, the method comprising:
- storing source code in response to user input, wherein the source code specifies first functionality, wherein the source code is intended to execute on the multi-processor system, wherein the source code specifies a plurality of tasks and communication of data among the plurality of tasks, wherein the source code further does not specify which communication mechanism to use among the plurality of tasks;
creating machine language instructions based on the source code, wherein the machine language instructions are designed to execute on the plurality of processors, selecting communication mechanisms between the processors based on location of the respective processors and required communication of data;
storing the machine language instructions in various ones of the plurality of memories, wherein the multi-processor system is operable to execute the machine language instructions using the selected communication mechanisms to implement the first functionality.
3 Assignments
0 Petitions
Accused Products
Abstract
A computer-implemented method for creating a program for a multi-processor system comprising a plurality of interspersed processors and memories. A user may specify or create source code using a programming language. The source code specifies a plurality of tasks and communication of data among the plurality of tasks. However, the source code may not (and preferably is not required to) 1) explicitly specify which physical processor will execute each task and 2) explicitly specify which communication mechanism to use among the plurality of tasks. The method then creates machine language instructions based on the source code, wherein the machine language instructions are designed to execute on the plurality of processors. Creation of the machine language instructions comprises assigning tasks for execution on respective processors and selecting communication mechanisms between the processors based on location of the respective processors and required data communication to satisfy system requirements.
158 Citations
26 Claims
-
1. A computer-implemented method for creating a program for a multi-processor system, wherein the multi-processor system comprises a plurality of processors and a plurality of memories coupled to the processors, wherein each of the processors is coupled to at least one other processor, wherein there are multiple communication mechanisms between the respective processors, the method comprising:
-
storing source code in response to user input, wherein the source code specifies first functionality, wherein the source code is intended to execute on the multi-processor system, wherein the source code specifies a plurality of tasks and communication of data among the plurality of tasks, wherein the source code further does not specify which communication mechanism to use among the plurality of tasks;
creating machine language instructions based on the source code, wherein the machine language instructions are designed to execute on the plurality of processors, selecting communication mechanisms between the processors based on location of the respective processors and required communication of data;
storing the machine language instructions in various ones of the plurality of memories, wherein the multi-processor system is operable to execute the machine language instructions using the selected communication mechanisms to implement the first functionality. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25)
-
-
26. A memory medium comprising program instructions for creating a program for a multi-processor system, wherein the multi-processor system comprises a plurality of processors, wherein each of the processors is coupled to at least one other processor, wherein there are multiple communication mechanisms between the respective processors, wherein the program instructions are executable to:
-
access source code from memory, wherein the source code specifies first functionality, wherein the source code is intended to execute on the multi-processor system, wherein the source code specifies a plurality of tasks and communication of data among the plurality of tasks, wherein the source code does not explicitly specify which physical processor executes each task, and wherein the source code further does not specify which communication mechanism to use among the plurality of tasks;
create machine language instructions based on the source code, wherein the machine language instructions are designed to execute on the plurality of processors, assign tasks for execution on respective processors, wherein said assigning comprises storing machine code associated with the tasks on memories connected to the respective processors that will execute the tasks;
select communication mechanisms between the processors based on location of the respective processors and required communication of data;
wherein the machine language instructions are executable on the multi-processor system to implement the first functionality.
-
Specification