throbber
as) United States
`a2) Patent Application Publication (10) Pub. No.: US 2002/0087901 A1
`(43) Pub. Date: Jul. 4, 2002
`
`Cooperetal.
`
`US 20020087901A1
`
`(54) DEMAND-BASED METHOD AND SYSTEM
`OF CPU POWER MANAGEMENT
`
`(52) US. Ch.
`
`vosssssscsssssssssssssssasuntssstsnsasenssneensee 713/320
`
`(76)
`
`Inventors: Barnes Cooper, Beaverton, OR (US);
`Jay Arjangrad, Portland, OR (US)
`
`(57)
`
`ABSTRACT
`
`Correspondence Address:
`Justin M. Dillon
`BLAKELY SOKOLOFF TAYLOR & ZAFMAN
`LLP
`7th Floor
`12400 Wilshire Boulevard
`
`Los Angeles, CA 90025 (US)
`
`(21) Appl. No.:
`
`09/751,759
`
`(22)
`
`Filed:
`
`Dec. 30, 2000
`
`Publication Classification
`
`(51) Unt. Ch? ee eccseeceseeee GO06F 1/26; GO6F 1/32
`
`A demand-based method and system of central processing
`unit power management. The utilization of a central pro-
`cessing unit (CPU) during a sampling time interval
`is
`determined by measuring a time quantum within the sam-
`pling time interval during which a central processing unit
`clock signal is active within a processor core of the CPU.
`The total number of cycles of the central processing unit
`clock signal that are applied to the processor core and the
`period of the central processing unit clock signal are used to
`determine the time quantum. The utilization may then be
`expressed in termsofa ratio of the time quantumto the total
`time interval and used to select a processor performance
`mode. The CPU is then operated in the selected processor
`performance mode.
`
`
`
`102
`
` 12 i]
`
`
`
`
`
`
`
`110 ™\
`
`
`
`
`
`
`
`
`— 108
`
`
`
`
`106
`
`Google Exhibit 1017
`Google Exhibit 1017
`Google v. Valtrus
`Google v. Valtrus
`
`

`

`Patent Application Publication
`
`Jul. 4, 2002 Sheet 1 of 7
`
`US 2002/0087901 Al
`
`
`
`
`
`Aeldsiq
`
`
`
`
`
`SdIAVd
`
`4osan7y
`
`jouu0D
`
`aaaeaq
`
`
`
`
` aa6pligyinos
`
`olpny
`
`
`
`LOMIEN
`
`BIEL]|O€l
`
`Jeogda
`
`o/|
`
`43]J01]U07)
`
`
`
`paoaIAeqd
`
`q.oinbi4
`
`
`
`
`
`
`
`

`

`Patent Application Publication
`
`Jul. 4, 2002 Sheet 2 of 7
`
`US 2002/0087901 Al
`
`902
`
`JOSSOI0/d
`
`3107
`
`41D"das
`
`abeOA3407||/02202Coinbi4
`
`AJOWS\\
`
`49||01]U07
`
`
`
`
`
`
`
`
`
`Jajunoydweysawit
`
`
`
`
`Joyesauay
`juspuadapu|
`20|D
`
`JOWELL
`
`
`
`
`
`

`

`Patent Application Publication
`
`Jul. 4, 2002 Sheet 3 of 7
`
`US 2002/0087901 Al
`
`ZOE
`
`O
`
`PTecan€einbl4
`
`yfuoreaiddy;.(|juawabeury|}uolesyjddy||uomerjddy||uonesijddy||“samout
`90€ O00€
`
`
`
`DIEMPJEHWIOJIL|d
`
`
`
`
`JaALIG321Aaq
`
`
`

`

