# US 10,372,198 B2 · Controlling performance states of processing engines of a processor

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

- Number: US 10,372,198 B2
- Document ID: US10372198B2
- Status: Granted
- Kind: B2
- Application number: 15/686,222
- Filed: 2017-08-25
- Published: 2017-12-28
- Granted: 2019-08-06
- Earliest claimed: 2015-05-27
- Assignees: Intel Corporation
- Applicants: Intel Corporation
- Inventors: Eliezer Weissmann; Efraim Rotem; Hisham Abu Salah; Yoni Aizik; Doron Rajwan; Nir Rosenzweig; Gal Leibovich; Yevgeni Sabin; Shay Levy
- Web page: https://patentgrep.com/patent/US10372198B2

## CPC

- G06F 1/3287: by switching off individual functional units in the computer system
- G06F 1/324: by lowering clock frequency
- G06F 1/3243: {Power saving in microcontroller unit}
- G06F 1/3296: by lowering the supply or operating voltage
- G06F 9/5094: {where the allocation takes into account power or heat criteria (power management in computers in general G06F1/3203; thermal management in computers in general G06F1/206)}
- 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)
- 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

In one embodiment, a processor comprises: a plurality of processing engines including a first processing engine and a second processing engine to independently execute instructions; and a power controller including a performance state control logic to control a performance state of at least one of the processing engines, and a first logic to determine an average number of active processing engines over a first window, an estimated activity level of the processor for the first window, and adjust at least one of a window length at which the performance state control logic is to perform a performance state determination and at least one activity level threshold, based at least in part on a comparison of the estimated activity level and the average number of active processing engines. Other embodiments are described and claimed.

## Claims

### Claim 1

A machine-readable medium having stored thereon data, which if used by at least one machine, causes the at least one machine to fabricate at least one integrated circuit to perform a method comprising:
measuring an activity overlap between a first processing engine and a second processing engine of a processor during an evaluation interval, based at least in part on a count value of a counter, wherein the counter is updated when the first processing engine and the second processing engine are concurrently in an active state;
estimating an expected activity overlap between the first processing engine and the second processing engine; and
responsive to the measured activity overlap exceeding the expected activity overlap, enabling a performance state of at least one of the first processing engine and the second processing engine to be increased.

### Claim 2 (depends on 1)

The machine-readable medium of claim 1, wherein the method further comprises responsive to the measured activity overlap being less than the expected activity overlap, preventing the performance state of the at least one of the first processing engine and the second processing engine from being increased.

### Claim 3 (depends on 1)

The machine-readable medium of claim 1, wherein estimating the expected activity overlap comprises calculating the expected activity overlap based on a first utilization value of the first processing engine, a second utilization value of the second processing engine, and a duration of the evaluation interval.

### Claim 4 (depends on 1)

The machine-readable medium of claim 1, wherein the method further comprises preventing the first processing engine from operating at a higher performance state if the second processing engine is to be in an active state after the first processing engine completes a pending workload.

### Claim 5

A system comprising:
a processor including a first domain having a plurality of cores, a second domain having at least one graphics engine, and a power controller to control a performance state of the first domain based at least in part on a correlation of execution of a first workload on the first domain and execution of a second workload on the second domain, wherein the correlation comprises a comparison between a random overlap of the execution of the first workload on the first domain and the execution of the second workload on the second domain within a first window and a measured overlap of the execution of the first workload on the first domain and the execution of the second workload on the second domain within the first window, wherein the power controller is further to determine an average number of active cores over the first window, an estimated activity level of the processor for the first window, and adjust a window length at which the power controller is to control the performance state, based at least in part on a comparison of the estimated activity level and the average number of active cores; and
a dynamic random access memory (DRAM) coupled to the processor.

### Claim 6 (depends on 5)

The system of claim 5, wherein the power controller is to increase the window length when a sum of the estimated activity level and a threshold value is less than the average number of active cores.

### Claim 7 (depends on 5)

The system of claim 5, wherein the power controller is to receive a request from a user for a first performance state for the processor, and prevent operation of the processor at the first performance state based on the comparison of the estimated activity level and the average number of active cores.

### Claim 8 (depends on 5)

The system of claim 5, wherein the processor further comprises:
a first counter to maintain a first count of clock cycles when the plurality of cores are active; and
a second counter to maintain a second count of clock cycles when at least one of the plurality of cores is active.

### Claim 9 (depends on 5)

The system of claim 5, wherein the power controller is to determine the correlation by comparison of an activity overlap between the first domain and the second domain to an estimated activity overlap value.

### Claim 10

A processor comprising:
a plurality of processing engines including a first processing engine and a second processing engine to independently execute instructions; and
a power controller including a performance state controller to control a performance state of at least one of the plurality of processing engines, and a control circuit, wherein the control circuit is to:
measure an activity overlap between the first processing engine and the second processing engine during an evaluation interval;
estimate an expected activity overlap between the first processing engine and the second processing engine; and
responsive to the measured activity overlap exceeding the expected activity overlap, enable a performance state of at least one of the first processing engine and the second processing engine to be increased, wherein the performance state controller is to increase the performance state of the first processing engine when the processor is to execute a user interactive workload and to prevent the performance state increase when the processor is to execute a non-user interactive workload.

### Claim 11 (depends on 10)

The processor of claim 10, wherein the control circuit is to prevent the performance state of the at least one of the first processing engine and the second processing engine from being increased in response to the measured activity overlap being less than the expected activity overlap.

### Claim 12 (depends on 10)

The processor of claim 10, wherein the control circuit is to measure the activity overlap based at least in part on a count value of a counter, wherein the counter is updated when the first processing engine and the second processing engine are concurrently in an active state.

### Claim 13 (depends on 12)

The processor of claim 12, wherein the control circuit is to calculate the expected activity overlap based on a first utilization value of the first processing engine, a second utilization value of the second processing engine, and a duration of the evaluation interval.

### Claim 14 (depends on 13)

The processor of claim 13, wherein the control circuit is to prevent the first processing engine from operation at a higher performance state if the second processing engine is to be in an active state after the first processing engine completes a pending workload.

### Claim 15 (depends on 10)

The processor of claim 10, further comprising:
a first counter to maintain a first count of clock cycles when the plurality of processing engines are active; and
a second counter to maintain a second count of clock cycles when at least one of the plurality of processing engines is active.

### Claim 16 (depends on 15)

The processor of claim 15, wherein the control circuit is to measure the activity overlap based at least in part on the first count and the second count.

### Claim 17 (depends on 10)

The processor of claim 10, wherein the performance state controller is to receive a request from a user for a first performance state for the processor, and prevent operation of the processor at the first performance state based on comparison of the measured activity overlap and the expected activity overlap.
