Multiple graphics processing unit system and method

Information

  • Patent Grant
  • 9075559
  • Patent Number
    9,075,559
  • Date Filed
    Friday, February 27, 2009
    15 years ago
  • Date Issued
    Tuesday, July 7, 2015
    9 years ago
Abstract
Systems and methods for utilizing multiple graphics processing units for controlling presentations on a display are presented. In one embodiment, a dual graphics processing system includes a first graphics processing unit for processing graphics information; a second graphics processing unit for processing graphics information; and a component for controlling switching between said first graphics processing unit and said second graphics processing unit. In one embodiment, the component for controlling complies with appropriate panel power sequencing operations when coordinating the switching between the first graphics processing unit and the second graphics processing unit.
Description
FIELD OF THE INVENTION

The present invention relates to the field of displaying presentations associated with graphics processing units.


BACKGROUND OF THE INVENTION

Electronic systems and circuits have made a significant contribution towards the advancement of modern society and are utilized in a number of applications to achieve advantageous results. Numerous electronic technologies such as digital computers, calculators, audio devices, video equipment, and telephone systems facilitate increased productivity and cost reduction in analyzing and communicating data, ideas and trends in most areas of business, science, education and entertainment. Frequently, these activities often involve the presentation of various graphics information on a display.


Graphics applications associated with the display presentations can have different characteristics and features. For example, graphics applications can have different processing requirements, different quality features, involve different levels of complexity, and so on. A system may include multiple graphics processing units and the graphics processing units can also have different processing capabilities and characteristics. In addition, control software and hardware for each processor may be entirely different (e.g., processors manufactured by different vendors, etc.)and not able to be controlled identically. Furthermore, displays typically can only handle input from one graphics processing unit at a time and often have particular interface requirements. For example, if signaling is not performed correctly damage to the panel may result, or the user may observe disturbing visual artifacts, or the panel controller may force a failsafe shutdown.


