Input pipeline registers for a node in an adaptive computing engine
First Claim
1. A computational unit in an adaptable computing engine, wherein the computational unit includes a clock signal for determining a processor cycle, the computational unit comprisingone or more functional units coupled by a bus, wherein the one or more functional units include functional unit inputs;
- at least one pipeline register coupled between the bus and at the input of least one functional unit input;
a control signal for selectively causing the at least one pipeline register to hold a data value from the bus for more than one processor cycle at the input of the at least one functional unit, the data value being obtainable at the input at a start of a next processor cycle upon being needed;
a coupling of a pair of pipeline registers such that the pair of registers is responsive to a control signal value; and
control circuitry for setting the pair of pipeline registers into predetermined states based on the control signal value.
5 Assignments
0 Petitions
Accused Products
Abstract
Input pipeline registers are provided at inputs to functional units and data paths in a adaptive computing machine. Input pipeline registers are used to hold last-accessed values and to immediately place commonly needed constant values, such as a zero or one, onto inputs and data lines. This approach can reduce the time to obtain data values and conserve power by avoiding slower and more complex memory or storage accesses. Another embodiment of the invention allows data values to be obtained earlier during pipelined execution of instructions. For example, in a three stage fetch-decode-execute type of reduced instruction set computer (RISC), a data value can be ready from a prior instruction at the decode or execute stage of a subsequent instruction.
106 Citations
17 Claims
-
1. A computational unit in an adaptable computing engine, wherein the computational unit includes a clock signal for determining a processor cycle, the computational unit comprising
one or more functional units coupled by a bus, wherein the one or more functional units include functional unit inputs; -
at least one pipeline register coupled between the bus and at the input of least one functional unit input; a control signal for selectively causing the at least one pipeline register to hold a data value from the bus for more than one processor cycle at the input of the at least one functional unit, the data value being obtainable at the input at a start of a next processor cycle upon being needed; a coupling of a pair of pipeline registers such that the pair of registers is responsive to a control signal value; and control circuitry for setting the pair of pipeline registers into predetermined states based on the control signal value. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A method for providing data in a computational unit in an adaptable computing engine, the method comprising
including pipeline registers at inputs to functional units, wherein the pipeline registers are coupled to a bus for obtaining data from the bus; -
including a control signal for selectively causing the pipeline registers to hold a data value from the bus for one or more processor cycles at an input of at least one functional unit in the one or more functional units, the data value being obtainable at the input at a start of a next processor cycle upon being needed; coupling a pair of registers such that the pair of pipeline registers is responsive to a control signal value; and providing control circuitry for setting the pair of pipeline registers into predetermined states based on the control signal value. - View Dependent Claims (8, 9, 10, 11)
-
-
12. An apparatus for providing a data value in a computational unit in an adaptable computing engine, wherein the computational unit includes a multi-stage execution pipeline, the apparatus comprising
one or more functional units coupled by a bus, wherein the one or more functional units include functional unit inputs; -
at least one input register coupled between the bus and at least one functional unit input, the at least one register configured to store a value received from the bus at a beginning or end of a first clock cycle; and a data path from the at least one input register to a given stage in the execution pipeline so that the value provided by the register is available for use at a time of execution of the given stage of the at least one functional unit, wherein the value is available to the given stage at a next clock cycle from the first clock cycle. - View Dependent Claims (13, 14, 15)
-
-
16. A method for providing a data value in a computational unit in an adaptable computing engine, wherein the computational unit includes a multi-stage pipeline, the method comprising
coupling one or more functional units to a bus, wherein the one or more functional units include functional unit inputs; -
coupling at least one register between the bus and at least one functional unit input; storing a value received from the bus in the at least one register at a beginning or end of a first clock cycle; and providing a data path from the at least one register to a given stage in the execution pipeline so that the value provided by the at least one register is available for use at a time of execution of the given stage of the at least one functional unit, wherein the value is available to the given stage at a next clock cycle from the first clock cycle. - View Dependent Claims (17)
-
Specification