На любую, даже сложную тему можно написать интересно, доходчиво и с юмором. Именно таким талантом обладает инженер Intel Тейлор Кидд (Taylor Kidd), регулярно публикующий в блоге компании статьи, посвященные состояниям энергосбережения процессоров Intel. В качестве пятничного позитива предлагаем ознакомиться с шуточным подходом Тейлора к весьма серьезной проблеме. В конце поста вы найдете ссылки на другие статьи этого автора.
Это очередная публикация в серии записей об управлении электропитанием для сопроцессоров Xeon Phi. Впрочем, все сказанное здесь справедливо для любого процессора.
Если отвлечься от избитой аналогии с зайцам и черепахами, я как-то упомянул «опытных программистов, старательно работающих на своих корпоративных работодателей». Давайте немного расширим эту концепцию. На КДПВ у нас есть один опытный программист. Он символизирует один аппаратный поток сопроцессора ЦП.
В ядре — 4 аппаратных потока. Посмотрите на рисунок ниже. Все настолько очевидно, что я не стану утруждать себя написанием, а вас — чтением многостраничного пояснения. Также изображена и лампочка. Лампочка представляет инфраструктуру, поддерживающую ядро, такую как тактовые контуры и цепи питания.
Опытные программисты в комнате, т. е. ядро сопроцессора Intel Xeon Phi
Управление электропитанием: C0 и C1 ядра
Какое отношение все это имеет к управлению электропитанием? Иногда отдельные либеральные студенты гуманитарных направлений заявляют, что инженеры лишены воображения и вообще зануды. Но мы-то с вами знаем, что даже если некоторое занудство нам порой не чуждо, то в отсутствии воображения нас обвинить нельзя. Помня об этом, представьте себе, что на каждом из этих столов стоят компьютеры и настольные лампы.Ядро в режиме C0: кода хотя бы один опытный программист напряженно работает (т. е. хотя бы один аппаратный поток ядра ЦП выполняет инструкции).
ЦП выполняет инструкцию HALT: когда один из наших опытных программистов заканчивает работу, он выключает свою настольную лампу, выключает компьютер и уходит (т. е. один из аппаратных потоков выполняет инструкцию HALT).
После входа в состояние ядра C1: когда все четыре опытных программиста заканчивают работу, они все выполняют инструкции HALT. Последний из них гасит за собой свет в помещении. (Т. е. снижение тактовой частоты ядра.)
Управление электропитанием: состояние ядра C6
После входа в состояние ядра C6: да, я понимаю, что это очевидно, но мне нравится разговаривать с самим собой. С течением времени все уходят на обед. Поскольку в офисе никого нет, можно отключить еще больше электроприборов (т. е. снижение потребляемой мощности). Впрочем, помните, что работники вернутся после обеда, поэтому нужно иметь возможность быстро включить все выключенное.Здание, полное опытных программистов, т. е. сопроцессор Intel Xeon Phi
Управление электропитанием: состояния пакета AUTO-C3, DEEP-C3 и C6
Да, эта аналогия могла вам уже поднадоесть, но мне она нравится, так что продолжаем.Давайте пройдем немного дальше. Представьте здание, в котором очень много комнат, больше 60. Посмотрите на рисунок выше. Да, я знаю, что у нас в Кремниевой долине опытные программисты работают в великолепных и просторных комнатах, а не в тесных общих офисах. К сожалению, на этом моя аналогия останавливается, потому что мне нужен именно обычный офис.
Вход в состояние пакета Auto-C3: все ушли с этажа, поэтому датчик движения автоматически выключает освещение на этаже. (Т. е. программное обеспечение управления сопроцессором снижает рабочую частоту внеядерных компонентов и прочих вспомогательных элементов кристалла.)
Вход в состояние пакета Deep-C3: сейчас выходные, поэтому во всем здании (т. е. в модуле управления электропитанием драйвера сопроцессора MPSS) отключено кондиционирование воздуха и выключена телефонная связь. (Т. е. хост снижает напряжение VccP сопроцессора и заставляет его игнорировать прерывания)
Вход в состояние пакета C6: новогодние каникулы: офис закрыт, все сотрудники добровольно или вынужденно отдыхают, поэтому техническая служба офиса отключила электричество, кондиционирование воздуха, телефоны, серверы, лифты, туалеты и пр. (т. е. хост выключил питание сопроцессора и отключил отслеживание трафика PCI Express*).
Управление электропитанием: чем дальше, тем чудеснее
Увлекшись этой нашей аналогией, я решил было расширить ее до комплексов офисных зданий (узел, содержащий несколько сопроцессоров), международных инженерных дивизионов (кластеры, в которых каждый узел содержит несколько сопроцессоров) и до привлечения внешних партнеров (распределенная обработка в глобальной сети). Впрочем, здравый смысл победил, поэтому я отказался от этого замысла.Другие статьи Кидда (пока на английском, но скоро обязательно появятся на русском — следите за колонкой справа):
- Intel Xeon Phi coprocessor Power Management Pt 0: Introduction and inquiring minds
- Intel Xeon Phi coprocessor Power Management Part 1: P-States, Reducing power consumption without impacting performance
- Intel Xeon Phi coprocessor Power Management Part 2a: Core C-States, The Details
- Intel Xeon Phi coprocessor Power Management Part 2b: Package C-States, The Details
- C-States, P-States, where the heck are those T-States?