Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
SELECTIONS OF GRAPHICS DATA SOURCES FOR GPUS
Document Type and Number:
WIPO Patent Application WO/2022/055508
Kind Code:
A1
Abstract:
An example computing device includes a central processing unit and storage connected to the central processing unit. The storage stores local graphics data generated at the computing device. The computing device further includes a graphics processing unit that is separate from the central processing unit, an input port to receive external graphics data from a separate computing device, and a switch to selectively provide the local graphics data or the external graphics data to the graphics processing unit.

Inventors:
HUANG YU CHUN (TW)
CHEN CHIH CHIEN (TW)
ALI ADAM MIR (US)
CHANG JUI HSUAN (TW)
Application Number:
PCT/US2020/050682
Publication Date:
March 17, 2022
Filing Date:
September 14, 2020
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
HEWLETT PACKARD DEVELOPMENT CO (US)
International Classes:
G06F9/48; G06T1/20
Foreign References:
US20170103495A12017-04-13
US20180143927A12018-05-24
US20180068412A12018-03-08
US20180109627A12018-04-19
Attorney, Agent or Firm:
CARTER, Daniel J. et al. (US)
Download PDF:
Claims:
CLAIMS

1 . A computing device comprising: a central processing unit; storage connected to the central processing unit, the storage to store local graphics data generated at the computing device; a graphics processing unit that is separate from the central processing unit; an input port to receive external graphics data from a separate computing device; and a switch to selectively provide the local graphics data or the external graphics data to the graphics processing unit.

2. The computing device of claim 1 , wherein the central processing unit is to generate a user interface to receive a selection of the local graphics data or the external graphics data to provide to the graphics processing unit.

3. The computing device of claim 1 , wherein the switch includes a multiplexer.

4. The computing device of claim 1 , further comprising a display port connected to the graphics processing unit to drive a display device that is larger than a display device integral to the separate computing device.

5. The computing device of claim 1 , wherein the input port is to receive the external graphics data via a serial display signal of two independent serial display signals supported by the input port.

6. The computing device of claim 1 , wherein the input port is to receive the external graphics data via a short-range wired connection.

7. A non-transitory computer-readable medium comprising instructions that cause a processor to: obtain a selection of a graphics data source, wherein the selection identifies either an input port that is connectable to an external device or to storage that is local to the processor; and set a switch to the selection of the graphics data source to provide graphics data received via the switch to a dedicated graphics processing unit that is separate from the processor.

8. The non-transitory computer-readable medium of claim 7, wherein the instructions are to further to generate a user interface to allow a user to make the selection.

9. The non-transitory computer-readable medium of claim 7, wherein the instructions are to detect a connection of the external device at the input port and make the selection of the input port as the graphics data source automatically without user intervention.

10. The non-transitory computer-readable medium of claim 7, wherein the instructions are to detect a disconnection of the external device at the input port and make the selection of the storage as the graphics data source automatically without user intervention.

11 . A method comprising: obtaining a selection of a source of graphics data; if the selection identifies a local graphics source, setting an input of a graphics processing unit to the local graphics source that is local to the graphics processing unit; and if the selection identifies an external graphics source, setting the input of the graphics processing unit to an external computing device that is temporarily connected to a host computing device that includes the graphics processing unit. 14

12. The method of claim 11 , wherein obtaining the selection comprises generating a user interface at a host computing device.

13. The method of claim 11 , wherein obtaining the selection comprises detecting the connection of the external computing device to the host computing device.

14. The method of claim 13, wherein detecting the connection comprises detecting a short-range wired connection between the external computing device to the host computing device.

15. The method of claim 11 , wherein setting the input of a graphics processing unit comprises providing a setting to a multiplexer.

Description:
SELECTIONS OF GRAPHICS DATA SOURCES FOR GPUS

BACKGROUND

[0001 ] A computing device, such as desktop computer or notebook computer, often processes graphics data and outputs such graphics data to a display device for viewing by a user.

[0002] A computing device may include a graphics processing unit (GPU) to provide dedicated graphics processing capabilities.

BRIEF DESCRIPTION OF THE DRAWINGS

[0003] FIG. 1 is a block diagram of an example computing device that includes a switch to select a data source for a graphics processing unit.

