Patent ID: 7932910

Claim:
A data processing system comprising: a programmable processor on a single integrated circuit; a main memory external to the single integrated circuit; a bus coupled to the main memory; the programmable processor including: a bus interface coupling the programmable processor to the bus; a first data path having a first bit width coupled to the bus interface; a second data path having a second bit width greater than the first bit width; a plurality of third data paths having a combined bit width less than the second bit width; a wide operand storage coupled to the first data path and to the second data path for storing a wide operand received over the first data path, the wide operand having a size with a number of bits greater than the first bit width; a register file including registers having the first bit width, the register file being connected to the third data paths, and including a wide operand register for storage of a wide operand specifier which specifies an address of the wide operand; a functional unit capable of initiating instructions, the functional unit coupled by the second data path to the wide operand storage, and coupled by the third data paths to the register file; and wherein the functional unit executes a single instruction containing instruction fields specifying (i) the wide operand register to cause retrieval of the wide operand for storage in the wide operand storage, (ii) a vector operand register in the register file, (iii) a control register in the register file, and (iv) a results register in the register file, the single instruction causing the functional unit to perform a matrix multiply operation between matrix elements contained in the wide operand storage and vector elements contained in the vector operand register, the matrix elements and vector elements being of a size specified by the control register, to thereby produce a plurality of results elements, and in which, in response to the single instruction, the functional unit also performs an extraction of the results elements under control of the control register to produce a value which is stored in the results register.