`Patent Application Publication
`
`Jul. 4, 2002
`
`Sheet 4 of 7
`
`US 2002/0087901 Al
`
`Figure 4
`
`| 400
`
`
`( Start
`
`ye
`
`
`
`Manangment Lo—
`
`Power
`
`Application
`Requests CPU
`Utilization Status
`
`402
`
`
`
`!
`
`CPUUtilization is
`Determined
`
`wee“
`
`
`
`
`
`
`
`Yes >
`
`
`
`
`wel
`
`Switch CPU to
`Maximum
`Performance
`Mode
`
`
`Utilization Greater
`
`
`Than or Equal
`to
`
`
`
`No
`
`-
`
`
`Is the CP
`
`Utilization Less
`
`Than or Equal
`to
`
`75%?
`
`Switch CPU to
`Battery Optimized
`Mode
`
`
`
`
`No
`
`
`
`
`

`

`Patent Application Publication
`
`Jul. 4, 2002 Sheet 5 of 7
`
`US 2002/0087901 A1
`
`500
`
`
`
`Start
`
`Figure 9
`
`
`[ 502
`Power
`User-Specified
`Management A 504
`Maximum Battery
`Application
`Power
`»| Generates a Set
`Management
`State SMI for
`Profile Received
`Maximum Battery
`Mode
`
`
`-
`
`4 508
`
`a
`
`baienent
`Abccat‘on
`Requests CPU
`Utilization Status
`
`7
`
`_
`
`506
`
`
`
`SMI Notes
`Maximum Battery
`Modeis Entered
`and Switches CPU
`toBatey
`Optimized Made
`
`
`
`
`
`
`
`
`
`
`
`
`
`CPU Utilization is
`Determined
`
`Is Maximum
`
`Battery Mode
`
`Enabled?
`
`
`
`516
`
`
`
`EnableThrottling
`of CPU Clock
`Signal
`
`be
`:
`
`Yes -
`
`514
`
`Yes
`Xx
`an oP
`Greater Shen
`le
`NOR
`
`No
`
`
`
`

`

`Patent Application Publication
`
`Jul. 4, 2002 Sheet 6 of 7
`
`US 2002/0087901 A1
`
`Figure 6
`
`
`
`
`602
`
`
`
`L
`
`—————_
`Power
`Manangment
`Application
`Requests CPU
`
`Utilization Status
`
`CPUUtilization
`Determined
`
`
`
` A. 608
`L 610
`
`
`
`
`Than or Equai to
`
`Yes
`
`Clock Signal
`.
`
`t—-——>|
`
`
`Performance
`
`
`
`
`
`rs
`
`F
`
`
`612
`
`A
`
`ye
`
`614
`
`Is the CPU
`Utilization Greater
`Than 20%?
`
`Yes
`
`Switch CPU to
`Battery Optimized +»
`Mode
`
`Enable CPU Clock
`
`Signal Throttling
`
`
`
`
`Ys606
`/
`”
`
`
`
`
`CtlizationGreats
`Disable CPt
`ein
`aeee
`Throttling
`Mode
`
`
`
`
`
`
`
`Disable CPU
`Clock Signal
`
`Throttling
`
`
`
`
`
`A 618
`
`
`
`
`620
`
`
`
`
`Switch CPU to
`|———-») Battery Optimized
`Mode
`
`

`

`Patent Application Publication
`
`Jul. 4, 2002 Sheet 7 of 7
`
`US 2002/0087901 A1
`
` cT00
`
`Figure /
`
`(
`
`Start
`
`702
`
` |
`
`Read System-Independent Timer ~~
`
`a,
`
`Using a System-Independent a
`
`Define a Sampling TimerInterval
`
`704
`
`Timer Clock Period, a Current
`and a Prior System Independent
`Timer Value
`
`
`
`
`|
`
`
`
`
`
`
`2 706
`
`708
`
`740
`
`
`
`L
`
`712
`
`Read Time Stamp Counter Value |“
`
`!
`
`
`¥v
`
`Determine the Total number of
`Clock Cycles of the CPU Clock
`Applied to the CPU's Processor
`Core During the Sampling Time
`Interval Using Current and Prior
`Time Stamp Counter Values
`
`
`
`
`!
`
`Calculate Active Time Quantum
`of CPU Clock Signal within the
`Sampling Time interval using the
`Total Number of Applied CPU
`Clock Cycles and the CPU Clock
`Period
`
`——
`
`
`
`bn
`
`Divide Calculated Actiive Time
`Quantum of CPU Clock by
`Sampling Time Interval to Obtain
`CPU Utilization
`
`714
`
`End
`
`

`

`US 2002/0087901 Al
`
`Jul. 4, 2002
`
`DEMAND-BASED METHOD AND SYSTEM OF
`CPU POWER MANAGEMENT
`
`FIELD OF THE INVENTION
`
`[0001] The field of the invention relates generally to
`central processing units (CPUs). More particularly the ficld
`invention relates to CPU power management. Still more
`particularly, the field of the invention relates to a demand-
`based method and system of CPU power management.
`
`BACKGROUND OF THE INVENTION
`
`[0002] As battery-dependent portable computing devices
`(notebook computers, personal digital assistants, etc.) have
`become moreprevalent, the conservation of battery poweror
`“power management” has become more and more impor-
`tant. In many power management systems, some or all
`system components may be deactivated or “powered down”
`to conserve power. This method however, requires that the
`devices powered down be inactive or unused for a suffi-
`ciently long period of time to justify the latency associated
`with their re-activation. Therefore, a number of methods
`have been implemented to decrease device power consump-
`tion within the active or “powered on” state. Since,
`the
`powerdissipated by a device is dependent both onits applied
`voltage and on the frequency with which device transitions
`or “switching” occurs, conventional power management
`techniques typically focus on one or both of these factors.
`
`[0003] Modem power management systems implement a
`variety of voltage and frequency reduction or “scaling”
`techniques. Although substantial power savings can bereal-
`ized by reducing a device’s voltage, special hardware is
`often required to correctly operate such devices using low
`and variable voltages. Such voltage reduction techniques
`also currently limit the maximum frequency at which a
`device may be operated. Similar power savings may be
`realized by scaling a device’s operating frequency or
`“clock”.
`In conventional power management systems, a
`device’s operating frequency may be altered in a variety of
`ways. In one approach, the applied clock signal is periodi-
`cally stopped and restarted such that the average or effective
`operating frequency is lowered (throttling).
`In another
`approach, a lower frequency clock signal, gencrated inde-
`pendently or derived from an existing clock, is applied to a
`device. Although these approaches may be usedalone or in
`combination to reduce a device’s or system’s power con-
`sumption,
`this frequency scaling technique reduces the
`operating frequency of the device, and consequently the
`numberof operations or tasks it can perform.
`
`In the past, several approaches have been taken to
`[0004]
`control the activation of the above-described power man-
`agement techniques such as the user selection of a pre-
`defined power mode,
`the occurrence of environmental
`events such as the application or removal of an A/C (alter-
`nating current) power source, or the detection of a system or
`device temperature. More recently, power management sys-
`tems have looked to device utilization or “idleness” to
`
`trigger the application or removal of such techniques in an
`effort to conserve power in a more user-transparent manner.
`Whena utilization-based power managed deviceis idle for
`a pre-determinedperiod of time, power reduction techniques
`such as voltage and frequency scaling are applied to
`decrease the amount of power consumed. The greatest
`
`difficulty traditionally associated with such demand-based
`systems has been in determining a device’s current utiliza-
`tion, particularly for processing devices such as the central
`processing unit (CPU) of a data processing system.
`
`In a conventional operating system (OS), CPU
`[0005]
`utilization is determined by accumulating CPU idle time
`across a sampling interval to determine the percentage of
`time the processor is inactive. To accomplish this, a list of
`tasks or threads is maintained by the OS which are ready-
`to-run, i.e., not waiting for some event to resume execution.
`When this ready-to-run list is empty, no tasks are being
`executed and the processor is idle. Accordingly, a CPU-
`independent timer is read and the processor is placed in a
`low power state. When a new task is added to the ready-
`to-runlist, the processor is placed in an active state and the
`timer is read again. The difference between the first and
`second timer reads (multiplied by the timer’s period) then
`represents the CPU’s idle time. The accumulation of this
`time across a sampling intervalis then used to determine the
`CPUutilization (what percentage of the CPU’s timeis spent
`idle). Unfortunately, neither this measure of CPU utilization
`nor the state of the ready-to-run task list is available outside
`of the OS through a supported application programming
`interface (API). Consequently, this OS-generated CPU uti-
`lization metric cannot be utilized in a “demand”orutiliza-
`tion-based power management system.
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`invention is illustrated by way of
`[0006] The present
`example and not limitation in the figures of the accompa-
`nying drawings, in which
`
`[0007] FIG. 1a illustrates a conventional data processing
`system useable with the present invention;
`
`[0008] FIG. 15 illustrates a prior art architecture of the
`data processing system depicted in FIG. 1a;
`
`[0009] FIG. 2 illustrates a portion of the architecture
`depicted in FIG. 1b in greater detail;
`
`FIG.3 illustrates an architectural system diagram
`[0010]
`depicting the operation of a data processing system accord-
`ing to the present invention;
`
`FIG.4 illustrates a high-level logic flowchart of a
`([0011]
`first embodiment of the method of the present invention;
`
`FIG.5 illustrates a high-level logic flowchart of a
`{[0012]
`second embodimentof the method of the present invention;
`
`FIG.6 illustrates a high-level logic flowchart of a
`[0013]
`third embodiment of the method of the present invention;
`
`FIG.7 illustrates a high-level logic flowchart of a
`[0014]
`method of determining the utilization of a central processing
`unit according to one embodimentof the present invention.
`
`DETAILED DESCRIPTION OF THE
`INVENTION
`
`{0015] Ademand-based method and system of CPU power
`managementis disclosed. In the following detailed descrip-
`tion, numerous specific details are set forth in order to
`provide a thorough understanding of the present invention.
`However, it will be apparent to one of ordinary skill in the
`art that these specific details need not be used to practice the
`present invention. In other circumstances, well-knownstruc-
`
`

`

`US 2002/0087901 Al
`
`Jul. 4, 2002
`
`tures, materials, circuits, processes and interfaces have not
`been shownordescribed in detail in order not to unneces-
`
`sarily obscure the present invention.
`
`[0016] Referring now to FIG. 1a, a conventional data
`processing system 100 useable with the present invention is
`illustrated. Data processing or computer system 100 is
`comprised of a system unit 102, output devices such as
`display 104 and printer 110, and input devices such as
`keyboard 108, and mouse 106. Data processing system 100
`receives data for processing by the manipulation of input
`devices 108 and 106 or directly from fixed or removable
`media storage devices such as disk 112 and network con-
`nection interfaces (not shown). Data processing system 100
`then processes data and presents resulting output data via
`output devices such as display 104, printer 110, fixed or
`removable media storage devices like disk 112 or network
`connection interfaces.
`
`there is depicted a
`[0017] Referring now to FIG. 16,
`high-level block diagram of the components of a data
`processing system 100 such asthat illustrated by FIG. 1a. In
`a conventional computer system, system unit 102 includes a
`processing device such as central processing unit (CPU) 120
`connected to a level two (L2) cache 122 over a processor
`system bus (PSB) 114. Processor system bus 114 is in turn
`coupled to an expansion bus such as local bus 116 and a
`memory 126 via a north bridge circuit 124. Local bus 116
`may include a peripheral component interconnect (PCD),
`Video Electronics Standards Association (VESA)busorthe
`like, tightly coupled to the processor 120 and the processor
`system bus 114 to permit high-speed access to select devices
`such as display device 128.
`
`[0018] Memory 126 may include read-only (ROM) and/or
`random access (RAM) memory devices such as a synchro-
`nous dynamic random access memory (SDRAM) module
`capable of storing data as well as instructions to be executed
`by CPU 120. Access to data and instructions stored within
`memory 126 is provided via a memory controller (not
`shown) within north bridge circuit 124. L2 cache 122 is
`similarly used, typically in a hierarchical manner, to store
`data and instructions for direct access by CPU 120. Display
`device 128 may include a cathode ray tube (CRT) display
`such as display 104,
`liquid crystal display (LCD), or a
`similar device for displaying various kinds of data to a
`computer user. For example, image, graphical, or textual
`information may be presented to the user on display device
`128. System unit 102 of data processing system 100 also
`features an expansion or “compatibility” bus 118 such as the
`Industry Standard Architecture (ISA) bus, and a south bridge
`circuit 134 coupling it to local bus 116 to facilitate the
`attachmentof other, relatively slower devices to the system
`100. South bridge circuit 134 includes a universal serial bus
`(USB) port 138 as well as other direct connections for
`devices such as a network interface card 130, a data storage
`device, such as a magnetic hard disk drive 132, and an audio
`device 140 such as a speaker or sound card.
`
`[0019] Other devices not directly coupled to south bridge
`134 may be connected to the system 100 via the expansion
`bus 118 as illustrated. A floppy disk drive (FDD) 144
`providing additional data storage capacity on removable
`media storage devices such as disk 112, and input devices
`such as a keyboard 108 and a cursor control device 136 are
`each coupled to expansion bus 118 in this manner to
`
`communicate data, instructions, and/or commandselections
`to central processing unit 120. Cursor control device 136
`may comprise a conventional mouse such as mouse 106 of
`FIG. 1a, a trackball, or any other device capable of con-
`veying desired cursor manipulation. Similarly, expansion
`bus 118 includes an input/output (I/O) controller having
`standard serial and parallel port functionality for connecting
`other I/O devices such as printer 110 to the system.
`
`[0020] The system of the present invention includessoft-
`ware, information processing hardware, and various pro-
`cessing steps, which will be described below. The features
`and process steps of the present invention may be embodied
`in machine or computer executable instructions embodied
`within media such as disk 112. The instructions can be used
`to cause a general purpose or special purpose processor such
`as CPU 120, which is programmed with the instructions to
`perform the described methods of the present invention.
`Alternatively, the features or steps of the present invention
`may be performed by specific hardware components that
`contain hard-wired logic for performing the steps, or by any
`combination of programmed computer components and cus-
`tom hardware components.
`
`([0021] Referring now to FIG. 2, a portion of the archi-
`tecture depicted in FIG. 15 is illustrated in greater detail.
`Processor 120 is shown in communication with memory 126
`over the processor system bus 114 utilizing a memory
`controller 226 of north bridge circuit 124. Acommon system
`clock, (BCIk) 216 is generated by a clock generator 208 and
`applied to a clock control phase lock loop (PLL) 218 of CPU
`120 and to memory controller 226. A core voltage 206 is
`similarly applied to CPU 120in the illustrated embodiment,
`providing necessary operating power. While the BCIk signal
`216 is applied, accesses to and from memory 126 occur at
`its frequency of approximately 100 megahertz (MHz). The
`central processing unit 120 however, is capable of perform-
`ing tasks at much greater speeds than this and accordingly,
`a bus ratio or multiplier 212 is selected using a clock control
`signal, GHI#202 and a higher frequency central processing
`unit clock signal is generated utilizing PLL 218. So for
`example,
`if the system or front side clock 216 has a
`frequency of 100 MHz,and a ratio 212 of 5 to 1 is selected
`using the GHI# signal 202, then the generated CPU clock
`will have a frequency of approximately 500 MHz. Alterna-
`tively, a higher multiplier or ratio 212 of say 7 to 1 could be
`selected, yielding a CPU clock frequency of approximately
`700 MHz.
`
`[0022] The generated central processing unit clock signal
`is then applied to clock throttling logic 220 before being
`passed to processor core 200. Throttling is a technique by
`which the CPU clock is deasserted or “gated off” from the
`processor core to prevent functional units within the core
`from operating. Throttling logic 220 therefore acts as a
`switch, actuated by a stop clock (Stp,, Clk) control signal
`204, between the PLL 218 and the processor core 200. A
`time stamp counter 224is also included within the CPU 120
`and incremented for each cycle (sometimes called ticks or
`pulses) of the CPU clock which is “gated through” or
`applied to the processor core as shown. Because time stamp
`counter 224 tracks the number of clock ticks or cycles
`applicd to the functional units of the processor core 200 such
`as instruction decoders,floating point and integer execution
`units, etc. it provides an extremely accurate representation of
`the actual work performed by CPU 120. One additional
`
`

`

`US 2002/0087901 Al
`
`Jul. 4, 2002
`
`illustrated in FIG. 2 is
`chipset architecture component
`independent timer 210. System independent timer 210 runs
`independently of CPU 120 andits associated system clock
`216, unaffected by Stp_Clk signal 204 throttling or BClk
`signal 216 frequency modifications. Using the number of
`ticks of independent timer 210 elapsed between readsandits
`fixed frequency, an accurate measure of the passage of time
`may be obtained. In one embodiment, a Windows™ high
`performance counter, exported via the Win32 Application
`Programming Interface (API) as the QueryPerformance-
`Counter(Q) function can be used as independent timer 210. In
`an alternative, Advanced Configuration and PowerInterface
`(ACPI) compliant embodiment, a power managementtimer
`may be utilized. Although in the illustrated embodiment
`independent timer 210 is depicted as being integrated with
`clock generator circuit 208, in alternative embodiments the
`timer 210 may be generated in a separate device or inte-
`grated circuit.
`
`[0023] Referring now to FIG.3, an architectural system
`diagram depicting the operation of a data processing system
`according to the present
`invention is illustrated.
`In the
`illustrated embodiment, a plurality of application programs
`302 such as power management application 304 interact
`with various platform hardware devices 308 including a
`CPU 120 via an operating system 300 such as the Win-
`dows™ operating system from Microsoft Corporation, one
`or more device drivers 306, and basic input/output system
`(BIOS) code 310. The illustrated system is interrupt-driven
`both with respect to the multitasking of the various appli-
`cations 302 and communication between applications 302
`and platform hardware 308.
`
`in one embodiment of the present
`[0024] Accordingly,
`invention, an application 302 request
`for
`a hardware
`resource from within platform hardware 308 can cause an
`interrupt, such as a System Control Interrupt (SCI) or a
`System Management Interrupt (SMI) to be generated and an
`interrupt handler routine to be responsively executed. Inter-
`action between operating system 300 and platform hardware
`308 is then facilitated by a device driver 306 and BIOS 310.
`In the illustrated embodiment, BIOS 310 contains informa-
`tion such as physical device addresses of the various devices
`308 attached to the data processing system 100 and is useful
`with respect to the actual transmission of data. By contrast,
`device driver 306 is typically specific to a particular hard-
`ware device and is usually concerned with the translation of
`data between various device formats.
`
`[0025] Referring now to FIG.4, a high-level logic flow-
`chart of a first embodiment of the method of the present
`invention is illustrated. In FIG. 4 there is depicted a tech-
`nique by which a demand-based transition between two
`processor performancestates is executed. At block 400, the
`illustrated process is begun and thereafter a CPU utilization
`status request is received from a power management appli-
`cation (block 402). The described utilization request may be
`periodic or may occur in response to relevant power man-
`agement events such as thermal or processor workload
`events, the connection of an alternating current power sup-
`ply or the like. Once the CPU utilization has been estab-
`lished (block 404), a determination is then made whetherthe
`calculated utilization exceeds a utilization threshold (block
`406). In the illustrated embodiment, a relatively high utili-
`zation threshold of 95% is selected to identify the execution
`of demand-intensive applications such as DVD movie play-
`
`ers, personal computer games, and performance benchmark
`tests.
`It should be readily appreciated however that
`the
`various utilization thresholds described herein have been
`
`selected for illustrative purposes only and that a wide range
`of threshold values could be substituted therefore without
`
`departing from the spirit and scope of the present invention.
`If the utilization threshold is exceeded, the CPU is transi-
`tioned to a maximum performance processor performance
`mode (block 408) and operated at a higher performance
`level
`to ensure that
`the execution performance of such
`demand-intensive application programs is not degraded.
`[0026]
`If the utilization of the CPU is not above or equal
`to the 95% utilization threshold,
`it
`is then determined
`whether the CPU’s utilization falls at or below a second
`utilization threshold of, in the illustrated embodiment, 75%
`(block 410). The processor performance level may then be
`matchedto its current utilization level by switching the CPU
`to a battery optimized processor performance mode (block
`412) to conserve power when the utilization level falls
`below this figure and a decrease in performance will be less
`noticeable to the end user. Otherwise the process is termi-
`nated (block 414) with the processor performance mode of
`the central processing unit remaining unchanged. Power
`may be conserved and the maximum performance mode
`distinguished from the battery optimized modebythe fre-
`quency at which the processor is operated. While numerous
`other power and performance management techniques are
`knownand within the scope of the present invention, in one
`embodimentutilization of the maximum performance pro-
`cessor performance mode entails the operation of the central
`processing unit at an operating frequency of 600 MHz while
`the battery optimized mode entails the application of a 500
`MHz central processing unit clock signal. Following any
`transition to either maximum performance or battery opti-
`mized mode, the process is terminated (block 414). In an
`alternative embodiment, factors other than an instantaneous
`CPU utilization and a utilization threshold may be used to
`select an appropriate processor performance mode such as
`the duration of time that the examined CPU remainsat a
`
`particular utilization level or within a particular range of
`utilization levels.
`
`[0027] Referring now to FIG.5, a high-level logic flow-
`chart of a second embodimentof the method of the present
`invention is illustrated. After the process is begun (block
`500) a uscr-specificd power managementprofile is reccived
`(block 502) in which power conservation and system per-
`formance are prioritized generally or a specific, preferred
`processor performance mode may be designated. In the
`illustrated embodiment, a maximum battery or ultra battery
`optimized profile is received conveying that power conser-
`vation is to be favored over execution speed. Then an
`executing power management software or firmware appli-
`cation generates a system management
`interrupt
`(SMI)
`(block 504) in response to the receipt of the user power
`management profile which in turn transitions the CPU to
`battery optimized mode if necessary from whatever prior
`state the processor was operating in. Subsequently,
`the
`power management application issues a request for the
`current CPU utilization status (block 508) which is deter-
`mined either by the generated SMIor directly by the power
`management application itsclf (block 510) by a method
`which will be described in greater detail with reference to
`FIG. 7 herein. In alternative embodiment,
`the described
`system managementinterrupt is used only to transition the
`
`

`