[0004] FIG. 2 is a flowchart of an example method to select a data source for a graphics processing unit.

[0005] FIG. 3 is a block diagram of an example computing device with a connected external device, where the computing device may select local data or external data as input to a graphics processing unit.

[0006] FIG. 4 is a block diagram of the example computing device of FIG. 3 with a user-interface to select a source of graphics data.

DETAILED DESCRIPTION

[0007] A GPU often increases the bulk, cost, power draw, and heat generation of a computing device. GPUs are typically made for non-portable computing devices, such as desktop computers or all-in-one (AIO) computers. Portable computing devices, such as notebook computers, are sensitive to some or all of the aforementioned factors and, hence, are often designed without GPUs. However, portable computing devices often have equivalent or nearly equivalent capabilities as desktop computers when it comes to processor, memory, network speed, and mass storage. As such, portable computing devices are subject to relatively weak advanced graphics capabilities.

[0008] It is therefore often the case that a user will use their portable computing device throughout the day at various locations for various tasks. However, when a graphics intensive application is to be executed, such as a game or modeling program, the user may find that the portable computing device lacks sufficient graphics processing capabilities for a satisfactory result. There may be latency in execution, or the portable computing device may generate substantial heat. As such, the user may have to use a different, more capable computing device, which can be an inconvenience if the user prefers the physical user interface (e.g., keyboard, trackpad, etc.) of the portable computing device or if they have the relevant data on the portable computing device. The user would then have to transfer the data to the other computing device to execute the application effectively and use a physical user interface that is less preferable.

[0009] The user could use an external GPU to augment the graphics capabilities of the portable computing device. However, a typical external GPU is a specialized, single-purpose peripheral device that has no other purpose when not connected to a portable computing device.

[0010] This disclosure concerns a computing device, such as a desktop computer, notebook computer, or all-in-one (AIO) computer, that includes a dedicated GPU that can be shared with a portable computing device, such as a portable notebook computer. The GPU-bearing computing device may be not readily portable or less portable than the portable computing device. For example, a desktop computer may be connected to a large display and may be housed in a relatively large case that provides an air circulation space, heat sink, fan, or other cooling apparatus. As such, the desktop computer is not readily portable and does have suitable cooling for a GPU. In another example, a notebook computer includes a GPU and may thus be larger and heavier than a portable notebook computer, at least in part due to a cooling apparatus for the GPU. Consequently, a user may not wish to use such a computer for its portability and may instead treat this computer as non-portable.

[0011 ] The notebook computer may be connected to the computing device via a high-speed connection, such as a Thunderbolt™ connection. Graphics data may be transmitted from the notebook computer to the computing device. The computing device includes a switch to route the incoming graphics data to its GPU instead of using the GPU for local graphics data. The switch may be controlled automatically or via a user interface at the computing device.

[0012] This allows for programs on a portable computing device to be executed with accelerated graphics as afforded by the GPU of the computing device. Use of a single-purpose external GPU may be avoided, as the computing device with its GPU may be used for other purposes when the portable computing device is not connected. Moreover, the display device connected to the GPU-bearing computing device may be used for output of the program on the portable computing device. A desktop or AIO display device is often larger than a typical notebook computer screen. Hence, the portable computing device may use the GPU and the larger display of the computing device.

[0013] FIG. 1 shows an example computing device 100. The computing device 100 may be a desktop computer, an AIO computer, or similar computer. The computing device 100 may be non-portable and have a high heat exhaust capability, such as provided by case with significant interior ventilation space and a high-capacity fan.

[0014] The computing device 100 includes a central processing unit (CPU) 102, storage 104, a GPU 106, an input port 108, and a switch 110 that connects the input port 108 and the storage 104 to the GPU 106. [0015] The CPU 102 may be the main processor of the computing device 100.

[0016] The GPU 106 may be a specialized graphics processor that is separate from the CPU 102. The GPU 106 may be provided on a graphics card that connects to a mainboard that carries the CPU 102. The graphics card may be connected to the mainboard by a bus and expansion slot. In other examples, the GPU 106 is provided on the mainboard with the CPU 102. The GPU 106 is capable of executing a large number of parallel operations, which is useful in quickly processing complex graphics data.

