Method and apparatus for a self-timed and self-enabled distributed clock
DCFirst Claim
1. A self-timed and self-enabled clock circuit for synchronizing operation of a digital circuit, comprising:
- a control circuit that detects input clock pulses and that provides an enable signal while the input clock pulses are provided; and
a clock delay device, coupled to the control circuit, that has a plurality of inputs and an output that provides an output clock pulse when the clock delay device is enabled, the inputs including;
a feedback clock input that is coupled to the output of the clock delay device;
a clock input for receiving the input clock pulses; and
an enable input that receives the enable signal to enable the clock delay device;
wherein the clock delay device, when enabled by the enable signal, provides output clock pulses that are synchronized with the input clock pulses.
2 Assignments
Litigations
0 Petitions
Accused Products
Abstract
A self-timed and self-enabled distributed clock is provided for pipeline processor design having functional blocks which include one or more pipeline stages for processing instructions and operations. Each pipeline stage of the processor includes self-timed logic and an enable signal to set up the valid data input to the next pipeline stage. The self-timed logic is used instead of a central, synchronous clock having a predetermined period and provides flexibility of expanding or contracting the clock period in multiple time units depending on the functionality of each pipeline stage. The interfacing between the pipeline stages is handled by a queue buffer which stores incoming instructions to keep the pipeline fully occupied any time there are instructions in the pipeline. A functional unit and its distributed clock are activated only if there is instruction in the pipeline and is otherwise idle. The self-timed clock provides a fixed time unit or plurality of time units to each pipeline stage which is deterministic for verification and testing purposes. The self-timed and self-enabled clock, along with the queue buffers associated therewith, provide flexibility for implementing each pipeline stage while reducing power, noise and clock skew and while improving the overall instruction-per-cycle performance of the processor.
117 Citations
58 Claims
-
1. A self-timed and self-enabled clock circuit for synchronizing operation of a digital circuit, comprising:
-
a control circuit that detects input clock pulses and that provides an enable signal while the input clock pulses are provided; and a clock delay device, coupled to the control circuit, that has a plurality of inputs and an output that provides an output clock pulse when the clock delay device is enabled, the inputs including; a feedback clock input that is coupled to the output of the clock delay device; a clock input for receiving the input clock pulses; and an enable input that receives the enable signal to enable the clock delay device; wherein the clock delay device, when enabled by the enable signal, provides output clock pulses that are synchronized with the input clock pulses. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15)
-
-
16. A distributed clock system for a digital circuit, comprising:
-
a first self clock that provides first output clock pulses when enabled, the first self clock comprising; an output, a first input coupled to the output and a second input; wherein the first self clock is enabled by each clock pulse received at the second input and synchronizes the first output clock pulses with respective clock signals received at the second input; and a second self clock that provides second output clock pulses when enabled, the second self clock comprising; an output, a first input coupled to the output of the second self clock, and a second input coupled to the output of the first self clock; wherein the second self clock is enabled by each clock pulse received at the second input and synchronizes the second output clock pulse with respective clock signals received at the second input of the second self clock. - View Dependent Claims (17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32)
-
-
33. A processor, comprising:
-
a plurality of functional blocks, each comprising; a queue buffer having a data input and a data output, the data input being the data input of the respective functional block; an execution unit that has an input coupled to the data output of the queue buffer and an execution data output, the execution output being the data output of the respective functional block; a self clock that has an output, a first clock input, a feedback input coupled to the output of the self clock, and an enable input; the self clock, when enabled, providing output clock pulses that are synchronized with clock pulses received at the first clock input; and a control block, coupled to the queue buffer, the execution unit and self clock, that has an enable output coupled to the enable input of the self clock; the control block enabling the self clock while the execution unit is processing data and while clock pulses are received at the first clock input of the self clock; and the plurality of functional blocks including a first and second functional blocks coupled together; wherein a first clock input of the second functional block is coupled to a clock output of the first functional block, and wherein the data output of the first functional block is coupled to the data input of the second functional block. - View Dependent Claims (34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45)
-
-
46. A method of operating each of a plurality of coupled functional blocks of a digital system, comprising:
-
receiving input data and corresponding first input clock pulses; activating a self clock to provide an output clock pulse for each first input clock pulse; processing the input data and generating output data; generating, by the self clock, an output clock pulse to correspond with each output data; and deactivating the self clock while first input clock pulses are not received or during a stall condition. - View Dependent Claims (47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58)
-
Specification