Programming a vector processor and parallel programming of an asymmetric dual multiprocessor comprised of a vector processor and a risc processor
First Claim
1. A method for creating a computer program on a computer readable media for execution by a vector processor, the method comprising:
- a computer system reading a computer program written in a superset of C programming language, wherein the C programming language defines a plurality of operations and does not specify for each operation in said plurality how the operation is to be implemented in the vector processor, the computer program further including;
a declaration of a value having a vector type, the vector type being part of a programming model of the vector processor, the vector type being distinct from an array type included in the C programming language; and
a first operation having the vector type value as an operand, the first operation corresponding to a vector processor instruction VPI1 that can be executed by the vector processor and that has at least a vector operand; and
the computer system generating one or more vector processor instructions that together implement the first operation, the one or more instructions including one or more VPI1 instructions.
2 Assignments
0 Petitions
Accused Products
Abstract
The present invention provides a new programming language which. is a superset of C++ optimized for writing vectorized dual-threaded programs on the MSP media processor. This invention discloses novel language constructs in the syntax and semantics to facilitate efficient programming and the generation of optimized efficient MSP object code. We have invented in VIVID new data types such as VECTOR and GMASK as well as new operators that map directly into the MSP instruction set such as @shfl, @avg, etc. We have also extended C++ to facilitate dual-threaded execution by exposing the MSP'"'"'s fork-join model to the VIVID programmer via. adding fork-join constructs to VIVID. We have also invented a syntax and semantics to facilitate having multiple returned results from a vector operation such as VD @@ VC=VA @shfl VB.
-
Citations
35 Claims
-
1. A method for creating a computer program on a computer readable media for execution by a vector processor, the method comprising:
-
a computer system reading a computer program written in a superset of C programming language, wherein the C programming language defines a plurality of operations and does not specify for each operation in said plurality how the operation is to be implemented in the vector processor, the computer program further including; a declaration of a value having a vector type, the vector type being part of a programming model of the vector processor, the vector type being distinct from an array type included in the C programming language; and a first operation having the vector type value as an operand, the first operation corresponding to a vector processor instruction VPI1 that can be executed by the vector processor and that has at least a vector operand; and the computer system generating one or more vector processor instructions that together implement the first operation, the one or more instructions including one or more VPI1 instructions. - 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, 28, 29, 30, 31, 32, 33, 34, 35)
-
-
27. The method of clam 26, wherein:
-
the first operation has additional vector operands VB and VD; and the first operation shuffles the elements of vector VA and VB and stores the result in vectors VC and VD.
-
Specification