`US 2002/0087901 Al
`
`Jul. 4, 2002
`
`system from one performance or power mode to another
`with both CPU utilization detection and other related tasks
`
`being performed directly by the power management appli-
`cation.
`
`consumed. Following any transition to (or retention of) any
`of the above-described power management performance
`modes (maximum performance, battery optimized mode,
`and maximum battery) the process is terminated (block
`622).
`
`[0028] The user-specified power managementprofile is
`([0031] Referring now to FIG.7, a high-level logic flow-
`then checked to ensure that maximum battery modeisstill
`currently enabled (block 512). If so,
`the resolved CPU
`chart of a method of determining the utilization of a central
`utilization is examined to determine whether it exceeds a
`processing unit according to one embodimentof the present
`utilization threshold of 20% (block 514) in this embodiment.
`inventionis illustrated. FIG. 7 depicts a technique by which
`If not, the process is terminated (block 518). If the current
`a the utilization of a CPU may be determined independently
`utilization of the CPU exceeds the tuneable threshold, the
`of a data processing system’s operating system. In one
`embodiment,
`this method is utilized to determine CPU
`CPUis transitioned from battery optimized modetoavirtual
`utilization within the various method embodiments of the
`maximum battery performance mode by engagingthrottling
`of the central processing unit clock signal at a particular
`frequency (block 516). Otherwise, the process ends (block
`§18) and the battery optimized performance modeis utilized
`until another transition-precipitating event occurs. Using the
`illustrated process allows small, bursty tasks or code seg-
`ments which can be completed within the sampling time
`interval of the CPU utilization determination to be executed
`
`the full, battery optimized performance level without
`at
`enabling CPU clock signal throttling. Such tasks can be
`completed faster at
`this non-throttled rate, allowing the
`system to transition after their completion to an even lower
`power state than can be achieved with clock throttling,
`conserving more poweroverall.
`
`[0029] Referring now to FIG.6, a high-level logic flow-
`chart of a third embodiment of the method of the present
`invention is illustrated. The beginning of the process is
`depicted at block 600 and thereafter a CPU utilization status
`request is received from a power management application
`(block 602). Once the CPU utilization has been established
`(block 604), a determination is made whether the calculated
`utilization exceedsa utilization threshold (block 606). In the
`illustrated embodiment, a relatively high utilization thresh-
`old of 95% is selected for this first utilization threshold as
`illustrated.
`If the utilization threshold is exceeded, any
`previously applied CPU clock signal throttling is disabled
`(block 608) and the CPU is transitioned to a maximum
`performance processor performance mode (block 610) and
`operated at a higher performance level to ensure that the
`execution performance of demand-intensive application pro-
`grams is not degraded.
`
`If the utilization of the CPU is not above or cqual
`[0030]
`to the 95% utilization threshold,
`it
`is then determined
`whether the CPU’s utilization falls at or below a second
`utilization threshold of, in the illustrated embodiment, 20%
`(block 612). If the current CPU utilization level
`is not
`greater than the 20% utilization threshold,
`the CPU is
`operated in battery optimized mode (block 620) and clock
`throttling is disabled (block 618) such that power saving
`states such as the C2 and C3 states defined by the well
`known Advanced Configuration and PowerInterface Speci-
`fication, Revision 2.0, Jul. 27, 2000 (ACPI) can be entered
`more quickly following completion of the CPU workload.
`Lastly, for CPU utilizations falling in between the two
`utilization thresholds, the CPUis transitioned to and oper-
`ated in maximum battery mode by entering battery opti-
`mized mode (block 614) and enabling clock throttling for
`the applicd CPU clock (block 616). Conscqucntly,
`the
`performance of CPU workloads having a consistent, inter-
`mediate demand intensity is reduced and the completion
`time is extendedin order to reduce the total amount of power
`
`present invention such as at blocks 404, 510, and 604 of
`FIGS. 4,5, and 6, respectively. ‘Whe process illustrated by
`FIG.7 begins at block 700. Thereafter, a system-indepen-
`dent timer such as an ACPI chipset-compliant power man-
`agement timer or Windows™performance counteris read.
`(block 702). Next, a sampling time interval is defined using
`the independent timer’s clock period, as well as currently
`and previously read system-independent timer values (block
`704). A value is then read from a time stamp counter (block
`706) which is incremented for each cycle or “clock” of a
`CPUclock signal which is applied to the processor core 200
`of central processing unit 120. Using a previously read time
`stamp counter value and the currently read value, the total
`number of CPU clock signal ticks or cycles applied to the
`CPU’s processor core 200 during the sampling time interval
`maybe obtained (block 708). Thereafter, the total amount or
`“quantum” of time within the sampling time interval during
`which the CPU clock signal was active within the CPU’s
`processor core 200 can be derived using the accumulated
`number of CPU clock cycles and the CPU clock signal’s
`period (block 710). CPU utilization may then be expressed
`as a ratio of this active CPU clock signal
`time to the
`sampling time interval (block 712). Thereafter, the process
`is terminated (block 714).
`
`[0032] Although the present invention is described herein
`with reference to a specific preferred embodiment, many
`modifications and variations therein will readily occur to
`those with ordinary skill in the art. Accordingly, all such
`variations
`and modifications
`are
`included within the
`intended scope of the present invention as defined by the
`following claims.
`Whatis claimedis:
`
`1. A method comprising:
`
`measuring a time quantum within a sampling time interval
`during which a central processing unit clock signal is
`active within a processor core of a central processing,
`unit;
`
`determining a utilization of said central processing unit
`during said sampling time interval utilizing said time
`quantum;
`
`selecting a processor performance mode from a plurality
`of processor performance modes based upon said uti-
`lization of said central processing unit; and
`
`operating said central processing unit in said selected
`processor performance mode in response to said selec-
`tion.
`
`2. The method as set forth in claim 1, wherein selecting
`a processor performance mode from a plurality of processor
`
`

`

`US 2002/0087901 Al
`
`Jul. 4, 2002
`
`determine a utilization of said central processing unit
`during said sampling time interval utilizing said time
`quantum;
`
`select a processor performance mode from a plurality of
`processor performance modes based uponsaid utiliza-
`tion of said central processing unit; and
`
`performance modes comprises selecting a proces

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket