Patent ID: 6963341

Claim:
A processing core for executing instructions comprising: A) a RISC processor core for performing scalar operations and program flow control; and B) a SIMD processor core for performing vector operations comprising: a) a set of vector registers wherein each vector register comprises N elements wherein the N elements comprising parts of one-dimensional vector and a two-dimensional array and said set of vector registers are grouped together and are operably coupled to a plurality of read ports and plurality of write ports for accessing said set of vector registers at substantially the same time; and b) a plurality of select logic circuits, each having a select control input and N data inputs, for any mapping of one of N vector elements of an input vector to N elements of an output vector; and c) data inputs of said select logic circuits being coupled to one of plurality of said read ports vector register file; and d) select control inputs of said select logic circuit being coupled to one of said plurality of read ports of vector register file; and e) Means for writing the output of said select logic to a vector register file; and f) Means for masking the output of selected vector elements, whereby masked elements of said vector register file remain unchanged; and C) a data memory N elements wide, wherein said memory array stores at least one of video, graphics data, constants, LUT contents and a user mapping of said input vector to said output vector; and D) the RISC processor core is coupled to said data memory for performing data input and output operations for both the RISC processor core and the SIMD processor core, whereby zig-zag mapping of a two-dimensional input array of M-by-M elements to an M-by-M output elements with a user-defined mapping is performed; whereby matrix transpose of a two-dimensional input array of M-by-M elements to an M-by-M output is performed.