Programmable processor and method with wide operations
First Claim
1. A method of performing a computation in a programmable processor, the programmable processor having a first memory system having a first data path width, and a second memory system and a third memory system each of the second memory system and the third memory system having a data path width which is greater than the first data path width, the method comprising the steps of:
- copying a first memory operand portion from the first memory system to the second memory system, the first memory operand portion having the first data path width;
copying a second memory operand portion from the first memory system to the second memory system, the second memory operand portion having the first data path width and being catenated in the second memory system with the first memory operand portion, thereby forming first catenated data;
copying a third memory operand portion from the first memory system to the third memory system, the third memory operand portion having the first data path width;
copying a fourth memory operand portion from the first memory system to the third memory system, the fourth memory operand portion having the first data path width and being catenated in the third memory system with the third memory operand portion, thereby forming second catenated data; and
performing a computation of a single instruction using the first catenated data and the second catenated data.
1 Assignment
0 Petitions
Accused Products
Abstract
A programmable processor and method for improving the performance of processors by expanding at least two source operands, or a source and a result operand, to a width greater than the width of either the general purpose register or the data path width. The present invention provides operands which are substantially larger than the data path width of the processor by using the contents of a general purpose register to specify a memory address at which a plurality of data path widths of data can be read or written, as well as the size and shape of the operand. In addition, several instructions and apparatus for implementing these instructions are described which obtain performance advantages if the operands are not limited to the width and accessible number of general purpose registers.
125 Citations
30 Claims
-
1. A method of performing a computation in a programmable processor, the programmable processor having a first memory system having a first data path width, and a second memory system and a third memory system each of the second memory system and the third memory system having a data path width which is greater than the first data path width, the method comprising the steps of:
-
copying a first memory operand portion from the first memory system to the second memory system, the first memory operand portion having the first data path width;
copying a second memory operand portion from the first memory system to the second memory system, the second memory operand portion having the first data path width and being catenated in the second memory system with the first memory operand portion, thereby forming first catenated data;
copying a third memory operand portion from the first memory system to the third memory system, the third memory operand portion having the first data path width;
copying a fourth memory operand portion from the first memory system to the third memory system, the fourth memory operand portion having the first data path width and being catenated in the third memory system with the third memory operand portion, thereby forming second catenated data; and
performing a computation of a single instruction using the first catenated data and the second catenated data. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A method of performing a computation in a programmable processor, the programmable processor having a first memory system having a first data path width, and a second and a third memory system having a data path width which is greater than the first data path width, the method comprising the steps of:
-
copying a first memory operand portion from the first memory system to the second memory system, the first memory operand portion having the first data path width;
copying a second memory operand portion from the first memory system to the second memory system, the second memory operand portion having the first data path width and being catenated in the second memory system with the first memory operand portion, thereby forming first catenated data;
performing a computation of a single instruction using the first catenated data and producing a second catenated data, copying a third memory operand portion from the third memory system to the first memory system, the third memory operand portion having the first data path width and containing a portion of the second catenated data; and
copying a fourth memory operand portion from the third memory system to the first memory system, the fourth memory operand portion having the first data path width and containing a portion of the second catenated data, wherein the fourth memory operand portion is catenated in the third memory system with the third memory operand portion. - View Dependent Claims (9, 10, 11, 12, 13, 14, 15)
-
-
16. A programmable processor comprising:
-
a first memory system having a first data path width;
a second memory system and a third memory system, wherein each of the second memory system and the third memory system have a data path width which is greater than the first data path width;
a first copying module configured to copy a first memory operand portion from the first memory system to the second memory system, the first memory operand portion having the first data path width, and configured to copy a second memory operand portion from the first memory system to the second memory system, the second memory operand portion having the first data path width and being catenated in the second memory system with the first memory operand portion, thereby forming first catenated data;
a second copying module configured to copy a third memory operand portion from the first memory system to the third memory system, the third memory operand portion having the first data path width, and configured to copy a fourth memory operand portion from the first memory system to the third memory system, the fourth memory operand portion having the first data path width and being catenated in the third memory system with the third memory operand portion, thereby forming second catenated data; and
a functional unit configured to perform computations using the first catenated data and the second catenated data. - View Dependent Claims (17, 18, 19, 20, 21, 22)
-
-
23. A programmable processor comprising:
-
a first memory system having a first data path width, a second memory system and a third memory system each of the second memory system and the third memory system having a data path width which is greater than the first data path width;
a first copying module configured to copy a first memory operand portion from the first memory system to the second memory system, the first memory operand portion having the first data path width, and configured to copy a second memory operand portion from the first memory system to the second memory system, the second memory operand portion having the first data path width and being catenated in the second memory system with the first memory operand portion, thereby forming first catenated data;
a second copying module configured to copy a third memory operand portion from the third memory system to the first memory system, the third memory operand portion having the first data path width and containing a portion of a second catenated data, and copy a fourth memory operand portion from the third memory system to the first memory system, the fourth memory operand portion having the first data path width and containing a portion of the second catenated data, wherein the fourth memory operand portion is catenated in the third memory system with the third memory operand portion; and
a functional unit configured to perform computations using the first catenated data and the second catenated data. - View Dependent Claims (24, 25, 26, 27, 28, 29, 30)
-
Specification