Что такое intel eist
Что такое CPU EIST Function в биосе и как это работает?
Всем привет! Сегодня рассмотрим CPU EIST Function — что это за опция в БИОС, для чего она и как работает.
Сразу давайте уточним: её наличие не зависит от бренда системной платы, будь то Gigabyte, MSI или ASUS, а только от вшитой модели BIOS или UEFI.
Что такое CPU EIST
Название функции — аббревиатура от Enhanced Intel SpeedStep Technology.
Как можно догадаться из названия, технология разработана компанией Intel специально под процессоры этого бренда.
Дословно это означает не что иное, как «Усовершенствованная SpeedStep» (а это, в свою очередь, алгоритм сбережения энергии центральным процессором).
Главное наличие EIST от прототипа в большем количестве промежуточных режимов, благодаря чему точнее соблюдается баланс между мощностью ЦП и потребляемой энергией.
Регулировка происходит не так сильно заметно для пользователя компьютера, без лагов и зависаний.
При слабых нагрузках, когда нет необходимости в высокой вычислительной мощности, производительность процессора опускается до минимума благодаря снижению напряжения на его схемах. Происходит это в несколько этапов, ступень за ступенью.
При повышении нагрузки ЦП «Просыпается» и начинает работать на полную мощность.
Активировать CPU EIST или нет
В установках БИОСа ЕИСТ может иметь и другие наименования:
Независимо от названия она находится в продвинутых настройках процессора (Advanced CPU Settings).
Если вы обычный пользователь, рекомендую включить эту опцию, установив значение Enabled. Если же вы продвинутый юзер, которому не чужд разгон процессора и для кого энергопотребление компьютера не играет главенствующей роли, ее лучше отключить, установив значение Disabled.
О том, что такое Cpu C-States и за что отвечает эта функция, можно почитать здесь. Также советую почитать «Блокировка PCI – что это такое и как работает?». Буду признателен всем, кто расшарит этот пост в социальных сетях.
Для чего нужна опция CPU EIST Function в BIOS?
В расширенных (Advanced) настройках BIOS или на вкладке управления параметрами процессора можно встретить данную опцию. Она свойственна компьютерам, построенным на базе процессора Intel. В зависимости от версии и производителя BIOS могут встречаться и другие названия:
Из возможных значений есть только Enabled (Включена) и Disabled (Выключена). По умолчанию практически всегда находится во включенном состоянии. Иногда присутствует значение Auto. При нем контроль над опцией осуществляется в автоматическом режиме, но по сути Auto это тоже самое, что и Enabled, то есть включено.
Значение Auto для CPU EIST
Что это за опция и для чего она нужна вы узнаете из данной статьи.
Что такое EIST?
Данная аббревиатура расшифровывается как Enhanced Intel SpeedStep Technology, что переводится на русский означает Усовершенствованная технология SpeedStep от Intel. В свою очередь SpeedStep это название технологии энергосбережения для процессора, о которой у нас уже была отдельная статья.
Так вот CPU EIST Function это продолжение SpeedStep. Основное отличие между ними это наличие в первой нескольких вариантов промежуточных напряжений и частот процессора, благодаря которым баланс между производительностью и энергосбережением будет соблюдаться более точно и менее заметно для пользователя.
То есть при слабых нагрузках производительность не будет опускаться до минимума из-за чего может наблюдаться притормаживание работы компьютера. Она снизиться лишь на несколько ступеней, благодаря чему вы не заметите этого, а в случае возрастания нагрузки выход на максимальные рабочие частоты произойдет быстрее и менее заметно.
Стоит ли включать или лучше выключить?
Если вы собираетесь заняться разгоном процессора, хотите получить максимум от своего компьютера и вас абсолютно не заботит его энергопотребление, то CPU EIST Function лучше отключить (Disabled).
Если ваш компьютер включен практически круглыми сутками, при этом зачастую без особых нагрузок и вам хватает его производительности, то в таком случае опцию CPU EIST Function нужно включить (Enabled).
Что такое intel eist
Другие идентичные по назначению параметры: Intel eist, CPU eist function.
Опция EIST относится к категории функций BIOS, посвященных оптимизации энергосбережения персонального компьютера. Как правило, функция может принимать лишь два значения – Enabled или Disabled.
Принцип работы
Технология Enhanced Intel SpeedStep является разновидностью энергосберегающей технологии Speed Step, разработанной компанией Intel. Enhanced Intel SpeedStep поддерживается всеми современными интеловскими процессорами, начиная с Pentium 4 Prescott. Также ее поддерживают современные операционные системы семейства Windows, начиная с Windows 2000, а также современные ОС семейств Linux, BSD, Solaris и Mac OS.
Как и подобная ей технология C1E, Enhanced Intel SpeedStep основана на снижении частоты и напряжения процессора в неактивном состоянии, что позволяет уменьшить потребление процессором электроэнергии, а также выделение им тепла. По сравнению с оригинальной технологией SpeedStep, Enhanced Intel SpeedStep поддерживает более широкий диапазон изменения параметров напряжения и частоты
Стоит ли включать опцию?
В большинстве случаев опцию лучше всего включить, поскольку это позволит оптимизировать потребление процессором электроэнергии. Исключением из этого правила может быть ситуация, когда у вас на компьютере установлена старая операционная система, не поддерживающая описываемую технологию, а также ситуация, связанная с разгоном центрального процессора.
intel eist что это в биосе
Опция CPU EIST Function отвечает за управление режимом EIST (Enhanced Intel SpeedStep Technology).
Enabled (или Auto) – использовать данный режим;
Disabled – не использовать данный режим.
Опция также может иметь другие названия:
EIST
Enhanced Intel SpeedStep(tm) Tech.
Intel EIST
EIST Function
Примечание 1. Центральный процессор (ЦП, CPU) – это микросхема, которая является главным элементом аппаратного обеспечения компьютера. Центральный процессор обрабатывает код программ и руководит работой других устройств.
Примечание 2. Enhanced Intel SpeedStep Technology (EIST) – это технология, которая позволяет управлять энергопотреблением процессоров. Суть данной технологии заключается в том, что частота процессора будет динамически меняться с помощью операционной системы согласно нагрузке.
Другие идентичные по назначению параметры: Intel eist, CPU eist function.
Опция EIST относится к категории функций BIOS, посвященных оптимизации энергосбережения персонального компьютера. Как правило, функция может принимать лишь два значения – Enabled или Disabled.
Принцип работы
Технология Enhanced Intel SpeedStep является разновидностью энергосберегающей технологии Speed Step, разработанной компанией Intel. Enhanced Intel SpeedStep поддерживается всеми современными интеловскими процессорами, начиная с Pentium 4 Prescott. Также ее поддерживают современные операционные системы семейства Windows, начиная с Windows 2000, а также современные ОС семейств Linux, BSD, Solaris и Mac OS.
Как и подобная ей технология C1E, Enhanced Intel SpeedStep основана на снижении частоты и напряжения процессора в неактивном состоянии, что позволяет уменьшить потребление процессором электроэнергии, а также выделение им тепла. По сравнению с оригинальной технологией SpeedStep, Enhanced Intel SpeedStep поддерживает более широкий диапазон изменения параметров напряжения и частоты
Стоит ли включать опцию?
В большинстве случаев опцию лучше всего включить, поскольку это позволит оптимизировать потребление процессором электроэнергии. Исключением из этого правила может быть ситуация, когда у вас на компьютере установлена старая операционная система, не поддерживающая описываемую технологию, а также ситуация, связанная с разгоном центрального процессора.
Процессоры семейства Core 2 Duo E6xxx поддерживают технологию EIST, минимальный множитель равен 6x, что позволяет моделям с 1066 МГц шиной работать на частоте 1.6 ГГц в моменты простоя. Уровень энергопотребления в таком состоянии не превысит 22 Вт. Готовящийся к анонсу в четвёртом квартале процессор Core 2 Duo E4200 с частотой 1.6 ГГц и 800 МГц шиной в «экономичном» режиме будет работать на частоте 1.2 ГГц.
Понижение рабочего напряжения процессора, или тюнинг 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).
EST управляет работой процессора в P-состоянии (P-state), они-то и будут нас интересовать. К примеру, Pentium M поддерживает шесть P-состояний (см. рис. 1.1 и таб. 1.6 pdf’ки), отличающихся напряжением и частотой:
Узнать, поддерживает ли ваш процессор 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 — шаг. Таблица для некоторых популярных процессоров (все значения в милливольтах):
Процессор | Vid0 | Vstep | Vboot | Vmin | Vmax |
---|---|---|---|---|---|
Pentium M | 700,0 | 16,0 | xxxx,x | xxx,x | xxxx,x |
E6000, E4000 | 825,0 | 12,5 | 1100,0 | 850,0 | 1500,0 |
E8000, E7000 | 825,0 | 12,5 | 1100,0 | 850,0 | 1362,5 |
X9000 | 712,5 | 12,5 | 1200,0 | 800,0 | 1325,0 |
T9000 | 712,5 | 12,5 | 1200,0 | 750,0 | 1300,0 |
P9000, P8000 | 712,5 | 12,5 | 1200,0 | 750,0 | 1300,0 |
Q9000D, Q8000D | 825,0 | 12,5 | 1100,0 | 850,0 | 1362,5 |
Q9000M | 712,5 | 12,5 | 1200,0 | 850,0 | 1300,0 |
Множитель (т.е. Fid) записывается в PSV сдвинутым на 8 бит влево, младшие шесть бит занимает Vid. Т.к. в нашем случае остальными битами можно пренебречь, то PSV, частота процессора, системной шины и физическое напряжение связаны простой формулой (для Pentium M):
Теперь рассмотрим регистр управления ( 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).