Claims
- 1. An array processor apparatus comprising:an array of processing elements executing a regular instruction set; and means for constructing a database for the instruction set, the database comprising a plurality of instruction records with each instruction record in the database associated with one of the instructions of the instruction set, each instruction record including entries defining conditional execution of the associated instruction, a target processing element of the associated instruction, an execution unit of the target processing element, data types of the associated instruction and operands for each data type.
- 2. The apparatus of claim 1 further comprising means for generating multiple test vectors to set up and check state information for packed data type instructions.
- 3. The apparatus of claim 1 further comprising:means for parameterizing test vectors; and means for generating self-checking codes from the parameterized test vectors.
- 4. The apparatus of claim 1 further comprising means for parameterizing test vectors to create a parameterization; andmeans for mapping the parameterization.
- 5. The apparatus of claim 1 wherein the regular instruction set is further defined in that each instruction has four parts delineated by periods with the four parts always in the same order to facilitate easy parsing by automated tools.
- 6. The apparatus of claim 1 wherein, every instruction has an instruction name; instructions that support conditional execution forms may have a leading (T. or F.) flag; arithmetic instructions may set a conditional execution state based on one of four flags (C=carry, N=sign, V=overflow, Z=zero); instructions that can be executed on both an SP and a PE or PEs specify the target processor via (.S or .P) designations, instructions without an .S or .P designation are SP control instructions; arithmetic instructions always specify which unit or units that they execute on (A=ALU, M=MAU, D=DSU); load/store instructions do not specify which unit; arithmetic instructions (ALU,MAU,DSU) have data types to specify the number of parallel operations that the instruction performs, the size of the data type and optionally the sign of the operands (S=Signed, U=Unsigned); and load/store instructions have data types (D=doubleword, W=word, H1=high halfword, H0=tow halfword, B0=byte0).
- 7. The apparatus of claim 1 wherein each instruction record further includes the number of cycles the instruction takes to execute (CYCLES), encoding tables for each field in the instruction (ENCODING) and configuration information (CONFIG) for subsetting the instruction set.
- 8. The apparatus of claim 1 further comprising an instruction-description data structure for an instruction.
- 9. The apparatus of claim 8 further comprising a second data structure defining input and output state for the instruction.
- 10. An array processing method comprising the steps of:establishing a regular instruction set; executing the instructions of the instruction set by an array of processing elements; and constructing a database for the instruction set, the database comprising a plurality of instruction records with each instruction record in the database associated with one of the instructions of the instruction set, each instruction record including entries defining conditional execution of the associated instruction, a target processing element of the associated instruction, an execution unit of the target processing element, data types of the associated instruction and operands for each data type.
- 11. The method of claim 10 further comprising the step of establishing an instruction-description data structure for an instruction.
- 12. The method of claim 11 further comprising the step of establishing a second data structure defining input and output state for the instruction.
- 13. The method of claim 10 further comprising the step of generating multiple test vectors to set up and check state information for packed data type instructions.
- 14. The method of claim 10 further comprising the steps of:parameterizing test vectors; and generating self-checking codes from the parameterized test vectors.
- 15. The method of claim 10 further comprising the steps of:parameterizing test vectors to create a parameterization; and mapping the parameterization.
- 16. The apparatus of claim 10 further comprising the step of defining each instruction in the regular instruction set as having four parts delineated by periods with the four parts always in the same order to facilitate easy parsing by automated tools.
- 17. The apparatus of claim 10 further comprising the step of defining every instruction as having an instruction name; instructions that support conditional execution forms as having a leading (T. or F.) flag; utilizing arithmetic instructions to set a conditional execution state based on one of four flags (C=carry, N=sign, V=overflow, Z=zero); specifying for instructions that can be executed on both an SP and a PE or PEs the target processor via (.S or .P) designations, and defining instructions without an .S or .P designation as SP control instructions; specifying for arithmetic instructions which unit or units that they execute 392 on (A=ALU, M=MAU, D=DSU); not specifying for load/store instructions which unit; arithmetic instructions (ALU, MAU, DSU) having data types to specify the number of parallel operations that the instruction performs, the size of the data type and optionally the sign of the operands (S=Signed, U=Unsigned); and load/store instructions have data types (D=doubleword, W=word, H1=high halfword, H0=low halfword, B0=byte0).
- 18. The method of claim 10 further comprising the step of establishing each instruction record as further including the number of cycles the instruction takes to execute (CYCLES), encoding tables for each field in the instruction (ENCODING) and configuration information (CONFIG) for subsetting the instruction set.
RELATED APPLICATIONS
The present application claims the benefit of U.S. Provisional Application Ser. No. 60/140,425 entitled “Methods and Apparatus for Parallel Processing Utilizing a Manifold Array (ManArray) Architecture and Instruction Syntax” and filed Jun. 22, 1999 which is incorporated herein by reference in its entirety.
US Referenced Citations (2)
Number |
Name |
Date |
Kind |
5159687 |
Richburg |
Oct 1992 |
A |
5907701 |
Hanson |
May 1999 |
A |
Provisional Applications (1)
|
Number |
Date |
Country |
|
60/140425 |
Jun 1999 |
US |