27.10.2015 Views

Advanced Configuration and Power Interface Specification

ACPI_6.0

ACPI_6.0

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

<strong>Advanced</strong> <strong>Configuration</strong> <strong>and</strong> <strong>Power</strong> <strong>Interface</strong> <strong>Specification</strong><br />

System Level Processor<br />

Container<br />

Cluster level Processor<br />

Container<br />

Processor<br />

Running Clock Gated Retention<br />

Running Clock Gated <strong>Power</strong> Down<br />

Running Retention Retention<br />

Running Retention <strong>Power</strong> Down<br />

Running <strong>Power</strong> Down <strong>Power</strong> Down<br />

<strong>Power</strong> Down <strong>Power</strong> Down <strong>Power</strong> Down<br />

8.4.4.2 Idle State Coordination<br />

With hierarchical idle states, multiple processors affect the idle state for any non-leaf hierarchy<br />

node. Taking our example system in Figure 8-46, for cluster 0 to enter a low power state, both Core<br />

0 <strong>and</strong> Core 1 must be idle. In addition, the power state selection done for Core 0 <strong>and</strong> Core 1 as they<br />

go idle has bearing on the state that can be used for Cluster 0. This requires coordination of idle state<br />

requests between the two processors. ACPI supports two different coordination schemes (detailed in<br />

subsections following):<br />

• Platform coordinated<br />

• OS initiated.<br />

The OS <strong>and</strong> the platform can h<strong>and</strong>shake on support for OS Initiated Idle or Platform Coordinated<br />

Idle using the _OSC method as described in Section 6.2.11.2. Note that an Architecture specific<br />

comm<strong>and</strong> may be required to enter OS Initiated mode, in which case please refer to architecture<br />

specific documentation. (For PSCI documentation see http://uefi.org/acpi under the heading “PCSI<br />

<strong>Specification</strong>”; for ARM FFH documentation, see http://uefi.org/acpi under the heading “ARM FFH<br />

<strong>Specification</strong>”.)<br />

8.4.4.2.1 Platform Coordinated<br />

With the Platform Coordinated scheme, the platform is responsible for coordination of idle states<br />

across processors. OSPM makes a request for all levels of hierarchy from each processor meaning<br />

that each processor makes a vote by requesting a local power state for itself, its parent, its parent’s<br />

parent, etc. (In some cases, the vote for a particular hierarchy level may be implicit – see the<br />

autopromotion discussion below for more details). When choosing idle states at higher levels, the<br />

OSPM on a processor may opt to keep a higher level node in a running state – this is still a vote for<br />

that node which the platform must respect. The vote expressed by the OSPM sets out the constraints<br />

on the local power state that the platform may choose for processor, <strong>and</strong> any parent nodes affected<br />

by the vote. In particular the vote expresses that the platform must not enter:<br />

1. A deeper (lower power) local state than the requested one.<br />

2. A local power state with a higher wake up latency than the requested one.<br />

3. A local power state with power resource dependencies that the requested state does not have.<br />

The platform looks across the votes for each hierarchy node from all underlying cores <strong>and</strong> chooses<br />

the deepest local state which satisfies all of the constraints associated with all of the votes. Normally,<br />

this just means taking the shallowest state that one of the cores voted for, since shallower states have<br />

lower wakeup latencies, lower minimum residencies, <strong>and</strong> fewer power resource dependencies.<br />

However, this may not always be the true, as state depth <strong>and</strong> latencies do not always increase<br />

438 April, 2015 Version 6.0

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!