← Back to Patent Explorer
US6016395A Expired / Lapsed US ⏱️ 0.0 years remaining

Programming a vector processor and parallel programming of an asymmetric dual multiprocessor comprised of a vector processor and a risc processor

Assignee: Samsung Electronics Co Ltd
•
Filing: 1996-10-18
•
Granted: 2000-01-18
•
Expires: 2016-10-18
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

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.

Inventors

  • 👤 Moataz Ali Mohamed

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-08 18:03
CPC Classifications
G; G06; G06F; G06F9/00; G06F9/06; G06F9/22; G06F9/28; G06F8/00; G06F8/40; G06F8/41; G06F8/44; G06F8/447; G06F9/30; G06F9/30003; G06F9/30007; G06F9/30036; G06F9/30038

Claims Analysis

Total Claims: 37
Claim 1
Independent Claim 175 words
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.
Claim 2
Independent Claim 175 words
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.
Claim 3
Dependent Claim 39 words
The method of claim 1, wherein said high level language does not specify for each value whether the value is to be stored in a register of the vector processor or in a memory external to the vector processor.
Claim 4
Dependent Claim 20 words
The method of claim 1, wherein the program does not specify how the vector type value is to be stored.
Claim 5
Dependent Claim 38 words
The method of claim 1, wherein: the computer program further includes declaration of a selection mask; and the first vector operation is subjected to the selection mask to determine which elements of the vector operand are operated upon.
Claim 6
Dependent Claim 18 words
The method of claim 4 wherein: the first operation does not have the selection mask as an operand.
Claim 7
Dependent Claim 36 words
The method of claim 4 wherein: the first operation is a vector ALU operation; and each bit in the selection mask indicates if a corresponding element of the vector operand is affected by the first operation.
Claim 8
Dependent Claim 36 words
The method of claim 4 wherein: the first operation is a memory access operation; and each bit in the selection mask indicates if a corresponding element of the vector operand is affected by the first operation.
Claim 9
Dependent Claim 15 words
The method of claim 1, wherein said first operation comprises one or more arithmetic operations.
Claim 10
Dependent Claim 17 words
The method of claim 1 wherein a destination of the first operation has a plurality of operands.
Claim 11
Dependent Claim 15 words
The method of claim 1, wherein said first operation comprises one or more matrix operands.
Claim 12
Dependent Claim 15 words
The method of claim 1, wherein said first operation comprises one or more 9-bit operands.
Claim 13
Dependent Claim 13 words
The method of claim 1, wherein said superset includes the C++ programming language.
Claim 14
Dependent Claim 28 words
The method of claim 1, wherein said computer system comprises a control processor, the vector processor and a cache memory coupling said control processor to said vector processor.
Claim 15
Dependent Claim 28 words
The method of claim 13, wherein the control processor signals the vector processor to start execution, but the vector processor cannot cause the control processor to start execution.
Claim 16
Dependent Claim 19 words
The method of claim 1 wherein: the value is included in a structure type of the C programming language.
Claim 17
Dependent Claim 11 words
The method of claim 1, wherein: the value is a pointer.
Claim 18
Dependent Claim 18 words
The method of claim 16, wherein: the first operation passes the pointer as an argument to a function.
Claim 19
Dependent Claim 59 words
The method of claim 1, wherein: the vector operand is hereinafter referred to as VA; and the first operation indicates calculation of the average of each element of VA with index value i with the element having an index value of i+1 and storing the average in the element having an index value of i of a result vector.
Claim 20
Dependent Claim 77 words
The method of claim 18, wherein: the vector operand is hereinafter referred to as VA; the first operation has another vector operand VB; and the first operation indicates calculation of the average of each element of VA having an index value i with the element of VA having index value i+1 and the elements of VB having index values i amd i+1 and storing the average in element having index value of i of a result vector.
Claim 21
Dependent Claim 23 words
The method of claim 1, wherein: the first operation is a logical operation selected from a group consisting of AND, OR and NOR.
Claim 22
Dependent Claim 43 words
The method of claim 1, wherein: the first operation is a shift operation with a scalar operand s that indicates the number of bits to be shifted, and the shift operation being selected from a group consisting of left shift and right shift.
Claim 23
Dependent Claim 30 words
The method of claim 1, wherein the first operation is selected from a group consisting of: a max exchange operation; an extract sign operation; and a count leading zeros operation.
Claim 24
Dependent Claim 33 words
The method of claim 1, wherein: the first operation has a scalar operand i; and the first operation divides the vector operand by 2 i and stores the result in another vector operand.
Claim 25
Dependent Claim 43 words
The method of claim 1, wherein: the vector operand is hereinafter referred to as VA; the first operation also has a scalar operand i; and the first operation extracts the ith element of vector VA and stores the result into another scalar operand.
Claim 26
Dependent Claim 74 words
The method of claim 1, wherein: the vector operand is hereinafter referred to as VA; the first operation has additional vector operands VB, VC and VD; and the first operation indicates multiplication of each element of VA by the corresponding element of VB, then addition of the corresponding element of VC to the double precision result of the multiplication and storing the double precision result of the addition in the corresponding element of VD.
Claim 27
Dependent Claim 39 words
The method of claim 1, wherein: the vector operand is hereinafter referred to as VA; the first operation stores the result into another vector operand VC in an element j that is different from an element i of VA.
Claim 28
Independent Claim 37 words
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.
Claim 29
Independent Claim 37 words
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.
Claim 30
Dependent Claim 37 words
The method of claim 26, wherein: the first operation has additional vector operands VB and VD; and the first operation unshuffles the elements of vector VA and VB and stores the result in vectors VC and VD.
Claim 31
Dependent Claim 33 words
The method of claim 26 wherein: the first operation has an additional vector operand VB; and the first operation is specified in the computer program by an operator located between VA and VB.
Claim 32
Dependent Claim 32 words
The method of claim 1, wherein the first operation is selected from a group consisting of: a multiply and add operation; an add and add sign operation; and an add horizontal operation.
Claim 33
Dependent Claim 26 words
The method of claim 30, wherein: the first operation is specified in the computer program by an operator located between the vector operand and another operand.
Claim 34
Dependent Claim 49 words
The method of claim 1, wherein: the declaration includes an initialization of the vector operand, the initialization being specified by use of the "=" sign, followed by a plurality of values for elements in the vector operand, the plurality of values being enclosed within the "{" and "}" signs.
Claim 35
Dependent Claim 26 words
The method of claim 1 wherein: the first operation is specified in the computer program by an operator located between the vector operand and another operand.
Claim 36
Dependent Claim 33 words
The method of claim 33 wherein: the operator includes a predetermined symbol followed by at least one letter of the English language, the predetermined symbol being not included in the C programming language.
Claim 37
Dependent Claim 22 words
The method of claim 33 wherein: the superset has a grammar that extends the grammar of the ANSI standard of C language.

References Cited (Backward Citations)

US4101960A Cited
US4722052A Cited
US4791560A Cited
US4945479A Cited
US4821181A Cited
US4933839A Cited
US5109523A Cited
US5341482A Cited
US5029069A Cited
US5206903A Cited
US5274818A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2003-01-17 2003-07-19 2004-01-18 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2007-01-17 2007-07-19 2008-01-18 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2011-01-17 2011-07-19 2012-01-18 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag