WO2009038902A1 - Switching between graphics sources to facilitate power management and/or security - Google Patents

Switching between graphics sources to facilitate power management and/or security Download PDF

Info

Publication number
WO2009038902A1
WO2009038902A1 PCT/US2008/072911 US2008072911W WO2009038902A1 WO 2009038902 A1 WO2009038902 A1 WO 2009038902A1 US 2008072911 W US2008072911 W US 2008072911W WO 2009038902 A1 WO2009038902 A1 WO 2009038902A1
Authority
WO
WIPO (PCT)
Prior art keywords
display
graphics
frame buffer
switching
switch
Prior art date
Application number
PCT/US2008/072911
Other languages
French (fr)
Inventor
Brian D. Howard
Paul A. Baker
Michael F. Culbert
David G. Conroy
William C. Athas
Original Assignee
Apple Inc.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Apple Inc. filed Critical Apple Inc.
Priority to EP08797713A priority Critical patent/EP2188708A1/en
Priority to CN2008801079441A priority patent/CN101802774B/en
Priority to JP2010525865A priority patent/JP5300030B2/en
Publication of WO2009038902A1 publication Critical patent/WO2009038902A1/en

Links

Classifications

    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/36Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
    • G09G5/363Graphics controllers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • G06F1/3215Monitoring of peripheral devices
    • G06F1/3218Monitoring of peripheral devices of display devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • G06F3/1423Digital output to display device ; Cooperation and interconnection of the display device with other functional units controlling a plurality of local displays, e.g. CRT and flat panel display
    • G06F3/1438Digital output to display device ; Cooperation and interconnection of the display device with other functional units controlling a plurality of local displays, e.g. CRT and flat panel display using more than one graphics controller
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/12Synchronisation between the display unit and other units, e.g. other display units, video-disc players
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/4405Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving video stream decryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/45Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
    • H04N21/462Content or additional data management, e.g. creating a master electronic program guide from data received from the Internet and a Head-end, controlling the complexity of a video stream by scaling the resolution or bit-rate based on the client capabilities
    • H04N21/4623Processing of entitlement messages, e.g. ECM [Entitlement Control Message] or EMM [Entitlement Management Message]
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2330/00Aspects of power supply; Aspects of display protection and defect management
    • G09G2330/02Details of power systems and of start or stop of display operation
    • G09G2330/021Power management, e.g. power saving
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2360/00Aspects of the architecture of display systems
    • G09G2360/06Use of more than one graphics processor to process data before displaying to one or more screens

