throbber
Case 6:22-cv-00466-ADA-DTG Document 46-12 Filed 09/12/22 Page 1 of 25
`Case 6:22-cv-00466-ADA-DTG Document 46-12 Filed 09/12/22 Page 1 of 25
`
`EXHIBIT 11
`EXHIBIT 11
`
`

`

`(12) United States Patent
`Sadowski et al.
`
`(10) Patent No.:
`(45) Date of Patent:
`
`US 7,804,435 B2
`Sep. 28, 2010
`
`USOO7804435B2
`
`(54) VIDEO DECODER WITH REDUCED POWER
`CONSUMPTION AND METHOD THEREOF
`(75) Inventors: Greg Sadowski, Cambridge, MA (US);
`it's sing:M (US); Paul
`s
`
`(73) Assignee: ATI Technologies ULC, Markham,
`Ontario (CA)
`
`(*) Notice:
`
`-
`Subject to any disclaimer, the term of this
`patent is extended or adjusted under 35
`U.S.C. 154(b) by 0 days.
`
`(21) Appl. No.: 11/469,335
`(22) Filed:
`Aug. 31, 2006
`
`(65)
`
`Prior Publication Data
`US 2008/OO55119A1
`Mar. 6, 2008
`(51) Int. Cl.
`(2006.01)
`H03M I/2
`(52) U.S. Cl. ........ grrrrr. 341A155
`(58) Field of Classification Search ................. 341/155,
`341/157, 158; 3.75/222, 219, 316, 345
`See application file for complete search history.
`References Cited
`U.S. PATENT DOCUMENTS
`
`(56)
`
`1/1998 Redford et al.
`5,711,672 A
`2f1998 Mittal et al.
`5,719,800 A
`5,734,779 A * 3/1998 Okino ......................... 386/38
`6,332,168 B1
`12/2001 House et al.
`6,477,654 B1
`1 1/2002 Dean et al.
`6,795,930 B1
`9/2004 Laurenti et al.
`6,957,422 B2 10/2005 Hunt
`6,978,085 B1* 12/2005 Maeda et al. ............... 386, 112
`7,174,392 B2
`2, 2007 Tervo
`
`aWe ca.
`
`7,227,847 B2
`6/2007 Gluck
`7,372,999 B2 *
`5/2008 Oneda et al. ................ 382,232
`7401,240 B2
`7/2008 Heller et al.
`S.85.7 A. 1929 it. Fa
`2004/00399.54 A1
`2/2004 White et al.
`2004/O136596 A1* 7/2004 Oneda et al. ................ 382,232
`2004/0158748 A1* 8, 2004 Ishibashi et al. ............ T13,300
`2004/O158752 A1
`8, 2004 Borza et al.
`2004/026831.6 A1 12/2004 Fisher et al.
`2005/0081107 A1
`4/2005 DeWitt, Jr. et al.
`2005/02O0627 A1
`9/2005 Desylva
`2005/0232136 A1* 10/2005 Kwak ......................... 370,208
`2005/0273636 A1 12/2005 Grobman
`2006/0044468 A1* 3/2006 Chowdhury et al. ........ 348/465
`2006, O123262 A1
`6/2006 Bullman
`(Continued)
`OTHER PUBLICATIONS
`International Search Report and Written Opinion; International
`Application No. PCT/US2007/077346; dated Aug. 14, 2008.
`Primary Examiner Brian Young
`(74) Attorney, Agent, or Firm Vedder Price P.C.
`(57)
`ABSTRACT
`
`A video decoder (10) with reduced power consumption
`includes a power management controller (45) that is operative
`to select one of a plurality of different power consumption
`states for a video decoder (10), and, in response to the deter
`mination, vary power consumption of at least one operational
`portion of the video decoder(10). In addition, in one example,
`a method (200) for reducing power consumption for a video
`decoder (10) includes determining input stream encoding
`description data (34) to select one of a plurality of different
`power consumption states for a video decoder (10) and, in
`response to the determination, varying power consumption of
`at least one operational portion of the video decoder (10).
`
`26 Claims, 12 Drawing Sheets
`
`
`
`BATTERY-WRE
`EWICE
`
`10
`
`25
`CODE: APPLICATION
`PROFILEATA
`
`Case 6:22-cv-00466-ADA-DTG Document 46-12 Filed 09/12/22 Page 2 of 25
`
`MAMAGEMENT
`CONTROLLER
`
`ALCATION
`
`APLCATION
`RFILEATA
`
`S CODE AND
`APPLICATION
`PROFILEATA
`FROM
`WRELESS
`NETWORK
`
`2
`
`CODE; APPLICATION CODE: APPLICATION
`proFILEATA
`ROFIEDATA
`Y
`
`CONTROLLER
`
`18
`
`54
`
`56
`
`XCWR
`
`114
`
`30
`
`
`
`3 5
`
`ENGINE
`
`MCLK
`
`94
`
`MEMORY
`CONTROL
`MORY
`MEMORY
`CONTROLLER
`
`PLLBLOCK
`
`SYSTEM
`
`OSCLATOR 40
`
`4s
`
`CRYSTAL
`
`MCLKPROG
`OWERSUPLY PROs
`
`GUWITHOWER
`MANAGEMENT
`
`72
`
`68
`
`SENERAL PURPOSEld
`
`OWER SUPPLY
`
`s
`
`106
`
`OWERSUPLYSEt
`
`WLTAGE
`GENERATOR
`
`POWERSUPPLY
`WOLTASE
`
`

`

`US 7,804,435 B2
`Page 2
`
`U.S. PATENT DOCUMENTS
`2006, O136764 A1
`6/2006 Munguia
`2007/0064159 A1
`3f2007 Kim et al. ................... 348,730
`
`2008/00598.23 A1
`
`3/2008 Balatsos et al.
`
`* cited by examiner
`
`Case 6:22-cv-00466-ADA-DTG Document 46-12 Filed 09/12/22 Page 3 of 25
`
`

`

`U.S. Patent
`
`Sep. 28, 2010
`
`Sheet 1 of 12
`
`US 7,804,435 B2
`
`
`
`BATTERY-POWERED
`DEVICE
`
`25
`CODE: APPLICATION
`
`CODE: APPLICATION CODE: APPLICATION S CODE AND
`PROFILE DATA
`PROFILE DATA
`APPLICATION
`
`APPLICATION
`PROFILE DATA
`
`CONTROLLER
`
`WIRELESS
`NETWORK
`
`POWER
`MANAGEMENT
`CONTROLLER
`
`DLE
`REGISTER
`
`3D
`ENGINE
`
`MEMORY
`
`MEMORY
`
`OSCILLATOR A
`
`SCLKPROG
`
`98
`SYSTEMCLOCKREG
`
`64
`
`SYSTEM CLOCKREG
`
`CRYSTAL
`
`MCLKPROG
`POWER SUPPLY PROG
`
`GPUWITHPOWER
`MANAGEMENT
`
`GENERAL PURPOSEO
`
`POWER SUPPLY
`WOLTAGE INPUT
`
`POWER SUPPLYSET
`
`WOLTAGE
`GENERATOR
`
`POWER SUPPLY
`WOLTAGE
`
`FIG. 1
`
`Case 6:22-cv-00466-ADA-DTG Document 46-12 Filed 09/12/22 Page 4 of 25
`
`

`

`U.S. Patent
`
`Sep. 28, 2010
`
`Sheet 2 of 12
`
`US 7,804,435 B2
`
`
`
`EXECUTE CODE INCLUDINGAPPLICATION
`PROFILE DATA IDENTIFYING USAGE OF
`PORTIONS OF PROCESSORDURING
`RUNTIME
`
`21 O
`
`IN RESPONSE TO APPLICATION PROFILE
`DATA IDENTIFYING USAGE OF PORTIONS OF
`THE PROCESSOR, CONTROL POWER
`CONSUMPTION OF IDENTIFIED PORTIONS OF
`PROCESSOR
`
`220
`
`Case 6:22-cv-00466-ADA-DTG Document 46-12 Filed 09/12/22 Page 5 of 25
`
`FIG. 2
`
`

`

`U.S. Patent
`
`Sep. 28, 2010
`
`Sheet 3 of 12
`
`US 7,804,435 B2
`
`START
`
`PROFILE APPLICATION USAGE OF
`PORTIONS OF PROCESSOR USED
`DURING EXECUTION OF APPLICATION
`CODE BASED ON IDLE BITS
`
`STORE APPLICATION PROFILE DATA
`IDENTIFYING USAGE OF PORTIONS OF
`PROCESSOR WITH APPLICATION
`CODE
`
`APPLICATION STILL RUNNING?
`
`NO
`
`END
`
`
`
`
`
`
`
`YES
`
`310
`
`320
`
`330
`
`Case 6:22-cv-00466-ADA-DTG Document 46-12 Filed 09/12/22 Page 6 of 25
`
`FIG. 3
`
`

`

