Некоторые аспекты энергосбережения Intel Core i* and Windows (страница 2)
реклама
Слова-слова, это скучно. Возьмем модель некоего «среднего» преобразователя процессора и посмотрим модель.
На схеме прослеживаются три 'строчки' – симулируется работа при трех значениях выходного сопротивления преобразователя:
- (зеленый график). Высокое выходное сопротивление, LLC=«Low»;
- (синий график). Примерно оптимальное выходное сопротивление, LLC=«High»;
- (морская волна). Выходное сопротивление явно мало, LLC в самой «высокой» настройке.
Данное распределение дано условно, но «где-то» соответствует действительности.
Немного по представленным элементам схемы.
Резисторы R1-3 определяют выходное сопротивление источника (Rвых) - 2 мОм, 1 мОм и 0.5 мОм; источники V2-V4 симулируют компенсацию снижения напряжения из-за выходного сопротивления. Остальные же элементы не изменяются для разных вариантов схем:
- V1 - источник напряжения, формирует импульсное напряжение трапециоидальной формы;
- L1-3 – индуктивность сглаживающего дросселя (с учетом нескольких фаз);
- R4-6 – сопротивление нагрузки источника питания, т.е. «процессор»;
- С1-3 – номинальная емкость сглаживающих конденсаторов;
- R7-9 – ESR этих конденсаторов.
реклама
Источники V2-4 поставлены для того, чтобы получить одинаковое напряжение на нагрузке при различном выходном сопротивлении, ведь чем выше Rвых , тем сильнее снижается напряжение. Если для Rвых=0.5-1 мОм это 30-60 мВ (не много), то Rвых=2мОм приводит к потерям в 115 мВ, а это уже явный перебор и нормальное функционирование процессора наверняка окажется под вопросом. Впрочем, посмотрим на результат симуляции.
Гм. Результат хоть и ожидаемый, но это не делает его менее неприятным. Чем быстрее меняется напряжение и ниже выходное сопротивление, тем больше выбросы по фронтам. Причина кроется в наличии дросселей и сглаживающих конденсаторов, причем избавиться от них невозможно - они являются обязательными элементами преобразователя. При смене уровня напряжения происходит заряд конденсаторов и через них протекает большой ток. Попробуем прикинуть, какая должна быть величина тока, чтобы зарядить конденсаторы емкостью 6000 мкФ. У нас два варианта, «Fast Slew Rate» (10 мВ/мкс) и «Slow Slew Rate» (2.5 мВ/мкс).
- «Fast»: 10 мВ/мкс * 6000 мкФ = (10 *10e-3/10e-6) * (6*10e-3) = 60 А.
- «Slow»: 2.5 мВ/мкс * 6000 мкФ = (2.5 *10e-3/10e-6) * (6*10e-3) = 15 А.
Расчеты весьма условны и не учитывают паразитные составляющие сглаживающих конденсаторов (ESR, ESL). Реальные величины токов наверняка окажутся в несколько раз меньше, но порядок чисел сохранится. Суть сглаживающих конденсаторов – сглаживать напряжение, уж простите мне эту тавтологию. Конденсаторы должны поддерживать неизменный уровень, но если преобразователь «захочет» поменять напряжение, то это неизбежно вызовет конфликт, который отчетливо проявил себя на рассмотренной симуляции – на одном фронте напряжение превышает необходимое (что неприятно, но терпимо), на другом недопустимо сваливается вниз. Процессор вовсе не лампочка, для его «зависания» достаточно снизить напряжение на очень короткое время и появится ошибка. Если частота процессора 4 ГГц, то за 20 мкс переходного процесса он может выполнить порядка 100 тысяч инструкций на каждом ядре.
По результатам симуляции позвольте сделать ряд наблюдений, может они окажутся кому-нибудь интересными:
- Снижение выходного сопротивления (настройка LLC) улучшает стабильность усредненной величины напряжения питания процессора (а именно это показывают программные и аппаратные приборы измерения напряжения), но эта стабильность только кажущаяся – амплитуда выбросов резко возрастает;
- Более мощный преобразователь процессора означает повышенное количество сглаживающих конденсаторов, а это приводит к возрастанию тока их перезарядки при смене напряжений, что приводит к возрастанию помех на шине питания;
- Лучше использовать «Slew Rate» = «Slow», вместо «Fast».
Довольно неожиданные выводы, «общепринятые» рекомендации говорят об обратном. Впрочем, данные я выложил, и вы можете принять собственное решение.
План электропитания
Процессор выделяет тепло во время работы и это нормально, но в состоянии простоя получать ту же рассеиваемую мощность как то уже не хочется. И дело не в экономии электричества – повышенный нагрев означает работу вентиляторов системы охлаждения на высоких оборотах, что резко снижает комфортность работы за таким компьютером. Хочется отметить, что при обычном использовании компьютера бОльшую часть времени процессор простаивает и получить более тихий компьютер вполне реально. Для снижения потребления в состоянии простоя надо выдать команду hlt, для чего в древние времена Windows 9x применялись сторонние программы типа «Watefall Pro», « CpuIdle » и другие. В наше время операционные системы уже давно «умеют» выдавать команду hlt в простое, поэтому проблем быть не должно. Даже больше, в Windows Vista было введено такое понятие, как «План электропитания». К слову, нечто похожее поддерживали и более ранние выпуски Windows, но, извините, назвать это чудное исполнение ‘работающим решением’ язык не поворачивается. Впрочем, ‘как-то’ оно работало и в простое процессор останавливался, а что еще надо от данной технологии?
реклама
Увы, надо много. Пока процессор в системе был один, проблем не было. Но, с увеличением количества ядер, так же начали множиться и проблемы, во вроде бы отлаженных местах. Алгоритм «есть что делать - процессор работает, нет задач – hlt» хорошо и надежно работает в однопроцессорной (одноядерной) системе, а как быть, если ядер несколько? Какой из ядер запускать на выполнение – тот же, что работал до этого, или разбудить другой? Если первое, то меньше накладных расходов на переключение контекста, но выше нагрев этого ядра. Если второе, то наоборот. Впрочем, с двумя ядрами не так уж и сложно, но сейчас восемь (и больше) ядер не является чем-то необычным.
Итак, в Windows Vista, как и в более поздних операционных системах, присутствуют три плана электропитания:
- Экономия энергии: Минимальное энергопотребление за счет уменьшения производительности компьютера, когда это возможно;
- Высокая производительность: Максимальная производительность, но может потребоваться больше энергии;
- Сбалансированный: Автоматическое соблюдение баланса между производительностью и энергопотреблением на пригодном для этого оборудовании.
Не знаю как вам, а мне эти слова ничего не говорят, за терминами может скрываться что угодно. Что ж, остается только взять и посмотреть.
Тестовый стенд
Основные компоненты:
- Материнская плата: GIGABYTE GA-Z77X-UD3H (Z77, LGA 1155, rev. 1.0, BIOS версия F11);
- Процессор: Intel Core i7-3570K @4.2 ГГц;
- Оперативная память: 2 х 4 Гбайта DDR-III 1333 МГц Hynix Original (DDR3-1800, 9-9-10);
- Накопитель SSD: RAID0 2х (CRUCIAL M4 CT064M4SSD2, 64 Гбайт), полоса 32 Кбайт;
- Накопитель HDD1: Western Digital VelociRaptor WD1500HLFS-01G6U (150 Гбайт, 10000 об/мин);
- Накопитель HDD2: Western Digital EADS WD15EADS-00P8B0 (1.5 Тбайт, 5400 об/мин);
- Операционная система: Windows 7 х64 SP1;
- RAMDISK: Primo Ramdisk, версия 5.5.0.
Остальные компоненты оказывают небольшое влияние на получаемые результаты, а потому вряд ли стоит их указывать.
Проверка производительности
Для начала стоит определиться с инструментарием, точнее – что же стоит измерять. Вполне очевидно, что при запуске программ класса «Linpack» процессор выставит максимальный множитель и будет работать с одной и той же производительностью при любых настройках энергосберегающих технологий (C1E и EIST) и на любом плане электропитания. Здесь надо выбрать менее загружающие и более реалистическое применение. В качестве «большой» нагрузки подойдет Linpack в режиме AVX, для «средней» можно применить BurnK7, запущенный в количестве, равный имеющимся ядрам процессора. Для «низкой» стоит взять что-то, что загружает процессор, но долго и старательно кого-нибудь «ждет». В этом случае можно воспользоваться каким-нибудь тестом производительности дисковой системы, но их деятельность (а нам нужна нагрузка на процессор) окажется весьма непредсказуемой. Впрочем, такое стоит попробовать. Для четкой нагрузки с долгим ожиданием (т.е. простоем) процессора лучше выбрать свойство, которое не зависит от механических устройств, например системная память. Тест памяти вызовет большой поток обмена с модулями памяти, а этот процесс очень долгий. Процессор, с одной стороны, будет полностью загружен работой, а с другой – находиться в постоянном ожидании данных от контроллера памяти. А потому, в качестве «низкой» нагрузки я использую тест памяти TestMem5, благо принцип его работы я хорошо знаю и неприятных сюрпризов быть не должно.
Что именно стоит измерять? Основное применение домашнего компьютера - игры, «интернет», некоторые музыкальные и графические редакторы. Последнее, как и использование компьютера для перекодирования видео-контента (и подобное), вызывает постоянную загрузку процессора длительное время, а потому при любом плане электропитания и настройках аппаратуры по энергосбережению результат должен быть одинаков. К слову, в играх тоже. Выходит, что и проверять нечего, статью можно заканчивать? Ну уж нет. Позвольте проявить необъяснимую упертость и проверить то, что «и так очевидно должно работать».
«Импульсная» нагрузка
Для выполнения каких-либо действий на процессоре выполняется некоторые программы, которые его загружают на различное время. При необходимости вывода на экран сообщения «Hello World!» его обсчет и растеризация не займут много процессорного времени, чего не скажешь о перекодировании фильма. При некотором упрощении можно сказать, что нагрузка на процессор в обоих случаях была одной и той же (нормальной), различие существует лишь в продолжительности. Коль скоро загрузка одинакова, то и производительность должна быть равной. Но в этом есть один нюанс - «импульсная» нагрузка «обрамляется» простоем и из этого могут произрасти проблемы.
В качестве теста можно использовать ‘что-либо’, нагружающее процессор на очень небольшой интервал времени. Например, программу тестирования производительности дисковой системы. К сожалению, большинство существующих программ выполняют замеры длительное время, что затрудняет симулирования «импульсной» нагрузки. А потому, опять же, придется воспользоваться собственной программой. «HAB» подойдет, в программе можно регулировать качество (т.е. время) выполнения, что подходит для нашей задачи. В качестве информации будет использоваться «задержка доступа канала передачи данных» (в программе это «IO Delay») для режима потокового чтения из буфера дискового накопителя. Этот характеристика вычисляет время, необходимое на выполнение довольно сложной последовательности действий от запроса данных до их получения. Сюда входит время на инициализацию протокола передачи, обработку команды контроллером дискового накопителя и сама передача данных по различным аппаратным интерфейсам. Понятно, что работа контроллера диска не зависит от скоростных характеристик процессора, но интерфейсы передачи данных (PCI Express и внутренние) могут при простое переходить в состояние сна, как и система кеширования процессора. Я ничего не имею против остановки неиспользуемых интерфейсов, но их пробуждение не происходит мгновенно (хоть и весьма быстро).
В проведении тестирования будут использоваться как три обычных плана электропитания, так и два новых. Это «Экспериментальный», полученный из «Сбалансированного» путем отключения «Переопределения процессора выполнения» и снижения порогов загрузки. Второй план, «Отключение режима простоя», получен из «Сбалансированного» с отключенным режимом простоя, что заставляет процессор всегда оставаться в активном состоянии (C0).
Задержка доступа
реклама
RAID0 SSD
(или специального режима) |
чтения, мкс |
чтения, мкс |
доступа, мкс |
картинку |
Экономия энергии |
|
|
|
|
Сбалансированный |
|
|
|
|
Высокая производительность |
|
|
|
|
Экспериментальный |
|
|
|
|
(Отключение режима простоя) |
|
|
|
|
RAMDISK
(или специального режима) |
чтения, мкс |
чтения, мкс |
доступа, мкс |
картинку |
Экономия энергии |
|
|
|
|
Сбалансированный |
|
|
|
|
Высокая производительность |
|
|
|
|
Экспериментальный |
|
|
|
|
(Отключение режима простоя) |
|
|
|
|
HDD WD1500HLFS-01G6U (150 Гбайт, 10000 об/мин), AHCI
(или специального режима) |
чтения, мкс |
чтения, мкс |
доступа, мс |
картинку |
Экономия энергии |
|
|
|
|
Сбалансированный |
|
|
|
|
Высокая производительность |
|
|
|
|
Экспериментальный |
|
|
|
|
(Отключение режима простоя) |
|
|
|
|
При измерении времени доступа имелось несколько нюансов, которые следует отметить. RAMDISK был сформирован «гибридным», с размешением его части на HDD (WD1500HLFS), что сказалось на времени доступа порядка 1мс. Подобное измерение для «RAMDISK» кажется кощунством, но не для нашей задачи. При выполнении запросов программа RAMDISK исчерпывает ресурсы выделенной памяти и начинает переводить адресацию на физический диск. С одной стороны, это тормозит обмен, а с другой «импульсно» нагружает диск, что нам и надо. Поэтому, не пугайтесь большому времени доступа при выполнении этого теста.
Тест в HAB дает две цифры задержек обмена - по доступу (повторное чтение) и по самой операции чтения. Первое значение более-менее осмыслено, а второе весьма условно. Причина заключается в алгоритмах работы контроллера диска - при повторяющемся запросе данных контроллер диска передает те данные, что имеются у него в выходном буфере. Если же запросы чтения касаются разных секторов, то здесь начинает вмешиваться блок работы с носителем данных (в контроллере диска) и время доступа меняется весьма произвольно. По той же причине следует игнорировать столбец «Linear Read» и «CPU Usage». Для получения более-менее адекватных данных по этим характеристикам следует выполнять тест достаточно долго, чтобы обеспечить получение усредненных значений. К слову, система ввода-вывода Windows кеширует процедуры записи, а потому тестирование на «импульсную запись» проводить смысла нет.
Наблюдения и выводы из полученных данных:
RAID0 SSD
- «Экономия энергии»: задержка больше остальных режимов в 2.5 раза, что прямо пропорционально соотношению частот работы/простоя процессора, как 4.2 Ггц / 1.6 ГГц = 2.6. Это говорит о том, что «короткие» дисковые операции всегда выполняются на минимальной частоте процессора. К слову, 1.6 ГГц не самая низкая частота для простоя, у SB-E она еще ниже;
- «Сбалансированный»: характеристики явно лучше «Экономия энергии»;
- «Высокая производительность»: повторяет свойства «Сбалансированный», но, извините, это вовсе не самая высокая производительность!;
- «Экспериментальный»: время повторного доступа значительно меньше всех предыдущих планов электропитания и совпадает с режимом отключенного простоя;
- «Отключение режима простоя»: коль скоро простой отключен, то отсутствует время на «засыпание» и «просыпание». Как следствие, самая высокая производительность.
Все «стандартные» планы не могут установить максимальную производительность компьютера (интересно, зачем они так назвали план электропитания, если он не может это выполнить?).
Смена плана электропитания влияет как на задержки обмена, что логично, так и на время доступа. Я не ожидал, что отключение простоя так сильно скажется на этом параметре (109 мкс против 136 мкс), но еще больше меня удивил факт даже незначительного улучшения для плана «Экспериментальный», с учетом того, что ничего 'особенного' не установлено.
RAMDISK
- «Экономия энергии»: традиционное снижение производительности, но теперь уже в 3.6 раза, что нельзя объяснить только снижением частоты с 4.2 до 1.6;
- «Сбалансированный». Второй сюрприз - этот план оказывается таким же «тормозом», как и «Экономия энергии». Вот не ожидал;
- «Высокая производительность» - «Экспериментальный» - «Отключение режима простоя»: результаты одни и те же, что говорит о работе процессора в максимальном режиме производительности.
Очень огорчил «Сбалансированный», а так все результаты соответствуют предсказанным - "экономные" планы продолжают экономит электроэнергию (в ущерб производительности), планы высокой производительности сохраняют высокую скорость.
HDD
Все режимы показали равную производительность, кроме состояния с отключенным режимом простоя, где задержка операции чтения снижается почти в 1.5 раза (40 мкс против 55 мкс). Причина 'провала' всех планов? HDD устройство медленное и за время получения следующего сектора данных процессор успеет весьма успешно 'выспаться'. Как видно из данных тестирования, изменение настроек плана не позволяет никак повлиять на режим засыпания - обмен с диском длится так долго, что и самый низкий порог не может оградить процессор от перехода в IDLE.
Впрочем, проведенный тест достаточно «синтетический» и может показаться не слишком полезным. Что ж, возьмем нечто «приземленное», скажем файловые операции в FAR.
реклама
Страницы материала
Лента материалов раздела
Соблюдение Правил конференции строго обязательно!
Флуд, флейм и оффтоп преследуются по всей строгости закона!
Комментарии, содержащие оскорбления, нецензурные выражения (в т.ч. замаскированный мат), экстремистские высказывания, рекламу и спам, удаляются независимо от содержимого, а к их авторам могут применяться меры вплоть до запрета написания комментариев и, в случае написания комментария через социальные сети, жалобы в администрацию данной сети.
Комментарии Правила