# US 2014/0152678 A1 · Low power application execution on a data processing device having low graphics engine utilization

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2014/0152678 A1
- Document ID: US20140152678A1
- Status: Published application
- Kind: A1
- Application number: 13/691,866
- Filed: 2012-12-03
- Published: 2014-06-05
- Earliest claimed: 2012-12-03
- Assignees: NVIDIA Corporation
- Inventors: MITESH SHARMA
- Web page: https://patentgrep.com/patent/US20140152678A1

## CPC

- G09G 5/363: {Graphics controllers}
- G06F 3/14: Digital output to display device {; Cooperation and interconnection of the display device with other functional units}
- G09G 5/395: Arrangements specially adapted for transferring the contents of the bit-mapped memory to the screen (G09G5/399 takes precedence)
- G09G 2330/021: Power management, e.g. power saving
- G09G 2330/022: in absence of operation, e.g. no data being entered during a predetermined time
- G09G: ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION (arrangements for transferring data between digital computers and displays G06F3/14; static indicating arrangements comprising an association of a number of separate sources or light control cells G09F9/00; static indicating arrangements comprising integral associations of a number of light sources H01J, H01K, H10H, H05B33/12; scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission, details thereof H04N1/00)
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A method includes determining, through test instructions executing on a processor of a data processing device, utilization of a graphics engine of the processor by an application executing thereon based on initiation thereof through a driver associated with the processor and/or an operating system executing on the data processing device, and detecting, through the test instructions, an idle state of one or more non-graphics engine(s) of the processor. The method also includes transitioning, through the processor, a frame buffer associated therewith into a self-refresh mode of low power utilization thereof, and copying data related to the execution of the application to a memory of the data processing device. Further, the method includes clock-gating the one or more non-graphics engine(s) to reduce a power consumption of the data processing device, and enabling the graphics engine to utilize the copied data in the memory for continued execution of the application.

## Claims

### Claim 1

A method, comprising:
determining, through test instructions executing on a processor of a data processing device, utilization of a graphics engine of the processor by an application executing on the data processing device based on initiation thereof through a driver associated with at least one of the processor and an operating system executing on the data processing device;
detecting, through the test instructions executing on the processor, an idle state of at least one non-graphics engine of the processor;
transitioning, through the processor, a frame buffer associated therewith into a self-refresh mode of low power utilization thereof following determination of utilization of the graphics engine below a threshold and detection of the idle state of the at least one non-graphics engine;
copying data related to the execution of the application to a memory of the data processing device in conjunction with the transitioning of the frame buffer into the self-refresh mode;
clock-gating the at least one non-graphics engine following the transitioning of the frame buffer into the self-refresh mode and copying the data related to the execution of the application to the memory to reduce a power consumption of the data processing device; and
enabling the graphics engine to utilize the copied data in the memory for continued execution of the application on the data processing device.

### Claim 2 (depends on 1)

The method of claim 1, further comprising:
monitoring, through the test instructions executing on the processor, the utilization of the graphics engine and the at least one non-graphics engine based on utilization of the frame buffer.

### Claim 3 (depends on 1)

The method of claim 1, further comprising:
monitoring, through the test instructions executing on the processor, the utilization of the graphics engine and the at least one non-graphics engine based on at least one of clock speed thereof and a parameter of a bus to which the processor is coupled to, the parameter being at least one of a speed of the bus and a power state of the bus.

### Claim 4 (depends on 1)

The method of claim 1, further comprising rendering, through the processor, data on a display unit of the data processing device based on the utilization of the copied data in the memory.

### Claim 5 (depends on 1)

The method of claim 1, wherein when the utilization of the graphics engine exceeds the threshold, the method further comprises:
transitioning, through the processor, the frame buffer back into an active mode thereof; and
copying the data from the memory back into the frame buffer following the transitioning of the frame buffer back into the active mode.

### Claim 6 (depends on 5)

The method of claim 5, further comprising:
turning on, through the processor, the clock-gated at least one non-graphics engine following detection of activity therein based on another threshold.

### Claim 7 (depends on 1)

The method of claim 1, wherein at least one of:
the processor is one of a Graphics Processing Unit (GPU) and a Central Processing Unit (CPU), and
the memory is one of a system memory, a cache memory and a local memory associated with the processor.

### Claim 8

