Что такое cir controller в Биосе и для чего он нужен

Cir controller (Consumer IR Controller) в BIOS — это компонент, отвечающий за управление инфракрасным подключением устройства, обычно используемого для взаимодействия с пультами дистанционного управления. Он позволяет операционной системе и приложениями получать команды от пультов, обеспечивая тем самым возможность управления мультимедийными устройствами без проводов.

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

Cтандарт ErP/EuP (ликбез)

Термин ErP расшифровывается как «продукты, потребляющие энергию». Он регулируется экологической директивой Европейского Союза (2009/125/EC), целью которой является значительное сокращение выбросов парниковых газов и расхода энергии к 2020 году.

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

Экологическая директива делится на несколько групп товаров, известных как лоты, которые сосредотачиваются на категориях с высоким энергопотреблением. Вентиляционные системы, относящиеся к таким процессам, как вентиляция, отопление и кондиционирование воздуха, составляют примерно 15% от общего потребления энергии в странах ЕС.

Новый алгоритм проверки их энергоэффективности ( б ыл внедрён в программу подбора AirCalc++ к концу 2015 года), требует чтобы все воздухообрабатывающие агрегаты, произведенные для европейского рынка должны выполнять стандарт ErP 2016 с 1 января 2016 года. Следующим шагом стал стандарт ErP 2018, который был введён с 1 января 2018 года.

Число компьютеров неуклонно увеличивается, и они быстро стали одними из основных устройств с высоким потреблением энергии, что привело к созданию стандарта ErP/EuP. Он нацелен на снижение энергопотребления материнской платы в режиме ожидания (StandBy Mode). EuP 2013 — это функция, позволяющая уменьшить расход энергии, когда компьютер выключен, но все еще подключен к сети. Для ее функционирования необходимо, чтобы материнская плата и блок питания поддерживали данную возможность. При желании данную функцию можно деактивировать — это не является критичным.

ErP/EuP обозначает Energy Using Product (устройство, потребляющее энергию). Чтобы компьютер соответствовал стандартам ErP/EuP, требуется наличие совместимой материнской платы и блока питания. Компания ASRock, заботясь об экологии, стала пионером в разработке материнских плат, которые на аппаратном уровне соответствуют требованиям ErP/EuP.

Компания Intel указала, что блок питания, соответствующий стандартам ErP/EuP, должен демонстрировать эффективность 50% для 5V линии при 100 мА в состоянии ожидания. Для выбора подходящей модели с поддержкой ErP/EuP следует ознакомиться с данными производителей блоков питания, где обычно приводится подобная информация в характеристиках устройств. По требованиям ErP/EuP, система должна потреблять менее 1 Вт энергии, когда она выключена.

Стандарт EuP был инициирован Европейским Союзом с целью определения уровня энергопотребления готовых систем. Материнские платы P55 Deluxe и P55 Extreme от ASRock стали первыми в мире, поддерживающими стандарт ErP/EuP 2.0. EuP 2013 – это улучшенная спецификация, вступившая в силу в 2013 году, согласно которой общее энергопотребление компьютера в выключенном состоянии не должно превышать 0,5 Вт.

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

Режим C1E Support предназначен для уменьшения расхода энергии процессора в неактивном состоянии, однако не все процессоры имеют поддержку Enhanced Halt State (C1E).

Как и на большинстве современных материнских плат, в BIOS можно активировать опцию «EuP Control», чтобы минимизировать потребление энергии в выключенном состоянии. Эта опция располагается в разделе «ACPI Settings».

Рассмотрим пример в хода (рис. 1) в состояние Intel Deep Sleep Well (DSW — глубокий сон):

— PCH активирует SUS_WARN # и отключит 5VDUAL;

— когда напряжение 5VDUAL упадет ниже 1,05В, F71869A отправит сигнал SUS_ACK # в PCH, информируя о своей готовности перейти в DSW;

— PCH уменьшит внутренний VccSUS и подтвердит это выдачей SLP_SUS# в F71869A;

