Включение энергосбережения в процессорах ПК.
Процессор ПК может находиться в «сонном» состоянии,в этом состоянии энергопотребление процессора снижается в зависимости от «глубины сна» (различают состояния «сна» процессора от C0 до C3):
1.
C0 - рабочее состояние процессора. В этом состоянии процессор выполняет обычные
вычислительные и обменные функции без ограничений;
2. C1 - начальное состояние
сна. В этом состоянии энергопотребление процессора незначительно снижается, что
не дает серьезного повода для утверждения о введении функциональных ограничений
на выполнение программ. Вывод процессора из этого состояния осуществляется
настолько быстро, что операционная система не в состоянии среагировать на
временные задержки, связанные с этим процессом;
3. C2 - это факультативное
(необязательное) состояние процессора. Процессор устанавливается в состояние
еще более низкого энергопотребления, чем в C1. Время вывода из состояния C2
записывается в специальную таблицу FADT и учитывается затем операционной
системой. В этом состоянии процессор продолжает управлять кэшем;
4. C3 - состояние глубокого
сна. В этом состоянии процессор прекращает управление кэшами L1 и L2. В случае
если устройство захватывает шину в режиме Bus Master для обмена ПДП, процессор
переводится из состояния C3 в C2 или C1. В обычном режиме ПДП при частых
запросах на захват шины операционная система переводит процессор в менее
глубокое, чем C3, состояние сна. Состояние
C3 предлагает еще более экономное потребление электропитания, чем в состояниях
C1 и C2. Неблагоприятное аппаратное время ожидания для этого состояния
предусмотрено через системные микропрограммы ACPI и операционное программное
обеспечение, которое может использовать эту информацию, чтобы определяться,
когда состояние C2 должно быть использовано вместо состояния C3. В состоянии C3
кэш-память процессора поддерживает режим хранения данных, но игнорируют любое к
ней обращение. Операционное программное обеспечение обеспечивает поддержку
связности кэш-памяти. Более глубокий Sleep (С4) включает состояние Deeper Sleep
и состояние Intel Ehanced Deeper Sleep.
У процессоров Intel имеется
группа входных контактов, при подаче на них управляющих сигналов происходит
переход процессора в специальные состояния:
- сигнал на входе STPCLK#
вызывает переключение процессора из рабочего режима в состояние STOP GRANT
(процессор работает с приостановками и потребляет меньше электроэнергии). По
снятию сигнала процессор возвращается в рабочий режим;
- сигнал на входе SLP#
переключает процессор из состояния STOP GRANT в состояние Sleep (сна), он
потребляет еще меньше энергии, не выбирает и не выполняет команды программы. По
снятию процессор возвращается в режим STOP GRANT;
- сигнал на входе DPSLP#
вызывает переход процессора из режима "сна" (Sleep) в режим
"глубокого сна" (Deep Sleep). По снятию сигнала процессор
возвращается в режим "сна" (Sleep).
- сигнал на входе DPRSTP#
вызывает переход процессора из режима "глубокого сна" (Deep Sleep) в
режим "глубочайшего сна" (Deeper Sleep). По снятию сигнала процессор
возвращается в режим "глубокого сна" (Deep Sleep).
- сигнал на входе DPWR# - это
сигнал управления включением питания буферов шины данных процессора.
Один из основных способов
регулировки потребления электроэнергии процессора состоит в чередовании его
рабочих и нерабочих циклов. При этом используются значения Duty Width и Duty
Value. Первое из этих значений определяет временной цикл, а второе соотношение
периодов работы и периодов покоя. Останов процессора осуществляется за счет
прекращения подачи сигналов тактовой частоты.
В процессорах архитектуры
Nehalem имеется специальный блок PCU (Power Control Unit), предназначенный для
мониторинга и управления питанием процессора (по сути, PCU - это целый
микроконтроллер, т. е. процессор в процессоре). PCU, основываясь на данных
сенсоров и датчиков, может полностью выключать отдельные ядра и блоки CPU.
Благодаря этой функциональности инженеры Intel смогли внедрить в Core i7
технологию Turbo Boost.
Относительная
энергоэкономичность Core i7 обусловлена низким рабочим напряжением (1,20 В) и
размещением в теле процессора специального микроконтроллера PCU, в
функциональные обязанности которого входит мониторинг и регуляция показателей
напряжения, силы тока (и температуры) ядер. Кроме того, PCU способен полностью
отключать одно или несколько ядер от энергоснабжения. В зависимости от
ситуации, при работе в приложениях, не (полностью) использующих многозадачные
способности Nehalem, часть ядер отключается, а частота оставшихся - повышается
(при этом центральный процессор в целом не выходит за рамки своего TDP).
Например, в четырехядерных
Core i7 могут быть полностью отключены два либо три ядра, и во втором случае
частота оставшегося единственного ядра будет поднята еще больше. Возьмем случай
с двухядерным процессором. Поскольку в однопоточных приложениях от
многоядерности эффекта мало, основную роль здесь играет производительность
отдельно взятого ядра. Поэтому Intel предусмотрела увеличение частоты
работающего ядра (non-idle core), в то время как второе (idle core) находится в
одном из состояний бездействия C3-C6 (рис. 1) и его тепловыделение резко
сокращается. Эту разницу использует работающее ядро и повышает свою частоту до
достижения процессором граничного уровня TDP. Основные состояния ядра,
автоматически определяемые процессором, показаны в табл. 1.
Рис. 1.
Состояния энергопотребления процессора Core i7
Смысл динамического
масштабирования заключается в том, что любое ядро может быть полностью
отключено, если оно не участвует в данный момент в работе (вентильные
транзисторы - power gates-transistors, в режиме выключения обеспечивают
реальное прекращение подачи питания).
Таблица 1
Поскольку выбор режима Turbo
mode относится к уровню отдельного ядра, то возникают разнообразные
комбинационные решения с включением (отключением) одного или нескольких ядер.
Turbo Mode не влияет на общую стабильность системы при разгоне CPU. В любом
случае, данную технологию легко отключить через BIOS материнской платы.
В процессорах семейства Sandy
Bridge каждое из четырех ядер может быть при необходимости независимо
переведено в режим минимального энергопотребления, графическое ядро также можно
перевести в очень экономичный режим. Кольцевая шина и кеш L3, в силу их
распределения между другими ресурсами, не могут быть отключены, однако для
кольцевой шины предусмотрен специальный экономичный ждущий режим, когда она не
нагружена, а для кеш-памяти L3 применяется традиционная технология отключения
неиспользуемых транзисторов, уже известная нам по предыдущим микроархитектурам.