13.07.2015 Views

Intel® 64 and IA-32 Architectures Optimization Reference Manual

Intel® 64 and IA-32 Architectures Optimization Reference Manual

Intel® 64 and IA-32 Architectures Optimization Reference Manual

SHOW MORE
SHOW LESS
  • No tags were found...

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

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

POWER OPTIMIZATION FOR MOBILE USAGESActiveSleepThread 1(core 1)ActiveSleepThread 2(core 2)ActiveSleepCPUDeeperSleepFigure 10-6. Progression to Deeper SleepEnabling Both Cores to Take Advantage of Intel Enhanced Deeper Sleep.To best utilize processor-specific C-state (e.g., Intel Enhanced Deeper Sleep) toconserve battery life in multithreaded applications, a multi-threaded applicationshould synchronize threads to work simultaneously <strong>and</strong> sleep simultaneously usingOS synchronization primitives. By keeping the package in a fully idle state longer(satisfying ACPI C3 requirement), the physical processor can transparently takeadvantage of processor-specific Deep C4 state if it is available.Multi-threaded applications need to identify <strong>and</strong> correct load-imbalances of itsthreaded execution before implementing coordinated thread synchronization. Identifyingthread imbalance can be accomplished using performance monitoring events.Intel Core Duo processor provides an event for this purpose. The event(Serial_Execution_Cycle) increments under the following conditions:• Core actively executing code in C0 state• Second core in physical processor in idle state (C1-C4)This event enables software developers to find code that is executing serially, bycomparing Serial_Execution_Cycle <strong>and</strong> Unhalted_Ref_Cycles. Changing sections ofserialized code to execute into two parallel threads enables coordinated threadsynchronization to achieve better power savings.Although Serial_Execution_Cycle is available only on Intel Core Duo processors,application thread with load-imbalance situations usually remains the same forsymmetric application threads <strong>and</strong> on symmetrically configured multicore processors,irrespective of differences in their underlying microarchitecture. For thisreason, the technique to identify load-imbalance situations can be applied to multithreadedapplications in general, <strong>and</strong> not specific to Intel Core Duo processors.10-13

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

Saved successfully!

Ooh no, something went wrong!