Enhanced intel speedstep что это

Intel SpeedStep

Другие идентичные по назначению опции: Intel(R) SpeedStep Technology.

Enhanced intel speedstep что это. Смотреть фото Enhanced intel speedstep что это. Смотреть картинку Enhanced intel speedstep что это. Картинка про Enhanced intel speedstep что это. Фото Enhanced intel speedstep что это

Среди опций, предназначенных для оптимизации энергопотребления компьютера, одной из самых важных и наиболее часто использующихся является опция Intel SpeedStep. Она позволяет включить и настроить параметры одноименной технологии энергосбережения, предназначенной для процессоров компании Intel.

Принцип работы

SpeedStep – это технология энергосбережения, основанная на динамическом изменении рабочей частоты и напряжения процессора. Она предназначена для процессоров Intel, которые позволяют регулировать свою тактовую частоту и напряжение программным методом. Это дает возможность процессору изменять свою производительность в зависимости от загрузки и этим самым сводить к минимуму энергопотребление и тепловыделение. Наиболее полезна эта технология для мобильных компьютеров. Есть аналог данной технологии для процессоров AMD — Cool n’quiet, так же реализована её активация через BIOS.

Суть технологии заключается в следующем. На высокой тактовой частоте CPU демонстрирует высокую производительность. Но в то же время на низкой тактовой частоте процессор выделяет меньше тепла и потребляет меньше энергии. Во многих случаях для уменьшения энергопотребления может также снижаться напряжение, использующееся для ядра процессора.

Это можно проиллюстрировать следующей формулой. Энергия, потребляемая процессором, может быть рассчитана, как P = C*V 2 *f, где С – это емкость, f – частота процессора, а V – напряжение. Емкость является постоянной величиной, а частота и напряжение могут меняться в достаточно широких пределах, хотя практически изменение энергопотребления зависит также и от задач, выполняемых CPU, поскольку не все команды потребляют одинаковое количество энергии за один такт работы процессора.

Помимо очевидных преимуществ технологии, таких, как уменьшение стоимости эксплуатации компьютера и уменьшение загрязнения окружающей среды, у снижения энергопотребления есть также и другие, не столь очевидные плюсы, такие, как, например, увеличение срока службы процессора и уменьшение уровня шума, создаваемого вентилятором охлаждения. Кроме того, уменьшение потребления электроэнергии помогает дольше хранить заряд в батарее ноутбука и, следовательно, увеличивает время его автономной эксплуатации.

Таким образом, благодаря технологии SpeedStep пользователь получает возможность найти необходимый баланс между производительностью и экономией энергии.

Технология SpeedStep поддерживается большинством операционных систем, в том числе, современными версиями Linux, Mac OS X, BSD и Solaris. В линейку Windows поддержка технологии была внедрена, начиная с Windows XP. В Windows 2000 и более старых операционных системах для работы процессора в режиме SpeedStep требуется специальный драйвер. В Windows технология SpeedStep используется неявно в схемах энергопотребления, выбор которых доступен в Панели Управления.

Какое значение опции выбрать?

В различных BIOS среди вариантов опции Intel SpeedStep могут встретиться такие значения, как Automatic, Maximum, Minimum, Enabled и Disabled. Значения Automatic и Enabled позволяет передать контроль над режимами средствам операционной системы. Значения Maximum и Disabled фактически отключают режимы энергосбережения и заставляют CPU все время работать на максимальном уровне производительности. Значение Minimum устанавливает для процессора минимальный режим энергопотребления. Выбор какого-либо из вариантов опции зависит от приоритетов пользователя – потребности в максимальной производительности компьютера, потребности в минимальном энергопотреблении или потребности в наличии гибкой системы регулирования обоих параметров.

Источник

SpeedStep и все-все-все

Enhanced intel speedstep что это. Смотреть фото Enhanced intel speedstep что это. Смотреть картинку Enhanced intel speedstep что это. Картинка про Enhanced intel speedstep что это. Фото Enhanced intel speedstep что это
Мы все с вами знаем, что энергия — штука не дешевая и водится не повсеместно. И, как говорится, чем дальше, тем страшнее — вот почему все человечество обеспокоено вопросами ее экономии. Подходы к этой экономии самые различные, тут и ветряки, и электромобили, и повсеместный учет всего и вся, и многое другое – главное, что движуха идет повсюду. Не отстают от тренда и производители цифровых устройств, а в чем-то даже его опережают, по крайней мере, результаты в этой области существенней и реальней, чем в других. Чтобы в этом убедиться, поговорим о технологиях энергосбережения в процессорах Intel.

