This invention relates to clock generators used in processor-based systems and, more particularly, to the behavior of a clock generator during a reduced power mode of the system.
A clock generator is a device that produces one or more clocks at a specified frequency. Typically a standalone integrated circuit (IC) located on a motherboard of a processor-based system, the clock generator receives a source clock, such as a reference crystal, as its input, and produces a number of clocks for the other ICs on the motherboard. One or more phase-locked loops (PLLs) within the clock generator perform the frequency multiplication and division needed to generate the output clocks, which generally look like square waves (clock pulses).
The clock generator may also include a small memory for designating configuration registers. A bus, such as a serial bus, enables access to the registers, which are usually programmed during power-on of the processor-based system. The configuration registers may include one or more clock control registers, bus (such as PCI and USB) registers, frequency and spread spectrum control registers, and so on. The outputs of the clock generator, which may include a number of clock pulses running at different frequencies, are thus controlled by programming the configuration registers. The clock generator may include a default configuration in which the configuration registers are not consulted.
Typical processor-based systems include low- and reduced-power states, known in the industry as standby or suspend mode. Often, the processor-based system includes multiple standby modes, which are invoked under different operating conditions. When the system enters standby mode, the current configuration of the system is saved. (There are many schemes for saving the system state.) Upon exiting standby mode, the processor-based system is supposed to be restored to the exact configuration held prior to invoking the standby mode.
As with most other ICs on the processor-based system, the clock generator is typically turned off during standby mode, such that no voltage is supplied to the chip, and thus no PLLs are operable. The configuration registers, which are volatile, lose their configuration state during standby mode. Since the PLLs of the clock generator may alone draw 15-20 mAmps, there is some power savings gained by turning off the clock generator during standby mode. Upon exiting standby mode, power is restored to the clock generator, which is automatically programmed according to a default state, since the configuration registers are empty.
Where the configuration registers of the clock generator are programmed to a default state (or not programmed), the return from standby mode is inconsequential. The state of the clock generator before standby mode is the same as its state after standby mode. Where a user-defined configuration of the configuration registers is made prior to entering standby mode, however, the user-defined configuration is lost following standby. The inability to truly reflect the clock generator state following standby may be undesirable in some circumstances, such as during testing of the processor-based system.
Thus, there is a continuing need for a clock generator which overcomes the shortcomings of the prior art.
In accordance with the embodiments described herein, a clock generator of a processor-based system is disclosed, the clock generator including one or more PLLs and one or more configuration registers. The clock is supplied power from two different voltage sources, such that, during a standby mode of the system, the configuration registers continue to be powered with the lower of the two voltages while the PLLs are turned off. Upon returning from the standby mode, the clock generator may be reinitialized according to a user-defined configuration, since the configuration registers retain data throughout standby mode. Alternatively, the clock generator may be reinitialized to a default state following standby mode, for backwards compatibility with prior art clock generators.
In the following detailed description, reference is made to the accompanying drawings, which show by way of illustration specific embodiments in which the invention may be practiced. However, it is to be understood that other embodiments will become apparent to those of ordinary skill in the art upon reading this disclosure. The following detailed description is, therefore, not to be construed in a limiting sense, as the scope of the present invention is defined by the claims.
In
The configuration registers 16 are programmed during execution of power-on firmware within the processor-based system. Alternatively, the configuration registers may be programmed by operating system software running in the processor-based system. The processor-based system 22 may also include runtime software with which an end user may modify the configuration registers after power-on. Absent any user-defined configuration of the clock generator 20, the power-on firmware (or operating system software) programs the configuration registers 16 with default values.
A reference clock 10 is fed to the clock generator 20 as an input. The reference clock, or reference crystal, supplies the source signal with which the PLLs 12 derive one or more output clocks, shown in
The clock generator is powered by a voltage shown as Vmain. The voltage Vmain is typically the main voltage supplied to the majority of ICs on the processor-based system. When the processor-based system is powered on, Vmain is supplied to the clock generator 20, as well as to other ICS on the motherboard (not shown) of the processor-based system 22. When the processor-based system 22 is turned off, the voltage Vmain is not supplied to the clock generator 20.
Likewise, when the processor-based system 22 enters standby mode, or another low-power state, the voltage Vmain is not available to the clock generator. This means that the PLLs are not running, data within the configuration registers is lost, and the clock generator produces no output clocks CLK0-CLKN. When the processor-based system 22 emerges from standby mode, the clock generator 20 is initialized to a default state, since the configuration registers 16 have no programming data. Systems returning from standby mode do not execute a power-on initialization sequence, as is the case with the initial system power-on (i.e., when the power-on button is activated). Instead, the processor-based systems execute a standby recovery initialization sequence, to return the system to its exact system state prior to standby mode. At least where the clock generator 20 has been altered according to a user-defined configuration prior to entering standby mode, the exact system state is not achieved following a return from standby mode.
In
Similar to the clock generator 20 of
In contrast to the clock generator 20, power to the configuration registers 34 and to the PLLs of the clock generator 50 is separately controlled. This enables a voltage to be selectively supplied to one of the components. In some embodiments, a voltage is supplied to the configuration registers 36 while no voltage is supplied to the PLLs 32 during standby mode of the processor-based system 42.
Further, the clock generator 50 is powered by two different voltage sources, Vmain and Vaux. The voltage, Vmain, is shown sourcing the PLLs 32. The voltage, Vaux, is shown sourcing the configuration registers 34.
By separating the PLLs 32 and the configuration registers 34 so that they can be sourced separately, and by making two voltage sources available to the clock generator 50, a user-defined configuration of the clock generator can be maintained after standby mode, in contrast with prior art clock generators. It is known that the PLLs of a typical clock generator draw approximately 15-20 mAmps of power while the configuration registers draw roughly 1 mAmp. By powering the configuration registers 36 but not the PLLs 32 during standby mode, significant power savings may result. Further, by supplying voltage to the configuration registers 36 during standby mode, the data contents of the registers is maintained during and following standby mode, such that a user-defined configuration submitted prior to standby mode is available when the clock generator 50 is reinitialized following standby mode.
Thus, the clock generator 50 of
In an alternative embodiment, the configuration registers 36 may be powered by Vaux during standby mode, then switched to Vmain when the processor-based system 42 is not in standby mode. In both embodiments, the configuration registers receive Vaux during standby mode.
Since the configuration registers 36 control the characteristics of the PLLs 32, they are consulted during the restoration sequence of the clock generator 50. The PLLs are programmed according to the data in the configuration registers 36. Thus, the PLLs are configured to operate after standby mode in the manner assumed prior to standby mode.
There may exist circumstances in which it is desirable for the clock generator 50 to return to a default configuration following the standby mode. As shown in
Table 2 illustrates the effect of the no_reload bit on whether the configuration registers are consulted following standby mode. The no_reload bit is described as having an “off” or an “on” state, in which a “1” value represents one of the states and a “0” value represents the other state.
The no_reload bit allows the clock generator 50 to be backwards compatible with prior art clock generators that do not support maintaining a user-defined configuration state following standby mode. Where such backwards compatibility is sought, the no_reload bit can be set to the “on” state.
As long as the system does not enter standby mode (the “no” prong of block 206), the PLLs 32 are sourced by the voltage, Vmain, while the configuration registers 36 are sourced by the voltage, Vaux. Once the system enters standby mode (the “yes” prong of block 206), the voltage, Vmain, is removed from the PLLs 32, while the voltage Vaux remains available to the configuration registers 36 (block 208). The PLLs 32 are not operating while the processor-based system is in standby mode. In some embodiments, the auxiliary voltage, Vaux, is a voltage sufficient to maintain the data stored in the configuration registers.
While the system is in standby mode (the “no” prong of block 210), the clock generator 50 is maintained with Vaux supplying the configuration registers 36 and no voltage supplying the PLLs 32. Because the power drawn by the clock generator 50 is substantially lessened during standby mode, 1/20th of its non-standby draw, by one measure, the processor-based system 42 advantageously experiences a power savings over prior art systems. Once the system 42 exits standby mode (the “yes” prong of block 210), the voltage, Vmain, is supplied to the PLLS; the configuration registers continue to receive the voltage, Vaux, uninterrupted (block 212). Accordingly, the state of the configuration registers 32 has, at all times, been maintained.
Since the configuration registers 36 were maintained during standby mode, the status of the no_reload bit 30 is known. Where the no_reload bit is not set (the “no” prong of block 214), the rest of the configuration registers 36 are consulted during initialization of the PLLs 32 (block 218). If, instead, the no_reload bit is cleared (the “yes” prong of block 214), the configuration registers are not consulted, and the PLLs are programmed according to a predetermined default configuration (block 216). Where the configuration registers 36 are not consulted, the backwards compatibility of the clock generator 50 with prior art clock generators is maintained.
By separating the voltage sourcing between the PLLs 32 and the configuration registers 36, substantial power savings can be realized during standby mode without losing the pertinent information needed to restore the clock configuration to its user-defined state following standby mode. Further, backwards compatibility is maintained using the clock generator 50, for those processor-based systems that execute legacy (old) software, those which are upgraded using legacy hardware, or for other reasons. Where the processor-based system 42 is being tested, or where the end user decides to “over-clock” the processor, the latest configuration of the clock generator can be maintained following standby with the above system and method.
In
While the invention has been described with respect to a limited number of embodiments, those skilled in the art will appreciate numerous modifications and variations therefrom. It is intended that the appended claims cover all such modifications and variations as fall within the true spirit and scope of the invention.