— F71869A деактивирует 5VSB и 3VSB (посредством ERP_CTRL0 #) и перейдет в состояние DSW.

Для выхода из состояния DSW:

— PCH отключит SLP_SUS#, активирует полевые транзисторы SUS и повысит внутреннее напряжение до 1,05В VccSUS;

— после повышения напряжения SUS RSMRST# будет удален, а PCH снимет SUS_WARN #, и появится 5VDUAL.

Управление функцией DSW осуществляется через F71869A (в отличие от прямого контроля со стороны PCH), что приводит к большему количеству событий пробуждения, таким как LAN, клавиатура/мышь, SIO RI# и т.д., в сравнении с тремя событиями пробуждения (RTC, кнопка питания и GPIO27) для Intel DSW.

Кроме того, для снижения энергопотребления F71869A предлагает ERP_CTRL1# для отключения V3A, что позволяет системе перейти в состояние Fintek G3.

На блок-схеме (рис. 1) показано, как подключается и управляется метод для F71869A и PCH.

Cir10 field 1: что это в биосе?

Cir10 поле 1 – это один из ключевых параметров, настраиваемых в BIOS вашего компьютера. Он определяет, как будет функционировать микропроцессор и как он взаимодействует с другими компонентами системы.

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

Применение Cir10 field 1 может быть разным в зависимости от конкретной системы и ее конфигурации. Однако, общим правилом является установка значения этого параметра, оптимального для конкретного процессора и компонентов, установленных на материнской плате.

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

В целом, Cir10 field 1 представляет собой параметр BIOS, который отвечает за ширину кэш-памяти первого уровня процессора и его взаимодействие с другими компонентами системы. Его следует правильно настроить для конкретной системы, чтобы обеспечить максимальную производительность и стабильность работы компьютера. Однако при изменении этого параметра также нужно быть внимательным и осведомлённым о конфигурации системы, чтобы избежать возможных проблем и потерь данных.

Роль Cir10 field 1 в биосе

В BIOS компьютера Cir10 поле 1 играет ключевую роль. Это один из параметров, который задаёт настройки системы.

В основном, Cir10 field 1 отвечает за определение типа клавиатуры, используемой в компьютере. Он позволяет установить нужную раскладку клавиатуры и настроить правильное обнаружение и распознавание нажатых клавиш. Благодаря этому параметру, пользователь может работать с клавиатурой без каких-либо проблем.

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

Значение Cir10 field 1 для работы компьютера

Параметры значения Cir10 field 1 могут варьироваться и определяют различные характеристики процессора, включая тактовую частоту, уровень напряжения, множитель, рабочий режим и другие аспекты. В зависимости от установленных значений, Cir10 field 1 способен изменять характеристики процессора, что, в свою очередь, может оказывать влияние на его производительность и стабильность функционирования.

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

ПараметрОписание
Тактовая частотаОпределяет скорость функционирования процессора. Чем выше значение частоты, тем быстрее он может обрабатывать данные.
Напряжение питанияУказывает напряжение, подаваемое на процессор. Низкое значение может снизить потребление энергии, но в то же время может привести к нестабильности.
МножительОпределяет связь между тактовой и внутренней частотой процессора. Более высокий множитель способствует увеличению тактовой частоты.
Режим работыОпределяет конкретный режим функционирования процессора, например, «экономия энергии», «максимальная производительность» и другие.

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

Принцип работы Cir10 field 1 в биосе

CI-kardachelor представляет собой инструмент для оценки вероятности возникновения сердечно-сосудистых заболеваний, основываясь на различных параметрах, включая возраст, пол, артериальное давление и уровень холестерина. Данная система позволяет медицинским специалистам определять необходимость в проведении дополнительных профилактических мероприятий по предотвращению сердечно-сосудистых заболеваний.

Cir10 field 1 позволяет настроить первое поле системы CI-kardachelor, которое включает факторы, такие как возраст, пол и наличие хронических заболеваний. Путем правильной настройки этого поля можно получить более точную оценку риска развития сердечно-сосудистых заболеваний для конкретного пациента.

Настройка поля Cir10 field 1 в BIOS предоставляет возможность медикам адаптировать систему CI-kardachelor с учетом индивидуальных характеристик пациента. К примеру, у пожилых пациентов вероятность возникновения сердечно-сосудистых заболеваний может быть повышена, поэтому значение Cir10 field 1 может быть отрегулировано с учетом этого аспекта.

Применение Cir10 field 1 в BIOS способствует более точной оценке вероятности развития сердечно-сосудистых заболеваний и помогает в принятии решения о необходимости дополнительных мер для их предотвращения.

Особенности Cir10 field 1 и его связь с аппаратным обеспечением

Поле СIR10 1 в BIOS является ключевым параметром, который непосредственно связан с оборудованием компьютера. Он играет роль в настройке системной конфигурации и может оказывать влияние на функциональность различных устройств.

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

Главная цель Cir10 field 1 заключается в гарантии надлежащей совместимости процессора с другими элементами системы. Неверная настройка данного параметра может стать причиной проблем при запуске или неэффективной работе компьютера.

Для корректировки Cir10 field 1 в BIOS, как правило, используется специализированное меню BIOS Setup, к которому можно перейти во время загрузки компьютера. В этом меню доступны опции изменения значений параметра Cir10 field 1 в соответствии с спецификациями конкретной системы.

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

Краткое руководство по управлению питанием процессора

Каким образом центральный процессор способен снижать свое энергопотребление? В статье мы подробно рассмотрим все нюансы этого процесса. Введение Центральный процессор (ЦП) разрабатывается с расчётом на длительную работу при определённой нагрузке. В действительности, очень редко происходят вычисления на протяжении всего дня, поэтому большую часть времени он функционирует не на максимальной мощности. Но зачем оставлять его включенным на полную силу? Тут стоит […]

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

Центральный процессор (CPU) спроектирован на бесконечно долгую работу при определенной нагрузке. Практически никто не проводит вычисления круглые сутки, поэтому большую часть времени он не работает на расчетном максимуме. Тогда какой смысл держать его включенным на полную мощность? Здесь стоит задуматься об управлении питанием процессора. Эта тема включает в себя оперативную память, графические ускорители и так далее, но я собираюсь рассказать только про CPU.

Если вам знакомы C-состояния (C-states) и P-состояния (P-states), а также принципы их переключения процессором, то, возможно, здесь вы не найдете ничего нового. В противном случае, продолжайте чтение.

Я имел намерение привести примеры из операционной системы Linux, но текст статьи стал слишком объемным, поэтому решил отложить это на следующую публикацию.

Главные источники информации, использованные в данном материале:

  • Технические документы серии процессоров Intel(R) Xeon E3–1200 v5;
  • Спецификация процессора Intel(R) Xeon E3–1245 v5;
  • Документ Intel White Paper о влиянии программного обеспечения на энергоэффективность платформ;
  • Руководство разработчика по архитектурам Intel(R) 64 и IA-32;
  • Спецификация ACPI версии 6.2;
  • Статья о ACPI на Википедии;
  • Исходные коды ядра Linux версии 4.13.0.

Все таблицы и изображения взяты из даташита, если не указано иного.

Особенности CPU

Согласно информации с официального сайта продукта, мой процессор имеет поддержку следующих технологий:

  • C-состояния (Idle States);
  • усовершенствованная технология Intel SpeedStep® (Enhanced Intel SpeedStep® Technology).

На данной странице указано, что «C-состояния используются для экономии энергии, когда процессор находится в состоянии простоя» и «Технология Intel SpeedStep® управляет уровнем напряжения и частоты в зависимости от текущей загрузки процессора».

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

Как снизить энергопотребление процессора во время его работы?

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

  • Уменьшить энергозатраты подсистемы (например, ядра или других компонентов, таких как тактовый генератор или кэш) путем отключения питания (снизив напряжение до нуля).
  • Сократить потребление энергии за счет снижения напряжения и/или частоты подсистемы и/или всего процессора.

Первый подход интуитивно понятен: если нет питания, то и не будет потребления энергии.

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

Заметка для специалистов в области цифровой электроники:

Pcpu = Pдинамическая + Pкороткого замыкания + Pутечка

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

Более того, напряжение и тактовая частота связаны линейной зависимостью.

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

Каков предел энергопотребления процессора?

На приведенном выше изображении видно, что в состоянии PL2 процессор использует больше энергии, чем указано в значении TDP. Длительности нахождения процессора в этом состоянии может достигать 100 секунд, что является значительным временем.

Состояния питания (C-states) vs состояния производительности (P-states)

Вот два способа снизить энергопотребление процессора:

  • деактивировать отдельные подсистемы;
  • уменьшить напряжение/частоту.

Это достигается посредством:

  • C-состояний;
  • P-состояний.

C-состояния представляют собой первый метод уменьшения потребления энергии процессора, что делает их состояниями простоя. Для деактивации той или иной подсистемы на ней не должно выполняться никаких операций, то есть она должна находиться в состоянии простоя. Таким образом, C-состояние, C[X], указывает на то, что одна или несколько подсистем процессора отключены.

P-состояния описывают второй случай. Подсистемы процессора работают, но не требуют максимальной производительности, поэтому напряжение и/или тактовая частота для этой подсистемы может быть снижена. Таким образом, P-состояния, P[X], обозначают, что некоторая подсистема (например, ядро), работает на заданной паре (частота, напряжение).

Поскольку большинство современных процессоров включает несколько ядер, С-состояния делятся на С-состояния ядер (Core C-states, CC-states) и С-состояния процессора (Package C-states, PC-states). Появление PC-состояний обусловлено простым фактором: некоторые компоненты, такие как общий кэш, можно отключить только после деактивации всех ядер, имеющих к ним доступ. Тем не менее, как пользователи или разработчики, мы не можем напрямую управлять состояниями пакета, но способны контролировать состояния отдельных ядер. Таким образом, манипулируя CC-состояниями, мы косвенно влияем и на PC-состояния.

Состояния маркируются цифрами, начиная с нуля, например, C0, C1… и P0, P1… Чем выше число, тем выше эффективность энергосбережения. C0 обозначает, что все элементы активны. P0 указывает на максимальную производительность, что подразумевает максимально возможные тактовую частоту, напряжение и потребление энергии.

С-состояния

Представлены основные состояния С, определенные в рамках стандарта ACPI.

  • C0: Активное состояние, процессор или ядро выполняет команды. В этом состоянии активны P-состояния, где процессор может работать с максимальной производительностью (P0) или в режиме энергосбережения (в любых состояниях, кроме P0).
  • C1: Halt, процессор не выполняет команды, но способен быстро перейти обратно в C0. В данном состоянии P-состояния не имеют значения, так как процессор не активен.
  • C2: Stop-Clock, похоже на C1, однако для возврата в C0 требуется больше времени.
  • C3: Sleep. Переход в C0 занимает значительно больше времени.

Современные процессоры имеют гораздо больше C-состояний. Согласно даташиту, семейство процессоров Intel® Xeon® E3-1200 v5 поддерживает состояния C0, C1, C1E (C1 Enhanced), C2, C3, C6, C7 и C8. Состояния C1 и C1E поддерживаются только ядрами, а состояние C2 — только процессором. Остальные состояния поддерживаются и ядром, и процессором.

Обратите внимание: благодаря технологии Intel® Hyper-Threading также имеют место С-состояния потоков. Хотя отдельный поток способен функционировать с С-состояниями, изменения в потреблении энергии фиксируются только в том случае, если ядро переходит в соответствующее состояние. В этой статье не будет обсуждаться тема C-состояний для потоков.

Ниже приведено описание состояний из технической документации:

Примечание: LLC обозначает Last Level Cache, кэш последнего уровня и обозначает общий L3 кэш процессора.

Графическое отображение состояний:

Объяснение последовательности C-состояний простыми словами:

  • Работа в обычном режиме осуществляется при состоянии C0.
  • Первым делом перестает функционировать тактовый генератор неактивного ядра (C1).
  • После этого происходит сброс локальных кэшей ядра (L1/L2) и отключение питания ядра (C3).
  • Когда все ядра выключены, общий кэш (L3/LLC) также сбрасывается, и процессор может быть практически полностью обесточен. Я уточняю «практически», так как, вероятно, какая-то часть должна оставаться включенной, чтобы вернуть процессор в состояние C0.

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

Тем не менее, если ядро функционирует в режиме C0, процессор может находиться исключительно в этом состоянии. Напротив, когда ядро полностью отключено (C8), процессор способен работать в C0, если другое ядро активно.

Замечание: В руководстве для разработчиков ПО Intel упоминаются суб-C-состояния. Каждое из С-состояний делится на несколько суб-С-состояний. Изучив исходный код модуля intel_idle, я установил, что состояния C1 и C1E являются вариацией состояния C1, где подтипом 0 и 1 соответственно.

Количество подтипов для всех восьми С-состояний (0..7) определяется с помощью команды CPUID. Для моего процессора утилита cpuid предоставляет следующую информацию:

MONITOR/MWAIT (5): минимальный размер монитора (байты) = 0x40 (64) максимальный размер монитора (байты) = 0x40 (64) поддерживаемые расширения Monitor-MWAIT = истинно поддерживает прерывания как событие прерывания для MWAIT = истинно количество под-статусов C0, использующих MWAIT = 0x0 (0) количество под-статусов C1, использующих MWAIT = 0x2 (2) количество под-статусов C2, использующих MWAIT = 0x1 (1) количество под-статусов C3, использующих MWAIT = 0x2 (2) количество под-статусов C4, использующих MWAIT = 0x4 (4) количество под-статусов C5, использующих MWAIT = 0x1 (1) количество под-статусов C6, использующих MWAIT = 0x0 (0) количество под-статусов C7, использующих MWAIT = 0x0 (0)

Замечание из инструкции Intel: «Состояния C0..C7 для расширения MWAIT — это специфичные для процессора C-состояния, а не ACPI C-состояния». Поэтому не путайте эти состояния с ACPI C-состояниями, они явно связаны и между ними есть соответствие, но это не одно и то же.

Ниже вы можете увидеть гистограмму, которую я сформировал на основе исходного кода драйвера intel_idle для своего процессора (модель 0x5e). Указания на горизонтальной оси:

Имя C-состояния: состояние, характерное для конкретного процессора: специфичное суб-состояние.

Вертикальная ось обозначает задержку выхода и целевые резидентные значения из исходного кода. Задержка выхода используется для оценки влияния данного состояния в реальном времени (то есть сколько времени потребуется для возвращения в С0 из этого состояния). Целевое резидентное значение обозначает минимальное время, которое ядро должно находиться в данном состоянии, чтобы оправдать энергетические затраты на переход в это состояние и обратно. Обратите внимание на логарифмический масштаб вертикальной оси. Задержки и минимальное время нахождения в состоянии увеличивается экспоненциально с увеличением номера состояния.

Примечание: Несмотря на то что состояния С9 и С10 присутствуют в таблице, у них нет суб-состояний, поэтому они не применяются в моем процессоре. Остальные процессоры из данной серии могут поддерживать эти состояния.

Состояния питания ACPI

Перед тем как обсуждать P-состояния, необходимо отметить состояние питания ACPI. Это то, с чем мы, пользователи, сталкиваемся при работе за компьютером. Глобальные системные состояния (G[Х]) представлены в таблице ниже.

Также существует специальное глобальное состояние G1/S4, Non-Volatile Sleep, когда состояние системы сохраняется на энергонезависимое хранилище (например, диск) и затем производится выключение. Это позволяет достичь минимального энергопотребления, как в состоянии Soft Off, но возвращение в состояние G0 возможно без перезагрузки. Оно более известно как гибернация.

Существует несколько фаз сна (Sx). Всего таких фаз шесть, среди которых S0 обозначает отсутствие сна. Состояния S1-S4 применяются в режиме G1, а S5, Soft Off, используется в G2. Вот краткий обзор:

  • G0/S0: Компьютер функционирует, режим сна не включен.
  • G1: Спящий режим.
  • G1/S1: Приостановка питания. Состояние системы сохраняется, питание процессора и кэшей остаётся включенным.
  • G1/S2: Процессор отключён, кэши сброшены.
  • G1/S3: Состояние ожидания или приостановка в оперативной памяти (STR). Оперативная память остаётся практически единственным активным компонентом.
  • G1/S4: Гибернация или приостановка на диске. Все данные сохраняются в энергонезависимой памяти, все системы обесточены.

Как видно на рисунке ниже, для моего процессора все С-состояния, упомянутые ранее, активируются в G0/S0. Иными словами, при переходе в режим сна (G1) процессор полностью отключается.

Ниже представлены состояния, поддерживаемые ACPI.

Комбинации состояний ACPI G/S и С-состояний процессора

Приятно видеть все комбинации в таблице:

В режиме G0/S0/C8 процессора системы выполняются задачи, однако все ядра находятся в состоянии отключения.

В G1 (S3 или S4) неправильно упоминать о С-состояниях (что касается как CC-состояний, так и PC-состояний), поскольку процессор полностью лишён питания.

Для G3 не существует S-состояний. Система не спит, она физически отключена и не может проснуться. Ей необходимо сначала получить питание.

Как программно запросить переход в энергосберегающее С-состояние?

Одним из современных (хотя и не единственным) методов для инициирования перехода в режим энергосбережения является использование инструкций MWAIT или HLT. Эти команды относятся к привилегированному уровню и недоступны для выполнения в пользовательских приложениях.

Инструкция MWAIT (Monitor Wait) переводит процессор в оптимизированное состояние (C-состояние) до тех пор, пока по адресу, заданному с помощью команды MONITOR, не произойдёт запись. Для управления энергопотреблением MWAIT взаимодействует с регистром EAX. Биты с 4 по 7 предназначены для указания нужного C-состояния, а биты с 0 по 3 — для обозначения суб-состояния.

Примечание: Я думаю, что на данный момент только AMD обладает инструкциями MONITORX/MWAITX, которые, помимо мониторинга записи по адресу, работают с таймером. Это еще называется Timed MWAIT.

Команда HLT (halt) прекращает исполнение, после чего ядро оказывается в режиме HALT до возникновения прерывания. Это указывает на то, что ядро вступает в состояние C1 или C1E.

Что вынуждает ядро входить в определенное С-состояние?

  • Ядро переходит в состояние C0 во время загрузки, при возникновении прерывания или после записи в наблюдаемый адрес памяти с помощью инструкции MWAIT.
  • Переход в состояния C1/C1E осуществляется с использованием инструкций HLT и MWAIT.
  • Состояние C3 достигается при помощи инструкции MWAIT. Кэши L1 и L2 сбрасываются в кэш верхнего уровня (LLC), и все тактовые генераторы процессора перестают работать. Тем не менее, ядро продолжает сохранять свое состояние, поскольку оно не обесточено.
  • Переход в состояние C6 реализуется через инструкцию MWAIT. В этом режиме ядро сохраняет свое состояние в выделенной SRAM, а напряжение на ядре снижается до нуля, что приводит к обесточиванию ядра. При выходе из состояния C6 информация восстанавливается из SRAM.
  • Для состояний C7 и C8 процесс происходит аналогично состоянию C6.

Напоминаю, что в этом ответе я не касаюсь темы гипертрединга.

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

Возможно ли отключить С-состояния (всегда использовать С0)?

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

Как прерывания влияют на процессор/ядро в состоянии сна?

При возникновении прерывания нужное ядро активируется и переходит в состояние С0. К примеру, процессор Intel Xeon E3-1200 v5 реализует технологию Power Aware Interrupt Routing (PAIR), которая имеет два преимущества:

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

P-состояния

P-состояния означают, что процессор находится в состоянии С0, поскольку ему необходимо питание для выполнения команд. P-состояния дают возможность изменять напряжение и частоту работы ядра (иначе говоря, режим работы), что способствует уменьшению потребляемой энергии. Имеется ряд P-состояний, каждое из которых соответствует различным режимам работы (пара напряжение-частота). Наивысший режим работы (P0) обеспечивает максимальную производительность.

Процессор Intel Xeon E3–1200 v5 позволяет контролировать P-состояния из операционной системы (Intel SpeedStep® Technology) или оставить это оборудованию (Intel® Speed Shift Technology). Вся информация ниже специфична для семейства Intel Xeon E3-1200 v5, но я полагаю, это в той или иной степени актуально и для других современных процессоров.

P-состояния, управляемые операционной системой

В данной ситуации операционная система осведомлена о P-состояниях и конкретно о том, какое состояние запрашивается операционной системой. Иными словами, ОС определяет рабочую частоту, а процессор подбирает соответствующее напряжение в зависимости от частоты и других обстоятельств. После того, как P-состояние запрашивается путем записи в моделезависимый регистр (речь идет о записи 16 бит в регистр IA32_PERF_CTL), напряжение настраивается на автоматически рассчитанное значение, и тактовый генератор переключается на установленные параметры частоты. Все ядра имеют единое P-состояние, что делает невозможным установку P-состояния исключительно для одного ядра. Узнать текущее P-состояние (рабочий режим) можно, считав данные из другого моделезависимого регистра — IA32_PERF_STATUS.

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

P-состояния, управляемые оборудованием

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

В следующей статье я планирую более подробно обсудить эту тему, а пока хочу поделиться своими размышлениями. Мой персональный компьютер функционирует в этом режиме, и я выяснил это, проверив IA32_PM_ENABLE. Максимально возможный (хотя и не гарантированный) уровень производительности составляет 39, а минимальный — 1. Можно предположить, что имеется 39 P-состояний. В настоящее время уровень 39 зафиксирован операционной системой как минимальный и максимальный, так как я отключил автоматическую регулировку частоты процессора в ядре.

Заметки про Intel® Turbo Boost

Так как TDP (тепловая мощность) представляет собой максимально допустимую мощность, которую способен выдержать процессор, он может увеличивать свою частоту выше базового уровня, при условии, что энергозатраты не превысят значение TDP. Технология Turbo Boost позволяет временно увеличивать энергопотребление до уровня PL2 (Power Limit 2) на ограниченное время. Настройки работы Turbo Boost могут быть адаптированы с помощью специальных указаний для оборудования.

Применима ли эта информация о C-состояниях и P-состояниях к мобильным и встраиваемым процессорам?

Например, недавно выпущенный MacBook Air с процессором i5-5350U, в целом, отображает перечисленные выше функции (хотя я не уверен насчет P-состояний, которые управляются аппаратным обеспечением). Также я ознакомился с документацией по ARM Cortex-A, и хотя используются иные наименования, методы управления энергетическими ресурсами выглядят аналогично.

Как это все работает, например, на Linux?

На этот вопрос я отвечу в другой статье.

Как я могу узнать состояние процессора?

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

Вот какая информация доступна (это не полный список данных).

Вот информация о ядре, включая информацию о драйвере idle.

$ ./corefreq-cli -g Состояния циклов(%) PC02 1121802850 32.49 PC03 1298328500 37.83 PC06 0 0.00 PC07 0 0.00 PC08 0 0.00 PC09 0 0.00 PC10 0 0.00 PTSC 3503877892 UNCORE 150231

Отслеживание состояния счетчиков C для ядра:

$ ./corefreq-cli -c Частота ЦП(MHz) Соотношение Турбо C0(%) C1(%) C3(%) C6(%) C7(%) Миним TMP:TS Максим#00 355.67 ( 3.55) 10.15 10.28 26.43 0.04 11.49 51.77 41 / 45:55 / 56#01 355.64 ( 3.55) 10.15 10.38 19.21 0.68 15.44 54.28 42 / 45:55 / 55#02 389.95 ( 3.89) 11.13 11.35 15.67 0.16 18.17 54.65 40 / 43:57 / 54#03 365.38 ( 3.65) 10.43 10.61 19.77 0.18 13.93 55.51 40 / 43:57 / 54 Средние: Турбо C0(%) C1(%) C3(%) C6(%) C7(%) TjMax: Pkg: 10.46 10.66 20.27 0.27 14.76 54.05 100 C 46 C
$ ./corefreq-cli -V Частота ЦП (МГц) VID Напряжение #00 130.70 0 0.0000 #01 120.08 0 0.0000 #02 124.18 0 0.0000 #03 103.46 9784 1.1943 Пакет Ядра Ункор Память Энергия (Дж): 13.415222168 2.248596191 0.000000000 0.951416016 Мощность (Вт): 26.830444336 4.497192383 0.000000000 1.902832031

Данная статья является переводом. Исходный текст доступен по ссылке.

Оцените статью
LeeReload
Добавить комментарий