Clock adjusting techniques

Various implementations described herein refer to a method for providing an integrated circuit with a real-time clock source. The method may include generating a real-time clock signal for the integrated circuit with the real-time clock source. The method may include selectively adjusting clock frequency of the real-time clock signal to save power in the integrated circuit.

BACKGROUND

In conventional computing systems, micro-controller units (MCUs) are used for embedded applications, and MCUs are used for automatically controlling various types of devices, such as automobile engine control systems, implantable medical devices, remote controllers, office machines, appliances, and other embedded systems. MCUs typically reduce size and cost of computer designs thus providing an economical means for digital control of all types of systems, devices and processes. For instance, in reference to the Internet-of-things (IoT) devices, MCUs provide an economical means for data collection, sensing, and actuating the physical world as edge devices. MCUs have an ability to retain functionality while waiting for an event such as a button press or other interrupt, and MCUs typically consume less power in standby. However, to extend battery life, MCU designs need to improve power management to increase efficiency and reliability.

DETAILED DESCRIPTION

Various implementations described herein refer to clock scaling and adjustment schemes and techniques. For instance, the various schemes and techniques described herein may provide for a system of mechanisms that are used for dynamically adjusting real-time clock (RTC) frequency in always-on circuitry during a standby mode of operation when an always-on system continuously operates. As such, in some instances, various clock adjusting schemes and techniques described herein may be used to reduce standby power that always-on subsystems consume when an internal subsystem sleeps, e.g., in a low power mode of operation. Also, various schemes and techniques described herein may provide for a hardware (HW) power management scheme that automatically adjusts the real-time clock frequency to match an application-specific wake-up resolution, to thereby save standby power without effecting usability penalty.

In some implementations, the schemes and techniques described herein may provide for a system or device that includes logic circuitry and timer circuitry. For instance, the logic circuitry may have an on-chip clock source that provides a real-time clock (RTC) signal with an oscillating frequency. Also, in this instance, the timer circuitry may receive the real-time clock (RTC) signal from the on-chip clock source and selectively scale the oscillating frequency of the real-time clock (RTC) signal so as to thereby save power in the logic circuitry. In some instances, the logic circuitry may be configured to continuously operate with always-on activity, and also, the on-chip clock source may be configured as an on-chip oscillator. The logic circuitry may be configured to selectively scale the clock frequency of the real-time clock (RTC) signal by dynamically reducing the clock frequency of the real-time clock (RTC) signal provided by the on-chip oscillator so as to save power in the logic circuitry. In some instances, the timer circuitry may be configured to generate an increment value for the real-time clock (RTC) signal and selectively adjust the increment value to compensate for various changes in the clock frequency of the real-time clock (RTC) signal. The timer circuitry may be configured to selectively adjust the increment value by selectively increasing and/or by selectively decreasing the increment value so as to thereby compensate for the various changes in the clock frequency of the real-time clock (RTC) signal.

Various implementations of clock scaling and adjustment techniques will be described in detail herein with reference toFIGS. 1-4.

FIG. 1illustrates a diagram of integrated circuitry (IC)100in accordance with various implementations described herein. In some instances, the integrated circuitry100may be implemented as an always-on subsystem102(or device, or other logic circuit) having various circuit components that continuously operate with always-on activity using a real-time clock (RTC) source, such as, e.g., an on-chip oscillator124. The circuit components are arranged and coupled together as an assemblage or combination of parts that provide for a physical circuit layout design and other related structures. Also, in other instances, a method of designing, providing and building the integrated circuitry100may involve use of the various circuit components described herein so as to thereby implement the clock scaling and adjustment schemes and techniques associated therewith.

As shown inFIG. 1, the integrated circuitry100includes various circuit components, such as, e.g., an always-on subsystem102, CPU subsystem circuitry104, power control state machine circuitry106, voltage regulator (VR) circuitry110, battery monitor circuitry112, logic gate circuitry114, input-output (IO) pad circuitry118, and real-time clock (RTC) architecture circuitry120. In some instances, the integrated circuitry100may be implemented with various logic circuitry that may continuously operate with always-on activity. The real-time clock (RTC) architecture circuitry120may include various circuit components, such as, e.g., an on-chip oscillator124and timer circuitry128.