[0017] Storage 104 includes a non-transitory computer-readable medium, such as an electronic, magnetic, optical, or other physical storage device that encodes instructions. The storage 104 may include, for example, random access memory (RAM), video RAM (VRAM), read-only memory (ROM), electrically-erasable programmable read-only memory (EEPROM), flash memory, a hard disk drive (HDD), a solid-state drive (SSD), an optical device, or similar. In this example, storage 104 includes RAM connected to the CPU, VRAM connected to the GPU, and an HDD.

[0018] Storage 104, such as VRAM, may store local graphics data 112 generated at the computing device 100. The local graphics data 112 may originate from another part of the storage, such as an HDD, or the CPU 102. The local graphics data 112 represents graphics that are generated by the computing device 100 and that are to be displayed by the computing device 100. For example, a game may include graphics data 112 that is loaded from an HDD into RAM and VRAM and manipulated by the CPU 102 issuing commands to the GPU 106. The GPU 106 performs high-speed parallel processing on the graphics data 112 in VRAM based on high-level logic evaluated by the CPU 102.

[0019] The input port 108 is to receive a physical connection of a separate computing device that may be considered an external computing device that is temporarily connected to the GPU-hosting computing device 100. The input port 108 may receive external graphics data 114 from the separate computing device when connected. The input port 108 may support a plurality (e.g., two) of independent serial display signals. The external graphics data 114 may be provided by such a serial display signal. In some implementations, the input port 108 is a Thunderbolt™ port that supports PCI Express™ (PCIe) and DisplayPort™ (DP) serial display signals.

[0020] The switch 110 selectively provides the local graphics data 112 or the external graphics data 114 to the GPU 106. That is, the switch 110 with a local setting provides the local graphics data 112 to the GPU 106 and does not provide the external graphics data 1 14 to the GPU 106. With an external setting, the switch 1 10 provides the external graphics data 114 to the GPU 106 and does not provide the local graphics data 1 12 to the GPU 106. As such, the switch controls the source of input to the GPU 106. Depending on the specific architecture implemented, VRAM of the GPU 106 may be positioned behind the switch 110, in that the local graphics data 112 or the external graphics data 114 is provided to VRAM of the GPU 106 depending on the setting of the switch 1 10.

[0021 ] The switch 110 may include a multiplexer that is compatible with the format of the graphics data 112, 114 and underlying signal scheme, such as PCIe or DP, depending on the implementation.

[0022] The switch 110 may be controllable by the CPU 102. The switch 110 may be controlled by an embedded controller, which may receive a selection from the CPU 102 via an operating system (OS) of the computing device 100.

[0023] Detection of a connection at the input port 108 may be handled by an input port controller that may report a connection to the CPU 102 or OS or to an embedded controller. The input port controller may additionally or alternatively detect external graphics data 114 available at the input port 108.

[0024] As such, operation of the switch 1 10 may be automatic or user controlled. Examples of automatic operation include selecting the input port 108 as the source of graphics data 114 when a connection is detected at the input port 108 or when the external graphics data 114 is detected. The local storage 104 may be selected as the source of graphics data 112 when a disconnection is detected at the input port 108 or when the external graphics data 114 is unavailable. Such selections may be made without user intervention.

[0025] Additionally or alternatively, the CPU 102 may generate a user interface to receive a selection of the local graphics data 112 or the external graphics data 113 to provide to GPU 106. The user interface may include a menu or list of available graphics sources with a user interface element, such as a button, to make a selection. An initial selection may be automatic with a user interface capable of overriding the initial selection.

[0026] As such, the computing device 100 may be operated normally to use the GPU 106 to display local graphics data 112 of an application executed by the CPU 102. Then, when the user wishes to use the GPU with a separate computing device, such as a notebook computer, which may not have a dedicated GPU or a sufficiently powerful GPU, the user connects the computing device to the input port 108, so that the computing device provides the external graphics data 114. The switch 110 is then controlled to select the external graphics data 114 as the source of graphics data for the GPU 106 to display. When use of the GPU 106 by the separate computing device is completed, the switch 110 may controlled to select the local graphics data 112 again, if use of the computing device 100 is to continue.