Впервые слово «энергосбережение» появилось в спецификациях Intel в конце прошлого века, когда была анонсирована технология SpeedStep для мобильных процессоров Intel Pentium III, которая предусматривала возможность понижения частоты процессора в период его бездействия. Первоначально, в первой версии SpeedStep, рабочих частот было всего две – обычная и пониженная. Соответственно, имелось два показателя тепловыделения и потребляемой мощности.
Далее эволюция SpeedStep шла по пути усложнения схем питания процессора. Более продвинутая технология Enhanced Intel SpeedStep (EIST) оперировала уже несколькими промежуточными точками между максимально и минимально возможными частотами процессора, кроме того, помимо частоты изменялось и напряжение, подаваемое на процессор. График работы EIST для памятного многим процессора Pentium M можно посмотреть на рисунке ниже.
Enhanced intel speedstep что это. Смотреть фото Enhanced intel speedstep что это. Смотреть картинку Enhanced intel speedstep что это. Картинка про Enhanced intel speedstep что это. Фото Enhanced intel speedstep что это

Как видно, частота процессора наращивалась квантами по 200 Мгц, при этом его TDP изменялось от 6 до 24.5 Ватт.
Для корректной работы SpeedStep необходима поддержка технологии материнской платой (или, точнее, ее BIOS) и операционной системой. Управление режимами потребления осуществляется из BIOS или соответствующего меню настроек ОС. В том, что SpeedStep действительно работает, можно убедиться с помощью утилит, показывающих реальную текущую частоту процессора, например, CPU-Z.
Начиная с Pentium M, в EIST не произошло принципиальных изменений, постоянно идет подстройка под каждое новое поколение процессоров, имеющее свои, отличающиеся показатели рабочего напряжения, собственной частоты и частоты центральной шины FSB. Скажем, процессор Intel Core 2 Duo умеет варьировать свою частоту от 1.6 до 2.8 ГГц с инкрементом в 266 МГц.

Однако не SpeedStep’ом единым осуществляется экономия энергии в процессорах Intel. Применяются и другие технологии, например, Ultra Fine Grained Power Control, позволяющая отключить те модули процессора, которые бездействуют в данный момент. Любопытно, что даже если процессор как таковой нагружен весьма сильно, в нем все равно есть простаивающие участки, которые при желании можно выключить.

Enhanced intel speedstep что это. Смотреть фото Enhanced intel speedstep что это. Смотреть картинку Enhanced intel speedstep что это. Картинка про Enhanced intel speedstep что это. Фото Enhanced intel speedstep что это
Рабочий момент процессора. Зеленым показаны простаивающие участки.

Еще одно средство манипуляции частотой процессора – технология Intel Turbo Boost. Принцип ее работы прямо противоположен SpeedStep: частота процессора не уменьшается, а увеличивается сверх штатных частот в пределах его возможностей, которые указываются в спецификации. Каждый процессор, поддерживающий Turbo Boost, маркируется примерно следующей записью: 7/7/9/10, где через черточку указаны количество максимальных порций инкремента (для процессоров Sandy Bridge, например, инкремент составляет 100 МГц), которые возможно прибавить при работающих всех четырех ядрах, трех двух и одном соответственно. Таким образом, если базовая частота процессора составляет 2500 МГц, то максимальная с учетом Turbo Boost будет равняться 2500 + (10 × 100) = 2500 + 1000 = 3500 МГц.

Enhanced intel speedstep что это. Смотреть фото Enhanced intel speedstep что это. Смотреть картинку Enhanced intel speedstep что это. Картинка про Enhanced intel speedstep что это. Фото Enhanced intel speedstep что это
Управление в BIOS функциями SpeedStep и Turbo Boost

На первый взгляд Turbo Boost не выглядит системой энергосбережения, но на самом деле она таковой как раз является, поскольку прирост потребления за счет повышения частоты зачастую с запасом компенсируется уменьшением времени выполнения задачи.

Еще один важный фронт борьбы с лишними калориями ваттами – уменьшение общего потребления процессора. На этом пути также сделаны значительные успехи. В статье, посвященной тепловыделению была приведена хорошая табличка, из которой видно, что процессоры Intel, пройдя максимум прожорливости в районе Prescott, с тех пор существенно понизили свой TDP даже в абсолютных значениях, не говоря уже о пересчете относительно гигагерцо-ядер.