The CPU subsystem circuitry104may include on/off power-gating circuitry that allows for operating in a sleep/standby mode, and the RTC architecture120may be used to reduce standby power that the always-on subsystem102consumes in situations when the CPU subsystem104sleeps, e.g., in a low power mode of operation. The CPU subsystem104may provide real-time response to events related to the always-on subsystem102. When particular events occur, an interrupt pin may signal the CPU subsystem104to suspend processing current instruction sequences and begin an interrupt service routine (ISR), which may perform any processing based on the source of the interrupt, before returning to the original instruction sequence. In reference to power consumption, interrupts may also wake the CPU subsystem104from a low power sleep state. In some instances, any adjustment to clock frequency of the real-time clock (RTC) signal, such as, e.g., scaling the clock frequency of the RTC signal, may be achieved automatically when triggered by lower precision wake-up requests.

The power control state machine (PCSM) circuitry106receives a wake control signal (Wake) from the logic gate circuitry114, receives the real-time clock (RTC) signal from the on-chip oscillator124, and provides one or more power control signals to the voltage regulator (VR) circuitry110. The power control state machine (PCSM)106may include a number of states that may increase or decrease performance of the CPU subsystem104at standard mode of operation via the voltage regulator (VR) circuitry110. When the CPU subsystem104is at low power mode of operation, the power control state machine (PCSM)104deactivates the voltage regulator (VR) circuitry110, which supplies power to the CPU subsystem104, until the flag of the wake-up signal from the real-time clock (RTC) architecture circuitry120via the logic gate circuitry114.

The voltage regulator (VR) circuitry110may receive one or more power control signals from the power control state machine (PCSM) circuitry106, receive the real-time clock (RTC) signal from the on-chip oscillator124, and provide one or more output signals to various circuit components in the always-on subsystem102. Upon receiving the power control signals from the power control state machine (PCSM) circuitry106, the voltage regulator (VR)110dynamically changes performance of the CPU subsystem104at standard mode of operation. At standard mode of operation, the voltage regulator (VR)110increases or decreases its output voltage, which is the supply voltage of the CPU subsystem104, so as to increase or decrease performance of the CPU subsystem104, respectively. At the low power mode of operation of the CPU subsystem104, the voltage regulator (VR)110is deactivated and so is its output voltage (i.e., the supply voltage of the CPU subsystem104). At the low power mode of operation, the voltage regulator (VR)110receives the power control signals from the power control state machine (PCSM) circuitry106and activates its output voltage, and then the CPU subsystem104operates at standard mode. The voltage regulator (VR)110may receive the real-time clock (RTC) signal from the on-chip oscillator124, as a clock signal source for internal circuitry of the voltage regulator (VR)110. The internal circuitry of the voltage regulator (VR)110may convert the power control signals from the power control state machine (PCSM) circuitry106to a controllable output voltage, so as to dynamically change the performance of the CPU subsystem104in the standard mode of operation.

The battery monitor circuitry112may refer to voltage monitoring circuitry that is configured to protect the always-on subsystem102from operating outside a safe operating area. In some instances, the battery monitor circuitry112of the always-on subsystem102may be used to obtain real-time battery voltage information and avoid over-voltage or under-voltage operation of the always-on subsystem102. Also, in some instances, the battery voltage range may be wider than the voltage operation range of the always-on subsystem102.

The logic gate circuitry114may include one or more logic gates, such as, e.g., an OR gate, that selectively receives a control signal from the timer circuitry128, receives an input signal from the10pad circuitry118, and provides a wake control signal (Wake) to the power control state machine circuitry106. The input-output (IO) pad circuitry118may include one or more circuits that are configured to protect the always-on subsystem102and the CPU subsystem104from damage caused by electro-static discharge (ESD).