[0027] FIG. 2 shows an example method 200 to selecting a graphics data source for a GPU. The method 200 may be implemented by a computing device, such as a computing device 100 discussed above. The method 200 may be implemented with processor-executable instructions that may be stored or originate in a non-transitory computer-readable medium. Instructions may be directly executed, such as a binary file, and/or may include interpretable code, bytecode, source code, or similar instructions that may undergo additional processing to be executed. [0028] At block 202, a selection for a graphics data source is obtained. The selection may include a user input to a user interface, such as user selection of a graphics data source from a list or menu. Alternatively or additionally, the selection may be automatic, such as triggered by a physical connection or disconnection of an external device that is capable of providing graphics data or detection of the presence of graphics data at an input port.

[0029] At block 204, the selection is determined to be local or external. If the selection indicates local graphics data, then a switch is set to direct the local graphics data to the GPU, at block 206. Alternatively, if the selection indicates external graphics data, then the switch is set to direct the external graphics data to the GPU, at block 208.

[0030] At block 210, the selected graphics data is provided to the GPU. The GPU then processes the selected graphics data for display at a display device connected to the GPU, such as a local monitor. In other examples, the graphics data processed by the GPU may be displayed at another display device, such as a monitor at the external device.

[0031 ] The method 200 may be continually repeated, so that selection of local or external graphics data may be made at the user’s convenience.

[0032] FIG. 3 shows an example computing device 300, which includes a GPU 106, and a connected external computing device 350, that may not include a GPU, may include a low-power GPU, or may include a GPU that is integrated with a CPU. The computing device 300 may selectively share its GPU 106 with the connected external device 350 to augment the capabilities of the connected external device 350. Detail of components already described herein will not be repeated at length below, and the related description herein may be referenced for components with like terminology and/or like reference numerals.

[0033] The computing device 300 may be a desktop computer, an AIO computer, or a notebook computer that may be larger, heavier, or less portable than the external computing device 350. The computing device 300 includes the GPU 106, a CPU 102, an input/output (I/O) circuit 302, RAM 304, VRAM 306, a display device 308, a port 310, a port controller 312, a storage drive 314 (e.g., an HDD or SSD), and a hub 316. The computing device 300 may further include other components not depicted, such as a network adaptor, a power supply, and an audio subsystem. The computing device 300 may be referred to as a host computing device in that it hosts a GPU 106 that may be used by connected external computing devices 350.

[0034] The RAM 304, VRAM 306, storage drive 314 may be considered storage. The RAM 304 and storage drive 314 may store local graphics data before the local graphics data is transferred to the VRAM 306 and processed by the GPU 106.

[0035] The I/O circuit 302 may provide for user input and output such as a keyboard, mouse, speaker, microphone, camera, and similar. The I/O circuit 302 may provide for a user interface and the display device 308 may be considered part of the user interface.

[0036] The display device 308 may be an external display device that is removably connectable to the GPU 106 via a display port 320 at the GPU 106 and a cable. The GPU 106 may thus drive the display device 308 to output graphics processed by the GPU 106.

[0037] The port 310 may include a physical receptacle to receive a cable 330, such as a Thunderbolt receptable to receive a Thunderbolt cable. The port controller 312 (e.g., Thunderbolt controller) bridges the connection between the port 310 and the hub 316 and manages the data connection of the port 310 to a connected device, such as the other computing device 350.

[0038] The hub 316 may connect the CPU 102, I/O circuit 302, RAM 304, port controller 312, and storage drive 314. The hub 316 may include or be referred to as a chipset, southbridge, controller hub, or platform-controller hub. The hub 316 provides for communications among the connected components. Communications between the CPU 102 and RAM 304 may be via the hub 316 or via a memory controller and/or northbridge, which may be integrated into the CPU 102.

[0039] The hub 316 may include a PCIe switch and lane system or similar high-speed, high-capacity bus or communications interface.

[0040] In this example, the hub 316 includes a switch or multiplexer 318 that selectively connects the GPU 106 and VRAM 306 to the port 310 as an external source of graphics data or to a local, internal source of graphics data, such as the CPU 102, RAM 304, or storage drive 314.

[0041 ] The computing device 350 includes a CPU 352, RAM 354, a display device 356, a storage drive 358 (e.g., an HDD or SSD), a port 360, a port controller 362, and a hub 364. The computing device 350 may further include other components not depicted, such as an I/O circuit, a network adaptor, a power supply, and an audio subsystem.