`U.S. Patent
`
`Sep. 28, 2010
`
`Sheet 4 of 12
`
`US 7,804,435 B2
`
`
`
`ACCESS APPLICATION PROFILE
`DATAN APPLICATION
`
`410
`
`DETERMINE PROCESSOR PORTION
`USAGE BY APPLICATION BASED ON
`APPLICATION PROFILE DATA
`
`42O
`
`CONTROL POWER CONSUMPTION
`OF PROCESSOR PORTIONS BASED
`ON PROCESSOR PORTION USAGE
`
`430
`
`Case 6:22-cv-00466-ADA-DTG Document 46-12 Filed 09/12/22 Page 7 of 25
`
`FIG. 4
`
`

`

`U.S. Patent
`
`Sep. 28, 2010
`
`Sheet 5 of 12
`
`US 7,804,435 B2
`
`RECORD IDLE REGISTER VALUES AND
`CLOCK/VOLTAGE REGISTER VALUES
`DURING APPLICATION RUNTIME
`
`51O
`
`TRANSFERDLE REGISTER VALUES AND
`CLOCK/VOLTAGE REGISTER VALUES AS
`APPLICATION PROFILE DATA TO OFFLINE
`STORAGE
`
`520
`
`APPLICATION PROFILE DATA
`ASSOCATED WITH APPLICATION?
`
`
`
`STORE APPLICATION PROFILE DATA WITH
`APPLICATION
`
`FIG. 5
`
`Case 6:22-cv-00466-ADA-DTG Document 46-12 Filed 09/12/22 Page 8 of 25
`
`

`

`U.S. Patent
`
`Sep. 28, 2010
`
`Sheet 6 of 12
`
`US 7,804,435 B2
`
`600
`
`610
`
`IDENTIFY CALLS TO PROCESSOR
`NAPPLICATION DURING RUNTIME
`
`MAP CALLS TO PROCESSOR TO
`SPECIFIC PORTIONS OF THE
`PROCESSOR
`
`62O
`
`
`
`STORE CALLS TO PROCESSORPORTIONS AS
`APPLICATION PROFILE DATA TO OFFLINE STORAGE 630
`
`
`
`
`
`
`
`APPLICATION PROFILE DATA
`ASSOCIATED WITH APPLICATION?
`
`
`
`640
`
`NO
`
`STORE APPLICATION PROFILE DATA IN
`APPLICATION
`
`Case 6:22-cv-00466-ADA-DTG Document 46-12 Filed 09/12/22 Page 9 of 25
`
`FIG. 6
`
`END
`
`

`

`U.S. Patent
`
`Sep. 28, 2010
`
`Sheet 7 of 12
`
`US 7,804,435 B2
`
`
`
`BATTERY-POWERED
`DEVICE
`
`APPLICATION USAGE PROFILER
`CO-PROCESSOR
`
`APPLICATION
`
`CONTROLLER
`
`\ IDENTIFYING
`DATA FROM
`WIRELESS
`NETWORK
`
`-
`POWER
`80 N MANAGEMENT
`CONTROLLER
`
`- - -
`
`2D
`ENGINE
`
`3
`ENGINE
`
`MEMORY
`MEMORY CONTROL
`CONTROLLER
`MEMORY
`
`OLE BITS
`
`70
`
`PBLOCK
`
`DLE
`REGISTER
`
`SYSTEM
`PL
`
`OSCILLATOR
`
`96
`
`SCLKPROG
`
`MCLKFREQ
`SCLKFREQ 104
`98
`64
`SYSTEMCLOCKREG
`SYSTEM CLOCKREG
`
`CRYSTAL
`
`MCLKPROG
`
`POWER SUPPLY PROG
`GPUWITHPOWER
`MANAGEMENT
`
`68
`
`GENERAL PURPOSE/O
`
`72
`
`66
`
`POWER SUPPLY
`WOLTAGE INPUT
`
`POWER SUPPLY SET
`WOLTAGE
`POWESSPY
`GENERATOR
`
`FIG. 7
`
`Case 6:22-cv-00466-ADA-DTG Document 46-12 Filed 09/12/22 Page 10 of 25
`
`

`

`U.S. Patent
`
`Sep. 28, 2010
`
`Sheet 8 of 12
`
`US 7,804,435 B2
`
`VOLTAGE CONTROL
`
`CLOCK
`CONTROL
`
`
`
`
`
`
`
`
`
`870
`CLOCKGENERATOR
`
`POWER SUPPLY
`
`829
`
`850
`
`862
`
`858
`
`
`
`MCLK
`
`UWD
`WOLTAGE
`866
`
`DRAM
`WOLTAGE
`
`878
`
`LEVEL
`INFORMATION
`
`89
`RECEIVE INPUT
`STREAM FROM
`WIRELESS
`NETWORK
`
`MANAGEMENT
`CONTROLLER
`
`VIDEO
`PROCESSING
`UNIT (VPU)
`
`INTERFACE
`
`WMBUS2
`
`MEMORY
`CONTROLLE
`R
`
`
`
`
`
`
`
`
`
`al
`
`REVERSE ENTROPY
`PROCESSOR
`
`DECODED
`STREAM
`
`MACROBLOCK
`PROCESSOR
`
`DECODER
`
`FIG. 8
`
`Case 6:22-cv-00466-ADA-DTG Document 46-12 Filed 09/12/22 Page 11 of 25
`
`

`