The real-time clock (RTC) architecture circuitry120may include various circuit components, such as, e.g., on-chip oscillator circuitry124and timer circuitry128. In some instances, the on-chip oscillator124may be implemented as an RTC source having clock circuitry that is configured to generate an RTC signal (having an oscillating frequency) for the always-on logic circuitry102. The oscillating frequency of the RTC signal may also be referred to as a clock frequency, such as, e.g., a real-time clock frequency. The timer circuitry128may include counter circuitry that receives the RTC signal and counts toggles of the RTC signal provided by the on-chip oscillator124as an on-chip RTC source. Also, the timer circuitry128may be configured to selectively adjust the clock frequency of the RTC signal to save (or conserve) power in the always-on logic circuitry102. As such, the clock circuitry may refer to an on-chip oscillator124(or similar circuitry) that is configured to generate and provide the RTC signal to the always-on logic circuitry102.

In some implementations, the on-chip oscillator124may refer to various types of oscillators, such as, e.g., resistor-capacitor (RC) oscillator, switched capacitor network, gate leakage, etc. Thus, in this instance, the timer circuitry128may be configured with a frequency scaling capability and a frequency control signal so as to selectively scale the oscillating clock frequency of the real-time clock (RTC) signal as provided by the on-chip oscillator124.

In some implementations, the timer circuitry128may be configured for various activities. For instance, the timer circuitry128may be configured to selectively adjust the clock frequency of the RTC signal by dynamically lowering the clock frequency of the RTC signal that is provided by the on-chip oscillator so as to save power in the always-on logic circuitry102. In some instances, the timer circuitry128may be configured to activate a timed-shutdown of the CPU subsystem104, and also, the timer circuitry128may be configured to selectively adjust the clock frequency of the RTC signal by entering a standby mode of operation (or low power mode) to thereby dynamically reduce the clock frequency of the RTC signal so as to thereby save power in the always-on logic circuitry102. In some instances, the timer circuitry128may be configured to activate a timed-wake-up of the CPU subsystem104after activating the timed-shutdown of the CPU subsystem104, and also, the timer circuitry128may be configured to selectively adjust clock frequency of the RTC signal by entering a standard mode of operation (or normal mode) to thereby dynamically increase the clock frequency of the RTC signal in response to wake-up of the CPU subsystem104from the standby mode (or low power mode) to the standard mode of operation.

In some implementations, the timer circuitry128may be configured for various other activities. In some instances, the timer circuitry128may be configured to selectively adjust the increment value by selectively increasing or selectively decreasing the increment value to compensate for various changes in the clock frequency of the RTC signal. As shown inFIG. 1, the on-chip oscillator124may provide an output to the timer circuitry128, and the output of the on-chip oscillator124may be scaled by the timer circuitry128. In this instance, the timer circuitry128may generate the real-time count value (RTV) of the RTC signal from the on-chip oscillator124, and also, the timer circuitry128may compensate for various changes in the RTC signal by adjusting the increment/decrement value so as to not affect the RTV, which operates to adjust the scaled oscillator output.

In some instances, the clock power of the RTC architecture120may dominate deep sleep modes, and power may be consumed at different rates depending on activity of the RTC. The power consumed when RTC is disabled (e.g., when RTC running at 0 kHz, while entering shutdown mode with external wake-up only) is less than the power consumed when RTC is enabled (e.g., when RTC running at >0 kHz, when entering timed-shutdown mode with internal wake-up). While in the timed-shutdown mode, the power control state machine (PCSM) and digital timers may be running and clocked by the RTC, accounting for much of the power consumption. Therefore, reducing the RTC frequency may reduce the timed-shutdown power significantly, but may decrease precision of shutdown intervals and reduce precision of the RTC used in active mode. As such, the various clock scaling and adjustment schemes and techniques described herein seek to take advantage of the on-chip real-time clock source and codesign of the timers, so as to dynamically alter the operating frequency of the RTC and save (or conserve) power, while still providing a same precision of the RTC without any additional software management.