Enhanced intel speedstep что это. Смотреть фото Enhanced intel speedstep что это. Смотреть картинку Enhanced intel speedstep что это. Картинка про Enhanced intel speedstep что это. Фото Enhanced intel speedstep что это
Уменьшение техпроцесса + оптимизация микроархитектуры = энергоэффективность

Новой вехой на пути к светлому сберегающему будущему станет очередная процессорная микроархитектура Intel Haswell, которую мы увидим воплощенной в кремнии в 2013 году. Линейка процессоров Haswell будет состоять, как обычно, из десктопной и мобильной версии, но к ним еще добавится специальный вариант для ультрабуков (с индексом U). Новые процессора для PC и ноутбуков потребляют на 20% меньше по сравнению с семейством Sandy Bridge. Особого интереса заслуживает Haswell U, который представляет собой одночиповое решение с интегрированным контроллером ввода-вывода и регулятором напряжения на борту, что позволит точнее и быстрее этим напряжением управлять. Intel особо подчеркивает, что в режиме сна (с закрытой крышкой ультрабука) он потребляет в 20 раз меньше энергии, чем предшественники.

Как мы видим, с каждым новым поколением процессора Intel вбирают в себя все больше сторонних элементов. С точки зрения энергоэффективности это, несомненно, благо, поскольку сокращает общие издержки. Что мы будем оптимизировать, когда процессор дойдет до предельно малого технологического процесса и соберет внутри себя всю электронику материнской платы? Наверняка, какие-то варианты останутся даже и в этом случае.

Источник

Intel SpeedStep: что делает эта технология и для чего она нужна

Intel определяет технологию SpeedStep как передовое средство обеспечения очень высокой производительности ее процессоров при одновременном удовлетворении потребности в энергосбережении портативных систем. Это определение может уже дать вам представление о том, из чего оно состоит, но давайте посмотрим на него подробнее.

Что такое технология Intel SpeedStep и для чего она нужна?

По заявлению производителя, эта технология позволяет системе динамически регулировать рабочее напряжение и частоту ядер процессора, снижая энергопотребление и выделяемое тепло. По снижение напряжения и скорости процессора, потребление также снижается, и, следовательно, меньше шума и меньше тепла. Конечно, это динамическая технология, которая работает автоматически, когда система простаивает, возвращая ее к нормальным значениям, как только требуется более высокая производительность.

Это, как вы уже догадались, своего рода underclock в процессоре, с той разницей, что это делается автоматически и динамически, так что процессор сам определяет уровень нагрузки, а когда он находится в состоянии покоя, он снижает свою скорость и напряжение, чтобы уменьшить потребление и выделяемое тепло. Это действительно преимущество, особенно для пользователей, обеспокоенных этими двумя факторами.

Как активировать и деактивировать эту технологию? Ценность?

Большинство материнских плат позволяют включать и отключать SpeedStep непосредственно из BIOS, но даже если он включен в BIOS, мы можем решить использовать его или нет непосредственно в BIOS. Windows. Сама Intel объясняет, что на ПК с операционной системой Windows XP мы можем выбирать, как мы хотим, чтобы она вела себя, но это исчезло в системах Windows 10, где мы ограничены возможностью делать это из BIOS.

Просто войдите в BIOS вашего ПК (при включении нажмите DELETE, F2 или F10 в зависимости от производителя) и получите доступ к параметрам процессора (в зависимости от производителя вы можете получить доступ к этому меню тем или иным способом). Вы увидите, что одним из имеющихся у вас параметров является именно Intel SpeedStep, и тут же вы можете активировать и деактивировать его.

Enhanced intel speedstep что это. Смотреть фото Enhanced intel speedstep что это. Смотреть картинку Enhanced intel speedstep что это. Картинка про Enhanced intel speedstep что это. Фото Enhanced intel speedstep что это

Если вы хотите, чтобы ваш процессор всегда давал максимальную производительность, вы можете отключить эту технологию (которая по умолчанию всегда включена), но если вы не собираетесь разгоняться, мы рекомендуем оставить ее включенной, так как это то, что только принесет вам преимущества ; Как мы объясняли ранее, когда система находится в режиме ожидания, это служит для снижения рабочей скорости и напряжения процессора, уменьшения потребления и выделяемого тепла и в то же время увеличения срока его службы.

