Method and apparatus for vector execution on a scalar machine
First Claim
1. A processor comprising:
- a) an instruction decode circuit having an address output, the instruction decode circuit being configured to determine an address specified by an instruction and to provide the specified address at the address output of the instruction decode circuit;
b) a rename circuit having
1) an address input coupled to the address output of the instruction decode circuit, and
2) an address output, the rename circuit comprising;
i) a counter configured to count a number of times the instruction decode circuit has consecutively decoded the instruction;
ii) an arithmetic circuit having
1) a first input coupled to the address input of the rename circuit,
2) a second input coupled to the counter, and
3) a renamed output, wherein the arithmetic circuit is configured to provide at the renamed output a renamed value representing;
the specified address received from the address output of the instruction decode circuit via the address input of the rename circuit,added to a value stored in a first register, the value being indicative of a number of vector iterations that have been completed prior to a current vector run, andoffset by an amount that is based on a number of times the processor, while operating in a vector mode, has executed the instruction during the current vector run;
iii) a switching circuit having
1) a first input coupled to the address input of the rename circuit,
2) a second input coupled to the renamed output of the arithmetic circuit,
3) a control input, and
4) an output coupled to the address output of the rename circuit, wherein the switching circuit is configured to selectively couple a value at the first input of the switching circuit or the renamed value at the second input of the switching circuit to the output of the switching circuit based on a value of the control input; and
c) a data access circuit having an address input coupled to the address output of the rename circuit.
2 Assignments
0 Petitions
Accused Products
Abstract
A processor that can execute instructions in either scalar mode or vector mode. In scalar mode, instructions are executed once per fetch. In vector mode, instructions are executed multiple times per fetch. In vector mode, the processor recognizes scalar variables and vector variables. Scalar variables may be assigned a fixed memory location. Vector variables use different physical locations at different iterations of the same instruction. The processor includes circuitry to automatically index addresses of vector variables for each iteration of the same instruction. This circuitry partitions a register into a vector region and a scalar region. Accesses to the vector region are automatically indexed based on the number of iterations of the instruction that have been performed.
42 Citations
16 Claims
-
1. A processor comprising:
-
a) an instruction decode circuit having an address output, the instruction decode circuit being configured to determine an address specified by an instruction and to provide the specified address at the address output of the instruction decode circuit; b) a rename circuit having
1) an address input coupled to the address output of the instruction decode circuit, and
2) an address output, the rename circuit comprising;i) a counter configured to count a number of times the instruction decode circuit has consecutively decoded the instruction; ii) an arithmetic circuit having
1) a first input coupled to the address input of the rename circuit,
2) a second input coupled to the counter, and
3) a renamed output, wherein the arithmetic circuit is configured to provide at the renamed output a renamed value representing;the specified address received from the address output of the instruction decode circuit via the address input of the rename circuit, added to a value stored in a first register, the value being indicative of a number of vector iterations that have been completed prior to a current vector run, and offset by an amount that is based on a number of times the processor, while operating in a vector mode, has executed the instruction during the current vector run; iii) a switching circuit having
1) a first input coupled to the address input of the rename circuit,
2) a second input coupled to the renamed output of the arithmetic circuit,
3) a control input, and
4) an output coupled to the address output of the rename circuit, wherein the switching circuit is configured to selectively couple a value at the first input of the switching circuit or the renamed value at the second input of the switching circuit to the output of the switching circuit based on a value of the control input; andc) a data access circuit having an address input coupled to the address output of the rename circuit. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 14, 15, 16)
-
-
11. A processor configured to execute a first instruction a consecutive plurality of times, the processor comprising:
-
a) instruction decode circuitry configured to determine an address specified by the first instruction; b) rename circuitry configured to rename the specified address received from the instruction decode circuitry, wherein the rename circuitry is configured to rename the specified address based on; a number of times the processor, while operating in a vector mode, has executed the first instruction during a current vector run, and a number of vector iterations that have been completed prior to the current vector run; c) instruction execute circuitry configured to execute the first instruction; and d) write circuitry configured to write a result of executing the first instruction to the renamed address. - View Dependent Claims (12, 13)
-
Specification