27.10.2015 Views

Advanced Configuration and Power Interface Specification

ACPI_6.0

ACPI_6.0

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Processor <strong>Configuration</strong> <strong>and</strong> Control<br />

together. For the sake of efficiency, the platform should generally not enter a power state with a<br />

higher minimum residency than the requested one. However, this is not a strict functional<br />

requirement. The platform may resolve to a state with higher minimum residency if it believes that is<br />

the most efficient choice based on the specific states <strong>and</strong> circumstances.<br />

Using the above example in Figure 8-46, a simple flow would look like this:<br />

• Core0 goes idle – OS requests Core0 <strong>Power</strong> Down, Cluster0 Retention<br />

• Platform receives Core0 requests – place Core0 in the <strong>Power</strong> Down state<br />

• Core1 goes idle – OS requests Core1 <strong>Power</strong> Down, Cluster0 <strong>Power</strong> Down<br />

• Platform receives Core1 request – puts Core1 in the <strong>Power</strong> Down state, <strong>and</strong> takes shallowest<br />

vote for Cluster0, thus placing it into the Retention state<br />

If the OSPM wanted to request power states beyond the cluster level, then Core0 <strong>and</strong> Core1 would<br />

both vote for an idle state at System level too, <strong>and</strong> the platform would resolve the final state selection<br />

across their votes <strong>and</strong> votes from any other processors under the System hierarchy via the method<br />

described above.<br />

As mentioned above, certain platforms support a mechanism called autopromotion where the votes<br />

for higher level states may be implicit rather than explicit. In this scheme, the platform provides<br />

OSPM with comm<strong>and</strong>s to request idle states at a lower level of the processor hierarchy which<br />

automatically imply a specific idle state request at the respective higher level of the hierarchy. There<br />

is no comm<strong>and</strong> to explicitly request entry into the higher level state, only the implicit request based<br />

on the lower level state.<br />

For example, if the platform illustrated in Figure 8-46 uses autopromotion for the Cluster0 Clock<br />

Gated state, neither Core0 nor Core1 can explicitly request it. However, a core level Clock Gate<br />

request from either Core0 or Core1 would imply a Cluster0 Clock Gate request. Therefore, if both<br />

cores request core clock gating (or deeper), Cluster0 will be clock gated automatically by the<br />

platform. Additional details on how autopromotion is supported by ACPI can be found in<br />

Section 8.4.4.3.4.<br />

8.4.4.2.2 OS Initiated<br />

In the OS Initiated coordination scheme, OSPM only requests an idle state for a particular hierarchy<br />

node when the last underlying processor goes to sleep. Obviously a processor always selects an idle<br />

state for itself, but idle states for higher level hierarchy nodes like clusters are only selected when the<br />

last processor in the cluster goes idle. The platform only considers the most recent request for a<br />

particular node when deciding on its idle state.<br />

The main motivations for OS Initiated coordination are:<br />

1. Avoid overhead of OSPM evaluating selection for higher level idle states which will not be used<br />

since other processors are still awake<br />

2. Allow OSPM to make higher level idle state selections based on the latest information by taking<br />

only the most recent request for a particular node <strong>and</strong> ignoring requests from processors which<br />

went to sleep in the past (<strong>and</strong> may have been based on information which is now stale)<br />

Version 6.0 439

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

Saved successfully!

Ooh no, something went wrong!