Displays typically have panel power sequencing specifications that indicate signal activation timing requirements. For example, the standards panel working group (SPWG) indicates general mechanical and interface specifications (e.g., SPWG spec, http://www.spwg.org) for displays used in note book computers. FIG. 1A is an exemplary timing diagram for one panel power sequence for a LCD power control signal (LCD_EN), active LVDS signals (LVDS) and a LCD backlight control (B/L). The timing requirements between the transitions in the signals are typically defined by the display manufacturer.


SUMMARY

Systems and methods for utilizing multiple graphics processing units for controlling presentations on a display are presented. In one embodiment, a dual graphics processing system includes a first graphics processing unit for processing graphics information; a second graphics processing unit for processing graphics information; and a component for controlling switching between the first graphics processing unit and the second graphics processing unit. In one embodiment, the component for controlling complies with appropriate panel power sequencing operations when coordinating the switching between the first graphics processing unit and the second graphics processing unit.





DESCRIPTION OF THE DRAWINGS

The accompanying drawings, which are incorporated in and form a part of this specification, are included for exemplary illustration of the principles of the present and invention and not intended to limit the present invention to the particular implementations illustrated therein. The drawings are not to scale unless otherwise specifically indicated.



FIG. 1A is an exemplary timing diagram for one panel power sequence.



FIG. 1B is a block diagram of an exemplary computer system in accordance with one embodiment of the present invention.



FIG. 2 is a block diagram of one exemplary implementation of a MUX for controlling switching between the first graphics processing unit and the second graphics processing unit.



FIG. 3 is a block diagram of an exemplary panel power sequence control component in accordance with one embodiment of the present invention.



FIG. 4 is a block diagram of an exemplary computer system in which one processor controls a backlight intensity while another processor controls backlight enablement and other display interface signals in accordance with one embodiment of the present invention.



FIG. 5 is an exemplary timing diagram of control signals in accordance with one embodiment of the present invention.



FIG. 6 is a block diagram of exemplary dual graphics processing method in accordance with one embodiment of the present invention.



FIG. 7 is a flow chart of another exemplary dual graphics processing method in accordance with one embodiment of the present invention.



FIG. 8 is a flow chart of exemplary graphics processing unit change over process with powering up and down the graphics processing units in accordance with one embodiment of the present invention.



FIG. 9 is a flow chart exemplary of another graphics processing unit change over process in accordance with one embodiment of the present invention.





DETAILED DESCRIPTION

Reference will now be made in detail to the preferred embodiments of the invention, examples of which are illustrated in the accompanying drawings. While the invention will be described in conjunction with the preferred embodiments, it will be understood that they are not intended to limit the invention to these embodiments. On the contrary, the invention is intended to cover alternatives, modifications and equivalents, which may be included within the spirit and scope of the invention as defined by the appended claims. Furthermore, in the following detailed description of the present invention, numerous specific details are set forth in order to provide a thorough understanding of the present invention. However, it will be obvious to one ordinarily skilled in the art that the present invention may be practiced without these specific details. In other instances, well known methods, procedures, components, and circuits have not been described in detail as not to unnecessarily obscure aspects of the current invention.


Some portions of the detailed descriptions which follow are presented in terms of procedures, logic blocks, processing, and other symbolic representations of operations on data bits within a computer memory. These descriptions and representations are the means generally used by those skilled in data processing arts to effectively convey the substance of their work to others skilled in the art. A procedure, logic block, process, etc., is here, and generally, conceived to be a self-consistent sequence of steps or instructions leading to a desired result. The steps include physical manipulations of physical quantities. Usually, though not necessarily, these quantities take the form of electrical, magnetic, optical, or quantum signals capable of being stored, transferred, combined, compared, and otherwise manipulated in a computer system. It has proven convenient at times, principally for reasons of common usage, to refer to these signals as bits, values, elements, symbols, characters, terms, numbers, or the like.


It should be borne in mind, however, that all of these and similar terms are associated with the appropriate physical quantities and are merely convenient labels applied to these quantities. Unless specifically stated otherwise as apparent from the following discussions, it is appreciated that throughout the present application, discussions utilizing terms such as “processing”, “computing”, “calculating”, “determining”, “displaying” accessing,” “writing,” “including,” “storing,” “transmitting,” “traversing,” “associating,” “identifying” or the like, refer to the action and processes of a computer system, or similar processing device (e.g., an electrical, optical, or quantum, computing device), that manipulates and transforms data represented as physical (e.g., electronic) quantities. The terms refer to actions and processes of the processing devices that manipulate or transform physical quantities within a computer system's component (e.g., registers, memories, other such information storage, transmission or display devices, etc.) into other data similarly represented as physical quantities within other components.


Portions of the detailed description that follows are presented and discussed in terms of a method. Although steps and sequencing thereof are disclosed in figures herein describing the operations of this method, such steps and sequencing are exemplary. Embodiments are well suited to performing various other steps or variations of the steps recited in the flowchart of the figure herein, and in a sequence other than that depicted and described herein.


Some portions of the detailed description are presented in terms of procedures, steps, logic blocks, processing, and other symbolic representations of operations on data bits that can be performed on computer memory. These descriptions and representations are the means used by those skilled in the data processing arts to most effectively convey the substance of their work to others skilled in the art. A procedure, computer-executed step, logic block, process, etc., is here, and generally, conceived to be a self-consistent sequence of steps or instructions leading to a desired result. The steps are those requiring physical manipulations of physical quantities. Usually, though not necessarily, these quantities take the form of electrical or magnetic signals capable of being stored, transferred, combined, compared, and otherwise manipulated in a computer system. It has proven convenient at times, principally for reasons of common usage, to refer to these signals as bits, values, elements, symbols, characters, terms, numbers, or the like.


It should be borne in mind, however, that all of these and similar terms are to be associated with the appropriate physical quantities and are merely convenient labels applied to these quantities. Unless specifically stated otherwise as apparent from the following discussions, it is appreciated that throughout, discussions utilizing terms such as “accessing,” “writing,” “including,” “storing,” “transmitting,” “traversing,” “associating,” “identifying” or the like, refer to the action and processes of a computer system, or similar electronic computing device, that manipulates and transforms data represented as physical (electronic) quantities within the computer system's registers and memories into other data similarly represented as physical quantities within the computer system memories or registers or other such information storage, transmission or display devices.


Computing devices typically include at least some form of computer readable media. Computer readable media can be any available media that can be accessed by a computing device. By way of example, and not limitation, computer readable medium may comprise computer storage media and communication media. Computer storage media includes volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules, or other data. Computer storage media includes, but is not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile discs (DVD) or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to store the desired information and which can be accessed by a computing device. Communication media typically embodies computer readable instructions, data structures, program modules, or other data in a modulated data signals such as a carrier wave or other transport mechanism and includes any information delivery media. The term “modulated data signal” means a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal. By way of example, and not limitation, communication media includes wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, RF, infrared, and other wireless media. Combinations of any of the above should also be included within the scope of computer readable media.


Some embodiments may be described in the general context of computer-executable instructions, such as program modules, executed by one or more computers or other devices. Generally, program modules include routines, programs, objects, components, data structures, etc, that perform particular tasks or implement particular abstract data types. Typically the functionality of the program modules may be combined or distributed as desired in various embodiments.


The present invention facilitates efficient effective utilization of multiple graphics processing units or hybrid graphics processing system. In one embodiment, a dual graphics processing system includes a first graphics processing unit for processing graphics information, a second graphics processing unit for processing graphics information, and a component for controlling switching between the first graphics processing unit and the second graphics processing unit. In one exemplary implementation, the component for controlling switching between the first graphics processing unit and the second graphics processing unit includes a multiplexer that forwards display component signals from the first graphics processing unit and the second graphics processing unit in accordance with a graphics processing unit selection indication. The component for controlling conforms to panel power sequencing when coordinating the switching between the first graphics processing unit and the second graphics processing unit. In one embodiment the first graphics processing unit is an integrated graphics processing unit and the second graphics processing unit is a discreet graphics processing unit.



FIG. 1B is block diagram of exemplary computer system 100 in accordance with one embodiment of the present invention. Computer system 100 includes central processing core (CPU) 131, integrated graphics processing unit 132 (iGPU), discrete graphics processing unit (dGPU) 133, system memory 141, local memory 142, liquid crystal display (LCD) 111, cathode ray tube display (CRT) 112, high definition television display (HDTV) 113, display port (DP) 114, high definition multimedia interface/digital video interface (HDMI/DVI) 115, multiplexer (MUX) 171 and multiplexer (MUX) 172. System memory 141 includes frame buffer (FB) 151 and local memory 142 includes frame buffer (FB) 152. In one embodiment, iGPU 132 is integrated with CPU 131.


The components of exemplary computer system 100 cooperatively operate to arbitrate control of a display between two graphics controllers. CPU 131 performs core central processing operations. First graphics processing unit iGPU 132 processes graphics information. Second graphics processing unit dGPU 133 processes graphics information. MUX 171 controls switching between the iGPU 132 and the dGPU 133. MUX 171 forwards display component signals from the first graphics processing unit and the second graphics processing unit in accordance with a graphics processing unit selection indication. MUX 172 also controls switching between the iGPU 132 and the dGPU 133. System memory 141 and local memory 142 store information. LCD 111, CRT 112, and HDTV 113 display information. DP 114, and (HDMI/DV) 115 interfaces can forward information for display. In one embodiment a panel control signal transmitted from the first graphics processing unit is utilized as a feedback event to trigger the switching to the second graphics processor.


It is appreciated the component for controlling switching between the first graphics processing unit and the second graphics processing unit can be implemented in a variety of ways. FIG. 2 is a block diagram of one exemplary implementation of MUX 210 for controlling switching between the first graphics processing unit and the second graphics processing unit. MUX 210 receives graphics signals from iGPU (e.g., iGPU_LVDS, etc.) and dGPU (e.g., dGPU_LVDS, etc.) and forwards one set of graphics signals in accordance with selection indication (e.g., DGPU_IGPU#) and selects which processor's set of graphics signals are forwarded to a panel. In the illustrated example the graphics signals include low voltage differential signals (LVDS). It is appreciated that present invention is readily implemented with graphics signals for other types or displays (e.g., CRT, etc.).


In one embodiment, the LVDS signals are muxed but the backlight intensity (e.g., pulse width modulation intensity control and inverter enable) is continued to be controlled by one processor (e.g., the iGPU). In some exemplary implementations, the backlight inverter and CCRL backlight source can take a considerable amount of time to charge to full intensity and the present embodiment facilitates reduction of visual artifacts of fading or flashing by providing more persistent backlight control.


The component for controlling switching between the first graphics processing unit and the second graphics processing unit can be implemented in a variety of ways can also include components for controlling display activation. In one exemplary implementation, the components for controlling display activation can facilitate compliance with panel power sequence operations and requirements. In one embodiment, the component for controlling switching between the first graphics processing unit and the second graphics processing unit includes a panel power sequence control component comprising a first graphics processing unit display enable component for coordinating display component enablement indication from the first graphics processing unit with a graphics processing selection indication, a second graphics processing unit display enable component for coordinating display component enablement indication from the second graphics processing unit with the graphics processing selection indication; and a display component enable generation component for generating a display component enable signal in accordance with output of the first graphics processing unit display enable component and output of the second graphics processing unit display component.



FIG. 3 is a block diagram of exemplary panel power sequence control component 300 in accordance with one embodiment of the present invention. A first graphics processing unit display enable component includes AND gate 320 for coordinating display component enablement indication IGPU_LCD_EN from the first graphics processing unit with a graphics processing unit selection indication DGPU_IGPU#. In one embodiment, the indication DGPU_IGPU# is inverted before being fed into AND gate 320. The second graphics processing unit display enable component includes AND gate 310 for coordinating display component enablement indication DGPU_LCD_EN from the second graphics processing unit with the graphics unit processing selection indication DGPU_IGPU#. The display component enable generation component OR gate 330 generates a display component enable signal LCD_EN in accordance with output of the first graphics processing unit display enable component AND gate 310 and output of the second graphics processing unit display component AND gate 320.


In one embodiment, components similar to exemplary panel power sequence control component 300 can also be utilized to forward GPU backlight control signals (e.g. Pulse Width Modulated Intensity Control and Inverter Enable). Power panel sequencing logic can sequence the backlight as well as power control.



FIG. 4 is a block diagram of exemplary computer system 400 in accordance with one embodiment of the present invention. Exemplary computer system 400 is similar to exemplary computer system 100 except backlight control is different. In exemplary computer system 400, while the backlight enable is driven by the discrete graphics processing unit, a backlighting intensity signal is driven by the internal graphics processing unit even after control of other display signals is transferred to the discrete graphics processing unit. Exemplary computer system 400 includes central processing core (CPU) 431, integrated graphics processing unit 432 (iGPU), discrete graphics processing unit (dGPU) 433, system memory 441, local memory 442, liquid crystal display (LCD) 411, multiplexer (MUX) 471 and inverter 472. System memory 441 includes frame buffer (FB) 451 and local memory 442 includes frame buffer (FB) 452.


The components of exemplary computer system 400 cooperatively operate to arbitrate control of a display between two graphics controllers. CPU 431 performs core central processing operations. First graphics processing unit iGPU 432 processes graphics information. Second graphics processing unit dGPU 433 processes graphics information. MUX 471 controls switching between the iGPU 432 and the dGPU 433. MUX 471 forwards display component signals from the first graphics processing unit and the second graphics processing unit in accordance with a graphics processing unit selection indication. System memory 441 and local memory 442 store information. LCD 411 display information. Inverter 472 inverts backlight control signals from iGPU 432 (e.g. pulse width modulated intensity control). In one embodiment, the backlight enable signal (not shown) is provided to inverter 472 from the dGPU 433.



FIG. 5 is an exemplary timing diagram 500 of control signals in accordance with one embodiment of the present invention. The timing diagram 500 includes signals that are fed into and forwarded out of a component for controlling switching between the first graphics processing unit and the second graphics processing unit (e.g., MUX 171, 471, 172, etc.). In one embodiment, timing diagram 500 illustrates states of signals when an iGPU generated signals are being forwarded to a display (e.g. the state of signals on the left side of line 551) and states of signals when a dGPU generated signals are being forwarded to a display (e.g. the state of signals on the right side of line 551).


In one exemplary implementation, signals iGPU-LVDS-PWR 511 and dGPU-LVDS-PWR 531 are fed into a panel power sequence control component (e.g., 300 in FIG. 3) and signal LCD_EN 501 is forwarded to a display while signals 512 and 532 are fed into a (e.g., MUX 171, 210, 471, etc.) and signals 502 are forwarded from the MUX to the display (e.g., LCD 111, etc.). In one embodiment, iGPU-LVDS-PWR 511 corresponds to iGPU_LCD_EN fed into AND gate 320 and dGPU-LVDS-PWR 531 corresponds dGPU_LCD_EN fed into AND gate 310 and LCD_EN 501 corresponds to LCD_EN out of OR gate 330. Thus, the display essentially receives signals LCD_EN 501 and LVDS 502 and these signals appear as if coming from a single graphics processing unit, while signals 511, 512, 531 and 532 are in essence driving the display depending upon whether iGPU or dGPU is the active graphics processing unit. The iGPU LVDS power (iGPU-LVDS_PWR) signal is activated at time 581 and the LCD enable (LCD_EN) signal is forwarded to the LCD. The iGPU is the active device and after an appropriate panel power sequence time has passed the iGPU-LVDS signals are activated at time 582. It is appreciated the present illustration is utilized to indicate the LVDS signals are activated rather than any particular logic transitions or states associated with particular graphics information. For example, an iGPU_LVDS signal for conveying a change in a color from red to green may go through multiple logic transitions associated with bits representing the color red and green during the iGPU_LVDS active period. The backlight enable (B/L) signal 503 is activated at time 583a and deactivated at time 583b.


When the system receives a signal indicating a transition from the iGPU to the dGPU should begin, the dGPU power up signal (dGPU_PWR) is triggered at time 584 to enable or power up the dGPU itself in anticipation of a change from the iGPU control to dGPU control. The LCD mode and timings are established on the dGPU while the dGPU LVDS interface is still off. A panel power down sequence is commenced on the iGPU. At time 585 the iGPU_LVDS signals 512 are deactivated resulting in the LVDS signals 502 forwarded to the display becoming deactivated. At time 586 the IGPU_LVDS_PWR signal 511 is deactivated and correspondingly LCN_EN signal 501 is also deactivated. Selection indication dGPU_iGPU# signal 522 is changed from a state indicating the iGPU is forwarding signals to a state indicating the dGPU is going to forward signals and the MUX in turn will forward the dGPU signals instead of the iGPU signals.


With reference still to FIG. 5, the dGPU is instructed (e.g., by a driver, etc.) to begin panel power sequence and the dGPU signals are utilized after the transition at line 551. The dGPU_LVDS_PWR signal is activated at time 591 resulting in LCD_EN signal 501 being activated. At time 592 dGPU_LVDS signal is activated which in turn means the LVDS signal 502 is activated. At time 593a the backlight signal is reactivated and deactivated at time 593b. It is appreciated the backlight can be driven in accordance with a variety of scenarios. The backlight can be deactivated and reactivated to be driven by the dGPU or some of the backlight signals (e.g., pulse width modulated intensity and inverter enable) can be again be driven by the iGPU even when the dGPU is driving the backlight enable and the LVDS signals. At time 594 the dGPU_LVDs signal is deactivated and in turn the LVDS signals 502 are deactivated. At time 595 the dGPU_LVDS_PWR signal is deactivated resulting in the LCN_EN being deactivated.


In one embodiment, when the deactivation of the iGPU driving of the display enable (e.g., LCD_EN) occurs the operations wait for the process to complete from an Operating System perspective. In one embodiment, the LVDS_PWR_DOWN_DONE 541 signal is utilized to trigger the selection indication signal dGPU_iGPU# signal at time 586 instead of 587. Utilizing the LVDS_PWR_DOWN_DONE 541 signal reduces the possibility that the OS is performing some other processing and takes some time to perceive the display enable deactivation completion. In one exemplary implementation there is a component that filters the panel power sequence signals and uses the result directly as a signal drive back to the software to coordinate the transition.


It is appreciated that while an iGPU to dGPU transition is illustrated in FIG. 5, a similar process can be performed for a dGPU to iGPU transition. In one embodiment the entities are reversed. In addition, after an initial power up of the iGPU the iGPU can remain powered up (e.g., other things being equal) rather than powering up and down that may be associated with a dGPU. For example, if a hybrid system included a iGPU in a CPU and a dGPU, since the CPU remains powered up the iGPU can remain powered up while dGPU is powered down.



FIG. 6 is a block diagram of exemplary dual graphics processing method 600 in accordance with one embodiment of the present invention. In one embodiment there is an agent which is going to help coordinate the process or transaction by talking to drives associated with multiple processors. In one exemplary implementation, the agent is “hybrid” software instructions embedded on a computer readable medium and the instructions direct driver operations on a processor.


In operation 610, graphics processing is performed on a first graphics processing unit and the results are forwarded to a display. It is appreciated a variety of graphics processing applications can be performed. For example, 2D graphics processing, 3D graphics processing, video processing, etc.


In operation 620, graphics processing is performed on a second graphics processing unit. In one embodiment, the second graphics processing unit is essentially working on the same graphics processing application as the first graphics processing unit in anticipation of a change over. By working on the same graphics processing application the second graphics processing unit can be ready with information to make the change over appear relatively seamless from a viewing user perspective.


At operation 630, a graphics processing unit change over process is performed in which results of graphics processing from the second graphics processing unit are forwarded to the display instead of results from the first graphics processor. In one embodiment the graphics processing unit change over process includes panel power sequencing operations. It is appreciated that present process is readily adaptable to a variety of change over interactions.



FIG. 7 is a flow chart of exemplary dual graphics processing method 700 in accordance with one embodiment of the present invention. Dual graphics processing method 700 is similar to dual graphics processing method 600.


In operation 710 graphics processing is performed on a first graphics processing unit, in operation 720 graphics processing is performed on a second graphics processing unit, and in operation 730 a change over process is performed.


The change over process in operation 730 includes panel power sequencing operations. In operation 731 a panel power down sequence is performed. In one exemplary implementation, the panel power down sequence includes disabling communication of graphics information signals (e.g., LVDS, etc.) and control power (e.g., LCD_EN, etc.) to a panel interface. In operation 732 signals forwarded to a display from a first processing unit are changed to signals from a second processing unit. It is appreciated a variety of components can be utilized to in the change over (e.g., a switching component, MUX, crossbar, routing component, etc.). In operation 733 a panel power up sequence is performed. In one exemplary implementation, the panel power up sequence includes enabling control power (e.g., LCD_EN, etc.) and communication of graphics information signals (e.g., LVDS, etc.) to a panel interface.


The graphics processing unit change over process can include powering up and down the graphics processing units. FIG. 8 is a flow chart of exemplary graphics processing unit change over process 800 with powering up and down the graphics processing units in accordance with one embodiment of the present invention. Graphics processing unit change over process 800 includes powering up a graphics processing unit; checking if a another graphics processing unit is powered up; powering up the other graphics processing unit if not already powered up; and changing information forwarded to a display from the first graphics processing unit to the second graphics processing unit.


In operation 810, graphics processing is performed on a first graphics processing unit.


Operation 815 checks if a second graphics processor is powered up. If powered up the process proceeds to operation 820. If not powered up the process proceeds to operation 817.


In operation 817, a processor is powered up to implement the second graphics processing unit. Powering up the processor can include a cold power, wake up from idle state, enabling graphics processing capabilities on a processor that is otherwise already powered up. In one exemplary implementation integrated power processing capabilities are enabled on a processor (e.g., CPU, etc.) that is otherwise powered up.


In operation 820, graphics processing is performed on a second graphics processing unit.


A panel power down sequence is performed in operation 821. In one embodiment the panel power down sequence includes disabling signals on the display interface (e.g., graphics signals, control power etc.). In one exemplary implementation, the panel power down sequence is performed in accordance with the panel power sequence instructions from the panel vendor or manufacturer.


At operation 822, signals forwarded to a display are changed from a first processing unit to signals from a second processing unit. Again, it is appreciated a variety of components can be utilized to in the change over (e.g., a switching component, MUX, crossbar, routing component, etc.).


A panel power up sequence (e.g., disabling graphics signals and control power, etc.) is performed at operation 823. In one embodiment the panel power up sequence includes enabling signals on the display interface (e.g., graphics signals, control power etc.). In one exemplary implementation, the panel power updown sequence is performed in accordance with the panel power sequence instructions from the panel vendor or manufacturer.


In operation 830, a determination is made if a processor upon which the first graphics processing unit is implemented is to be powered down. In one exemplary implementation if the first graphics processing unit is implemented in an integrated processor (e.g., CPU, etc.) the integrated processor is not powered down and if the first graphics processing unit is implemented in a discrete processor (e.g., GPU, etc.) the discrete processor is powered down. If the processor is to not to be powered down the process proceeds to operation 832. If the processor is to be powered down the process proceeds to operation 831.


At operation 831 power down is performed upon the processor which the first graphics processor unit is implemented on. The power down can include full power down, partial power down, sleep mode, etc. The process proceeds to operation 840.


At operation 832 selected processor unit operations are continued. In one exemplary implementation in which the first graphics processing unit is implemented in an integrated processor (e.g., CPU, etc.), processing operations other than integrated graphics processing operations are continued to be performed.


In operation 840 monitoring for graphics processor change over indication is performed. The graphics processor change over indication can come from a user, from a graphics application, from an indication of a particular type of graphics processing being performed (e.g., high performance such as video etc. versus low performance such as text, etc.), from detection of an environmental condition, etc. If there is not indication the process continues to monitor in operation 840. If there is a graphics processor change over indication the process proceeds to operation 842


At operation 842 a check is made if the first graphics processor is powered up. If the first graphics processor is powered up the process proceeds back to operation 810. If the first graphics process is not powered up the process proceeds to operation 843.


At operation 843 the first graphics processor is powered up and the process returns to operation 810.


It is appreciated the present graphics processing unit change over processes can be implemented in a system in which the first graphics processing unit is an internal graphics processing unit and the second graphics processing unit is a discrete graphics processing unit. In one embodiment, a panel control signal transmitted from the first graphics processing unit is utilized as a feedback event to trigger the changing to a second graphics processor.



FIG. 9 is a flow chart exemplary of graphics processing unit change over process 900 in accordance with one embodiment of the present invention. In one embodiment, graphics processing unit change over process instruction are embedded on a computer readable medium. Similar to process 600 there is an agent which facilitates coordination of the process or transaction by talking to drives associated with multiple processors.


At block 910, a transition to a panel quiescent state is directed. In one embodiment, the transitioning to a quiescent state comprises performing a panel power down process. In one exemplary implementation, independent panel power sequences are utilized in the transitioning to a quiescent state and transitioning to the active state. In one embodiment, some of the backlight controls are driven by the first graphics processing unit.


The signals forwarded to a display are changed from a first graphics processor to a second graphics processor at block 920. In one embodiment, the changing signals from a first graphics processor to a second graphics processor comprises loading drivers associated with the second graphics processing unit.


At operation 930, a transition to a panel active state is directed. In one embodiment, the transitioning to an active state comprises performing a panel power up process.


It is appreciated that the present change over systems and methods enable each processor to control a panel power sequence in each controller's own fashion. In addition, by coordinating the LCD power enable features, the present approach facilitates reduction of possible panel control signal excursion, panel failure and possible damage associated with undeterministic timing in signals associated with the transition from one processor to another. For example, during a transition interval the time taken to re-apply valid timings on the panel interface is affected by driver software response time which is affected by operating system response time and other activities on the system, without the present invention timing could be undeterministic. Operating systems are often not real time, and do not typically have guaranteed latency. Without the present invention, adverse impacts could occur if a system becomes busy right at the middle of the transition exceeding the maximum allowed interval set forth the panel specification.


In one embodiment, precise co-ordinated control of internal sequencing on both the integrated and discrete graphics processing units is available and the LCD power enable is kept applied while the LVDS signals are modulated. In one exemplary implementation, the mode on the other GPU is set prior to transition as set forth above. An additional hardware signal and state machine between the two GPU's is included. The additional hardware signal and state machine signal the panel power sequencing logic of the second GPU when the first GPU's transition is completed. In one embodiment, the state machine controls the MUX select in order to facilitate minimal transition time.


Thus, the present invention facilitates efficient and effective utilization of multiple processors with a display. Each process can start LVDS frame timings at a random point in time and the present processor change over approach facilitates synchronization of the LVDS signals and avoidance of artifacts on the panel. For example, artifacts associated with several frames that could otherwise pass before the panel controller re-syncs to the alternate processor's timing. By following panel power sequencing in accordance with present embodiments, the panel controller treats the transition as a “normal” on/off transition and masks artifacts from the shift in timings.


The foregoing descriptions of specific embodiments of the present invention have been presented for purposes of illustration and description. They are not intended to be exhaustive or to limit the invention to the precise forms disclosed, and obviously many modifications and variations are possible in light of the above teaching. The embodiments were chosen and described in order to best explain the principles of the invention and its practical application, to thereby enable others skilled in the art to best utilize the invention and various embodiments with various modifications as are suited to the particular use contemplated. It is intended that the scope of the invention be defined by the Claims appended hereto and their equivalents. The listing of steps within method claims do not imply any particular order to performing the steps, unless explicitly stated in the claim.

Claims
  • 1. A dual graphics processing system comprising: a first graphics processing unit for processing graphics information;a second graphics processing unit for processing graphics information; anda component for controlling switching between said first graphics processing unit and said second graphics processing unit, wherein a backlighting signal is driven by said first graphics processing unit even after a switch to said second graphics processing unit.
  • 2. A dual graphics processing system of claim 1 wherein said component for controlling switching between said first graphics processing unit and said second graphics processing unit comprises a multiplexer that forwards display component signals from said first graphics processing unit and said second graphics processing unit in accordance with a graphics processing unit selection indication.
  • 3. A dual graphics processing system of claim 1 wherein said component for controlling switching between said first graphics processing unit and said second graphics processing unit comprises: a first graphics processing unit display enable component for coordinating display component enablement indication from said first graphics processing unit with a graphics processing selection indication;a second graphics processing unit display enable component for coordinating display component enablement indication from said second graphics processing unit with said graphics processing selection indication; anda display component enable generation component for generating a display component enable signal in accordance with output of said first graphics processing unit display enable component and output of said second graphics processing unit display component.
  • 4. A dual graphics processing system of claim 1 wherein said a first graphics processing unit display enable component and said second graphics processing unit display enable component are AND logic components and said display component enable generation component is an OR logic component.
  • 5. A dual graphics processing system of claim 1 wherein said component for controlling conforms to panel power sequencing when coordinating said switching between said first graphics processing unit and said second graphics processing unit.
  • 6. A dual graphics processing system of claim 1 wherein said first graphics processing unit is an internal graphics processing unit and said second graphics processing unit is a dedicated graphics processing unit.
  • 7. A dual graphics processing system of claim 1 wherein a panel control signal transmitted from said first graphics processing unit utilized as a feedback event to trigger said switching to said second graphics processing unit.
  • 8. A dual graphics processing system of claim 1 wherein said component for controlling switching participates in a graphics processing unit change over process comprising: directing transitioning of a panel to a quiescent state;changing driving of display interface signals from said first graphics processing unit to said second graphics processing unit; anddirecting transitioning of said panel to an active state.
  • 9. A dual graphics processing method comprising: performing graphics processing on a first graphics processing unit;forwarding results of said graphics processing from said first graphics processing unit to a display;performing graphics processing on a second graphics processing unit; andperforming a graphics processing unit change over process in which results of said graphics processing from said second graphics processing unit are forwarded to said display instead of said results of said graphics processing from said first graphics, wherein a backlighting signal is driven by said first graphics processing unit even after a switch to said second graphics processing unit.
  • 10. A dual graphics processing method of claim 9 wherein said first graphics processing unit is an internal graphics processing unit and said second graphics processing unit is a discrete graphics processing unit.
  • 11. A dual graphics processing method of claim 9 wherein said graphics processing unit change over process comprises: performing a panel power down sequence;changing signals forwarded to said display from a first processing unit to a second processing unit; andperforming a panel power up sequence.
  • 12. A graphics processing unit change over process of claim 9 wherein said graphics processing unit change over process comprises: powering up a first graphics processing unit;checking if a second graphics processing unit is powered up;powering up a second graphics processing unit if not already powered up; andchanging information forwarded to said display from said first graphics processing unit to said second graphics processing unit.
  • 13. A non-transitory, tangible computer readable medium with instruction embedded therein for directing a graphics processing unit change over process comprising: directing transitioning of a panel to a quiescent state;changing driving of display interface signals from a first graphics processor to a second graphics processor; anddirecting transitioning of said panel to an active state and utilizing a panel control signal transmitted from said first graphics processing unit as a feedback event to trigger said changing to the second graphics processor, wherein at least a portion of backlight control is driven by said first graphics processor even after said changing of display interface signals from said first graphics processor to said second graphics processor.
  • 14. A non-transitory, tangible computer readable medium of claim 13 wherein said transitioning to a quiescent state comprises performing a panel power down process.
  • 15. A non-transitory, tangible computer readable medium of claim 13 wherein said transitioning to an active state comprises performing a panel power up process.
  • 16. A non-transitory, tangible computer readable medium of claim 15 wherein said changing signals from a first graphics processor to a second graphics processor comprises loading drivers associated with said second graphics processing unit.
  • 17. A non-transitory, tangible computer readable medium of claim 13 wherein independent panel power sequences are utilized in said transitioning to a quiescent state and said transitioning to said active state.
US Referenced Citations (187)
Number Name Date Kind
4145685 Farina Mar 1979 A
4603400 Daniels Jul 1986 A
4955066 Notenboom Sep 1990 A
5016001 Minagawa et al. May 1991 A
5321419 Katakura et al. Jun 1994 A
5321510 Childers et al. Jun 1994 A
5321811 Kato et al. Jun 1994 A
5371847 Hargrove Dec 1994 A
5461679 Normile et al. Oct 1995 A
5517612 Dwin et al. May 1996 A
5552802 Nonoshita et al. Sep 1996 A
5687334 Davis et al. Nov 1997 A
5712995 Cohn Jan 1998 A
5768164 Hollon, Jr. Jun 1998 A
5781199 Oniki et al. Jul 1998 A
5841435 Dauerer et al. Nov 1998 A
5878264 Ebrahim Mar 1999 A
5900913 Tults May 1999 A
5917502 Kirkland et al. Jun 1999 A
5923307 Hogle, IV Jul 1999 A
5963200 Deering et al. Oct 1999 A
5978042 Vaske et al. Nov 1999 A
6002411 Dye Dec 1999 A
6008809 Brooks Dec 1999 A
6018340 Butler et al. Jan 2000 A
6025853 Baldwin Feb 2000 A
6075531 DeStefano Jun 2000 A
6078339 Meinerth et al. Jun 2000 A
6118462 Margulis Sep 2000 A
6175373 Johnson Jan 2001 B1
6191758 Lee Feb 2001 B1
6208273 Dye et al. Mar 2001 B1
6226237 Chan et al. May 2001 B1
6259460 Gossett et al. Jul 2001 B1
6337747 Rosenthal Jan 2002 B1
6359624 Kunimatsu Mar 2002 B1
6388671 Yoshizawa et al. May 2002 B1
6449017 Chen Sep 2002 B1
6473086 Morein et al. Oct 2002 B1
6480198 Kang Nov 2002 B2
6483502 Fujiwara Nov 2002 B2
6498721 Kim Dec 2002 B1
6557065 Peleg et al. Apr 2003 B1
6600500 Yamamoto Jul 2003 B1
6606127 Fang et al. Aug 2003 B1
6628243 Lyons et al. Sep 2003 B1
6630943 Nason et al. Oct 2003 B1
6654826 Cho et al. Nov 2003 B1
6657632 Emmot et al. Dec 2003 B2
6724403 Santoro et al. Apr 2004 B1
6753878 Heirich et al. Jun 2004 B1
6774912 Ahmed et al. Aug 2004 B1
6784855 Matthews et al. Aug 2004 B2
6816977 Brakmo et al. Nov 2004 B2
6832269 Huang et al. Dec 2004 B2
6832355 Duperrouzel et al. Dec 2004 B1
6956542 Okuley et al. Oct 2005 B2
7007070 Hickman Feb 2006 B1
7010755 Anderson et al. Mar 2006 B2
7030837 Vong et al. Apr 2006 B1
7034776 Love Apr 2006 B1
7119808 Gonzalez et al. Oct 2006 B2
7124360 Drenttel et al. Oct 2006 B1
7129909 Dong et al. Oct 2006 B1
7212174 Johnston e May 2007 B2
7269797 Bertocci et al. Sep 2007 B1
7359998 Chan et al. Apr 2008 B2
7383412 Diard Jun 2008 B1
7450084 Fuller et al. Nov 2008 B2
7486279 Wong et al. Feb 2009 B2
7509444 Chiu et al. Mar 2009 B2
7522167 Diard et al. Apr 2009 B1
7552391 Evans et al. Jun 2009 B2
7558884 Fuller et al. Jul 2009 B2
7612783 Koduri et al. Nov 2009 B2
8176155 Yang et al. May 2012 B2
8766989 Wyatt et al. Jul 2014 B2
20010028366 Ohki et al. Oct 2001 A1
20020087225 Howard Jul 2002 A1
20020128288 Kyle et al. Sep 2002 A1
20020129288 Loh et al. Sep 2002 A1
20020140627 Ohki et al. Oct 2002 A1
20020163513 Tsuji Nov 2002 A1
20020182980 Van Rompay Dec 2002 A1
20020186257 Cadiz et al. Dec 2002 A1
20030016205 Kawabata et al. Jan 2003 A1
20030025689 Kim Feb 2003 A1
20030041206 Dickie Feb 2003 A1
20030065934 Angelo et al. Apr 2003 A1
20030084181 Wilt May 2003 A1
20030088800 Cai May 2003 A1
20030090508 Keohane et al. May 2003 A1
20030122836 Doyle et al. Jul 2003 A1
20030126335 Silvester Jul 2003 A1
20030188144 Du et al. Oct 2003 A1
20030189597 Anderson et al. Oct 2003 A1
20030195950 Huang et al. Oct 2003 A1
20030197739 Bauer Oct 2003 A1
20030200435 England et al. Oct 2003 A1
20030222876 Giemborek et al. Dec 2003 A1
20040001069 Snyder et al. Jan 2004 A1
20040019724 Singleton, Jr. et al. Jan 2004 A1
20040027315 Senda et al. Feb 2004 A1
20040080482 Magendanz et al. Apr 2004 A1
20040085328 Maruyama et al. May 2004 A1
20040184523 Dawson et al. Sep 2004 A1
20040222978 Bear et al. Nov 2004 A1
20040224638 Fadell et al. Nov 2004 A1
20040225901 Bear et al. Nov 2004 A1
20040225907 Jain et al. Nov 2004 A1
20040235532 Matthews et al. Nov 2004 A1
20040268004 Oakley Dec 2004 A1
20050012749 Gonzalez et al. Jan 2005 A1
20050025071 Miyake et al. Feb 2005 A1
20050052446 Plut Mar 2005 A1
20050059346 Gupta et al. Mar 2005 A1
20050064911 Chen et al. Mar 2005 A1
20050066209 Kee et al. Mar 2005 A1
20050073515 Kee et al. Apr 2005 A1
20050076088 Kee et al. Apr 2005 A1
20050076256 Fleck et al. Apr 2005 A1
20050097506 Heumesser May 2005 A1
20050140566 Kim et al. Jun 2005 A1
20050182980 Sutardja Aug 2005 A1
20050240538 Ranganathan Oct 2005 A1
20050262302 Fuller et al. Nov 2005 A1
20060001595 Aoki Jan 2006 A1
20060007051 Bear et al. Jan 2006 A1
20060010261 Bonola et al. Jan 2006 A1
20060085760 Anderson et al. Apr 2006 A1
20060095617 Hung May 2006 A1
20060119537 Vong et al. Jun 2006 A1
20060119538 Vong et al. Jun 2006 A1
20060119602 Fisher et al. Jun 2006 A1
20060125784 Jang et al. Jun 2006 A1
20060129855 Rhoten et al. Jun 2006 A1
20060130075 Rhoten et al. Jun 2006 A1
20060150230 Chung et al. Jul 2006 A1
20060164324 Polivy et al. Jul 2006 A1
20060200751 Underwood et al. Sep 2006 A1
20060232494 Lund et al. Oct 2006 A1
20060250320 Fuller et al. Nov 2006 A1
20060267857 Zhang et al. Nov 2006 A1
20060267987 Litchmanov Nov 2006 A1
20060267992 Kelley et al. Nov 2006 A1
20060282855 Margulis Dec 2006 A1
20070046562 Polivy et al. Mar 2007 A1
20070052615 Van Dongen et al. Mar 2007 A1
20070067655 Shuster Mar 2007 A1
20070079030 Okuley et al. Apr 2007 A1
20070083785 Sutardja Apr 2007 A1
20070091098 Zhang et al. Apr 2007 A1
20070103383 Sposato et al. May 2007 A1
20070129990 Tzruya et al. Jun 2007 A1
20070153007 Booth et al. Jul 2007 A1
20070195007 Bear et al. Aug 2007 A1
20070273699 Sasaki et al. Nov 2007 A1
20080030509 Conroy et al. Feb 2008 A1
20080034238 Hendry et al. Feb 2008 A1
20080130543 Singh et al. Jun 2008 A1
20080136844 Takada et al. Jun 2008 A1
20080155478 Stross Jun 2008 A1
20080158233 Shah et al. Jul 2008 A1
20080172626 Wu Jul 2008 A1
20080297433 Heller et al. Dec 2008 A1
20080320321 Sutardja Dec 2008 A1
20090021450 Heller et al. Jan 2009 A1
20090031329 Kim Jan 2009 A1
20090059496 Lee Mar 2009 A1
20090109159 Tsai Apr 2009 A1
20090153540 Blinzer et al. Jun 2009 A1
20090160865 Grossman Jun 2009 A1
20090172450 Wong et al. Jul 2009 A1
20090193243 Ely Jul 2009 A1
20100010653 Bear et al. Jan 2010 A1
20100033433 Utz et al. Feb 2010 A1
20100033916 Douglas et al. Feb 2010 A1
20100085280 Lambert et al. Apr 2010 A1
20100091025 Nugent et al. Apr 2010 A1
20110102446 Oterhals et al. May 2011 A1
20110141133 Sankuratri et al. Jun 2011 A1
20120108330 Dietrich, Jr. et al. May 2012 A1
20120162238 Fleck et al. Jun 2012 A1
20120268480 Cooksey et al. Oct 2012 A1
20140168229 Ungureanu; Oreste Dorin ; Jun 2014 A1
20140184611 Wyatt; David ; Jul 2014 A1
20140184629 Wyatt; David ; Jul 2014 A1
Foreign Referenced Citations (1)
Number Date Country
2005026918 Mar 2005 WO
Non-Patent Literature Citations (18)
Entry
Tala internet materials, 2006 (http://web.archive.org/web/20061117065745/http://www.asic-world.com/digital/combo4.html).
“System Management Bus (SMBus) Specification”, Version 2.0 Aug. 3, 2000, pp. 1-59.
Vulcan Inc., “Connectivity FAQ”, p. 1. Downloaded from the internet on Sep. 20, 2005 from http://www.flipstartpc.com/fac—connectivity.asp.
“Graphics: Intel®82852/82855 Graphics Controller Family” Intel, Archived Nov. 2, 2006 by archive.org and downloaded @ http://web.archive.org/web/20061103045644/http://www.intel.com/support/graphics/inte1852gm/sb/CS-009064.htm?.
“Epson; EMP Monitor V4, 10 Operation Guide”, by Seiko Epson Corp., 2006 http://support.epson.ru/products/manuals/100396/Manual/EMPMonitor.pdf.
“Virtual Network Computing”, http://en.wikipedia.org/wikiVnc, Downloaded Circa: Dec. 18, 2008, pp. 1-4.
Andrew Fuller; “Auxiliary Display Platform in Longhorn”; Microsoft Corporation; The Microsoft Hardware Engineering Conference Apr. 25-27, 2005; slides 1-29.
McFedries, ebook, titled “Complete Idiot's Guide to Windows XP”, published Oct. 03, 2001, pp. 1-7.
PCWorld.com, “Microsoft Pitches Display for Laptop Lids” dated Feb. 10, 2005, pp. 1-2, downloaded from the Internet on Mar. 8, 2006 from http://www.pcworld.com/resources/article/aid/119644.asp.
Vulcan, Inc., “Product Features: Size and performance”, p. 1; downloaded from the internet on Sep. 20, 2005 from http://www.flipstartpc.com/aboutproduct—features—sizeandpower.asp.
Vulcan, Inc., “Product Features:LID Module”, p. 1, downloaded from the Internet on Sep. 19, 2005 from http://www.flipstartpc.com/aboutproductfeatures—lidmodule.asp.
Vulcan, Inc., “Software FAQ”, p. 1, downloaded from the internet on Sep. 20, 2005 from http://www.flipstartpc.com/faq—software.asp.
Handtops.com, “FlipStart PC in Detail” pp. 1-4, downloaded from the internet o Sep. 20, 2005 from http://www.handtops.com/show/news/5.
Microsoft Corporation, “Microsoft Windows Hardware Showcase”, dated Apr. 28, 2005; pp. 1-5; downloaded from the internet on Sep. 15, 2005, from http://www.microsoft.com/whdc/winhec/hwshowcase05.mspx.
Paul Thurrot's SuperSite for Windows, “WinHEC 2004 Longhorn Prototypes Gallery”, dated May 10, 2004, pp. 1-4, downloaded from the internet on Sep. 15, 2005 from http://www.sinwupersite.com/showcase.loghom—winhc—proto.asp.
“The Java Tutorial: How to Use Combo Boxes”, Archived Mar. 5, 2006 by archive.org, Downloaded Jun. 30, 2011, http://web.archive.org/web/20050305000852/http://www-mips.unice.fr/Doc/JavarTutorial/uiswing/components/combobox.html.
“Usage: NVIDIA GeForce 6800— PCle x16”, Dell, archived Jan. 15, 2006 by archive.org, Downloaded Jun. 29, 2011, http://web.archive.org/web/20060115050119/http://support.dell.com/support/edocs/video/P82192/en/usage.html.
Texas Instruments, “TMS320VC5501/5502 DSP Direct Memory Access (DMA) Controller Reference Guide”, Sections 1, 2, 4, 11, and 12; Literature No. SPRU613G, Mar. 2005.
Related Publications (1)
Number Date Country
20100220102 A1 Sep 2010 US