`U.S. Patent
`
`Sep. 28, 2010
`
`Sheet 9 of 12
`
`US 7,804,435 B2
`
`START
`
`910
`DETERMINE IF MORE THAN ONE INPUT STREAMAND
`INCREASE POWER CONSUMPTION OF AT LEAST ONE -
`PORTION OF THE VIDEODECODER IN RESPONSE TO THE
`DETERMINATION
`
`
`
`DETERMINE INPUT STREAMENCODING DESCRIPTION DATA
`TO SELECT ONE OF A PLURALITY OF DIRFERENT POWER
`CONSUMPTION STATES FOR THE WIDEO DECODER
`
`920
`
`VARY POWER CONSUMPTION OF AT LEAST ONE
`OPERATIONAL PORTION OF THE VIDEO DECODING IN
`RESPONSE TO THE DETERMINATION
`
`930
`
`FIG. 9
`
`Case 6:22-cv-00466-ADA-DTG Document 46-12 Filed 09/12/22 Page 12 of 25
`
`

`

`U.S. Patent
`
`Sep. 28, 2010
`
`Sheet 10 of 12
`
`US 7,804,435 B2
`
`
`
`START
`
`ANALYZE HEADER INFORMATION TO OBTAIN PROFILE AND
`LEVEL INFORMATION ON A PER BLOCK, SLICE, FRAME, OR
`STREAM BASIS
`
`1010
`
`USE POWER MANAGEMENT CONTROL TABLE TO OBTAIN
`CLOCK SETTINGS AND POWER SUPPLY SETTINGS FOR
`VARIOUS DECODER CIRCUITS
`
`CONTROL CLOCK GENERATOR AND POWER SUPPLY TO
`PROVIDE LEVELS FROM TABLE
`
`1030
`
`FIG 10
`
`Case 6:22-cv-00466-ADA-DTG Document 46-12 Filed 09/12/22 Page 13 of 25
`
`

