Dynamic frequency control using coarse clock gating
First Claim
1. An apparatus comprising:
- a clock tree coupled to distribute a clock signal to each of a plurality of leaf nodes, wherein each leaf node is coupled to one or more synchronous circuits;
a plurality of fine-grain clock gating units, wherein each of the plurality of fine-grain clock gating units is configured to gate the clock signal provided to each of the one or more synchronous circuits of a corresponding one of the plurality of leaf nodes;
a functional unit including a number of the plurality of fine-grain clock gating units in a subset of the plurality of leaf nodes;
a coarse clock gating unit configured to gate the clock signal for each of the subset of the plurality of leaf nodes;
a gating control unit coupled to the coarse clock gating unit, wherein the gating control unit is configured to selectively control a frequency of the clock signal provided to each of the subset of the plurality of leaf nodes by enabling one of every N cycles of the clock signal and inhibiting N-1 of every N cycles of the clock signal, wherein N is an integer value that is greater than one; and
wherein the gating control unit is configured to dynamically change the frequency without suspending operation of the functional unit.
1 Assignment
0 Petitions
Accused Products
Abstract
A method and apparatus for controlling the frequency of a clock signal using a clock-gating circuit is disclosed. In one embodiment, a root clock signal and an enable signal are provided to a clock-gating circuit. The clock-gating circuit is configured to provide an operational clock signal (based on the root clock signal) when the enable signal is asserted. The operational clock signal is inhibited when the enable signal is de-asserted. The frequency of the operational clock signal can be output at a reduced frequency (relative to the root clock signal) by asserting the enable signal for one of every N clock cycles. Furthermore, the frequency of the operational clock signal can be dynamically changed by changing the rate of asserting the enable signal relative to the root clock signal, without suspending operation of a functional unit receiving the operational clock signal.
-
Citations
21 Claims
-
1. An apparatus comprising:
-
a clock tree coupled to distribute a clock signal to each of a plurality of leaf nodes, wherein each leaf node is coupled to one or more synchronous circuits; a plurality of fine-grain clock gating units, wherein each of the plurality of fine-grain clock gating units is configured to gate the clock signal provided to each of the one or more synchronous circuits of a corresponding one of the plurality of leaf nodes; a functional unit including a number of the plurality of fine-grain clock gating units in a subset of the plurality of leaf nodes; a coarse clock gating unit configured to gate the clock signal for each of the subset of the plurality of leaf nodes; a gating control unit coupled to the coarse clock gating unit, wherein the gating control unit is configured to selectively control a frequency of the clock signal provided to each of the subset of the plurality of leaf nodes by enabling one of every N cycles of the clock signal and inhibiting N-1 of every N cycles of the clock signal, wherein N is an integer value that is greater than one; and
wherein the gating control unit is configured to dynamically change the frequency without suspending operation of the functional unit. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A method comprising:
-
providing a first clock signal to a coarse clock-gating unit, wherein the coarse clock gating unit is coupled to distribute a second clock signal that is based on the first clock signal to a plurality of leaf nodes of a clock tree, wherein each of the leaf nodes is associated with a corresponding fine-grain clock gating unit coupled to distribute, when enabled, the clock signal to each of a corresponding one or more synchronous circuits within a functional unit, each functional unit including a number of the fine-grain clock gating units in a subset of the plurality of leaf nodes, wherein the first clock signal has a first frequency and the second clock signal has a second clock frequency; providing a coarse-gating enable signal to the coarse clock-gating unit, wherein the coarse clock gating unit is configured to output the second clock signal when the coarse-gating enable signal is asserted and is further configured to inhibit the second clock signal when the coarse-gating enable signal is de-asserted; causing the second clock frequency to be less than the first clock frequency by asserting the coarse-gating enable signal for one of every N cycles of the first clock signal and de-asserting the coarse-gating enable signal for every N-1 cycles of the first clock signal, wherein N is an integer value greater than one; and dynamically changing, by the coarse clock gating unit, the second frequency from being equal to the first clock frequency to being less than the first clock frequency. - View Dependent Claims (7, 8, 9, 10)
-
-
11. A method comprising:
-
providing a root clock signal at a first frequency to a clock-gating unit; outputting an operational clock signal from the clock-gating unit, wherein the operational clock signal is based on the root clock signal; providing an enable signal to the clock-gating unit; providing the operational clock signal to a functional block that includes a number of fine-grain clock gating units in a plurality of leaf nodes of a clock tree for the root clock signal; dynamically changing, by the clock-gating unit, the second frequency without suspending operation of the functional block; outputting the operational clock signal at the first frequency by asserting the enable signal for each of the cycles of the root clock signal; and outputting the operational clock signal at a second frequency that is less than the first frequency by asserting the enable signal for one of every N cycles of the root clock signal and de-asserting the enable signal for N-1 of every N cycles of the root clock signal, wherein N is an integer greater than one. - View Dependent Claims (12, 13)
-
-
14. An integrated circuit comprising:
-
a clock generation unit configured generate a global clock signal; a plurality of functional units, wherein each of the plurality of functional units includes a number of fine-grain clock gating units in a plurality of leaf nodes of a clock tree for the global clock signal; a plurality of clock gating units, wherein each of the plurality of clock gating units is coupled to a corresponding one of the plurality of functional units, wherein each of the plurality of clock gating units is coupled to receive the global clock signal and is configured to provide a corresponding operating clock signal to its corresponding functional unit; and a clock control unit coupled to provide a corresponding one of a plurality of enable signals to each of the plurality of clock gating units, wherein each of the clock gating units is enabled to provide its respective operating clock signal to its respective functional unit when its respectively received enable signal is asserted; wherein the clock control unit is further configured to dynamically change a frequency of each of the operating clock signals by alternately asserting and de-asserting the enable signals provided to each of the clock gating units, and wherein the clock control unit is configured to assert selected ones of the plurality of enable signals for one of every N cycles of the global clock signal and to de-assert the selected ones of the plurality of enable signals for N-1 of every N cycles of the global clock signal, wherein N is an integer value that is greater than one. - View Dependent Claims (15, 16, 17)
-
-
18. A system comprising:
-
a first functional unit and a second functional unit; a clock generation unit configured to generate a global clock signal, wherein each of the first functional unit and the second functional unit include a number fine-grain clock gating units in a plurality of leaf nodes of a clock tree for the global clock signal; a first clock gating unit coupled to receive the global clock signal and to provide a first clock signal to the first functional unit; a second clock gating unit coupled to receive the global clock signal and to provide a second clock signal to the second functional unit; a clock control unit coupled to provide a first enable signal to the first clock gating unit and a second enable signal to the second clock gating unit, wherein the clock control unit is configured to dynamically change respective frequencies of the first and second clock signals by selectively asserting and de-asserting the first and second enable signals, respectively, wherein a given one of the first and second clock gating units is configured to provide the corresponding one of first and second clock signals at a frequency that is 1/N of the frequency of the global clock signal responsive to the clock control unit asserting the corresponding one of the first and second enable signals for one of every N cycles of the global clock signal and de-asserting the corresponding one of the of the first and second enable signals for N-1 of every N cycles of the global clock signal, wherein N is an integer value that is greater than one. - View Dependent Claims (19, 20, 21)
-
Specification