FIG. 2illustrates a diagram of the real-time clock (RTC) architecture120and related circuitry in accordance with various implementations described herein.

In reference toFIG. 2, the real-time clock (RTC) architecture120may include the on-chip oscillator124and the timer circuitry128. The on-chip oscillator124may be referred to as a clock source, such as, e.g., an on-chip real-time clock source. As shown, the on-chip oscillator124may communicate with the timer circuitry128by receiving an alarm control signal from the timer circuitry128and by providing a real-time clock (RTC) signal to the timer circuitry128. In various implementations, the on-chip oscillator124may be configured to operate as a clock source that generates and provides an oscillating clock signal with a clock frequency, and thus, the on-chip oscillator124may be configured to operate as various types of oscillators, such as, e.g., resistor-capacitor (RC) oscillator circuitry, switched capacitor (SC) network circuitry, gate leakage type circuitry, etc.

In some instances, the timer circuitry128may include various types of circuitry, such as, e.g., counter circuitry204, increment circuitry208, comparator circuitry210, and alarm register circuitry214, that are configured to selectively adjust clock frequency of the real-time clock (RTC) signal to save power in the always-on subsystem102. The counter circuitry204may be referred to as real-time counter circuitry having a digital counter that receives the real-time clock (RTC) signal from the on-chip oscillator124, counts the clock pulses (or toggles) of the RTC signal, and provides a real-time count value (RTV) of the RTC signal. The real-time counter circuitry204may provide the RTV as an output and/or as a control signal to the comparator circuitry210.

The increment circuitry208generates and provides an increment value to the counter circuitry204to adjust the RTC signal. In some instances, the increment circuitry208may also be configured as decrement circuitry that provides a decrement value to the counter circuitry204to adjust the RTC signal. In some instances, selectively increasing the increment value may decrease the clock frequency of the RTC signal, and selectively decreasing the increment value may increase the clock frequency of the (RTC) signal.

The comparator circuitry210may receive the real-time count value (RTV) from the counter circuitry204and compare the RTV to other count values. As described herein, the timer circuitry128may be configured to dynamically scale the clock frequency of the RTC signal by reducing the clock frequency of the RTC signal that is provided by the on-chip oscillator124so as to save (or conserve) power in the always-on subsystem102. In some instances, the timer circuitry128may selectively adjust the clock frequency by selectively lowering the clock frequency in a low power mode of operation to save power, and the low power mode of operation may refer to a deep sleep mode of operation.

The alarm register circuitry214may receive user program input and provide the frequency control signal to the on-chip oscillator124. The alarm register circuitry214may also provide another control signal to the comparator circuitry210. In some instances, the timer circuitry128may be configured to selectively increase the clock frequency of the RTC signal in response to wake-up signal provided to wake the CPU subsystem104from the low power mode to a standard mode of operation based on the alarm control signal. In some instances, scaling the clock frequency of the RTC signal is achieved automatically when triggered by lower precision wake-up requests. For instance, if the wake-up interval value is 117 (i.e., 117 toggles of RTC), then this value cannot be reduced by some multiple of 4/8/16 and, thus, full RTC precision must be maintained. However, if the wake-up interval was 120 (toggles of RTC), then the real-time clock (RTC) source may be reduced by 8×, and the real-time counter circuitry204will increment in (15) steps of 8 for the same functionality at lower power.

In some implementations, when user program input is received by the wake-up timer or alarm register circuitry214, the value of the timed-shutdown interval may be checked by the comparator210against a set of supported clock frequencies. If a suitable lower frequency is found, then the suitable lower frequency is selected once timed-shutdown has been entered. In some instances, to ensure correctness of the real-time clock value (RTV), the counter204may be incremented and updated accordingly, such as, e.g., 8× slower clock may require addition (or increment) of 8 rather than 1. In this instance, the real-time clock value (RTV) may be used to maintain the original precision, while reducing RTC dynamic power by up to 8×. Also, the least significant bits (LSB) in the counter204may be ignored depending on the selected precision.