A non-transitory medium, readable through a data processing device and including instructions embodied therein that are executable through the data processing device, comprising:
instructions to determine, through a processor of the data processing device, utilization of a graphics engine of the processor by an application executing on the data processing device based on initiation thereof through a driver associated with at least one of the processor and an operating system executing on the data processing device;
instructions to detect, through the processor, an idle state of at least one non-graphics engine of the processor;
instructions to transition, through the processor, a frame buffer associated therewith into a self-refresh mode of low power utilization thereof following determination of utilization of the graphics engine below a threshold and detection of the idle state of the at least one non-graphics engine;
instructions to copy data related to the execution of the application to a memory of the data processing device in conjunction with the transitioning of the frame buffer into the self-refresh mode;
instructions to clock-gate the at least one non-graphics engine following the transitioning of the frame buffer into the self-refresh mode and copying the data related to the execution of the application to the memory to reduce a power consumption of the data processing device; and
instructions to enable the graphics engine to utilize the copied data in the memory for continued execution of the application on the data processing device.

### Claim 9 (depends on 8)

The non-transitory medium of claim 8, further comprising:
instructions to monitor, through the processor, the utilization of the graphics engine and the at least one non-graphics engine based on utilization of the frame buffer.

### Claim 10 (depends on 8)

The non-transitory medium of claim 8, further comprising:
instructions to monitor, through the processor, the utilization of the graphics engine and the at least one non-graphics engine based on at least one of clock speed thereof and a parameter of a bus to which the processor is coupled to, the parameter being at least one of a speed of the bus and a power state of the bus.

### Claim 11 (depends on 8)

The non-transitory medium of claim 8, further comprising instructions to render, through the processor, data on a display unit of the data processing device based on the utilization of the copied data in the memory.

### Claim 12 (depends on 8)

The non-transitory medium of claim 8, wherein when the utilization of the graphics engine exceeds the threshold, the non-transitory medium further comprises:
instructions to transition, through the processor, the frame buffer back into an active mode thereof; and
instructions to copy the data from the memory back into the frame buffer following the transitioning of the frame buffer back into the active mode.

### Claim 13 (depends on 12)

The non-transitory medium of claim 12, further comprising:
instructions to turn on, through the processor, the clock-gated at least one non-graphics engine following detection of activity therein based on another threshold.

### Claim 14 (depends on 8)

The non-transitory medium of claim 8, comprising:
instructions compatible with one of a GPU and a CPU as a processor, and
instructions compatible with one of a system memory, a cache memory and a local memory associated with the processor as the memory.

### Claim 15

A data processing device, comprising:
a memory;
a processor communicatively coupled to the memory; and
a driver component associated with at least one of the processor and an operating system executing on the data processing device, the driver component being configured to enable:
determining utilization of a graphics engine of the processor by an application executing on the data processing device through test instructions executing on the processor,
detecting, through the test instructions executing on the processor, an idle state of at least one non-graphics engine of the processor,
transitioning, through the processor, a frame buffer associated therewith into a self-refresh mode of low power utilization thereof following determination of utilization of the graphics engine below a threshold and detection of the idle state of the at least one non-graphics engine,
copying data related to the execution of the application to the memory in conjunction with the transitioning of the frame buffer into the self-refresh mode,
clock-gating the at least one non-graphics engine following the transitioning of the frame buffer into the self-refresh mode and copying the data related to the execution of the application to the memory to reduce a power consumption of the data processing device, and
utilizing of the copied data in the memory by the graphics engine for continued execution of the application on the data processing device.

### Claim 16 (depends on 15)

The data processing device of claim 15, wherein the test instructions executing on the processor enable monitoring of the utilization of the graphics engine and the at least one non-graphics engine based on utilization of the frame buffer.

### Claim 17 (depends on 15)

The data processing device of claim 15, wherein the test instructions executing on the processor enable monitoring of the utilization of the graphics engine and the at least one non-graphics engine based on at least one of clock speed thereof and a parameter of a bus to which the processor is coupled to, the parameter being at least one of a speed of the bus and a power state of the bus.

### Claim 18 (depends on 15)

The data processing device of claim 15, wherein the processor is configured to render data on a display unit associated with the data processing device based on the utilization of the copied data in the memory.

### Claim 19 (depends on 15)

The data processing device of claim 15, wherein when the utilization of the graphics engine exceeds the threshold, the driver component is further configured to enable:
transitioning, through the processor, the frame buffer back into an active mode thereof, and
copying the data from the memory back into the frame buffer following the transitioning of the frame buffer back into the active mode.

### Claim 20 (depends on 19)

The data processing device of claim 19, wherein the driver component is further configured to enable:
turning on, through the processor, the clock-gated at least one non-graphics engine following detection of activity therein based on another threshold.
