Practical and OS-Driven Power Management Chris Ragsdale
Intro Data is stored as ones and zeros… What does this actually look like? How exactly does electricity power computers?
Layout Electricity Fundamentals Relating to Computers Inside the CPU Inside Memory What does the Power Supply do? Primary Power Consumers in Computers CPU, Memory, HDD, Wifi transmitter/receiver, Display/GPU Power Management I/O States - Windows and OS X OS power management techniques for Memory, HDD and Wifi receiver
Fundamentals CPU Memory Power Supply
Fundamentals - The CPU
Fundamentals - Memory
Fundamentals - Power Supply
Primary Power Consumers CPU Memory HDD Wireless Transmitter / Receiver Display / GPU
Primary Power Consumers - CPU Clock cycle, Voltage and Power Consumption related Cycle and voltage directly related Power = Voltage^2 Dynamic Voltage Frequency Scaling Adaptive Frequency Scaling
Primary Power Consumers - Memory Power floor Capacitors constantly leaking, must be refilled Low power effects overall system efficiency
Primary Power Consumers - HDD
Primary Power Consumers - Wifi transmitter/receiver
Primary Power Consumers - Display/GPU
Power Management I/O Device States Examples Windows OS X Memory HDD Wifi
Power Management - I/O States Similar to Process States Allow OS to utilize Dynamic Power Switching (DPS) Sleep, Hibernate
I/O States - Windows States: D0, D1, D2, D3 0 = fully on, 1 = less power, 2 = even less power, 3 = minimum power <-> off Each state tracks device data Power Consumption Device Context Driver Behavior Restore Time Wake-Up Capability
I/O States - OS X States: On, Reduced-Power, Intermediate, Off Intermediate = minimum state-retaining power States track following data Current state capabilities (booleans) Power Parent requirements Power Children requirements Power state structure version
Memory Power Management When processor is idle For a short time... For a long time...
HDD Power Management When is it worth it to power down the HDD?
Wifi Receiver Power Management Computer / router cooperation Router information buffer
Thank You!