In some implementations, selectively adjusting the clock frequency may refer to managing power of the always-on subsystem102using a power management technique during the low power mode of operation that automatically adjusts the clock frequency of the RTC signal to save power in the always-on subsystem102. Also, in some instances, the timer circuitry128may be configured to activate a timed-shutdown of the CPU subsystem104by entering the low power mode of operation to thereby dynamically adjust the clock frequency of the RTC signal to save power in the always-on subsystem102.

FIG. 3illustrates a process diagram of a method300for generating a real-time count value (RTV) in accordance with various implementations described herein.

It should be understood that even though method300indicates a particular order of operation execution, in some cases, various certain portions of the operations may be executed in a different order, and on different systems. In other cases, additional operations and/or steps may be added to and/or omitted from method300. Also, method300may be implemented in hardware and/or software. If implemented in hardware, the method300may be implemented with various components and/or circuitry, as described herein in reference toFIGS. 1-2. Also, if implemented in software, method300may be implemented as a program and/or software instruction process configured for performing clock adjustment schemes and techniques, as described herein. Also, if implemented in software, instructions related to implementing the method300may be stored in memory and/or a database. For instance, a computer or various other types of computing devices having a processor and memory may be configured to perform method300.

As shown inFIG. 3, in block310, method300manages active software runs for the CPU subsystem104(FIG. 1) based on user program input. In block314, method300sets the alarm register. In block318, method300may determine frequency mode changes for the on-chip oscillator124(FIGS. 1-2). In block322, method300provides for a timed-shutdown interval that allows the CPU subsystem104to enter a sleep mode of operation. In various instances, the sleep mode of operation may refer to a low power mode, a standby mode, or a deep sleep mode of operation.

In block326, method300may provide for counter runs, wherein the counter generates a real-time count value (RTV) of the real-time clock (RTC) signal. In block330, method300may provide a flag signal to wake-up the CPU. From block330, method300provides a wake-up signal to the CPU subsystem104(FIG. 1), and also, method300returns to block310to manage the active software runs of the CPU subsystem104(FIG. 1).

FIG. 4illustrates a process flow diagram of a method400for performing clock adjusting techniques in accordance with various implementations described herein.

It should be understood that even though method400indicates a particular order of operation execution, in some cases, various certain portions of the operations may be executed in a different order, and on different systems. In other cases, additional operations and/or steps may be added to and/or omitted from method400. Also, method400may be implemented in hardware and/or software. If implemented in hardware, the method400may be implemented with various components and/or circuitry, as described herein in reference toFIGS. 1-3. Also, if implemented in software, method400may be implemented as a program and/or software instruction process configured for performing clock adjustment schemes and techniques, as described herein. Also, if implemented in software, instructions related to implementing the method400may be stored in memory and/or a database. For instance, a computer or various other types of computing devices having a processor and memory may be configured to perform method400.

At block410, method400may provide an integrated circuit (IC) with a real-time clock (RTC) source. In some instances, the integrated circuit (IC) may include always-on logic circuitry that continuously operates with always-on activity. Also, the real-time clock (RTC) source may include an on-chip oscillator that is configured to generate a real-time clock (RTC) signal so as to save power in the always-on logic circuitry. Also, in some instances, the integrated circuit (IC) may include real-time counter circuitry configured to count toggles of the real-time clock (RTC) signal provided by the real-time clock (RTC) source. At block420, method400may generate the real-time clock (RTC) signal for the integrated circuit (IC) with the real-time clock (RTC) source.

At block430, method400may selectively adjust the clock frequency of the real-time clock (RTC) signal to save power in the integrated circuit (IC). In some instances, selectively adjusting the clock frequency refers to dynamically scaling the clock frequency of the real-time clock (RTC) signal by reducing the clock frequency of the real-time clock (RTC) signal that is provided by the on-chip oscillator so as to save power in the integrated circuit. In some instances, selectively adjusting the clock frequency refers to selectively lowering the clock frequency in a low power mode of operation to save power, and also, the low power mode of operation may refer to a sleep mode of operation including a deep sleep mode of operation. In some instances, the low power mode of operation may refer to a standby mode of operation.