Definitions

  • the present invention relates to techniques for switching between graphics sources in computer systems. More specifically, the present invention relates to a method and an apparatus for reducing power and/or improving security by switching between graphics sources in a computer system.
  • One technique for saving power during such "low activity" periods is to switch the display from a high-power graphics source (e.g., a high-performance GPU) to a low-power graphics source (e.g., a low-performance GPU).
  • a high-power graphics source e.g., a high-performance GPU
  • a low-power graphics source e.g., a low-performance GPU
  • One embodiment of the present invention provides a system that switches between frame buffers which are used to refresh a display.
  • the system refreshes the display from a first frame buffer which is located in a first memory.
  • the system Upon receiving a request to switch frame buffers for the display, the system reconfigures data transfers to the display so that the display is refreshed from a second frame buffer which is located in a second memory.
  • the first memory is a main memory, which is accessible by numerous applications and is hence insecure
  • the second memory is a secure frame buffer which is located outside of main memory.
  • switching the display additionally involves transferring data which is used to refresh the display so that the data completely bypasses the insecure main memory.
  • the system encrypts the data while the data is stored in the second frame buffer and while the data is in transit to and from the second frame buffer.
  • the system prior to receiving the request to switch frame buffers, the system: determines a security requirement for data associated with the display; and generates the request to switch frame buffers based on the determined security requirement. [0014] In some embodiments, prior to receiving the request to switch frame buffers, the system: monitors a level of graphics-processing load for the display; and generates the request to switch based on the level of graphics-processing load.
  • the system measures a temperature in a computer system which contains the display; and generates the request to switch based on the measured temperature.
  • switching the display so that the display is refreshed from the second frame buffer additionally involves switching a graphics processing unit (GPU) which performs rendering operations for the display.
  • the GPU is switched between a low-power GPU, which renders to the first frame buffer, and a high- power GPU which renders to the second frame buffer.
  • the system prior to switching from the low-power GPU to the high-power GPU, substantially synchronizes the low-power GPU' s output display signals and the high-power GPU's output display signals, thereby facilitating a seamless transition which does not disrupt graphical output on the display.
  • substantially synchronizing the output display signals involves using one or more phase-locked loops (PLL).
  • PLL phase-locked loops
  • the switching takes place during a vertical blanking interval associated with a vertical blanking signal for the display.
  • Another embodiment of the present invention provides a computer system that switches between a first graphics processor and a second graphics processor to drive a first display and/or a second display.
  • This computer system includes: a processor; a memory; a first graphics processor; a second graphics processor; a first display, and a second display.
  • the computer system also includes a first switch, which selectively couples either the first graphics processor or the second graphics processor to the first display. It also includes a second switch, which selectively couples either the first graphics processor or the second graphics processor to the second display.
  • the first display is an internal display, which is integrated into the computer system
  • the second display is an external display, which is coupled to the computer system.
  • the first switch and the second switch are configured either to couple the first graphics processor to both the first display and the second display, or to couple the second graphics processor to both the first display and the second display.
  • the first graphics processor is a high-power graphics processing unit (GPU) and the second graphics processor is a low-power GPU.
  • the system includes a synchronization mechanism, which is configured to substantially synchronize the first graphics processor's output display signals and the second graphics processor's output display signals, thereby facilitating a seamless switching process which does not disrupt graphical output.
  • the synchronization mechanism is configured to use one or more phase-locked loops (PLL) to substantially synchronize the output display signals.
  • PLL phase-locked loops
  • the first switch and the second switch can include: multiplexers; or wired-OR logic.
  • FIG. 1 illustrates a computer system in accordance with an embodiment of the present invention.
  • FIG. 2 illustrates a computer system which can switch between different graphics sources to drive the same display in accordance with an embodiment of the present invention.
  • FIG. 3 presents a flow chart illustrating the process of switching from a first graphics source to a second graphics source to drive a display in accordance with an embodiment of the present invention.
  • FIG. 4 presents a flow chart illustrating the process of switching from the first graphics source to the second graphics source without synchronizing the output display signals in accordance with an embodiment of the present invention.
  • FIG. 5A illustrates a single vertical blanking interval (VBI) and a corresponding vertical synchronization (V-sync) pulse generated by a graphics source in accordance with an embodiment of the present invention.
  • VBI vertical blanking interval
  • V-sync vertical synchronization
  • FIG. 5B illustrates two overlapping VBIs generated by two graphics sources in accordance with an embodiment of the present invention.
  • FIG. 6A presents a schematic of a technique for synchronizing timing signals between two graphics sources in accordance with an embodiment of the present invention.
  • FIG. 6B presents a schematic of another technique for synchronizing timing signals between two graphics sources in accordance with an embodiment of the present invention.
  • FIG. 7 illustrates a computer system comprising two graphics sources in accordance with an embodiment of the present invention.
  • FIG. 8 presents a flow chart illustrating the process of switching from the first graphics source to the second graphics source in accordance with an embodiment of the present invention.
  • FIG. 9 presents a flow chart illustrating the process of switching from the second graphics source to the first graphics source in accordance with an embodiment of the present invention.
  • FIG. 10 illustrates a computer system which can switch between different graphics sources to drive an internal display and an external display in accordance with an embodiment of the present invention.
  • a computer-readable storage medium which may be any device or medium that can store code and/or data for use by a computer system.
  • FIG. 1 illustrates a computer system 100 in accordance with an embodiment of the present invention.
  • computer system 100 includes processor 102, which is coupled to a memory subsystem 106, peripheral bus 108, and to a graphics processor 110 through bridge 104.
  • Bridge 104 can include any type of core logic unit, bridge chip, or chipsets that are commonly used to couple together components within computing system 100. In one embodiment of the present invention, bridge 104 is a north bridge chip.
  • Processor 102 can include any type of processor, including, but not limited to, a microprocessor, a digital signal processor, a device controller, or a computational engine within an appliance.
  • one or more components of the computer system 100 may be located remotely and accessed via a network.
  • Processor 102 communicates with memory subsystem 106 through bridge 104.
  • Memory subsystem 106 can include a number of components, including one or more memory chips which can be accessed by processor 102 at high speed.
  • Processor 102 also communicates with storage device 112 through bridge 104 and peripheral bus 108.
  • Storage device 112 can include any type of non- volatile storage device that can be coupled to a computer system. This includes, but is not limited to, magnetic, optical, and magneto -optical storage devices, as well as storage devices based on flash memory and/or battery-backed up memory.
  • Processor 102 additionally communicates with graphics processor 110 through bridge 104.
  • Graphics processor 110 is a specialized graphics-rendering device that provides a signal source to display 114 and drives display 114.
  • Display 114 can include any type of display device that can present information in a visual format (including images and text) to a user. This includes, but is not limited to, cathode ray tube (CRT) displays, light-emitting diode (LED) displays, liquid-crystal displays (LCD), organic LED (OLED) displays, surface- conduction electron-emitter displays (SED), or electronic paper.
  • CTR cathode ray tube
  • LED light-emitting diode
  • LCD liquid-crystal displays
  • OLED organic LED
  • SED surface- conduction electron-emitter displays
  • Graphics processor 110 performs both 2D and 3D graphics-rendering operations, such as lighting, shading and transforming, with high performance. To achieve the high performance, graphics processor 110 may utilize dedicated video memory 116 to store frame buffers, textures, vertex arrays, and/or display lists.
  • Bridge 104 also includes an embedded graphics processor 118. Embedded graphics processor 118 is typically built for modest performance graphics processing purposes, and hence consumes much less power than graphics processor 110. Note that in FIG. 1, embedded graphics processor 118 is not directly coupled to and does not drive display 114. [0048] Note that although the present invention is described in the context of computer system 100 illustrated in FIG. 1, the present invention can generally operate on any type of computing device that supports more than one graphics processor. Hence, the present invention is not limited to the computer system 100 illustrated in FIG. 1.
  • FIG. 2 illustrates a computer system 200 which can switch between different graphics sources to drive the same display in accordance with an embodiment of the present invention.
  • the two graphics sources graphics processor 210 and embedded graphics processor 2148 can each independently drive display 214.
  • the graphics source that actively drives display 214 at a given time is determined by selecting device 220 which can select between the two graphics sources.
  • computer system 200 can use selecting device 220 to select a graphics source based on its current operation conditions.
  • output display signals 222 from graphics processor 210, and output display signals 224 from embedded graphics processor 218 are both coupled to inputs of a two-to-one multiplexer (MUX) 220.
  • the output of MUX 220 is controlled by source select 226, which determines which one of the two graphics sources should drive display 214.
  • source select 226 is the output of bridge chip 204, which comprises specific logic for generating source select 226. Note that source select 226 can also be produced by a logic block other than bridge 204.
  • the output display signals from the selected graphics source are then coupled to the inputs of display 214 to actively drive it.
  • the selecting device is shown as a multiplexer, it can also include any other type of selecting device, such as a simple wired-OR logic.
  • graphics processor 210 and embedded graphics processor 218 can cooperate through a path 228, so that they can synchronize their output display signals. Because the output display signals can include both timing signals and data signals, synchronizing the output display signals can involve synchronizing both the respective timing signals and the respective data signals. Note that path 228 can be realized using hardware and/or software to facilitate synchronizing the two graphics sources.
  • graphics processor 210 is a high- performance graphics processor unit (GPU) which consumes a large amount of power
  • embedded graphics processor 218 is a lower-performance GPU which consumes a smaller amount of power.
  • the system switches the graphics source from graphics processor 210 to embedded graphics processor 218 to drive display 214, and subsequently powers down graphics processor 210 entirely, thereby saving power.
  • the graphics processing load becomes heavy again, the system switches the graphics source from embedded graphics processor 218 back to graphics processor 210.
  • the present invention can generally work for a computer system comprising two or more graphics processors, wherein each of the graphics processors can independently drive the display when properly configured. Moreover, these multiple graphics processors can have different operating characteristics, including different power consumption levels. Furthermore, each of the multiple graphics processors can be either a standalone graphics processor or an integrated graphics processor within a chip. Hence, the present invention is not limited to the computer system 200 illustrated in FIG. 2.
  • FIG. 3 presents a flowchart illustrating the process of switching from a first graphics source to a second graphics source to drive a display in accordance with an embodiment of the present invention.
  • the system first receives a request to switch the signal source for the display from a first graphics processor which is actively driving the display to a second graphics processor which is in a non-active state (step 302).
  • the switching request can be generated by a user who is aware of levels of graphics processing load.
  • the switching request can be generated internally by the system.
  • system software continuously monitors the level of graphics processing load. More specifically, the system can determine the level of graphics processing load based on a condition in a graphics command queue associated with the graphics processor. For example, if the command queue is mostly empty, the system asserts a low graphics processing load. On the other hand, if the command queue is mostly full, the system asserts a high graphics processing load.
  • the system software selects one of the two graphics processors, and subsequently generates the request to switch if the non-active graphics processor is selected.
  • the system software can issue a request to switch to a second graphics processor which has lower performance, but which also consumes much less power.
  • the system software can issue a request to switch to a high-performance and high-power GPU if the system software detects a considerable increase in the level of graphics processing load.
  • using system software to monitor the graphics processing load and to automatically issue the switching request is significantly faster and possibly more energy efficient than a human-initiated request. Furthermore, using system software can free the user from the monitoring job.
  • the system configures the second graphics processor in preparation for driving the display (step 304).
  • configuring the second graphics processor can involve one or more of the following steps: (1) powering up the processor if it is currently powered down; (2) initializing the graphics processor; and (3) generating output signals in preparation for powering up the display.
  • the system then switches the signal source which drives the display from the first graphics processor to the second graphics processor, which causes the second graphics processor to drive the display (step 306).
  • the switching involves using a selecting device such as MUX 220 in FIG. 2, which decouples the first graphics processor from, and couples the second graphics processor to, the display.
  • different timing controls can be used which will be described in more detail below. In general, obtaining a smoother switching transition requires more precise timing control and, hence, typically requires a more complex switch-controlling mechanism.
  • the system may power down the first graphics processor to conserve power. Note that the above-described switching process does not require re-initializing the whole system to take effect.
  • the switch request can also be generated based on power conditions (e.g., whether the system is running on a battery or an external power source, or whether the battery is low), based on a need to reduce system heat dissipation, based on user preference, or based on any feature or capability that is different between the two graphics processors.
  • power conditions e.g., whether the system is running on a battery or an external power source, or whether the battery is low
  • FIG. 4 presents a flowchart illustrating the process of switching from the first graphics source to the second graphics source without synchronizing the output display signals in accordance with an embodiment of the present invention.
  • the first graphics processor fades out the display (step 402). Note that this can be done in a number of ways, including, but not limited to, displaying black or other colors on the screen, turning off the backlight, or powering down the entire display.
  • the system switches the signal source that drives the display from the first graphics processor to the second graphics processor, which has been configured to drive the display (step 404). More specifically, the switching involves decoupling the first graphics processor's output signals from the input of the display and coupling the second graphics processor's output signals to the input of the display.
  • the second graphics processor Upon completing the switching, the second graphics processor then initializes the display if necessary (step 406). Next, the second graphics processor redraws the display screen and subsequently fades in the display screen (step 408).
  • the two graphics sources are not required to synchronize with each other. Consequently, the second signal source does not need to be configured to redraw the display before the switch takes place. Furthermore, the first signal source can be turned off (e.g., through a fade-out operation) prior to performing the switch. [0073] Note that switching without synchronization is simple but can cause the user to notice the switch. However, if the switching can be completed within a fraction of a second, the user may not even notice the switch. Alternatively, if the switching is done more slowly, the visual disruption can be reduced by using an appropriate visual effect, such as a fade-out/fade-in effect when the display resolution is changed. Generally, any undesirable visual effects of switching the display from one set of display signals to a different, unsynchronized set of display signals can be hidden by fading out the display during the transition.
  • Synchronizing the output signals prior to switching facilitates a smoother, less noticeable, or even seamless switching process which does not disrupt graphical output on the display.
  • the synchronization requires the second graphics source to start generating output signals in preparation for driving the display prior to the switching, so that the output display signals from both graphics sources can be synchronized.
  • synchronizing the output signals from the two graphics sources can be achieved by matching up timing information embedded in the output signals.
  • timing information can include, but is not limited to, horizontal synchronization (H-sync) pulses, vertical synchronization (V-sync) pulses, horizontal blanking signals, and vertical blanking signals.
  • V-sync pulses control image refresh on the display by indicating when to start scanning a new frame of data.
  • V-sync pulses occur within a short time interval between two consecutive image frames, referred to as a vertical blanking interval (VBI), during which the display on the screen is held in a constant state for various housekeeping purposes.
  • VBI vertical blanking interval
  • V-sync pulse 504 illustrates a single VBI 502 and a corresponding V-sync pulse 504 produced by a graphics source in accordance with an embodiment of the present invention. Note that the V-sync pulse 504 falls within VBI 502. [0076] In this embodiment, the computer system keeps track of when V-sync pulses occur in the first graphics source, and adjusts the timing sequence of the second graphics source until its V-sync pulses are aligned with those of the first graphics source. In one embodiment, aligning the V-sync pulses from the two graphics sources involves using either software or hardware to cause the timing sequence of the second graphics source to coincide with the timing sequence of the first graphics source. During this alignment period, the first graphics source continues to drive the display.
  • FIG. 5B illustrates two overlapping VBIs - VBI 506 and VBI 508 generated by two graphics sources in accordance with an embodiment of the present invention. Note that the switching occurs within overlapping period 510 of the two VBIs. Also note that the switching process may appear invisible to a user if it can be completed within overlapping period 510. Furthermore, the substantial synchronization between the two graphics sources facilitates the second graphics source to start driving the display immediately so that it appears to the user as if the display did not change.
  • the system can allow the V-sync signals of the second graphics source to drift against those of the first graphics source.
  • a drift in the timing signals can occur as a result of one or more timing differences.
  • the drift can be caused by a slight difference in the clock frequencies of two graphics processors.
  • the drift can be caused by programming the two graphics processors to operate at slightly different display frame rates.
  • the system can monitor the two V-sync signals from the two sources and detect when they overlap with each other, wherein the monitoring can be performed by either software or hardware. When this occurs, the system can switch from one graphics source to the other before the two signals drift away from each other.
  • one of the graphics sources can be synchronized to the other graphics source using additional hardware, so that the display output timing of the two graphics sources can be aligned precisely.
  • a switch can then be made during a next VBI so that the switch is undetectable by the user.
  • a smoother switch is made possible by incorporating the additional hardware to adjust the phase and frequency of the second graphics source's display timing generator to align the display output timing to that of the first graphics source.
  • FIG. 6A presents a schematic of a technique for synchronizing timing signals between two graphics sources in accordance with an embodiment of the present invention. As illustrated in FIG.
  • the two graphics sources A and B comprise timing generator 602 and timing generator 604, respectively.
  • Timing generator 602 produces V-sync pulses in output V-SYNC 606 and vertical blanking intervals in output VBI 608 for graphics source A
  • timing generator 604 produces V-sync pulses in output V-SYNC 610 and vertical blanking intervals in output VBI 612 for graphics source B.
  • Graphics sources A and B also use phase-locked loop (PLL) 614, and PLL 616 to provide frequency references for timing generators 602 and 604, respectively. More specifically, PLL 614 and PLL 616 receive reference frequency inputs / 4 REF 618 and , /* REF 620 from the left, and generate reference frequency outputs /O U T 622 and/*ou ⁇ 624 as inputs to timing generators 602 and 604.
  • PLL 614 and PLL 616 receive reference frequency inputs / 4 REF 618 and , /* REF 620 from the left, and generate reference frequency outputs /O U T 622 and/*ou ⁇ 624 as inputs to timing generators 602 and 604.
  • PLL 614 and PLL 616 receive reference frequency inputs / 4 REF 618 and , /* REF 620 from the left, and generate reference frequency outputs /O U T 622 and/*ou ⁇ 624 as inputs to timing generators 602 and 604.
  • PLL 614 comprises a divider M A 626 and a divider JV A 628.
  • PLL 616 comprises a divider M B 630 and a divider NB 632.
  • N A , N B are programmable and are stored in programmable registers.
  • scalars M A , M B , NA, NB are coupled to and are programmable through a controller 634, which can be implemented either in software or in hardware as microcontroller or a finite state machine.
  • Controller 634 receives a request to switch input - REQSW 636, and additionally receives clock signals V-SY ⁇ C A 606 and VBI A 608 from graphics source A, and V-SYNC B 610 and VBI B 612 from graphics source B.
  • Controller 634 measures the phase difference between either the V-sync signals or the VBI signals of the two graphics sources. Using the measured phase difference as a feedback signal, controller 634 can then adjust the phase of V-sync and VBI from one graphics source relative to the other graphics source by synchronously changing the M and N values in the associated PLL.
  • controller 634 uses the feedback loop to continue measuring and adjusting the phase difference. When controller 634 determines that the phase difference is within a predetermined bound, it then generates a switch enable - OK2S WITCH 638.
  • OK2S WITCH 638 is coupled to source select 226 in FIG. 2, which enables MUX 220 to flip the source.
  • controller 634 can be configured to align VBIs to obtain just enough overlap so that the switching operation does not cause visible artifacts. When the controller detects there is sufficient overlap, it asserts OK2SWITCH signal to complete the synchronization.
  • FIG. 6B presents a schematic of another technique for synchronizing timing signals between two graphics sources in accordance with an embodiment of the present invention.
  • a single PLL 640 is used to synchronize timing signals between the graphics sources A and B. Note that there's no direct control of the PLL by a controller as in FIG. 6A. Instead, PLL 640 forms a closed loop with one of the timing generators.
  • timing generators 602 and 604 receive reference frequency inputs _/REF A 642 B 644, respectively.
  • the four outputs from timing generators 602 and 604: V-SYNCA 606, VBI A 608, V-SYNCB 610, and VBI B 612 are coupled to a four-to-two multiplexer MUX 646, which can select either V-SYNC A 606 and V-SYNC B 610, or VBI A 608 and VBI B 612 to its outputs.
  • the outputs of MUX 646 are then coupled to the inputs of the phase detector of PLL 640. Note that either the V-sync signals or the VBI signals can be used for alignment in this embodiment.
  • the VCO output from PLL 640 is coupled to and serves as the input reference frequency for one of the timing generators, and thereby completes the closed-loop with that timing generator. More specifically, the output from PLL 640 is first coupled to the inputs of two multiplexers MUX 648 and MUX 650, which also receive external clock signals EXTCLK A 652 and EXTCLK B 654 as inputs, respectively. The outputs of MUX 648 and MUX 650 are controlled by controller 656, which selects either the external clock source or the PLL output as the reference frequency input for a respective timing generator. Note that controller 656 receives an input from the phase detector of PLL 640 and detects if PLL 640 has locked based on the input.
  • controller 656 detects that PLL 640 has become phase-locked, it then switches the graphics source that drives the display from graphics source A to graphics source B during the next blanking interval. More specifically, in the following blanking interval, controller 656 switches B input from PLL 640 to the external clock source EXTCLK B 654. After the switching, PLL 640 can then be used for locking graphics source A to graphics source B, which is now actively driving the display.
  • the lower-performance, lower-power graphics processor instead of switching between two graphics processors to drive the same display device, the lower-performance, lower-power graphics processor always drives the display.
  • the higher-performance processor takes over the graphics processing load, rendering its display image into the same frame buffer used by the lower-performance processor.
  • the lower-performance processor acts purely as a display output device, i.e., transferring image data from the frame buffer to the display, while the higher-performance device performs all the graphics processing.
  • the lower-performance device again takes over the graphics processing tasks, and the higher-performance device can be powered down accordingly.
  • FIG. 7 illustrates a computer system 700 which includes two graphics processors in accordance with an embodiment of the present invention. More specifically, computer system 700 includes a processor 702, which is coupled to a bridge chip 704. Bridge chip 704 is itself coupled to main memory 706, display 714 and peripheral bus 708. Peripheral bus 708 can be used to access storage device 710. [0095] Note that lower-performance, low-power graphics processor 712 is directly coupled to display 714 and always drives it. On the other hand, high-performance, high-power graphics processor 716 is coupled to graphics processor 712, and is typically powered down when it is not in use.
  • graphics processor 716 instead of rendering graphics into its own frame buffer, graphics processor 716 renders images directly into frame buffer 707 for graphics processor 712, wherein frame buffer 707 is located in main memory 706.
  • graphics processor 712 is responsible for displaying the graphics on display 714 by continuously refreshing display 714. Note that because in this embodiment the display is always driven by the same graphics processor and is refreshing from the same frame buffer, no switching hardware is required and there is no hardware switching transition to hide from the user.
  • graphics processor 716 when additional graphics processing power or additional security is needed, the system powers up graphics processor 716 to provide the additional graphics-rendering capacity.
  • Graphics processor 716 renders images to its local frame buffer 722 that resides in a special-purpose graphics memory 720, which is coupled to (or integrated into) graphics processor 716.
  • special-purpose graphics memory 720 is more secure than main memory 706 because main memory 706 is typically shared among many different processes and applications.
  • graphics processor 712 must change the frame buffer (from which it is refreshing display 714) from its own frame buffer 707 to the frame buffer 722 of graphics processor 716. Because display 714 is always driven by the same graphics processor, no switching hardware is required. However, graphics processor 712 must be programmed to make the switch between frame buffers at the correct time (during the vertical blanking interval, for instance) to avoid a transition that is visible to the user.
  • FIG. 8 presents a flow chart illustrating the process of switching from the first graphics source to the second graphics source in accordance with an embodiment of the present invention.
  • the lower-power internal graphics processor 712 also referred to as a "GPU”
  • graphics processor 712 also referred to as a "GPU”
  • main memory 706 main memory 706, and display 714 is being refreshed from frame buffer 707 (step 802).
  • display 714 is being refreshed from frame buffer 707 (step 802).
  • the system determines whether more performance and/or more security is required (step 804). If not, the system returns to step 802.
  • the system powers up external high-power graphics processor 716 (step 806). Then, external high-power graphics processor 716 renders an identical image into frame buffer 722 in graphics memory 720 (step 808).
  • VBI vertical blanking interval
  • internal low-power graphics processor 712 switches its refresh pointer from frame buffer 707 in main memory 706 to frame buffer 722 in graphics memory 720 (step 812).
  • internal low-power graphics processor 712 powers down except for its refresh circuits (step 814). At this point, the switching process is complete.
  • FIG. 9 presents a flow chart illustrating the process of switching from the second graphics source to the first graphics source in accordance with an embodiment of the present invention.
  • high-power internal graphics processor 716 is rendering into frame buffer 722 in graphics memory 720, and display 714 is being refreshed from frame buffer 722 (step 902).
  • the system determines whether less performance and/or less security is required (step 904). If not, the system returns to step 902. [00104] Otherwise, if the system determines that less performance and/or less security is required, the system powers up internal low-power graphics processor 712 (step 906). Then, low-power graphics processor 712 renders an identical image into frame buffer 707 in main memory 706 (step 908). Next, the system waits for a vertical blanking interval (step 910). During this vertical blanking interval, the internal low-power graphics processor 712 switches its refresh pointer from frame buffer 722 in graphics memory 720 to frame buffer 707 in main memory 706 (step 912). Next, the high-power graphics processor 716 powers down (step 914). At this point, the switching process is complete.
  • FIG. 10 illustrates a computer system 1000 which can switch between different graphics sources to drive both an internal display and an external display in accordance with an embodiment of the present invention.
  • two graphics processors graphics processor 1010 and embedded graphics processor 1018) can each independently drive internal display 1014 and external display 1015.
  • the graphics source which actively drives display 1014 is determined by multiplexer 1020, and the graphics source which drives display 1015 is determined by multiplexer 1021.
  • Multiplexers 1020 and 1021 can select between the graphics processor 1010 and embedded graphics processor 1018.
  • output display signals 1022 from graphics processor 1010, and output display signals 1024 from embedded graphics processor 1018 are coupled to inputs of a multiplexer (MUX) 1020.
  • output display signals 1023 from graphics processor 1010, and output display signals 1025 from embedded graphics processor 1018 are coupled to inputs of MUX 1021.
  • each graphics processor has separate output display signals for driving the two displays. (This is because the two displays can use different display signaling protocols, and are in general different in pixel resolution, color depth, color balance, etc.).
  • the output of MUX 1020 is controlled by source select 1026, which determines which one of the two graphics sources should drive internal display 1014.
  • source select 1027 determines which one of the two graphics sources will drive external display 1015.
  • source selects 1026 and 1027 are outputs of bridge chip 1004, which contains circuitry for generating source selects 1026 and 1027. Note that source selects 1026 and 1027 can also be produced by a logic block which is located outside of bridge 1004.
  • graphics processor 1010 is a high-performance graphics processor unit (GPU), which consumes a large amount of power
  • embedded graphics processor 1018 is a lower-performance GPU, which consumes a smaller amount of power.
  • the system switches the graphics source from graphics processor 1010 to embedded graphics processor 1018 to drive displays 1014 and 1015, and subsequently powers down graphics processor 1010 entirely, thereby saving power.
  • the graphics processing load becomes heavy again, the system switches graphics source from embedded graphics processor 1018 back to graphics processor 1010.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • General Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computer Graphics (AREA)
  • Human Computer Interaction (AREA)
  • Controls And Circuits For Display Device (AREA)
  • Storage Device Security (AREA)
  • Digital Computer Display Output (AREA)

Abstract

One embodiment of the present invention provides a system that switches between frame buffers which are used to refresh a display. During operation, the system refreshes the display from a first frame buffer which is located in a first memory. Upon receiving a request to switch frame buffers for the display, the system reconfigures data transfers to the display so that the display is refreshed from a second frame buffer which is located in a second memory.

Description

SWITCHING BETWEEN GRAPHICS SOURCES TO FACILITATE POWER MANAGEMENT AND/OR
SECURITY
Inventors: Brian D. Howard, Paul Baker, Michael F. Culbert, David G. Conroy and William C. Athas
BACKGROUND
Field of the Invention
[0001] The present invention relates to techniques for switching between graphics sources in computer systems. More specifically, the present invention relates to a method and an apparatus for reducing power and/or improving security by switching between graphics sources in a computer system.
Related Art
[0002] Rapid advances in computing technology have made it possible to perform trillions of computational operations each second on data sets that are sometimes as large as a trillion bytes. These advances can be largely attributed to the exponential increase in the size and complexity of integrated circuits. Unfortunately, the increase in size and complexity of integrated circuits has been accompanied by a similar increase in power consumption. [0003] In a parallel development, the rapid proliferation of broadband wireless networks has given rise to a dramatic increase in the number of portable computer systems. Unfortunately, portable computer systems usually have stringent power constraints due to the limited battery power that is available to them. These developments have created a significant need for power-saving techniques.
[0004] Advances in 3D graphics technology have led most of the modern computer systems to use dedicated graphics processors (sometimes referred to as graphics processing units (GPUs)) to drive graphics display devices. Unfortunately, today's GPUs consume a large amount of power, which severely shortens the battery life of portable computer systems, and also causes heat dissipation problems. [0005] While a graphics display is operating, there are often times when very little graphics processing is needed, for example when the user is reading a document on the display. Unfortunately, existing graphics processors cannot easily switch to a low-power mode to conserve power during these "low activity" periods. [0006] One technique for saving power during such "low activity" periods is to switch the display from a high-power graphics source (e.g., a high-performance GPU) to a low-power graphics source (e.g., a low-performance GPU). Ideally, this switching operation should be invisible to the user, so that the system can seamlessly switch back and forth between the different graphics sources as the graphics processing demands change, or as the system's need to limit power consumption changes.
[0007] One existing technique provides a mechanical switch which allows a user to switch between a lower-performance graphics source and a higher-performance graphics source. However, this brute-force technique requires the user to fully re-initialize the computer system each time the user switches from one graphics source to another. Requiring a user to re-initialize the computer system to switch from one graphics source to another is simply not acceptable in many situations. An initialization process is one of the most disruptive operations that can be performed on the computer. Typically the user has to save all his or her work before re-initializing the computer, which can take a considerable amount of time. Furthermore, the user must first decide whether their graphics processing requirements will be high or low in the near future, and must then wait for the system to re-initialize, and then be willing to wait for another re-initialization if requirements change. [0008] Another problem is that some graphics processors render images into a frame buffer located in insecure main memory. This can cause issues with Digital Rights Management (DRM) standards which require that such graphical images be stored securely. [0009] Hence, what is needed is a method and an apparatus that facilitates rapid and/or seamless switching between different graphics sources to reduce power and/or provide security.
SUMMARY [0010] One embodiment of the present invention provides a system that switches between frame buffers which are used to refresh a display. During operation, the system refreshes the display from a first frame buffer which is located in a first memory. Upon receiving a request to switch frame buffers for the display, the system reconfigures data transfers to the display so that the display is refreshed from a second frame buffer which is located in a second memory.
[0011] In some embodiments, the first memory is a main memory, which is accessible by numerous applications and is hence insecure, and the second memory is a secure frame buffer which is located outside of main memory.
[0012] In some embodiments, switching the display additionally involves transferring data which is used to refresh the display so that the data completely bypasses the insecure main memory. In this variation, the system encrypts the data while the data is stored in the second frame buffer and while the data is in transit to and from the second frame buffer.
[0013] In some embodiments, prior to receiving the request to switch frame buffers, the system: determines a security requirement for data associated with the display; and generates the request to switch frame buffers based on the determined security requirement. [0014] In some embodiments, prior to receiving the request to switch frame buffers, the system: monitors a level of graphics-processing load for the display; and generates the request to switch based on the level of graphics-processing load.
[0015] In some embodiments, the system: measures a temperature in a computer system which contains the display; and generates the request to switch based on the measured temperature. [0016] In some embodiments, switching the display so that the display is refreshed from the second frame buffer additionally involves switching a graphics processing unit (GPU) which performs rendering operations for the display. In some embodiments, the GPU is switched between a low-power GPU, which renders to the first frame buffer, and a high- power GPU which renders to the second frame buffer. [0017] In some embodiments, prior to switching from the low-power GPU to the high-power GPU, the system substantially synchronizes the low-power GPU' s output display signals and the high-power GPU's output display signals, thereby facilitating a seamless transition which does not disrupt graphical output on the display.
[0018] In some embodiments, substantially synchronizing the output display signals involves using one or more phase-locked loops (PLL).
[0019] In some embodiments, the switching takes place during a vertical blanking interval associated with a vertical blanking signal for the display. [0020] Another embodiment of the present invention provides a computer system that switches between a first graphics processor and a second graphics processor to drive a first display and/or a second display. This computer system includes: a processor; a memory; a first graphics processor; a second graphics processor; a first display, and a second display. The computer system also includes a first switch, which selectively couples either the first graphics processor or the second graphics processor to the first display. It also includes a second switch, which selectively couples either the first graphics processor or the second graphics processor to the second display.
[0021] In some embodiments, the first display is an internal display, which is integrated into the computer system, and the second display is an external display, which is coupled to the computer system.
[0022] In some embodiments, the first switch and the second switch are configured either to couple the first graphics processor to both the first display and the second display, or to couple the second graphics processor to both the first display and the second display. [0023] In some embodiments, the first graphics processor is a high-power graphics processing unit (GPU) and the second graphics processor is a low-power GPU.
[0024] In some embodiments, the system includes a synchronization mechanism, which is configured to substantially synchronize the first graphics processor's output display signals and the second graphics processor's output display signals, thereby facilitating a seamless switching process which does not disrupt graphical output.
[0025] In some embodiments, the synchronization mechanism is configured to use one or more phase-locked loops (PLL) to substantially synchronize the output display signals.
[0026] In some embodiments, the first switch and the second switch can include: multiplexers; or wired-OR logic.
BRIEF DESCRIPTION OF THE FIGURES [0027] FIG. 1 illustrates a computer system in accordance with an embodiment of the present invention. [0028] FIG. 2 illustrates a computer system which can switch between different graphics sources to drive the same display in accordance with an embodiment of the present invention.
[0029] FIG. 3 presents a flow chart illustrating the process of switching from a first graphics source to a second graphics source to drive a display in accordance with an embodiment of the present invention.
[0030] FIG. 4 presents a flow chart illustrating the process of switching from the first graphics source to the second graphics source without synchronizing the output display signals in accordance with an embodiment of the present invention. [0031] FIG. 5A illustrates a single vertical blanking interval (VBI) and a corresponding vertical synchronization (V-sync) pulse generated by a graphics source in accordance with an embodiment of the present invention.
[0032] FIG. 5B illustrates two overlapping VBIs generated by two graphics sources in accordance with an embodiment of the present invention. [0033] FIG. 6A presents a schematic of a technique for synchronizing timing signals between two graphics sources in accordance with an embodiment of the present invention.
[0034] FIG. 6B presents a schematic of another technique for synchronizing timing signals between two graphics sources in accordance with an embodiment of the present invention. [0035] FIG. 7 illustrates a computer system comprising two graphics sources in accordance with an embodiment of the present invention.
[0036] FIG. 8 presents a flow chart illustrating the process of switching from the first graphics source to the second graphics source in accordance with an embodiment of the present invention. [0037] FIG. 9 presents a flow chart illustrating the process of switching from the second graphics source to the first graphics source in accordance with an embodiment of the present invention.
[0038] FIG. 10 illustrates a computer system which can switch between different graphics sources to drive an internal display and an external display in accordance with an embodiment of the present invention. DETAILED DESCRIPTION
[0039] The following description is presented to enable any person skilled in the art to make and use the invention, and is provided in the context of a particular application and its requirements. Various modifications to the disclosed embodiments will be readily apparent to those skilled in the art, and the general principles defined herein may be applied to other embodiments and applications without departing from the spirit and scope of the present invention. Thus, the present invention is not limited to the embodiments shown, but is to be accorded the widest scope consistent with the claims.
[0040] The data structures and code described in this detailed description are typically stored on a computer-readable storage medium, which may be any device or medium that can store code and/or data for use by a computer system. This includes, but is not limited to, volatile memory, non-volatile memory, magnetic and optical storage devices such as disk drives, magnetic tape, CDs (compact discs), DVDs (digital versatile discs or digital video discs), or other media capable of storing computer-readable media now known or later developed.
Computer System
[0041] FIG. 1 illustrates a computer system 100 in accordance with an embodiment of the present invention. As illustrated in FIG. 1, computer system 100 includes processor 102, which is coupled to a memory subsystem 106, peripheral bus 108, and to a graphics processor 110 through bridge 104. Bridge 104 can include any type of core logic unit, bridge chip, or chipsets that are commonly used to couple together components within computing system 100. In one embodiment of the present invention, bridge 104 is a north bridge chip. Processor 102 can include any type of processor, including, but not limited to, a microprocessor, a digital signal processor, a device controller, or a computational engine within an appliance.
[0042] It should be recognized that one or more components of the computer system 100 may be located remotely and accessed via a network.
[0043] Processor 102 communicates with memory subsystem 106 through bridge 104. Memory subsystem 106 can include a number of components, including one or more memory chips which can be accessed by processor 102 at high speed.
[0044] Processor 102 also communicates with storage device 112 through bridge 104 and peripheral bus 108. Storage device 112 can include any type of non- volatile storage device that can be coupled to a computer system. This includes, but is not limited to, magnetic, optical, and magneto -optical storage devices, as well as storage devices based on flash memory and/or battery-backed up memory.
[0045] Processor 102 additionally communicates with graphics processor 110 through bridge 104. Graphics processor 110 is a specialized graphics-rendering device that provides a signal source to display 114 and drives display 114. Display 114 can include any type of display device that can present information in a visual format (including images and text) to a user. This includes, but is not limited to, cathode ray tube (CRT) displays, light-emitting diode (LED) displays, liquid-crystal displays (LCD), organic LED (OLED) displays, surface- conduction electron-emitter displays (SED), or electronic paper.
[0046] Graphics processor 110 performs both 2D and 3D graphics-rendering operations, such as lighting, shading and transforming, with high performance. To achieve the high performance, graphics processor 110 may utilize dedicated video memory 116 to store frame buffers, textures, vertex arrays, and/or display lists. [0047] Bridge 104 also includes an embedded graphics processor 118. Embedded graphics processor 118 is typically built for modest performance graphics processing purposes, and hence consumes much less power than graphics processor 110. Note that in FIG. 1, embedded graphics processor 118 is not directly coupled to and does not drive display 114. [0048] Note that although the present invention is described in the context of computer system 100 illustrated in FIG. 1, the present invention can generally operate on any type of computing device that supports more than one graphics processor. Hence, the present invention is not limited to the computer system 100 illustrated in FIG. 1.
Selectively Switching Between Graphics Sources
[0049] FIG. 2 illustrates a computer system 200 which can switch between different graphics sources to drive the same display in accordance with an embodiment of the present invention. Note that in FIG. 2, the two graphics sources (graphics processor 210 and embedded graphics processor 218) can each independently drive display 214. However, the graphics source that actively drives display 214 at a given time is determined by selecting device 220 which can select between the two graphics sources. Specifically, computer system 200 can use selecting device 220 to select a graphics source based on its current operation conditions.
[0050] More specifically, output display signals 222 from graphics processor 210, and output display signals 224 from embedded graphics processor 218 are both coupled to inputs of a two-to-one multiplexer (MUX) 220. The output of MUX 220 is controlled by source select 226, which determines which one of the two graphics sources should drive display 214. In this embodiment, source select 226 is the output of bridge chip 204, which comprises specific logic for generating source select 226. Note that source select 226 can also be produced by a logic block other than bridge 204. [0051] The output display signals from the selected graphics source are then coupled to the inputs of display 214 to actively drive it. Although the selecting device is shown as a multiplexer, it can also include any other type of selecting device, such as a simple wired-OR logic.
[0052] In one embodiment of the present invention, graphics processor 210 and embedded graphics processor 218 can cooperate through a path 228, so that they can synchronize their output display signals. Because the output display signals can include both timing signals and data signals, synchronizing the output display signals can involve synchronizing both the respective timing signals and the respective data signals. Note that path 228 can be realized using hardware and/or software to facilitate synchronizing the two graphics sources.
[0053] In one embodiment of the present invention, graphics processor 210 is a high- performance graphics processor unit (GPU) which consumes a large amount of power, whereas embedded graphics processor 218 is a lower-performance GPU which consumes a smaller amount of power. In this embodiment, when the graphics processing load is light, the system switches the graphics source from graphics processor 210 to embedded graphics processor 218 to drive display 214, and subsequently powers down graphics processor 210 entirely, thereby saving power. On the other hand, when the graphics processing load becomes heavy again, the system switches the graphics source from embedded graphics processor 218 back to graphics processor 210. [0054] Note that although we have described switching between graphics processors in the context of a standalone graphics processor and an integrated graphics processor illustrated in FIG. 2, the present invention can generally work for a computer system comprising two or more graphics processors, wherein each of the graphics processors can independently drive the display when properly configured. Moreover, these multiple graphics processors can have different operating characteristics, including different power consumption levels. Furthermore, each of the multiple graphics processors can be either a standalone graphics processor or an integrated graphics processor within a chip. Hence, the present invention is not limited to the computer system 200 illustrated in FIG. 2.
[0055] Note that the above-described technique for switching between different graphics sources does not require shutting down the computer system or re-initializing the computer system. As a result, the switching process can take substantially less time than it would have if a re-initialization had been required. Consequently, the present invention allows rapid and frequent switching between the graphics processors.
[0056] FIG. 3 presents a flowchart illustrating the process of switching from a first graphics source to a second graphics source to drive a display in accordance with an embodiment of the present invention. [0057] During operation, the system first receives a request to switch the signal source for the display from a first graphics processor which is actively driving the display to a second graphics processor which is in a non-active state (step 302).
[0058] The switching request can be generated by a user who is aware of levels of graphics processing load. Alternatively, the switching request can be generated internally by the system.
[0059] In one embodiment of the present invention, system software continuously monitors the level of graphics processing load. More specifically, the system can determine the level of graphics processing load based on a condition in a graphics command queue associated with the graphics processor. For example, if the command queue is mostly empty, the system asserts a low graphics processing load. On the other hand, if the command queue is mostly full, the system asserts a high graphics processing load.
[0060] Next, based on the level of the graphics processing load, the system software selects one of the two graphics processors, and subsequently generates the request to switch if the non-active graphics processor is selected. [0061] For example, if the first graphics processor is a high-performance GPU that consumes high power, when the system software detects a considerable decrease in the level of graphics processing load, the system software can issue a request to switch to a second graphics processor which has lower performance, but which also consumes much less power. On the other hand, if the first graphics processor is a lower-performance and low-power GPU, the system can issue a request to switch to a high-performance and high-power GPU if the system software detects a considerable increase in the level of graphics processing load. [0062] Note that using system software to monitor the graphics processing load and to automatically issue the switching request is significantly faster and possibly more energy efficient than a human-initiated request. Furthermore, using system software can free the user from the monitoring job.
[0063] Next, in response to the switching request, the system configures the second graphics processor in preparation for driving the display (step 304). In one embodiment of the present invention, configuring the second graphics processor can involve one or more of the following steps: (1) powering up the processor if it is currently powered down; (2) initializing the graphics processor; and (3) generating output signals in preparation for powering up the display. [0064] The system then switches the signal source which drives the display from the first graphics processor to the second graphics processor, which causes the second graphics processor to drive the display (step 306). In one embodiment of the present invention, the switching involves using a selecting device such as MUX 220 in FIG. 2, which decouples the first graphics processor from, and couples the second graphics processor to, the display. During the switching operation, different timing controls can be used which will be described in more detail below. In general, obtaining a smoother switching transition requires more precise timing control and, hence, typically requires a more complex switch-controlling mechanism.
[0065] Once the second graphics processor takes over from the first graphics processor, the system may power down the first graphics processor to conserve power. Note that the above-described switching process does not require re-initializing the whole system to take effect.
[0066] Note that although we have described switching based on graphics processing load, the switch request can also be generated based on power conditions (e.g., whether the system is running on a battery or an external power source, or whether the battery is low), based on a need to reduce system heat dissipation, based on user preference, or based on any feature or capability that is different between the two graphics processors.
Timing during Switching
[0067] Switching between different graphics processors to drive the same display device requires a certain level of cooperation between the graphics processors to ensure a substantially seamless transition. We discuss different timing techniques during a switching below by distinguishing them based on whether synchronization is involved in the output display signals.
Switching without Synchronization
[0068] FIG. 4 presents a flowchart illustrating the process of switching from the first graphics source to the second graphics source without synchronizing the output display signals in accordance with an embodiment of the present invention.
[0069] During operation, the first graphics processor fades out the display (step 402). Note that this can be done in a number of ways, including, but not limited to, displaying black or other colors on the screen, turning off the backlight, or powering down the entire display.
[0070] Next, the system switches the signal source that drives the display from the first graphics processor to the second graphics processor, which has been configured to drive the display (step 404). More specifically, the switching involves decoupling the first graphics processor's output signals from the input of the display and coupling the second graphics processor's output signals to the input of the display.
[0071] Upon completing the switching, the second graphics processor then initializes the display if necessary (step 406). Next, the second graphics processor redraws the display screen and subsequently fades in the display screen (step 408).
[0072] In this embodiment, the two graphics sources are not required to synchronize with each other. Consequently, the second signal source does not need to be configured to redraw the display before the switch takes place. Furthermore, the first signal source can be turned off (e.g., through a fade-out operation) prior to performing the switch. [0073] Note that switching without synchronization is simple but can cause the user to notice the switch. However, if the switching can be completed within a fraction of a second, the user may not even notice the switch. Alternatively, if the switching is done more slowly, the visual disruption can be reduced by using an appropriate visual effect, such as a fade-out/fade-in effect when the display resolution is changed. Generally, any undesirable visual effects of switching the display from one set of display signals to a different, unsynchronized set of display signals can be hidden by fading out the display during the transition.
Switching with Synchronization
[0074] Synchronizing the output signals prior to switching facilitates a smoother, less noticeable, or even seamless switching process which does not disrupt graphical output on the display. However, the synchronization requires the second graphics source to start generating output signals in preparation for driving the display prior to the switching, so that the output display signals from both graphics sources can be synchronized.
[0075] In one embodiment of the present invention, synchronizing the output signals from the two graphics sources can be achieved by matching up timing information embedded in the output signals. Such timing information can include, but is not limited to, horizontal synchronization (H-sync) pulses, vertical synchronization (V-sync) pulses, horizontal blanking signals, and vertical blanking signals. In particular, V-sync pulses control image refresh on the display by indicating when to start scanning a new frame of data. Typically, V-sync pulses occur within a short time interval between two consecutive image frames, referred to as a vertical blanking interval (VBI), during which the display on the screen is held in a constant state for various housekeeping purposes. FIG. 5A illustrates a single VBI 502 and a corresponding V-sync pulse 504 produced by a graphics source in accordance with an embodiment of the present invention. Note that the V-sync pulse 504 falls within VBI 502. [0076] In this embodiment, the computer system keeps track of when V-sync pulses occur in the first graphics source, and adjusts the timing sequence of the second graphics source until its V-sync pulses are aligned with those of the first graphics source. In one embodiment, aligning the V-sync pulses from the two graphics sources involves using either software or hardware to cause the timing sequence of the second graphics source to coincide with the timing sequence of the first graphics source. During this alignment period, the first graphics source continues to drive the display. When the V-sync pulses are sufficiently aligned between the two sources, switching can then be performed during a next VBI. [0077] FIG. 5B illustrates two overlapping VBIs - VBI 506 and VBI 508 generated by two graphics sources in accordance with an embodiment of the present invention. Note that the switching occurs within overlapping period 510 of the two VBIs. Also note that the switching process may appear invisible to a user if it can be completed within overlapping period 510. Furthermore, the substantial synchronization between the two graphics sources facilitates the second graphics source to start driving the display immediately so that it appears to the user as if the display did not change.
[0078] However, it is possible for the switching process to take longer than a single VBI to complete, or to take up a few frame times to resolve. In this case, the system can hide the switching effect by blanking or fading out the screen completely.
[0079] In another embodiment of the present invention, instead of causing the second graphics source to align with the first, the system can allow the V-sync signals of the second graphics source to drift against those of the first graphics source. Such a drift in the timing signals can occur as a result of one or more timing differences. For example, the drift can be caused by a slight difference in the clock frequencies of two graphics processors.
Alternatively, the drift can be caused by programming the two graphics processors to operate at slightly different display frame rates.
[0080] In this embodiment of synchronization, the system can monitor the two V-sync signals from the two sources and detect when they overlap with each other, wherein the monitoring can be performed by either software or hardware. When this occurs, the system can switch from one graphics source to the other before the two signals drift away from each other.
Switching with Hardware-Based Synchronization [0081] In one embodiment of the present invention, one of the graphics sources can be synchronized to the other graphics source using additional hardware, so that the display output timing of the two graphics sources can be aligned precisely. A switch can then be made during a next VBI so that the switch is undetectable by the user. In this embodiment, a smoother switch is made possible by incorporating the additional hardware to adjust the phase and frequency of the second graphics source's display timing generator to align the display output timing to that of the first graphics source. [0082] FIG. 6A presents a schematic of a technique for synchronizing timing signals between two graphics sources in accordance with an embodiment of the present invention. As illustrated in FIG. 6A, the two graphics sources A and B comprise timing generator 602 and timing generator 604, respectively. Timing generator 602 produces V-sync pulses in output V-SYNC 606 and vertical blanking intervals in output VBI 608 for graphics source A, while timing generator 604 produces V-sync pulses in output V-SYNC 610 and vertical blanking intervals in output VBI 612 for graphics source B.
[0083] Graphics sources A and B also use phase-locked loop (PLL) 614, and PLL 616 to provide frequency references for timing generators 602 and 604, respectively. More specifically, PLL 614 and PLL 616 receive reference frequency inputs /4REF 618 and ,/*REF 620 from the left, and generate reference frequency outputs /OUT 622 and/*ouτ 624 as inputs to timing generators 602 and 604. A detailed explanation of the functions of a PLL and associated components can be found in a number of references that describe PLLs (see Floyd M. Gardner, "Charge-Pump Phase-Lock Loops," IEEE Transactions on Communications, Vol. 28, No. 11, November 1980).
[0084] For frequency synthesizing purposes, PLL 614 comprises a divider MA 626 and a divider JVA 628. Similarly, PLL 616 comprises a divider MB 630 and a divider NB 632. The output of PLL 614 and PLL 616, when phase locked, produce output frequency /OUT = /REF X (MA/ NA), and/ouτ=/REF x (MBINB), respectively. [0085] In one embodiment of the present invention, frequency scalar values MA, MB,
NA, NB are programmable and are stored in programmable registers. Specifically, scalars MA, MB, NA, NB are coupled to and are programmable through a controller 634, which can be implemented either in software or in hardware as microcontroller or a finite state machine. Controller 634 receives a request to switch input - REQSW 636, and additionally receives clock signals V-SYΝCA 606 and VBIA 608 from graphics source A, and V-SYNCB 610 and VBIB 612 from graphics source B. Controller 634 then measures the phase difference between either the V-sync signals or the VBI signals of the two graphics sources. Using the measured phase difference as a feedback signal, controller 634 can then adjust the phase of V-sync and VBI from one graphics source relative to the other graphics source by synchronously changing the M and N values in the associated PLL.
[0086] Using the feedback loop, controller 634 continues measuring and adjusting the phase difference. When controller 634 determines that the phase difference is within a predetermined bound, it then generates a switch enable - OK2S WITCH 638. In one embodiment of the present invention, OK2S WITCH 638 is coupled to source select 226 in FIG. 2, which enables MUX 220 to flip the source.
[0087] Note that the above description allows clocks in both the active graphics source and the non-active graphics source to be changed. In particular, if the PLL scalar values being changed are associated with the source actively driving the display, it may be desirable to adjust the associated frequency slowly and smoothly. Also note that we may not need to obtain a perfect clock alignment to allow a switch. In one embodiment, controller 634 can be configured to align VBIs to obtain just enough overlap so that the switching operation does not cause visible artifacts. When the controller detects there is sufficient overlap, it asserts OK2SWITCH signal to complete the synchronization.
[0088] FIG. 6B presents a schematic of another technique for synchronizing timing signals between two graphics sources in accordance with an embodiment of the present invention. [0089] In this embodiment, a single PLL 640 is used to synchronize timing signals between the graphics sources A and B. Note that there's no direct control of the PLL by a controller as in FIG. 6A. Instead, PLL 640 forms a closed loop with one of the timing generators.
[0090] As illustrated in FIG. 6B, timing generators 602 and 604 receive reference frequency inputs _/REF A 642
Figure imgf000016_0001
B 644, respectively. The four outputs from timing generators 602 and 604: V-SYNCA 606, VBIA 608, V-SYNCB 610, and VBIB 612 are coupled to a four-to-two multiplexer MUX 646, which can select either V-SYNCA 606 and V-SYNCB 610, or VBIA 608 and VBIB 612 to its outputs. The outputs of MUX 646 are then coupled to the inputs of the phase detector of PLL 640. Note that either the V-sync signals or the VBI signals can be used for alignment in this embodiment.
[0091] Next, the VCO output from PLL 640 is coupled to and serves as the input reference frequency for one of the timing generators, and thereby completes the closed-loop with that timing generator. More specifically, the output from PLL 640 is first coupled to the inputs of two multiplexers MUX 648 and MUX 650, which also receive external clock signals EXTCLK A 652 and EXTCLK B 654 as inputs, respectively. The outputs of MUX 648 and MUX 650 are controlled by controller 656, which selects either the external clock source or the PLL output as the reference frequency input for a respective timing generator. Note that controller 656 receives an input from the phase detector of PLL 640 and detects if PLL 640 has locked based on the input.
[0092] During operation, assume that graphics source A is actively driving the display. Meanwhile, the VCO output of PLL 640 is selected as the reference frequency /REFJ 644 for timing generator 604 of the graphics source B. Hence, PLL 640 and timing generator 604 form a closed loop, which facilitates the selected timing signals (either V-sync or VBI) from the two timing generators to sync up. When controller 656 detects that PLL 640 has become phase-locked, it then switches the graphics source that drives the display from graphics source A to graphics source B during the next blanking interval. More specifically, in the following blanking interval, controller 656 switches
Figure imgf000017_0001
B input from PLL 640 to the external clock source EXTCLK B 654. After the switching, PLL 640 can then be used for locking graphics source A to graphics source B, which is now actively driving the display.
Choosing Graphics Processors without Switching [0093] In one embodiment of the present invention, instead of switching between two graphics processors to drive the same display device, the lower-performance, lower-power graphics processor always drives the display. In this embodiment, when additional graphics performance is required, the higher-performance processor takes over the graphics processing load, rendering its display image into the same frame buffer used by the lower-performance processor. When the system is operating in this manner, the lower-performance processor acts purely as a display output device, i.e., transferring image data from the frame buffer to the display, while the higher-performance device performs all the graphics processing. When less performance is required, the lower-performance device again takes over the graphics processing tasks, and the higher-performance device can be powered down accordingly.
Computer System
[0094] FIG. 7 illustrates a computer system 700 which includes two graphics processors in accordance with an embodiment of the present invention. More specifically, computer system 700 includes a processor 702, which is coupled to a bridge chip 704. Bridge chip 704 is itself coupled to main memory 706, display 714 and peripheral bus 708. Peripheral bus 708 can be used to access storage device 710. [0095] Note that lower-performance, low-power graphics processor 712 is directly coupled to display 714 and always drives it. On the other hand, high-performance, high-power graphics processor 716 is coupled to graphics processor 712, and is typically powered down when it is not in use. [0096] In one embodiment of the present invention, instead of rendering graphics into its own frame buffer, graphics processor 716 renders images directly into frame buffer 707 for graphics processor 712, wherein frame buffer 707 is located in main memory 706. In this embodiment, graphics processor 712 is responsible for displaying the graphics on display 714 by continuously refreshing display 714. Note that because in this embodiment the display is always driven by the same graphics processor and is refreshing from the same frame buffer, no switching hardware is required and there is no hardware switching transition to hide from the user.
[0097] In an alternative embodiment, when additional graphics processing power or additional security is needed, the system powers up graphics processor 716 to provide the additional graphics-rendering capacity. Graphics processor 716 renders images to its local frame buffer 722 that resides in a special-purpose graphics memory 720, which is coupled to (or integrated into) graphics processor 716. Note that special-purpose graphics memory 720 is more secure than main memory 706 because main memory 706 is typically shared among many different processes and applications. In this embodiment, graphics processor 712 must change the frame buffer (from which it is refreshing display 714) from its own frame buffer 707 to the frame buffer 722 of graphics processor 716. Because display 714 is always driven by the same graphics processor, no switching hardware is required. However, graphics processor 712 must be programmed to make the switch between frame buffers at the correct time (during the vertical blanking interval, for instance) to avoid a transition that is visible to the user.
Switching Smoothly Between Graphics Sources
[0098] FIG. 8 presents a flow chart illustrating the process of switching from the first graphics source to the second graphics source in accordance with an embodiment of the present invention. At the start of this process, the lower-power internal graphics processor 712 (also referred to as a "GPU") is rendering into frame buffer 707 in main memory 706, and display 714 is being refreshed from frame buffer 707 (step 802). [0099] Next, the system determines whether more performance and/or more security is required (step 804). If not, the system returns to step 802.
[00100] Otherwise, if the system determines that more performance and/or more security is required, the system powers up external high-power graphics processor 716 (step 806). Then, external high-power graphics processor 716 renders an identical image into frame buffer 722 in graphics memory 720 (step 808).
[00101] Next, the system waits for a vertical blanking interval (VBI) (step 810). During this vertical blanking interval, internal low-power graphics processor 712 switches its refresh pointer from frame buffer 707 in main memory 706 to frame buffer 722 in graphics memory 720 (step 812). Next, internal low-power graphics processor 712 powers down except for its refresh circuits (step 814). At this point, the switching process is complete.
[00102] The switching can also take place in the other direction. More specifically, FIG. 9 presents a flow chart illustrating the process of switching from the second graphics source to the first graphics source in accordance with an embodiment of the present invention. At the start of this process, high-power internal graphics processor 716 is rendering into frame buffer 722 in graphics memory 720, and display 714 is being refreshed from frame buffer 722 (step 902).
[00103] Next, the system determines whether less performance and/or less security is required (step 904). If not, the system returns to step 902. [00104] Otherwise, if the system determines that less performance and/or less security is required, the system powers up internal low-power graphics processor 712 (step 906). Then, low-power graphics processor 712 renders an identical image into frame buffer 707 in main memory 706 (step 908). Next, the system waits for a vertical blanking interval (step 910). During this vertical blanking interval, the internal low-power graphics processor 712 switches its refresh pointer from frame buffer 722 in graphics memory 720 to frame buffer 707 in main memory 706 (step 912). Next, the high-power graphics processor 716 powers down (step 914). At this point, the switching process is complete.
[00105] Note that it is also possible (and probably much easier) for software to simply fade out the display, then make the frame buffer switch and then fade the display back in. This is simpler because software does not have to make two graphics sources draw the same data into two frame buffers at the same time during the transition. Instead, the system can shut down one source, then start up the other source, and then switch frame buffers. Another Embodiment
[00106] FIG. 10 illustrates a computer system 1000 which can switch between different graphics sources to drive both an internal display and an external display in accordance with an embodiment of the present invention. Note that in FIG. 10, two graphics processors (graphics processor 1010 and embedded graphics processor 1018) can each independently drive internal display 1014 and external display 1015. The graphics source which actively drives display 1014 is determined by multiplexer 1020, and the graphics source which drives display 1015 is determined by multiplexer 1021. Multiplexers 1020 and 1021 can select between the graphics processor 1010 and embedded graphics processor 1018.
[00107] Note that output display signals 1022 from graphics processor 1010, and output display signals 1024 from embedded graphics processor 1018 are coupled to inputs of a multiplexer (MUX) 1020. Similarly, output display signals 1023 from graphics processor 1010, and output display signals 1025 from embedded graphics processor 1018 are coupled to inputs of MUX 1021. Note that each graphics processor has separate output display signals for driving the two displays. (This is because the two displays can use different display signaling protocols, and are in general different in pixel resolution, color depth, color balance, etc.).
[00108] The output of MUX 1020 is controlled by source select 1026, which determines which one of the two graphics sources should drive internal display 1014.
Similarly, the output of MUX 1021 is controlled by source select 1027, which determines which one of the two graphics sources will drive external display 1015. In this embodiment, source selects 1026 and 1027 are outputs of bridge chip 1004, which contains circuitry for generating source selects 1026 and 1027. Note that source selects 1026 and 1027 can also be produced by a logic block which is located outside of bridge 1004.
[00109] The output display signals from the selected graphics source are coupled to the inputs of display 1014 and display 1015. Although the selecting device is shown as a multiplexer, it can also include any other type of selecting device, such as simple wired-OR logic. [00110] In one embodiment of the present invention, graphics processor 1010 is a high-performance graphics processor unit (GPU), which consumes a large amount of power, whereas embedded graphics processor 1018 is a lower-performance GPU, which consumes a smaller amount of power. In this embodiment, when the graphics processing load is light, the system switches the graphics source from graphics processor 1010 to embedded graphics processor 1018 to drive displays 1014 and 1015, and subsequently powers down graphics processor 1010 entirely, thereby saving power. On the other hand, when the graphics processing load becomes heavy again, the system switches graphics source from embedded graphics processor 1018 back to graphics processor 1010.
[00111] The foregoing descriptions of embodiments of the present invention have been presented only for purposes of illustration and description. They are not intended to be exhaustive or to limit the present invention to the forms disclosed. Accordingly, many modifications and variations will be apparent to practitioners skilled in the art. Additionally, the above disclosure is not intended to limit the present invention. The scope of the present invention is defined by the appended claims.

Claims

What Is Claimed Is:
1. A method for switching between frame buffers which are used to refresh a display, comprising: refreshing the display from a first frame buffer which is located in a first memory; receiving a request to switch frame buffers for the display; and in response to the request, reconfiguring data transfers to the display so that the display is refreshed from a second frame buffer which is located in a second memory.
2. The method of claim 1 , wherein the first memory is a main memory, which is accessible by numerous applications and is hence insecure; and wherein the second memory is a secure frame buffer which is located outside of main memory.
3. The method of claim 2, wherein switching the display so that the display is refreshed from the second frame buffer additionally involves: transferring data which is used to refresh the display so that the data completely bypasses the insecure main memory; and encrypting the data while the data is stored in the second frame buffer and while the data is in transit to and from the second frame buffer.
4. The method of claim 1 , wherein prior to receiving the request to switch frame buffers, the method further comprises: determining a security requirement for data associated with the display; and generating the request to switch frame buffers based on the determined security requirement.
5. The method of claim 1 , wherein prior to receiving the request to switch frame buffers, the method further comprises: monitoring a level of graphics-processing load for the display; and generating the request to switch based on the level of graphics-processing load.
6. The method of claim 1 , wherein prior to receiving the request to switch frame buffers, the method further comprises: measuring a temperature in a computer system which contains the display; and generating the request to switch based on the measured temperature.
7. The method of claim 1 , wherein switching the display so that the display is refreshed from the second frame buffer additionally involves switching a graphics processing unit (GPU) which performs rendering operations for the display; and wherein the GPU is switched between a low-power GPU which renders to the first frame buffer and a high-power GPU which renders to the second frame buffer.
8. The method of claim 7, wherein prior to switching from the low-power GPU to the high-power GPU, the method further comprises substantially synchronizing the low- power GPU's output display signals and the high-power GPU's output display signals, thereby facilitating a seamless transition which does not disrupt graphical output on the display.
9. The method of claim 8, wherein substantially synchronizing the output display signals involves using one or more phase-locked loops (PLL).
10. The method of claim 1, wherein the switching takes place during a blanking interval associated with a blanking signal for the display.
11. An apparatus that selectively switches between frame buffers which are used to refresh a display, comprising: a first frame buffer located in a first memory; a second frame buffer located in a second memory; one or more refresh circuits configured to selectively refresh the display from either the first frame buffer or the second frame buffer; and a switching mechanism configured to switch the refreshing of the display between the first frame buffer and the second frame buffer upon receiving a request to switch.
12. The apparatus of claim 11 , wherein the first memory is a main memory, which is accessible by numerous applications and is hence insecure; and wherein the second memory is a secure frame buffer which is located outside of main memory.
13. The apparatus of claim 12, wherein the switching circuit is configured to channel data which is used to refresh the display so that the data completely bypasses the insecure main memory; and wherein the apparatus additionally comprises encryption circuitry which is configured to encrypt the data while the data is stored in the second frame buffer and while the data is in transit to and from the second frame buffer.
14. The apparatus of claim 11 , wherein the switching mechanism is configured to: determine a security requirement for data associated with the display; and generate the request to switch frame buffers based on the determined security requirement.
15. The apparatus of claim 11, wherein the switching mechanism is configured to: monitor a level of graphics-processing load for the display; and generate the request to switch based on the level of graphics-processing load.
16. The apparatus of claim 11, wherein the switching mechanism is configured to: measure a temperature in a computer system which contains the display; and generate the request to switch based on the measured temperature.
17. The apparatus of claim 11 , wherein while switching between the first frame buffer and the second frame buffer, the apparatus is configured to switch a graphics processing unit (GPU) which performs rendering operations for the display; and wherein the GPU is switched from a low-power GPU which renders to the first frame buffer to a high-power GPU which renders to the second frame buffer.
18. The apparatus of claim 17, wherein prior to switching from the low-power GPU to the high-power GPU, the switching mechanism is configured to substantially synchronize the low-power GPU' s output display signals and the high-power GPU' s output display signals, thereby facilitating a seamless transition which does not disrupt graphical output.
19. The apparatus of claim 18, wherein substantially synchronizing the output display signals involves using one or more phase-locked loops (PLL).
20. The apparatus of claim 11, wherein the switching takes place during a blanking interval associated with a blanking signal for the display.
21. A computer system that selectively switches between frame buffers which are used to refresh a display, comprising: a processor; a main memory coupled to the processor; a first frame buffer located in the main memory; a second frame buffer located in a second memory; one or more refresh circuits configured to selectively refresh the display from either the first frame buffer or the second frame buffer; and a switching mechanism configured to switch the refreshing of the display between the first frame buffer and the second frame buffer upon receiving a request to switch.
22. A computer system that switches between a first graphics processor and a second graphics processor to drive a first display and/or a second display, comprising: a processor; a memory; the first graphics processor; the second graphics processor; the first display; the second display; a first switch which selectively couples either the first graphics processor or the second graphics processor to the first display; and a second switch which selectively couples either the first graphics processor or the second graphics processor to the second display.
23. The computer system of claim 22, further comprising a synchronization mechanism configured to substantially synchronize the first graphics processor's output display signals and the second graphics processor's output display signals, thereby facilitating a seamless switching process which does not disrupt graphical output.
24. The computer system of claim 22, wherein the first graphics processor is a high-power graphics processing unit (GPU); and wherein the second graphics processor is a low-power GPU.
25. The computer system of claim 22, wherein the first display is an internal display integrated into the computer system; and wherein the second display is an external display which is coupled to the computer system.
PCT/US2008/072911 2007-09-20 2008-08-12 Switching between graphics sources to facilitate power management and/or security WO2009038902A1 (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
EP08797713A EP2188708A1 (en) 2007-09-20 2008-08-12 Switching between graphics sources to facilitate power management and/or security
CN2008801079441A CN101802774B (en) 2007-09-20 2008-08-12 Switching between graphics sources to facilitate power management and/or security
JP2010525865A JP5300030B2 (en) 2007-09-20 2008-08-12 Apparatus and method for selectively switching between frame buffers used to refresh a display

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/858,358 2007-09-20
US11/858,358 US20090079746A1 (en) 2007-09-20 2007-09-20 Switching between graphics sources to facilitate power management and/or security

Publications (1)

Publication Number Publication Date
WO2009038902A1 true WO2009038902A1 (en) 2009-03-26

Family

ID=39869115

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2008/072911 WO2009038902A1 (en) 2007-09-20 2008-08-12 Switching between graphics sources to facilitate power management and/or security

Country Status (6)

Country Link
US (1) US20090079746A1 (en)
EP (1) EP2188708A1 (en)
JP (1) JP5300030B2 (en)
KR (1) KR101207117B1 (en)
CN (1) CN101802774B (en)
WO (1) WO2009038902A1 (en)

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011031732A1 (en) * 2009-09-09 2011-03-17 Advanced Micro Devices, Inc. Managing resources to facilitate altering the number of active processors
WO2011031734A1 (en) * 2009-09-09 2011-03-17 Advanced Micro Devices, Inc. Method and apparatus for disabling a device
WO2011084829A1 (en) 2010-01-06 2011-07-14 Apple Inc. Facilitating efficient switching between graphics-processing units
WO2011084831A1 (en) * 2010-01-06 2011-07-14 Apple Inc. Policy-based switching between graphics-processing units
WO2011118199A1 (en) * 2010-03-24 2011-09-29 パナソニック株式会社 Display switching device
WO2011156666A3 (en) * 2010-06-10 2012-04-26 Julian Michael Urbach Allocation of gpu resources across multiple clients
US20120274641A1 (en) * 2011-04-27 2012-11-01 Nvidia Corporation Techniques for degrading rendering quality to increase operating time of a computing platform
EP2533236A1 (en) * 2011-06-09 2012-12-12 Sony Corporation Information processing apparatus with multiple drawing processing blocks and information processing method
TWI405077B (en) * 2009-08-14 2013-08-11 Via Tech Inc Power-saving computer system, graphics processing module, and the power saving method thereof
US8648868B2 (en) 2010-01-06 2014-02-11 Apple Inc. Color correction to facilitate switching between graphics-processing units
US8687007B2 (en) 2008-10-13 2014-04-01 Apple Inc. Seamless display migration
US8943347B2 (en) 2009-09-09 2015-01-27 Advanced Micro Devices, Inc. Controlling the power state of an idle processing device
EP2860623A4 (en) * 2013-11-11 2015-07-01 Zte Corp Terminal and background projection control method thereof
CN106251825A (en) * 2009-12-30 2016-12-21 英特尔公司 Techniques for aligning frame data
US9998749B2 (en) 2010-10-19 2018-06-12 Otoy, Inc. Composite video streaming using stateless compression
EP4053783A4 (en) * 2019-11-28 2022-12-28 Huawei Technologies Co., Ltd. Energy-efficient display processing method, and apparatus

Families Citing this family (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8422434B2 (en) 2003-02-18 2013-04-16 Qualcomm Incorporated Peak-to-average power ratio management for multi-carrier modulation in wireless communication systems
US8233000B1 (en) * 2007-11-08 2012-07-31 Nvidia Corporation System and method for switching between graphical processing units
US8259119B1 (en) * 2007-11-08 2012-09-04 Nvidia Corporation System and method for switching between graphical processing units
US7861013B2 (en) * 2007-12-13 2010-12-28 Ati Technologies Ulc Display system with frame reuse using divided multi-connector element differential bus connector
US8041848B2 (en) * 2008-08-04 2011-10-18 Apple Inc. Media processing method and device
US8610830B2 (en) * 2008-09-11 2013-12-17 Apple Inc. Video rotation method and device
US8259139B2 (en) 2008-10-02 2012-09-04 Apple Inc. Use of on-chip frame buffer to improve LCD response time by overdriving
US9865233B2 (en) * 2008-12-30 2018-01-09 Intel Corporation Hybrid graphics display power management
US8508542B2 (en) * 2009-03-06 2013-08-13 Apple Inc. Systems and methods for operating a display
US9336028B2 (en) * 2009-06-25 2016-05-10 Apple Inc. Virtual graphics device driver
US9384713B1 (en) * 2009-07-27 2016-07-05 Nvidia Corporation System and method for masking transistions between graphics processing units in a hybrid graphics system
US20110090234A1 (en) * 2009-10-19 2011-04-21 Barnes & Noble, Inc. Apparatus and method for control of multiple displays from a single virtual frame buffer
US8643658B2 (en) * 2009-12-30 2014-02-04 Intel Corporation Techniques for aligning frame data
US8903366B2 (en) * 2010-03-01 2014-12-02 Samsung Electronics Co., Ltd. Dynamic switching between software and hardware graphics rendering for power consumption
US8736618B2 (en) * 2010-04-29 2014-05-27 Apple Inc. Systems and methods for hot plug GPU power control
US8730251B2 (en) 2010-06-07 2014-05-20 Apple Inc. Switching video streams for a display without a visible interruption
JP2012078931A (en) * 2010-09-30 2012-04-19 Sony Corp Display controller, information processing apparatus, and display method
JP5699755B2 (en) * 2011-03-31 2015-04-15 富士通株式会社 Allocation method, allocation device, and allocation program
TWI509594B (en) * 2011-04-18 2015-11-21 Au Optronics Corp Method for synchronizing a display horizontal synchronization signal with an external horizontal synchronization signal
US10817043B2 (en) * 2011-07-26 2020-10-27 Nvidia Corporation System and method for entering and exiting sleep mode in a graphics subsystem
DE112011105950T5 (en) * 2011-12-16 2014-09-25 Intel Corporation Method, apparatus and system for advanced graphics processing via an external I / O port for display data
CN103795947B (en) * 2012-10-31 2017-02-08 晨星软件研发(深圳)有限公司 Method for configuring memory space in video signal processing apparatus
US9007384B2 (en) * 2012-12-18 2015-04-14 Apple Inc. Display panel self-refresh entry and exit
US8931108B2 (en) * 2013-02-18 2015-01-06 Qualcomm Incorporated Hardware enforced content protection for graphics processing units
US9201487B2 (en) * 2013-03-05 2015-12-01 Intel Corporation Reducing power consumption during graphics rendering
KR102057502B1 (en) * 2013-03-07 2020-01-22 삼성전자주식회사 Display Drive IC and Image Display System
GB201410314D0 (en) * 2014-06-10 2014-07-23 Advanced Risc Mach Ltd Display controller
KR102272132B1 (en) * 2014-12-26 2021-07-01 삼성전자주식회사 Semiconductor device and method for operating the same
TWI546790B (en) * 2015-05-27 2016-08-21 友達光電股份有限公司 Source driver device and method for receiving display signal
US9767320B2 (en) 2015-08-07 2017-09-19 Qualcomm Incorporated Hardware enforced content protection for graphics processing units
US10102391B2 (en) 2015-08-07 2018-10-16 Qualcomm Incorporated Hardware enforced content protection for graphics processing units
KR102502569B1 (en) 2015-12-02 2023-02-23 삼성전자주식회사 Method and apparuts for system resource managemnet
KR102469483B1 (en) * 2016-03-18 2022-11-22 엘지전자 주식회사 Output device for controlling operation of double side display
CN107346166B (en) * 2016-05-05 2019-12-03 展讯通信(上海)有限公司 A kind of method and memory manager accessing memory
US10671159B2 (en) * 2016-09-22 2020-06-02 Apple Inc. Postponing the state change of an information affecting the graphical user interface until during the condition of inattentiveness
CN107515736B (en) * 2017-07-01 2021-01-15 广州深域信息科技有限公司 Method for accelerating computation speed of deep convolutional network on embedded equipment
US11107181B2 (en) * 2018-11-15 2021-08-31 Arizona Board Of Regents On Behalf Of Arizona State University Fidelity-driven runtime thermal management for near-sensor architectures
CN113467729B (en) * 2020-03-31 2023-08-15 宏碁股份有限公司 Electronic device and multi-screen display method
KR102166644B1 (en) * 2020-06-08 2020-10-16 삼성전자주식회사 Electronic system including a plurality of heterogeneous cores and operating method therof
US11763414B2 (en) * 2020-09-23 2023-09-19 Ati Technologies Ulc Glitchless GPU switching at a multiplexer
CN117058291B (en) * 2023-07-12 2024-07-26 荣耀终端有限公司 Video memory switching method and electronic equipment

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6760031B1 (en) * 1999-12-31 2004-07-06 Intel Corporation Upgrading an integrated graphics subsystem
US20050012749A1 (en) * 2003-07-15 2005-01-20 Nelson Gonzalez Multiple parallel processor computer graphics system
US20050225547A1 (en) * 2004-04-09 2005-10-13 Samsung Electronics Co., Ltd. Display system and control method thereof
US20050244131A1 (en) 2004-04-28 2005-11-03 Kabushiki Kaisha Toshiba Electronic apparatus and display control method
US20060007203A1 (en) * 2004-07-09 2006-01-12 Yu Chen Display processing switching construct utilized in information device
WO2007140404A2 (en) 2006-05-30 2007-12-06 Ati Technologies Ulc Device having multiple graphics subsystems and reduced power consumption mode, software and methods
US20090007203A1 (en) 2005-12-21 2009-01-01 Jonathan Peter Vincent Drazin Enhanced Interactive Television Return Path

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4862156A (en) * 1984-05-21 1989-08-29 Atari Corporation Video computer system including multiple graphics controllers and associated method
US6624816B1 (en) * 1999-09-10 2003-09-23 Intel Corporation Method and apparatus for scalable image processing
US7009626B2 (en) * 2000-04-14 2006-03-07 Picsel Technologies Limited Systems and methods for generating visual representations of graphical data and digital document processing
US6535208B1 (en) * 2000-09-05 2003-03-18 Ati International Srl Method and apparatus for locking a plurality of display synchronization signals
US7203310B2 (en) * 2001-12-04 2007-04-10 Microsoft Corporation Methods and systems for cryptographically protecting secure content
JP2004205577A (en) * 2002-12-24 2004-07-22 Toshiba Corp Method and unit for display control
US7782325B2 (en) * 2003-10-22 2010-08-24 Alienware Labs Corporation Motherboard for supporting multiple graphics cards
US7634615B2 (en) * 2004-06-10 2009-12-15 Marvell World Trade Ltd. Adaptive storage system

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6760031B1 (en) * 1999-12-31 2004-07-06 Intel Corporation Upgrading an integrated graphics subsystem
US20050012749A1 (en) * 2003-07-15 2005-01-20 Nelson Gonzalez Multiple parallel processor computer graphics system
US20050225547A1 (en) * 2004-04-09 2005-10-13 Samsung Electronics Co., Ltd. Display system and control method thereof
US20050244131A1 (en) 2004-04-28 2005-11-03 Kabushiki Kaisha Toshiba Electronic apparatus and display control method
US20060007203A1 (en) * 2004-07-09 2006-01-12 Yu Chen Display processing switching construct utilized in information device
US20090007203A1 (en) 2005-12-21 2009-01-01 Jonathan Peter Vincent Drazin Enhanced Interactive Television Return Path
WO2007140404A2 (en) 2006-05-30 2007-12-06 Ati Technologies Ulc Device having multiple graphics subsystems and reduced power consumption mode, software and methods

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
DAVID ALLEN: "Electronic Flight Bag (EFB)", 10 October 2006, BOEING AEROMAGAZINE, XP002496643 *
See also references of EP2188708A1

Cited By (48)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8687007B2 (en) 2008-10-13 2014-04-01 Apple Inc. Seamless display migration
TWI405077B (en) * 2009-08-14 2013-08-11 Via Tech Inc Power-saving computer system, graphics processing module, and the power saving method thereof
KR101627303B1 (en) * 2009-09-09 2016-06-03 어드밴스드 마이크로 디바이시즈, 인코포레이티드 Method and apparatus for disabling a device
JP2013504811A (en) * 2009-09-09 2013-02-07 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド Method and apparatus for disabling a device
CN102597908B (en) * 2009-09-09 2015-11-25 先进微装置公司 The method and apparatus of forbidden device
US8943347B2 (en) 2009-09-09 2015-01-27 Advanced Micro Devices, Inc. Controlling the power state of an idle processing device
CN102597908A (en) * 2009-09-09 2012-07-18 先进微装置公司 Method and apparatus for disabling a device
CN102597909A (en) * 2009-09-09 2012-07-18 先进微装置公司 Managing resources to facilitate altering the number of active processors
KR20120083365A (en) * 2009-09-09 2012-07-25 에이티아이 테크놀로지스 유엘씨 Method and apparatus for disabling a device
WO2011031732A1 (en) * 2009-09-09 2011-03-17 Advanced Micro Devices, Inc. Managing resources to facilitate altering the number of active processors
WO2011031734A1 (en) * 2009-09-09 2011-03-17 Advanced Micro Devices, Inc. Method and apparatus for disabling a device
JP2013504810A (en) * 2009-09-09 2013-02-07 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド Resource management that makes it easy to change the number of active processors
US8305380B2 (en) 2009-09-09 2012-11-06 Advanced Micro Devices, Inc. Managing resources to facilitate altering the number of active processors
US8316255B2 (en) 2009-09-09 2012-11-20 Ati Technologies Ulc Method and apparatus for responding to signals from a disabling device while in a disabled state
CN106251825A (en) * 2009-12-30 2016-12-21 英特尔公司 Techniques for aligning frame data
US8648868B2 (en) 2010-01-06 2014-02-11 Apple Inc. Color correction to facilitate switching between graphics-processing units
WO2011084831A1 (en) * 2010-01-06 2011-07-14 Apple Inc. Policy-based switching between graphics-processing units
KR101711714B1 (en) 2010-01-06 2017-03-02 애플 인크. Facilitating efficient switching between graphics-processing units
WO2011084829A1 (en) 2010-01-06 2011-07-14 Apple Inc. Facilitating efficient switching between graphics-processing units
US9396699B2 (en) 2010-01-06 2016-07-19 Apple Inc. Color correction to facilitate switching between graphics-processing units
JP2013516696A (en) * 2010-01-06 2013-05-13 アップル インコーポレイテッド Method and system for facilitating efficient switching between graphic processing units
JP2013516697A (en) * 2010-01-06 2013-05-13 アップル インコーポレイテッド Policy-based switching between graphics processing units
CN102763082A (en) * 2010-01-06 2012-10-31 苹果公司 Facilitating efficient switching between graphics-processing units
US8564599B2 (en) 2010-01-06 2013-10-22 Apple Inc. Policy-based switching between graphics-processing units
CN102763081A (en) * 2010-01-06 2012-10-31 苹果公司 Policy-based switching between graphics-processing units
KR20120112721A (en) * 2010-01-06 2012-10-11 애플 인크. Facilitating efficient switching between graphics-processing units
KR101634153B1 (en) 2010-01-06 2016-06-28 애플 인크. Facilitating efficient switching between graphics-processing units
US8797334B2 (en) 2010-01-06 2014-08-05 Apple Inc. Facilitating efficient switching between graphics-processing units
US8368702B2 (en) 2010-01-06 2013-02-05 Apple Inc. Policy-based switching between graphics-processing units
US9336560B2 (en) 2010-01-06 2016-05-10 Apple Inc. Facilitating efficient switching between graphics-processing units
KR20140110105A (en) * 2010-01-06 2014-09-16 애플 인크. Facilitating efficient switching between graphics-processing units
TWI463431B (en) * 2010-01-06 2014-12-01 Apple Inc Facilitating efficient switching between graphics-processing units
WO2011118199A1 (en) * 2010-03-24 2011-09-29 パナソニック株式会社 Display switching device
JP5662418B2 (en) * 2010-03-24 2015-01-28 パナソニック インテレクチュアル プロパティ コーポレーション オブアメリカPanasonic Intellectual Property Corporation of America Display processing apparatus, display processing method, and integrated circuit
US8810588B2 (en) 2010-03-24 2014-08-19 Panasonic Intellectual Property Corporation Of America Display switching apparatus
US8803892B2 (en) 2010-06-10 2014-08-12 Otoy, Inc. Allocation of GPU resources across multiple clients
AU2014203219B2 (en) * 2010-06-10 2016-01-14 Otoy Inc. Allocation of gpu resources across multiple clients
WO2011156666A3 (en) * 2010-06-10 2012-04-26 Julian Michael Urbach Allocation of gpu resources across multiple clients
AU2011264726B2 (en) * 2010-06-10 2014-07-10 Otoy Inc. Allocation of gpu resources across multiple clients
CN102959517A (en) * 2010-06-10 2013-03-06 Otoy公司 Allocation of gpu resources accross multiple clients
US9998749B2 (en) 2010-10-19 2018-06-12 Otoy, Inc. Composite video streaming using stateless compression
US20120274641A1 (en) * 2011-04-27 2012-11-01 Nvidia Corporation Techniques for degrading rendering quality to increase operating time of a computing platform
US9652016B2 (en) * 2011-04-27 2017-05-16 Nvidia Corporation Techniques for degrading rendering quality to increase operating time of a computing platform
US8947443B2 (en) 2011-06-09 2015-02-03 Sony Corporation Information processing apparatus and information processing method
EP2533236A1 (en) * 2011-06-09 2012-12-12 Sony Corporation Information processing apparatus with multiple drawing processing blocks and information processing method
EP2860623A4 (en) * 2013-11-11 2015-07-01 Zte Corp Terminal and background projection control method thereof
US9325926B2 (en) 2013-11-11 2016-04-26 Zte Corporation Terminal and method for controlling background projection
EP4053783A4 (en) * 2019-11-28 2022-12-28 Huawei Technologies Co., Ltd. Energy-efficient display processing method, and apparatus

Also Published As

Publication number Publication date
JP2010540988A (en) 2010-12-24
EP2188708A1 (en) 2010-05-26
KR101207117B1 (en) 2012-12-03
JP5300030B2 (en) 2013-09-25
US20090079746A1 (en) 2009-03-26
CN101802774B (en) 2012-11-21
CN101802774A (en) 2010-08-11
KR20100044907A (en) 2010-04-30

Similar Documents

Publication Publication Date Title
US20090079746A1 (en) Switching between graphics sources to facilitate power management and/or security
US8681159B2 (en) Method and apparatus for switching between graphics sources
US7698579B2 (en) Multiplexed graphics architecture for graphics power management
US9336560B2 (en) Facilitating efficient switching between graphics-processing units
JP4843144B2 (en) Method and apparatus for powering up an integrated device from a low power state
US9030481B2 (en) Method and apparatus for reducing power usage during video presentation on a display
US7657775B1 (en) Dynamic memory clock adjustments
US9396699B2 (en) Color correction to facilitate switching between graphics-processing units
US9865194B2 (en) Display system and method for driving same between normal mode and panel self-refresh (PSR) mode
US20120092351A1 (en) Facilitating atomic switching of graphics-processing units
WO2000022501A1 (en) Programmable and flexible power management unit
TWI443576B (en) Graphics display systems and methods
US20200312271A1 (en) Method and apparatus to avoid visual artifacts in a display device during a configuration change
TW201505007A (en) Display apparatus and operation method of timing controller thereof
US11893925B2 (en) Always-on display signal generator

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 200880107944.1

Country of ref document: CN

121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 08797713

Country of ref document: EP

Kind code of ref document: A1

REEP Request for entry into the european phase

Ref document number: 2008797713

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 2008797713

Country of ref document: EP

ENP Entry into the national phase

Ref document number: 20107006160

Country of ref document: KR

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

WWE Wipo information: entry into national phase

Ref document number: 2010525865

Country of ref document: JP