А когда вы запускаете приложение или игру, требующую более высокой производительности процессора, оно автоматически возвращается к обычным значениям, чтобы обеспечить максимальную производительность. Поэтому рекомендуется отключать технологию Intel SpeedStep только тогда, когда вы собираетесь разогнаться, и особенно если вы собираетесь делать это, касаясь напряжения процессора, поскольку в этом случае включение технологии может вызвать нестабильность в системе, когда компьютер отдыхает.

Источник

990x.top

Простой компьютерный блог для души)

Enhanced Intel SpeedStep Technology — что это в биосе?

Enhanced intel speedstep что это. Смотреть фото Enhanced intel speedstep что это. Смотреть картинку Enhanced intel speedstep что это. Картинка про Enhanced intel speedstep что это. Фото Enhanced intel speedstep что это

Приветствую друзья. Сегодня поговорим про биос, а точнее про одну опцию, которая влияет на работу процессора. Помните, что биос содержит настройки, которые влияют на работу железа, поэтому просто так ничего в нем не трогайте!

Enhanced Intel SpeedStep Technology — что это в биосе?

Технология, обеспечивающая автоматическую регулировку напряжения процессора, а также его частоту в целях снижения энергопотребления.

Простыми словами — функция делает так, что в простое процессор скидывает частоту к минимуму, из-за чего нагрев уменьшается, потребление энергии снижается и в целом нагрузка на материнскую плату снижается. А когда вы начнете что-то делать за ПК — то процессор сразу вернется в строй, повысит частоту и перестанет отдыхать. Вот примерно так все и работает))

Эта технология может быть как в обычных десктопных процессорах, так и в ноутбучных. На ноутах еще полезнее — технология может увеличить автономную работу, ведь в простое частота падает, а если вы например читаете статью в интернете, то частота тоже будет немного падать, ведь чтение в интернете это не особо ресурсоемкая задача.

Функция реализована только для процессоров Интел, у АМД есть своя аналогичная.

Другое название опции — Inter(R) SpeedStep Tech.

Опция в биосе ASUS:

Enhanced intel speedstep что это. Смотреть фото Enhanced intel speedstep что это. Смотреть картинку Enhanced intel speedstep что это. Картинка про Enhanced intel speedstep что это. Фото Enhanced intel speedstep что это

Заключение

На этом все. Удачи и добра, до новых встреч друзья!

Источник

Понижение рабочего напряжения процессора, или тюнинг Enhanced Intel SpeedStep

В современных десктопных и (в особенности) мобильных процессорах применяется целый ряд энергосберегающих технологий: ODCM, CxE, EIST и др. Сегодня нас будет интересовать, пожалуй, самая высокоуровневая из них: гибкое управление частотой и напряжением процессорного ядра во время работы — Cool ‘n’ Quiet, PowerNow! у AMD и Enhanced SpeedStep (EIST) у Intel.

Чаще всего пользователю компьютера или ноутбука достаточно просто включить (поставить галочку) поддержку той или иной технологии в BIOS и/или операционной системе — никакой тонкой настройки обычно не предусмотрено, хотя, как показывает практика, она может оказаться весьма полезной. В этой статье я расскажу о том, как можно управлять рабочим напряжением ядра процессора из операционной системы (на примере Intel Pentium M и FreeBSD), и зачем это может понадобиться.

Несмотря на большое количество руководств, редко где встретишь обстоятельное описание технологии Enhanced SpeedStep с точки зрения операционной системы (а не конечного пользователя), особенно на русском языке, поэтому значительная часть статьи посвящена деталям реализации и носит в некоторой степени теоретический характер.

Надеюсь, статья окажется полезной не только пользователям FreeBSD: мы также немного коснемся GNU/Linux, Windows и Mac OS X. Впрочем, в данном случае конкретная операционная система имеет второстепенное значение.

Предисловие

Обычно изменение штатного напряжения подразумевает его повышение с целью обеспечить стабильную работу процессора при разгоне (т.е. на повышенной частоте). Грубо говоря, каждому значению напряжения соответствует некоторый диапазон частот, на которых он может работать, и задача оверклокера — найти максимальную частоту, на которой процессор еще не «глючит». В нашем случае задача стоит в некотором смысле симметричная: для известной частоты (точнее, как мы вскоре выясним, набора частот) найти наименьшее напряжение, обеспечивающее стабильную работу CPU. Понижать же рабочую частоту не хочется, чтобы не потерять в производительности — ноут и так уже далеко не топовый. Кроме того, понижать напряжение выгоднее.