In some implementations, method400may include selectively increasing the clock frequency of the real-time clock (RTC) signal to wake-up the integrated circuit (IC) from the low power mode to a standard mode of operation. In some instances, method400may include activating a timed-shutdown of the integrated circuit and also selectively adjusting the clock frequency of the real-time clock (RTC) signal by entering the low power mode of operation (or standby mode) to thereby dynamically adjust the clock frequency of the real-time clock (RTC) signal to save power in the integrated circuit (IC). In some instances, scaling the clock frequency may be achieved automatically when triggered by lower precision wake-up requests.

In some implementations, the real-time count value (RTV) may be kept the same independent of the clock frequency of the real-time clock signal (RTC). If reference to the increment (decrement) circuitry208, the increment value (or weight thereof) from increment (decrement) circuitry may change (or be adjusted) based on frequency change of the RTC signal so as to maintain the RTV as unaffected. I.e., when wake-up signal has preset value=RTV=(value of clock frequency of RTC) x (increment value or weight from increment/decrement circuitry208). For instance, if the RTV to count is 1 second in real world, when using 10 kHz as the clock frequency of the RTC, the RTV=10000 counts at the 1-second time interval assuming the weight or value of the increment (decrement) circuitry is 1. The wake-up signal flags when the comparator circuitry compares RTV with the pre-set value=10000. To save power, the clock frequency of the RTC may be reduced to 1 kHz. If the increment value or weight from the increment (decrement) circuitry208remains at 1, then the wake-up signal flags when the RTV=10000, but actual time interval is 10 seconds rather than 1 second. As such, the increment value or weight from the increment (decrement) circuitry may increment by 10, so as to obtain a correct RTV. In some instances, the increment value or weight from the increment (decrement) circuitry208may change binarily between 1, 2, 4, 8 and so on, because the bit change may be implemented by shifting the least-significant bit (LSB) in digital circuitry.

It should be intended that the subject matter of the claims not be limited to the implementations and illustrations provided herein, but include modified forms of those implementations including portions of implementations and combinations of elements of different implementations in accordance with the claims. It should be appreciated that in the development of any such implementation, as in any engineering or design project, numerous implementation-specific decisions should be made to achieve developers' specific goals, such as compliance with system-related and business related constraints, which may vary from one implementation to another. Moreover, it should be appreciated that such a development effort may be complex and time consuming, but would nevertheless be a routine undertaking of design, fabrication, and manufacture for those of ordinary skill having benefit of this disclosure.

Described herein are various implementations of a method. The method may include providing an integrated circuit with a real-time clock source. The method may include generating a real-time clock signal for the integrated circuit with the real-time clock source. The method may include selectively adjusting clock frequency of the real-time clock signal to save power in the integrated circuit.

Described herein are various implementations of a device. The device may include logic circuitry that continuously operates with always-on activity. The device may include clock circuitry that generates a real-time clock signal for the logic circuitry. The device may include timer circuitry that selectively adjusts clock frequency of the real-time clock signal so as to save power in the logic circuitry.

Described herein are various implementations of a system. The system may include logic circuitry having an on-chip clock source that provides a real-time clock signal having an oscillating frequency. The system may include timer circuitry that receives the real-time clock signal from the on-chip clock source and selectively scales the oscillating frequency of the real-time clock signal so as to save power in the logic circuitry.

Reference has been made in detail to various implementations, examples of which are illustrated in the accompanying drawings and figures. In the following detailed description, numerous specific details are set forth to provide a thorough understanding of the disclosure provided herein. However, the disclosure provided herein may be practiced without these specific details. In some other instances, well-known methods, procedures, components, circuits and networks have not been described in detail so as not to unnecessarily obscure details of the embodiments.

While the foregoing is directed to implementations of various techniques described herein, other and further implementations may be devised in accordance with the disclosure herein, which may be determined by the claims that follow.