`

`U.S. Patent
`
`Sep. 28, 2010
`
`Sheet 11 of 12
`
`US 7,804,435 B2
`
`WOLTAGE CONTROL
`
`1150
`CLOCK
`CONTROL
`WCLK
`
`CLOCK GENERATOR
`
`POWER
`MANAGEMENT
`CONTROLLER
`(HOST
`DRIVER)
`HOST
`PROCESSOR
`POWER
`CONTROL
`AND STATUS
`
`1130
`1140
`
`LEVEL
`INFORMATION
`
`
`
`845
`
`RECEIVE INPUT
`STREAM FROM
`WIRELESS
`NETWORK
`894
`
`815
`
`Y INPUT
`
`STREAM
`
`
`
`Case 6:22-cv-00466-ADA-DTG Document 46-12 Filed 09/12/22 Page 14 of 25
`
`
`
`DRAM
`WOLTAGE
`
`
`
`858
`
`854
`
`MCLK
`
`UWD
`WOLTAGE
`66
`N
`
`
`
`
`
`
`
`882
`
`880
`
`WMBUS2
`
`MEMORY
`INTERFACE
`
`MEMORY
`CONTROL
`
`WIDEO
`PROCESSOR
`UNIT (VPU)
`ENCODING
`DESCRIPTION 834
`
`844
`
`DECODED
`REVERSE ENTROPY | STREAM
`PROCESSOR
`
`MACROBLOCK
`PROCESSOR
`
`843
`DECODER
`
`FIG. 11
`
`811
`
`
`
`
`
`
`
`
`
`

`

`U.S. Patent
`
`Sep. 28, 2010
`
`Sheet 12 of 12
`
`US 7,804,435 B2
`
`HOSSESSTER 1204
`
`810
`
`
`
`SHARED
`REGISTER
`
`OUEUEO
`D. S.
`
`s OUEUE 1
`
`1200
`
`Case 6:22-cv-00466-ADA-DTG Document 46-12 Filed 09/12/22 Page 15 of 25
`
`MEMORY
`READ/WRITE
`
`r
`
`1208
`
`MEMORY
`WRITE PORT
`
`\1210
`
`MEMORY
`READ PORT
`
`\1212
`
`BITSTREAM
`READ PORT
`
`\120s
`FIG. 12
`
`

`

`US 7,804,435 B2
`
`1.
`VIDEO DECODER WITH REDUCED POWER
`CONSUMPTION AND METHOD THEREOF
`
`RELATED CO-PENDINGAPPLICATION
`
`This is a related application of copending application Ser.
`No. 1 1/469,326, entitled BATTERY-POWERED DEVICE
`WITH REDUCED POWER CONSUMPTION AND
`METHOD THEREOF filed on Aug. 31, 2006, having as
`inventors Aris Balatsos et al., and owned by instant assignee
`and incorporated by reference in its entirety.
`
`10
`
`FIELD OF THE INVENTION
`
`The invention relates generally to video decoders and,
`more particularly, to a video decoder with reduce power con
`Sumption and method thereof.
`
`15
`
`BACKGROUND OF THE INVENTION
`
`2
`FIG. 3 is one example of a method of determining identi
`fying data for use in controlling power consumption depicting
`one embodiment of the invention;
`FIG. 4 is one example of a method of controlling power
`consumption depicting one embodiment of the invention;
`FIG. 5 is one example of a method of determining identi
`fying data for use in controlling power consumption depicting
`one embodiment of the invention;
`FIG. 6 is one example of a method of determining identi
`fying data for use in controlling power consumption depicting
`one embodiment of the invention;
`FIG. 7 is one example of a battery-powered device depict
`ing one embodiment of the invention;
`FIG. 8 is one example of a video decoding system depict
`ing one embodiment of the invention;
`FIG. 9 is one example of a method of controlling power
`consumption depicting one embodiment of the invention;
`FIG. 10 is one example of a method of controlling power
`consumption depicting one embodiment of the invention;
`FIG. 11 is one example of a video decoding system depict
`ing one embodiment of the invention; and
`FIG. 12 is a block diagram illustrating one example of a
`decoder that can be controlled as described herein.
`
`25
`
`DETAILED DESCRIPTION OF THE INVENTION
`
`Despite improvements in rechargeable battery technology,
`battery capability continues to limit performance of mobile
`electronic devices. In particular, limited energy capacity
`results in relatively short device run-times, of, for example,
`only a few hours, between recharging or Switching batteries.
`In addition, functional integration, Such as in the example of
`integrating camera functions onto a cellular telephone hand
`set, results in popular multiple function devices yet may
`increase energy consumption. Video encoding/decoding
`operations such as MPEG, H.264, VC-1 based encoding and/
`or decoding or other video coding circuits can consume lim
`ited battery power.
`Power conservation techniques may be used to compensate
`for battery limitations in battery-powered devices. For
`example, low power modes may be used to conserve powerby
`selectively shutting down certain components or functional
`blocks within components. Alternatively, power may be
`saved by reducing power Supply Voltages or clocking fre
`quencies. Typical low power modes are entered either by
`direct operator interaction, Such as by placing the device to
`low power mode, or by a triggering event. A triggering event
`may occur when, for example, the battery capacity drops
`below a certain threshold. Alternatively, a low power mode
`may be triggered when certain functional blocks in the device
`have not been used or accessed for some period of time. These
`triggering events may be useful for conserving battery power;
`however, each is reactive rather than proactive. That is, Sig
`nificant battery may be consumed prior to triggering. As a
`result, the triggering techniques may not be sufficient to pro
`vide Sufficient energy conservation in all cases. Since video
`decoders in battery-powered devices can consume significant
`energy, improved video decoders with reduce power con
`sumption and methods thereof would be desirable.
`
`Briefly, an apparatus employs a power management con
`troller, in response to a determination of encoding description
`data and varies power consumption of at least one operational
`portion of a video decoder. The apparatus may also include
`the decoder. In addition, in one example, a method for reduc
`ing power consumption for a video decoder includes deter
`mining input stream encoding description data to select one
`of a plurality of different power consumption states for a
`Video decoder and, in response to the determination, varying
`power consumption of at least one operational portion of the
`video decoder.
`In one example, a video decoder is disclosed with reduced
`power consumption. Power is proactively and automatically
`conserved prior to significant battery discharge and without
`operator intervention. Power consumption is varied in por
`tions of the video decoder in response to encoding character
`istics from an input data stream to minimize power consump
`tion while achieving required performance. Other advantages
`will be recognized by one of ordinary skill in the art.
`In another embodiment, a device includes a processor that
`is operative to process a data stream such as executable code,
`encoded video or other Suitable data stream, and has a plural
`ity of processor portions. The device further includes a power
`management controller coupled to the processorportions that
`controls power consumption of the processor portions based
`on information associated with or in the data stream. The
`information may include application profile data included
`with executable code that directly indicates usage/nonusage
`of portions of the processor or the data stream may have use
`data inherent in the stream, that indirectly identifies usage of
`the processorportions. In addition, in one example, a method
`for reducing power consumption for a battery powered device
`includes executing code that includes application profile data
`identifying usage of portions of a first processor during runt
`ime of an application; and, in response to the application
`profile data, controlling power consumption of the identified
`first processor portions during runtime. In addition, in one
`example, a battery-powered device includes memory that
`stores the code and a first processor coupled to the memory
`and operative to execute the code. The power management
`controller may be part of the processor or external thereto.
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`Case 6:22-cv-00466-ADA-DTG Document 46-12 Filed 09/12/22 Page 16 of 25
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`The present invention and the corresponding advantages
`and features provided thereby will be best understood and
`appreciated upon review of the following detailed description
`of the invention, taken in conjunction with the following
`drawings, where like numerals represent like elements, in
`which:
`FIG. 1 is one example of a battery-powered device depict
`ing one embodiment of the invention;
`FIG. 2 is one example of a method of controlling power
`consumption depicting one embodiment of the invention;
`
`

`

`US 7,804,435 B2
`
`10
`
`15
`
`25
`
`30
`
`35
`
`40
`
`45
`
`3
`The application profiling data may be generated by an appli
`cation developer and embedded as header information in the
`code or may be generated by the device the first time the
`application is run on the device, or at any other suitable time.
`In Such a case, it may be necessary to create header informa
`tion specific to a particular device or class of devices reflec
`tive of the differing capabilities and/or processors (orportions
`thereof). In this case, it may be desirable applications with
`embedded header information that is specific to a particular
`device (or class of devices). Alternatively, the header infor
`mation may include more than one header information por
`tions with each portion associated with a particular device (or
`class of devices). Inafurther alternative, the application could
`be transferred to a device without any header information but,
`instead, be transferred with associated (but separate) applica
`tion profile data. In such an embodiment, the application
`could be unchanged for a variety of devices (or classes of
`devices) while only device (or device class) specific applica
`tion profile data would vary between the variety of devices (or
`classes of devices).
`As such, a battery-powered device is disclosed with
`reduced power consumption wherein power is proactively
`and automatically conserved prior to significant battery dis
`charge and, if desired, without operator intervention. Portions
`of a processor included in the device are automatically iden
`tified for power consumption based on application runtime
`profiling. Power is conserved in the identified portions using
`any desired power saving method. The power consumption
`technique is useful for a wide variety of battery-powered
`devices. Other advantages will be recognized by one of ordi
`nary skill in the art.
`FIG. 1 is one example of a battery-powered device 10
`depicting one example of one embodiment of the invention.
`The battery-powered device 10 may be a handheld device or
`a non-handheld device. For purposes of illustration only, and
`not limitation, FIG. 1 illustrates an example where a data
`stream is considered executable code with header informa
`tion that includes application profile data. A later example
`will be set forth below where the data stream is an encoded
`video data stream. However it will be recognized that any
`suitable data stream and device may be employed. It should
`be recognized that while in many instances the “header infor
`mation' may be placed at or near the beginning of a data
`stream it could, in many instances, be placed elsewhere in the
`data stream.
`The battery-powered device 10 may have wireless capabil
`ity and/or non-wireless capability. The battery-powered
`device 10 may, for example, be a wireless telephone, a per
`Sonal computer, a digital assistant (such as a personal digital
`assistant—PDA), a digital entertainment/playback device, a
`radio communication device, a tracking device, a personal
`training device, a global positioning device, a camera, a video
`recorder, a video game controller, a television receiver, a
`digital video player, a printing device, a digital display, a
`combination thereof or any suitable device.
`The battery-powered device 10 includes a processor 15 and
`a memory 20 including application code 25 in any Suitable
`format. As used herein code or application can also include
`data if desired. The battery-powered device 10 may further
`include a wireless network interface including a wireless
`transceiver 30 operatively coupled to a controller 35. The
`battery-powered device 10 may further include additional
`memory 40, a crystal oscillator 45, and a voltage generator 50
`operatively to the processor 15.
`For purposes of illustration only, the processor 15 is shown
`as a graphics processing core (GPU) or multimedia process
`ing core. However, processors of other types, architectures,
`
`Case 6:22-cv-00466-ADA-DTG Document 46-12 Filed 09/12/22 Page 17 of 25
`
`50
`
`55
`
`60
`
`65
`
`4
`and capabilities may be used as will be recognized by one
`skilled in the art. For example, a digital signal processor
`(DSP), microcontroller, central processing unit, baseband
`processor, co-processor, or any suitable processing circuit(s)
`may be used. In addition the processor 15 may be discrete
`logic, or any suitable combination of hardware, Software or
`firmware or any suitable structure. The processor 15 may be
`made up of several portions, or functional blocks. The por
`tions provide or control functions contributing to the function
`of the overall processor 15. The operating portions may
`include, but are not limited to, a 2D engine 52, a 3D engine 54,
`a memory controller 56, a phase-lock loop (PLL) circuit
`including system PLL 60 and memory PLL 62, clock fre
`quency registers including system clock register 64 and main
`clock register 66, a general purpose input/output registers 68,
`an idle bit register 70, and a power supply voltage input 72.
`The processor 15 further includes a power management con
`troller 80. The processor 15 may further include arithmetic
`units, on-chip memory, address decoders and encoders, video
`decoders and encoders, co-processors, and other portions as
`are known in the art.
`The operational instructions, such as executable code 25,
`or software, executed by the processor 15 are stored in
`memory 20 which may include any Suitable digital storage
`medium including, but not limited to, RAM, ROM, flash
`memory, hard disk drive, distributed memory Such as servers
`with memory on a network, CD-ROM or any suitable storage
`medium. It will be recognized that Such memory may be
`integrated with the controller or take any Suitable configura
`tion.
`The memory 20 stores application code 25 that is executed
`by the processor 15. The application code 25 may further
`include application profile data 84. Such as in headers of the
`code, identifying usage of portions, during code runtime,
`within the plurality of portions included in the processor 15.
`The application profile data 84 may provide usage informa
`tion including which portions of the processor 15 are active or
`are idle during execution of the code, how frequently various
`portions are active/idle or accessed/not accessed, and para
`metric settings associated with various portions of the pro
`cessor Such as clocking frequency and power Supply Voltage
`settings for the relevant portions of the processor. The appli
`cation profile data 84 is further defined and described below.
`The code 25 with application profile data 84 may be passed
`from the memory 20 to the processor 15 through the system
`bus 88, or any suitable link, for execution by the processor 15.
`For example, the application profile data 84 may be included
`with the code 25 as a header section. Alternatively, the appli
`cation profile data 84 may be associated with the code using
`pointers or may be associated with the code by any means
`recognized by one skilled in the art.
`The processor 15 may include a power management con
`troller 80. The power management controller 80 evaluates
`header information of a data stream and varies parametric
`settings of portions of the processor 15 to reduce power
`consumption of the processor 15 based on the header infor
`mation. In this example, the data stream includes executable
`code and header information that includes application profile
`data identifying which portions of the processor are exercised
`during runtime of the executable code. In an alternative or
`combined embodiment, the device processor 15 may include
`a video decoder, and the data stream includes encoded video.
`In such an example, described further below, the header infor
`mation in the encoded video is used by the power manage
`ment controller to determine which parametric settings of the
`video decoder are to be controlled. The encoded video stream
`need not include additional data, instead data inherent data in
`
`