[0042] The computing device 350 may be a portable computing device, such as a portable notebook computer. The computing device 350 may lack a GPU, may include an integrated GPU on the same die as the CPU 352, or may include a GPU that is less capable than the GPU 106 of the computing device 300. The computing device 350 may therefore be connected to the computing device 300 to use the GPU 106 and display device 308 of the computing device 300.

[0043] The CPU 352, RAM 354, storage drive 358, port 360, port controller 362, and hub 364 of the computing device 350 may be similar to the like components of the computing device 300.

[0044] The display device 356 may be integral to the computing device 350 and therefore not readily changeable. The display device 356 may be integrated into the housing of the computing device 350, such as is the case with a notebook computer. The display device 356 may be smaller than the display device 308 of the computing device 300. [0045] The computing devices 300, 350 may be temporarily connected by a cable 330 connected between the ports 310, 360. The cable 330 provides for a relatively short-range connection (e.g., 10 ft or 3 m) between the computing devices 300, 350. A short-range connection may be considered a local wired connection that connects computing devices 300, 350 when they are at the same location, such as on the same desk or in the same room.

[0046] The port controllers 312, 362 may provide recognition of the capabilities of the GPU 106 of the computing device 300 to the computing device 350. The GPU 106 and port controller 312 of the computing device 300 may be programmed to enumerate the GPU 106 as a device accessible through the port controller 312 and port 310. The enumeration or accessibility may be contingent on the setting of the multiplexer 318. The port controller 362 may recognize the availability of the GPU 106 when the cable 330 makes the connection between the ports 310, 360 and when the multiplexer 318 is set accordingly. The computing device 350 may thus recognize the port 360 as a destination for graphics data and allow the selection of the port 360 as an output for graphics data. Hence, when the multiplexer 318 connects the GPU 106 to the port 310 and the when cable 330 connects the computing devices 300, 350 together, the computing device 350 may provide graphics data to the GPU 106 of the other computing device 300 for processing and display at the display device 308. Conversely, when the multiplexer 318 connects the GPU 106 to an integral component of the computing device 300 or when the cable 330 is disconnected, then the computing device 350 no longer recognizes the port 310 as a destination for graphics data. As such, external or local graphics data may be selectively provided to the GPU 106.

[0047] FIG. 4 shows the computing device 300 with a user interface 400 to allow a user to select the source of graphics for processing by the GPU 106. The user interface 400 may be generated by the CPU 102 and outputted by the display device 308 and respond to input via the I/O circuit 302. The user interface 400 may include a message 402 to the user informing them of a choice of graphics data, and a control 404 to allow a selection 406 of the source of graphics data. The selection 406 may be used to set the multiplexer 318 to direct the selected graphics data, whether from the external computing device 350 or local to the computing device 300, to the GPU 106 for processing and display at the display device 308. The selection 406 setting the multiplexer 318 is shown illustratively, and in various implementations occurs through the CPU 102, an OS, and/or a driver.

[0048] A selection 408 for the multiplexer 318 may additionally or alternatively be automatic, such as upon detection of a connection or disconnection of the external computing device 350. For example, instructions at the port controller 312, the CPU 102, the OS, and/or a driver may detect connection and disconnection of the external computing device 350 and respectively provide a selection 408 to the multiplexer 318 of the port 310 or the local computing device 300 as the graphics data source for the GPU 106, automatically without user intervention.

[0049] The Ul and automatic selections 406, 408 may both be considered when selecting a graphics source. For example, the Ul selection 406 may override an automatic selection 408. In further examples, an initial Ul selection 406, which may be made when the computing device 350 is first connected, may be taken as a default automatic selection 408 the next time the computing device 350 is connected.

[0050] In view of the above, it should be apparent that a computing device may share its GPU with other computing devices that lack sufficient graphics processing capabilities for certain tasks. By sharing its GPU, the computing device may also share its display device, which may be larger or more suitable for GPU-related tasks. The computing device may also be used normally when no other computing device uses its GPU.

[0051 ] It should be recognized that features and aspects of the various examples provided above can be combined into further examples that also fall within the scope of the present disclosure. In addition, the figures are not to scale and may have size and shape exaggerated for illustrative purposes.