# US 9,436,628 B2 · Thermal mitigation using selective I/O throttling

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

- Number: US 9,436,628 B2
- Document ID: US9436628B2
- Status: Granted
- Kind: B2
- Application number: 14/503,312
- Filed: 2014-09-30
- Published: 2015-12-03
- Granted: 2016-09-06
- Earliest claimed: 2014-05-30
- Assignees: Apple Inc.
- Applicants: Apple Inc.
- Inventors: Umesh Suresh Vaishampayan; Derek R. Kumar; Christopher John Sarcone; Russell Alexader Blaine; Tejas Arun Bahulkar; Shachar Katz; Joseph Sokol, Jr.; Matthew John Byom
- Web page: https://patentgrep.com/patent/US9436628B2

## CPC

- G06F 13/26: with priority control
- G05D 23/1917: {using digital means}
- G06F 1/206: {comprising thermal management}
- G06F 13/102: {where the program performs an interfacing function, e.g. device driver (G06F13/105 takes precedence; contention policies within device drivers G06F9/4881; scheduling within device drivers G06F9/52)}
- Y02D 10/00: Energy efficient computing, e.g. low power processors, power management or thermal management
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- G05D: SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- Y02D: CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE

## Abstract

A method and apparatus of a device that manages a thermal profile of a device by selectively throttling input/output operations of the device is described. In an exemplary embodiment, the device monitors the thermal profile of the device, where the device executes a plurality of processes that utilize storage of the device. In addition, the plurality of processes include a high priority process and a low priority process. If the thermal profile of the device exceeds a thermal threshold, the device decreases a first bandwidth range for the low priority process and maintains a second bandwidth range for the high priority process. The device further processes a storage request of the low priority process using the first bandwidth range and processing a storage request of the high priority process using the second bandwidth range.

## Claims

### Claim 1

A non-transitory machine-readable medium having executable instructions to cause one or more processing units to perform a method to manage a thermal profile of a device, the method comprising:
monitoring the thermal profile of the device, wherein the device is executing a plurality of input/output operations that utilize storage of the device, the plurality of input/output operations including a first priority input/output operation and a second priority input/output operation;
determining that the thermal profile of the device exceeds a first thermal threshold,
decreasing a first bandwidth range for the first input/output operation to less than 100%, and
decreasing a second bandwidth range for the second input/output operation to less than 100% and the second bandwidth range is greater than the first bandwidth range, wherein the thermal profile is selected from the group consisting of device temperature and audible fan noise;
processing a storage request of the first priority input/output operation using the first bandwidth range;
processing a storage request of the second priority input/output operation using the second bandwidth range; and
determining that the thermal profile falls below the first thermal threshold,
restoring the first and second bandwidth range to previous values.

### Claim 2 (depends on 1)

The non-transitory machine-readable medium of claim 1, wherein a bandwidth range sets an amount of available storage bandwidth that is made is available for an input/output operation.

### Claim 3 (depends on 1)

The non-transitory machine-readable medium of claim 1, determining that the thermal profile of the device exceeds a second thermal threshold,
further decreasing the first and second bandwidth ranges, wherein the second bandwidth range is greater than the first bandwidth range.

### Claim 4 (depends on 1)

The non-transitory machine-readable medium of claim 1, if the thermal profile falls below the second thermal threshold,
restoring the first and second bandwidth range to previous values.

### Claim 5 (depends on 1)

The non-transitory machine-readable medium of claim 1, wherein the high priority input/output operation is associated with a visual process and the low priority input/output operation is associated with a batch process.

### Claim 6 (depends on 1)

The non-transitory machine-readable medium of claim 1, wherein the monitoring of the thermal profile comprises:
recording the device temperature.

### Claim 7 (depends on 1)

The non-transitory machine-readable medium of claim 1, further comprising:
maintaining a third bandwidth range; and
processing a storage request for a third priority input/output operation using the third bandwidth range.

### Claim 8 (depends on 1)

The non-transitory machine-readable medium of claim 1, wherein the first bandwidth range is allocated a first set of tokens and the second bandwidth range is allocated a second set of tokens.

### Claim 9 (depends on 8)

The non-transitory machine-readable medium of claim 8, further comprising:
processing an input/output operation corresponding to one of the first and second bandwidth ranges if that bandwidth range has an available token from a set of tokens corresponding to that the one of the first and second bandwidth ranges; and
decrementing a token from the corresponding bandwidth range.

### Claim 10

A method to manage a thermal profile of a device, the method comprising:
monitoring the thermal profile of the device, wherein the device is executing a plurality of input/output operations that utilize storage of the device, the plurality of input/output operations including a first priority input/output operation and a second priority input/output operation;
determining that the thermal profile of the device exceeds a first thermal threshold,
decreasing a first bandwidth range for the first input/output operation to less than 100%, and
decreasing a second bandwidth range for the second input/output operation to less than 100% and the second bandwidth range is greater than the first bandwidth range, wherein the thermal profile is selected from the group consisting of device temperature and audible fan noise;
processing a storage request of the first priority input/output operation using the first bandwidth range;
processing a storage request of the second priority input/output operation using the second bandwidth range; and
determining that the thermal profile falls below the first thermal threshold,
restoring the first and second bandwidth range to previous values.

### Claim 11 (depends on 10)

The method of claim 10, wherein a bandwidth range sets an amount of available storage bandwidth that is made is available for an input/output operation.

### Claim 12 (depends on 10)

The method of claim 10, determining the thermal profile of the device exceeds a second thermal threshold,
further decreasing the first and second bandwidth ranges, wherein the second bandwidth range is greater than the first bandwidth range.

### Claim 13 (depends on 12)

The method of claim 12, if the thermal profile falls below the second thermal threshold,
restoring the first and second bandwidth range to previous values.

### Claim 14

A device to manage a thermal profile of a device, the device comprising:
a processor;
a memory coupled to the processor though a bus; and
a process executed from the memory by the processor that causes the processor to monitor the thermal profile of the device, wherein the device is executing a plurality of input/output operations that utilize storage of the device, the plurality of input/output operations including a first priority input/output operation and a second priority input/output operation, determine the thermal profile of the device exceeds a first thermal threshold, the processor to decrease a first bandwidth range for the first input/output operation to less than 100%, and decrease a second bandwidth range for the second input/output operation to less than 100% and the second bandwidth range is greater than the first bandwidth range, the processor further to process a storage request of the first priority input/output operation using the first bandwidth range, process a storage request of the second priority input/output operation using the second bandwidth range and determine that the thermal profile falls below the first thermal threshold, the processor further to restore the first and second bandwidth range to previous values, wherein the thermal profile is selected from the group consisting of device temperature and audible fan noise.

### Claim 15 (depends on 14)

The device of claim 14, wherein a bandwidth range sets an amount of available storage bandwidth that is made is available for an input/output operation.