`

`6
`example, reducing clocking frequency, reducing the operat
`ing power Supply Voltage, or increasing the transistor back
`bias Voltage are known to reduce power consumption during
`runtime. However, these parametric changes, such as reduc
`ing clock frequency, may also reduce the operating speed of
`the processor or portions thereof. Therefore, to reduce power
`consumption while minimizing the effect on performance, it
`is useful to only affect the operating parameters of portions of
`the processor that are not in use or that are minimally used.
`The power management controller 80 may therefore be
`adapted to use the application profile data 84, where the
`usage, in the running of application 25, of various portions of
`the processor is provided along with the application code 25,
`to selectively adjust the parametric settings of identified por
`tions of the processor 15. For example, if a particular portion
`of the processor, such as the 2D engine 52, is not active or not
`used in the execution of application 25, as indicated by the
`application profile data 84, then the power management con
`troller 80 may simply turn OFF the 2D engine 52 during
`runtime of the application code 25, prior to the runtime of
`application code 25 or during the initialization of application
`25. Alternatively, the power management controller 80 may
`reduce the clocking frequency of SCLK 98 to reduce the
`power consumption of the 2D engine 52. Alternatively, the
`power management controller 80 may reduce the value of the
`power supply voltage 72 for the 2D engine 52 to reduce the
`power consumption of the 2D engine 52. Of course, reducing
`the clock frequency of SCLK98 to Zero or reducing the power
`supply voltage 72 to Zero may effectively reduce power con
`sumption to near Zero. If the 2D engine 52 is not used in the
`application code 25, then this approach may be optimal for
`reducing power consumption. Alternatively, if a portion, Such
`as the memory controller 56 is used in the application, but
`only sporadically, then the power management controller 80
`may be adapted to only reduce the clock frequency of MCLK
`94 or the power supply voltage 72, or both, to the memory
`controller 56. The power consumption of the memory con
`troller 56 is thereby reduced. The speed of operation of the
`memory controller 56 that Supplies memory control signals
`110 for accessing the additional memory 40 may be reduced
`while maintaining Sufficient functionality to Support the
`operation of the processor 15. Similarly, the transistor back
`bias may be varied under the control of the power manage
`ment controller 80 to increase or to reduce the power con
`sumption of a portion of the processor 15.
`The application profile data 84 may be supplied to the
`memory 20 in various ways. For example, the application
`code 25 and application profile data 84 may be written into
`memory 20 during the manufacture of the battery-powered
`device 10. Alternatively, the application code 25 and applica
`tion profile data 84 may be written into memory 20 at a later
`time. For example, the application code 25 and application
`profile data 84 may be supplied through a wireless data link
`using the transceiver 30 and the controller35. The application
`and application profile data 112 may be downloaded from a
`wireless network through the transceiver 30. In this example,
`the application and application profile data 114 is then trans
`mitted through the controller 35, and the application and
`application profile data 114 is stored in memory 20. Alterna
`tively, the application profile data 84 may be supplied inde
`pendent of the application code 25.
`The idle register 70 may generate idle bits 118 that may be
`read from the processor 15 to monitor the activity of the
`various portions of the processor 15. For example, the idle
`register 70 may generate bit patterns that indicate which
`portions of the processor 15 are active or inactive during
`
`Case 6:22-cv-00466-ADA-DTG Document 46-12 Filed 09/12/22 Page 18 of 25
`
`45
`
`60
`
`65
`
`US 7,804,435 B2
`
`10
`
`15
`
`25
`
`30
`
`5
`encoded streams (e.g., H.264, VC-1, MPEG or other encoded
`schemes typically include identifiers in the encoded data
`identifying the codec employed to encode the data stream) is
`used to determine how to control the video encoder to save
`power. Additional control data may be included in the stream
`if desired, but this can add additional data that may be unde
`sirable in Some instances.
`Referring again to FIG.1. The power management control
`ler 80 is operative to control power consumption of processor
`portions based on the application profile data 84 and may be
`in any Suitable form including but limited to executing soft
`ware, dedicated circuitry or any suitable structure. The power
`management controller 80 may be operatively coupled to the
`system clock register 64, the main clock register 66 and the
`general purpose I/O 68. The crystal oscillator 45 generates an
`oscillator signal 90 that oscillates at a specific frequency
`based on the crystal 45. The oscillator signal 90 may be used
`by the PLL block 58 to generate a plurality of clock signals
`each of a specified frequency. For example, the system PLL
`60 may generate a system clock (SCLK) 84 that may be used
`to synchronize operations in the 2D engine 52 and the 3D
`engine 54. Meanwhile, the memory PLL 62 may generate a
`memory clock (MCLK) 94 that is used to synchronize opera
`tions of the memory controller 56. The system PLL 60 may be
`adapted to generate the SCLK92 with various frequencies. To
`select a specific frequency to change power consumption of
`the device based on the profile information 84, the power
`management controller 80 writes a system clock program
`value (SCLKPROG)96 into the system clock register 64. The
`system clock register 64 generates a system clock frequency
`(SCLKFREQ)98 that is used as the frequency selection input
`to the system PLL 60. Similarly, the memory PLL 62 may be
`adapted to generate the MCLK 94 with various frequencies.
`To select a specific frequency, the power management con
`troller 80 may write a memory clock program value (MCLK
`35
`PROG) 102 into the memory clock register 66. The memory
`clock register 66 generates a memory clock frequency
`(MCLK FREQ) 104 that is used as the frequency selection
`input to the memory PLL 62. As a result, the power manage
`ment controller 80 is operative to vary the clocking frequen
`40
`cies of several portions of the processor 15, such as the 2D
`engine 52, the 3D engine 54, and the memory controller 56 or
`any other desired portions of the processor.
`The power supply voltage input 72 may be operatively
`coupled to the processor 15 to provide a voltage supply for
`operating the processor 15. A plurality of such power Supply
`Voltage inputs 72 may be used to provide a plurality of sepa
`rate adjustable voltage supplies for different portions of the
`processor 15. The power supply voltage input 72 may be
`operatively coupled to the output 73 of the voltage generator
`50. The voltage generator 50, in turn may be coupled to and
`controlled by a power supply set signal 106 from processor
`15. For example

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