Немного теории

Как известно, тепловыделение процессора пропорционально его емкости, частоте и квадрату напряжения (кому интересно, почему это так, могут попробовать вывести зависимость самостоятельно, рассмотрев процессор как набор элементарных CMOS-инверторов (логических отрицателей), либо сходить по ссылкам: раз, два, три).

Современные мобильные процессоры могут потреблять до 50-70 Вт, которые в итоге рассеивают в тепло. Это очень много (вспомните лампы накаливания), особенно для ноутбука, который в автономном режиме под нагрузкой будет «кушать» аккумулятор как та свинья апельсины. В условиях ограниченного пространства тепло, скорее всего, придется отводить активно, а это означает дополнительный расход энергии на вращение вентилятора кулера (возможно, нескольких).

Естественно, такое положение дел никого не устраивало, и производители процессоров стали думать, как бы оптимизировать энергопотребление (и, соответственно, теплоотдачу), а заодно и предотвратить процессор от перегрева. Интересующимся рекомендую к прочтению ряд замечательных статей Дмитрия Беседина, а я тем временем перейду непосредственно к делу.

Немного истории

Версия 3.1 (2003 г.) впервые применяется в первом и втором поколениях процессоров Pentium M (ядра Banias и Dothan). Частота варьировалась (сначала — лишь переключалась между двумя значениями) от 40% до 100% от базовой, с шагом 100 МГц (для Banias) или 133 МГц (для Dothan, наш случай). Одновременно Intel вводит динамическое управление емкостью кэша второго уровня (L2), что позволяет еще лучше оптимизировать энергопотребление. Версия 3.2 (Enhanced EIST) — адаптация для многоядерных процессоров с общим L2-кэшем. (Небольшой FAQ от Intel по технологии SpeedStep.)

Теперь, вместо того, чтобы слепо следовать многочисленным howto и туториалам, скачаем pdf’ку и попробуем разобраться в принципе работы EST (я буду дальше использовать эту аббревиатуру, т.к. она универсальнее и короче).

Как работает EST

Итак, EST позволяет управлять производительностью и энергопотреблением процессора, причем динамически, во время его работы. В отличие от более ранних реализаций, которые требовали аппаратной поддержки (в чипсете) для изменения рабочих параметров процессора, EST позволяет программно, т.е. средствами BIOS или операционной системы, изменять множитель (отношение частоты процессора к частоте шины) и напряжение ядра (Vcc) в зависимости от нагрузки, типа источника питания компьютера, температурного режима CPU и/или настроек (политики) ОС.

Во время работы процессор находится в одном из нескольких состояний (power states): T (throttle), S (sleep), C (idle), P (performance), переключаясь между ними по определенным правилам (с. 386 спецификации ACPI 5.0).

Enhanced intel speedstep что это. Смотреть фото Enhanced intel speedstep что это. Смотреть картинку Enhanced intel speedstep что это. Картинка про Enhanced intel speedstep что это. Фото Enhanced intel speedstep что это

EST управляет работой процессора в P-состоянии (P-state), они-то и будут нас интересовать. К примеру, Pentium M поддерживает шесть P-состояний (см. рис. 1.1 и таб. 1.6 pdf’ки), отличающихся напряжением и частотой:

Enhanced intel speedstep что это. Смотреть фото Enhanced intel speedstep что это. Смотреть картинку Enhanced intel speedstep что это. Картинка про Enhanced intel speedstep что это. Фото Enhanced intel speedstep что это

Узнать, поддерживает ли ваш процессор EST, можно взглянув на 16-й бит в регистре IA_32_MISC_ENABLE (0x1A0), он должен быть установлен:

Аналогичная команда для GNU/Linux (потребуется пакет msr-tools):

Переход между состояниями происходит при записи в регистр IA32_PERF_CTL (0x199). Узнать текущий режим работы можно прочитав регистр IA32_PERF_STATUS (0x198), который обновляется динамически (таб. 1.4 pdf’ки). В дальнейшем префикс IA32_ я буду для краткости опускать.

Попробуем для начала прочитать текущее значение PERF_STATUS :

Из документации следует, что текущее состояние кодируется в нижних 16 битах (если выполнить команду несколько раз, их значение может меняться — это означает, что EST работает). Если посмотреть внимательнее на остальные биты, в них тоже явно не мусор. Погуглив, можно выяснить, что же они означают.

Структура регистра PERF_STATUS

Три 16-битных поля — это так называемые Performance State Values (PSV), их структуру мы рассмотрим ниже: текущее значение PSV, максимальное (зависит от процессора) и значение на старте системы (при включении). Текущее значение (curr_psv), очевидно, меняется при изменении режима работы, максимальное (max_psv) обычно остается постоянным, стартовое значение (init_psv) не меняется: как правило, оно равно максимальному значению для десктопов и серверов, но минимальному для мобильных CPU. Минимальный множитель (min_mult) для процессоров Intel почти всегда равен шести. Поле status содержит значение некоторых флагов, например, при наступлении событий EST или THERM (т.е. в момент изменения P-состояния или перегрева процессора, соответственно).

Структура Performance State Value (PSV)

Знать и понимать, что из себя представляет PSV, очень важно, ведь именно в таком виде задаются режимы работы процессора.

Dynamic FSB frequency switching указывает пропускать каждый второй такт FSB, т.е. вдвое понижать рабочую частоту; эта возможность впервые реализована в процессорах Core 2 Duo (ядро Merom) и нас не касается, как и Non-integer bus ratio — специальный режим, поддерживаемый некоторыми процессорами, позволяющий, как следует из названия, более тонко управлять их частотой.

К собственно технологии EST имеют отношения два поля — идентификаторы частоты (Frequency Identifier, Fid), который численно равен множителю, и напряжения (Voltage Identifier, Vid), который соответствует уровню напряжения (он же обычно и наименее документирован).

Идентификатор напряжения (Voltage Identifier)

Intel весьма неохотно раскрывает информацию (обычно требуется подписать NDA) о том, как именно кодируется идентификатор напряжения для каждого процессора. Но для большинства популярных CPU, к счастью, эта формула известна; в частности, для нашего Pentium M (и многих других): Vcc = Vid0 + (Vid × Vstep), где Vcc — текущее (действительное) напряжение, Vid0 — базовое напряжение (когда Vid == 0), Vstep — шаг. Таблица для некоторых популярных процессоров (все значения в милливольтах):

ПроцессорVid0VstepVbootVminVmax
Pentium M700,016,0xxxx,xxxx,xxxxx,x
E6000, E4000825,012,51100,0850,01500,0
E8000, E7000825,012,51100,0850,01362,5
X9000712,512,51200,0800,01325,0
T9000712,512,51200,0750,01300,0
P9000, P8000712,512,51200,0750,01300,0
Q9000D, Q8000D825,012,51100,0850,01362,5
Q9000M712,512,51200,0850,01300,0

Множитель (т.е. Fid) записывается в PSV сдвинутым на 8 бит влево, младшие шесть бит занимает Vid. Т.к. в нашем случае остальными битами можно пренебречь, то PSV, частота процессора, системной шины и физическое напряжение связаны простой формулой (для Pentium M):

Enhanced intel speedstep что это. Смотреть фото Enhanced intel speedstep что это. Смотреть картинку Enhanced intel speedstep что это. Картинка про Enhanced intel speedstep что это. Фото Enhanced intel speedstep что это

Теперь рассмотрим регистр управления ( PERF_CTL ). Запись в него должна производиться следующим образом: сначала считывается текущее значение (64-битное слово целиком), в нем изменяются нужные биты, и записывается обратно в регистр (т.н. read-modify-write).

Структура регистра PERF_CTL

IDA (Intel Dynamic Acceleration) disengage-бит позволяет временно отключать адаптивное (opportunistic) управление частотой на процессорах Intel Core 2 Duo T7700 и более поздних, — опять же, нас не интересует. Младшие 16 бит (PSV) — режим, в который мы «просим» перейти процессор.

Таблица _PSS

Таблица _PSS представляет собой массив состояний (Package в терминологии ACPI) или метод, который возвращает такой массив; каждое состояние (P-state) в свою очередь определяется следующей структурой (с. 409 спецификации ACPI):

EST-драйвер операционной системы может «знать» про некоторые процессоры, т.е. сумеет ими управлять и без поддержки ACPI. Но это редкость, особенно в наши дни (хотя для undervolting’а на Linux, где-то до версии 2.6.20, надо было патчить таблицы в драйвере, и еще в 2011 г. этот метод был весьма распространен).

Стоит отметить, что EST-драйвер может работать даже в случае отсутствия таблицы _PSS и неизвестного процессора, т.к. максимальное и минимальное значения можно узнать из PERF_STATUS (при этом, очевидно, число P-состояний вырождается в два).

Довольно теории. Что с этим всем делать?

Итак, мы знаем дефолтные Vid для каждого P-уровня: 43, 37, 32, 28, 23, 18, что соответствует напряжениям от 1388 mV до 988 mV. Суть undervolting’а в том, что наверняка эти напряжения несколько выше, чем реально необходимо для устойчивой работы процессора. Попробуем определить «границы дозволенного».

Я написал для этого простой shell-скрипт, который постепенно понижает Vid и выполняет несложный цикл (демон powerd(8) перед этим, разумеется, необходимо прибить). Таким образом я определил напряжения, позволяющие процессору хотя бы не виснуть, затем прогнал несколько раз тест Super Pi и пересборку ядра; уже позже я поднял значение Vid для двух максимальных частот еще на один пункт, иначе gcc изредка вылетал из-за ошибки illegal instruction. В результате всех экспериментов в течении нескольких дней получился такой набор “стабильных” Vid: 30, 18, 12, 7, 2, 0.

Анализ результатов

Если мы получаем значения PSV через ACPI, то логичнее всего изменить именно таблицу _PSS в DSDT. К счастью, BIOS для этого ковырять не придется: FreeBSD умеет загружать DSDT из файла (про модификацию таблиц ACPI на Хабре уже не раз писали, поэтому сейчас подробно на этом останавливаться не будем). Заменяем нужные поля в DSDT:

Компилируем новый AML-файл (байткод ACPI) и модифицируем /boot/loader.conf так, чтобы FreeBSD загружала нашу модифицированную DSDT вместо дефолтной:

Undervolting в GNU/Linux

По правде говоря, сначала я думал, что мне достаточно будет прочитать Gentoo Undervolting Guide и просто адаптировать его для FreeBSD. Это оказалось не так-то просто, ибо документ на поверку оказался на редкость бестолковым (что вообще-то странно для Gentoo Wiki). К сожалению, на их новом сайте я ничего похожего не нашел, пришлось довольствоваться старой копией; и хотя я понимаю, что это руководство во многом потеряло актуальность, я все же его немного покритикую. 🙂

Мне почему-то сразу, без объявления войны, предлагают патчить ядро (во FreeBSD, на минуточку, нам вообще никакой системный код модифицировать не пришлось). Забивать во внутренности драйвера или записывать в какие-то init-скрипты значения неких «безопасных» напряжений, непонятно кем и каким образом полученные, из специальной таблицы (в которой Pentium M 780 издевательски представлен строкой, состоящей из одних вопросительных знаков). Следовать советам, среди которых есть написанные людьми, которые явно вообще не понимают, о чем говорят. А главное, совершенно неясно, почему и как именно эти магические замены одних цифр на другие работают; не предлагается способа «потрогать» EST, прежде чем что-то патчить и пересобирать ядро, ни разу не упоминаются регистры MSR и работа с ними из командной строки. Не рассматривается модификация таблиц ACPI как альтернативный и более предпочтительный вариант.

На ThinkWiki руководство чуть получше (и поновее), но не намного. Еще более лаконично выглядит страница ArchWiki. Вот эта строчка доставляет особенно:

Так и просятся лостовские «4, 8, 15, 16, 23, 42» (правда, в обратном порядке, что несколько портит шутку).

Пожалуй, самое толковое описание всего процесса для Linux у Пата Эрлея, ссылку на которое я давал выше.

Undervolting в Windows и Mac OS X

Про Windows особо говорить смысла нет: есть и софт, и обсуждения на форумах, поэтому я просто оставлю здесь пару ссылок.

Что еще почитать

Для FreeBSD: тема на форуме, а также небезызвестное обсуждение в рассылке; исходное письмо Александра Мотина для удобства викифицировано. Для Linux можно начать с неплохой статьи в ArchWiki.

Для тех, кто хочет углубиться в тему, кроме официальной документации производителей процессоров и приведенных в тексте ссылок, вот здесь — отличная подборка материалов (исследовательских статей, презентаций) по широкому кругу вопросов управления энергопотреблением (осторожно, Comic Sans).

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *