intel smx technology что это

Процессоры и их малодокументированные функции

Intel Demand Based Switching

Совместно с Enhanced Intel SpeedStep Technology, технология Intel Demand Based Switching отвечает за то, чтобы в каждый момент времени при текущей загрузке процессор работал на оптимальной частоте и получал адекватное электрическое питание: не больше и не меньше, чем требуется. Таким образом уменьшается энергопотребление и тепловыделение, что актуально не только для портативных устройств, но и для серверов тоже – именно там Demand Based Switching и используется.

Intel Fast Memory Access

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

Intel Flex Memory Access

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

Intel Instruction Replay

Очень глубоко расположенная технология, появившаяся впервые в процессорах Intel Itanium. В процессе работы процессорных конвейеров может случиться такая ситуация, когда инструкции уже пришла очередь исполняться, а необходимые данные пока недоступны. Инструкцию тогда необходимо «переиграть»: снять с конвейера и запустить в его начале. Что, собственно, и происходит. Еще одна важная функция IRT – коррекция случайных ошибок на процессорных конвейерах. Подробнее об этой очень интересной функции читайте здесь.

Intel My WiFi Technology

Технология виртуализации, позволяющая добавить виртуальный WiFi адаптер к существующему физическому; таким образом, ваш ультрабук или ноутбук может стать полноценной точкой доступа или повторителем. Программные компоненты My WiFi входят в состав драйвера Intel PROSet Wireless Software версии 13.2 и выше; надо иметь в виду, что с технологией совместимы лишь некоторые WiFi адаптеры. Инструкцию по установке, а также перечень программных и аппаратных совместимостей можно найти на сайте Intel.

Intel Smart Idle Technology

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

Intel Stable Image Platform

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

Intel QuickAssist

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

Intel Quick Resume

Технология, разработанная для компьютеров на базе платформы Intel Viiv, позволявшая им включаться и выключаться практически мгновенно, как ТВ-приемники или DVD-плееры; при этом в «выключенном» состоянии компьютер мог продолжать выполнение некоторых задач, не требующих вмешательства пользователя. И хотя сама платформа плавно перешла в другие ипостаси вместе с сопутствовавшими ей наработками, в ARK строчка еще присутствует, ведь это было не так-то уж и давно.

Intel Secure Key

Обобщающее название для 32- и 64-битной инструкции RDRAND, использующей аппаратную реализацию генератора случайных чисел Digital Random Number Generator (DRNG). Инструкция используется в криптографических целях для генерации красивых и высококачественных случайных ключей.

Intel TSX-NI

Технология со сложным названием Intel Transactional Synchronization Extensions – New Instructions подразумевает под собой надстройку над системой работы с кэшем процессора, оптимизирующую среду исполнения многопоточных приложений, но, конечно, только в том случае, если эти приложения используют программные интерфейсы TSX-NI. Со стороны пользователя данная технология непосредственным образом не видна, но все желающие могут прочитать ее описание доступным языком в блоге Степана Кольцова.

В заключение еще раз хотим напомнить, что Intel ARK существует не только в виде сайта, но и как оффлайновое приложение для iOS и Android. Будьте в теме!

Источник

Что делает центральный процессор, когда ему нечего делать

intel smx technology что это

Мужик приходит устраиваться работать на стройку. Его спрашивает мастер:
— Что делать умеешь?
— Могу копать…
— А что еще?
— Могу не копать…

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

Неактивным процессор может быть не только для экономии энергии, но и в результате возникновения особых ситуаций, в процессе выполнения протоколов инициализации или как итог намеренных действий системных программ. Почему это интересно? При написании программных моделей (в том числе виртуальных машин) компьютерных систем, необходимо корректно моделировать переходы между состояниями виртуальных процессоров. В работе системных программ регулярно возникают ситуации, когда по тем или иным причинам ЦПУ должен «притормозить». Умение корректно использовать и моделировать эти ситуации зависит от знания и понимания спецификаций.

В статье фокус делается на программной стороне вопроса состояний процессора. Я не буду концентрироваться на деталях реализации (напряжения, пины, частоты и т.д.), так как 1) они существенно различаются между поколениями и моделями процессоров даже одной архитектуры, тогда как программный интерфейс остаётся обратно совместимым; 2) они не видны напрямую программам и ОС. Это попытка просуммировать информацию, разбросанную по многим страницам справочника Intel IA-32 and Intel 64 Software Developer Manual.

Начнём с простой и всем знакомой ситуации — процессор включён, бодр и весел.

Активное состояние

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

Частично этим процессом можно управлять программно, из BIOS, ОС или прикладных программ. Однако последнее слово в управлении при этом остаётся вне контроля программ, запущенных на центральном процессоре.

Во всех остальных режимах, описываемых дальше, процессор не исполняет инструкции.

Первый из неактивных режимов, появившихся ещё в родоначальнике серии Intel 8086, связан с одноимённой инструкцией процессора. Исполнив эту инструкцию, процессор останавливает свою работу, уже не исполняя следующую команду. Начиная с Intel 80486 DX4 в этом режиме энергопотребление ЦПУ уменьшается по сравнению с активным режимом. Как конкретно это делается — зависит от реализации.

Сам по себе выйти из подобного сонного состояния процессор не может. Требуется внешнее событие. Это может быть обычное прерывание от устройства, немаскируемое прерывание (NMI), прерывание системного режима (SMI) или же варианты инициализирующих сигналов — INIT или RESET.

Да, если выполнить HLT в режиме SMM (system management mode), в котором по умолчанию блокируются все прерывания и немаскируемые прерывания. После этого только RESET сможет вновь запустить обработку машинных команд.

Формально режим после HLT обозначается как C1.

MWAIT и другие энергосберегающие режимы

Идея с особым режимом для энергосбережения центрального процессора получила дальнейшее развитие в виде новой инструкции MWAIT. В отличие от HLT, которая не имеет операндов, MWAIT принимает два значения в регистрах EAX и ECX. При этом в EAX содержится описание желаемого энергосберегающего состояния, численные значения для C-state и C-substate.

Регистр ECX определяет необязательные подсказки (hints) для указанного в команде варианта неактивного режима. В настоящий момент описывается только один такой хинт — флаг в нулевом бите. О его назначении будет сказано чуть ниже.

В остальном поведение процессора после исполнения аналогично HLT: процессор останавливает работу до прибытия внешних сигналов. В отличие от HLT, достигаемая в случае MWAIT экономия энергии может быть больше. Если HLT — это состояние C1, то с помощью MWAIT можно запросить переход процессора в более глубокий сон — состояния C2, C3… C6 и т.д. Каждое такое состояние может иметь под-состояния. Конкретные допустимые комбинации варьируются, и для конкретной модели процессора описываются в пятом листе инструкции CPUID.

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

Типичная ситуация в параллельных алгоритмах: поток А ожидает сигнала о готовности от потока Б, после чего оба они могут продолжить вычисления. В многопроцессорных системах А и Б будут исполняться на разных логических процессорах. Каким образом можно передать этот сигнал? Два варианта:

Поместить А в неактивный режим (например, с помощью HLT). Затем Б использует межпроцессорное прерывание, которое выводит А из состояния сна. Однако посылка и обработка такого прерывания довольно дорога в терминах времени, т.к. она потребует нескольких переходов между режимами ядра и пользователя, да и путь сигнала прерывания будет неблизким.

MWAIT в паре с инструкцией MONITOR призвана устранить недостаток второго подхода. Команда MONITOR принимает адрес в памяти в качестве своего аргумента, после чего процессор начинает «мониторить» его, ожидая записи из других потоков. Если такая запись произойдёт в то время, пока процессор находится в сонном состоянии из-за MWAIT, то он будет выведен из него.

Таким образом, состояние сна, созданное с помощью MWAIT, может быть прервано по двум причинам: внешние прерывания или запись в ячейку памяти, помеченную с помощью MONITOR. Но что будет, если прерывания были запрещены на момент исполнения MWAIT?

В первых реализациях MONITOR/MWAIT прибытие прерывания не привело бы к выходу из состояния сна. Оказалось, что такое поведение не очень удобно. Поэтому на современных процессорах MWAIT реализует расширение, включаемое с помощью бита ECX[0], которое позволяет даже запрещённым прерываниям выводить процессор из неактивного состояния.

Хочу подчеркнуть несколько «необязательный» характер поведения MWAIT. Выход из неактивного состояния может происходить по различным, не всегда контролируемым текущим приложением причинам. Программы, использующие её, должны быть спроектированы так, чтобы корректно работать, даже если выходы из сонного состояния будут происходить спонтанно. Поэтому в первом приближении MWAIT можно считать вариантом NOP — ничего не делающей инструкции. Это довольно типично для синхронизационных примитивов класса условная переменная (conditional variable). Алгоритмы, их использующие, обязаны корректно работать в условиях возможности паразитных пробуждений.

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

Wait-for-SIPI

Эта довольно неловкое название расшифровывается как «ожидание сигнала SIPI». SIPI, в свою очередь, является аббревиатурой для «Start-up IPI». Наконец, IPI — это «inter-processor interrupt», межпроцессорное прерывание. Чтобы понять, зачем было введено состояние wait-for-SIPI, нужно иметь общее представление о том, как происходит инициализация в многопроцессорной системе. Проблема следующая: если все ядра, потоки и процессоры после включения питания бросятся исполнять один и тот же загрузочный код, то наступит бардак. В общих чертах довольно сложный и варьирующийся в деталях на разных платформах процесс можно описать следующим образом.

После включения питания все логические процессоры включаются в гонку, в результате которой определяется один главный, т.н. загрузочный процессор (boot-strap processor, BSP). Все остальные процессоры обозначаются как прикладные процессоры (application processor, AP).

BSP начинает исполнять загрузочный код из ROM по адресу 0xfffffff0.

В состоянии wait-for-SIPI процессор не исполняет инструкции. Кроме того, он игнорирует внешние прерывания от устройств, сигналы INIT и NMI, задерживает SMI-прерывания. Фактически, единственное, что должно выводить его из этого состояния — это сигнал SIPI. Отмечу, что спецификации ничего не говорят про энергопотребление в этом режиме.

Хочу отметить, что при дальнейшей загрузки системы, все AP могут снова быть выключены и включены несколько раз. Например, загрузчик ОС может быть написан только для одного потока, да и сами ОС обычно предпочитают вводить процессоры в бой по одному. При этом состояние wait-for-SIPI уже не используется — в дело идёт HLT или просто бесконечный цикл на AP.

Большинству программистов, даже системным, не придётся встречать режим wait-for-SIPI в своей практике, просто потому что он случается однократно и довольно рано в процессе работы любой системы. Однако у этого правила есть исключение. Что произойдёт, если запускается виртуальная машина, использующая аппаратную поддержу виртуализации Intel VT-x, с несколькими логическими процессорами? Оказывается, что в режиме VMX non-root (гостевая система) процессор также можно помещать в различные режимы. Кроме активного, поддерживаются неактивные режимы HLT, Shutdown (о нём чуть дальше) и wait-for-SIPI. В этом состоянии поведение процессора очень похоже на то, что происходит и при обычной инициализации AP. А именно: он ничего не делает, игнорирует многие приходящие сигналы, и только при появлении SIPI выходит из гостевого режима в хозяйский (происходит VM-exit). Отмечу, что решение о том, использовать ли механизм SIPI, зависит от конкретного монитора виртуальных машин; на практике, некоторые их них реализуют собственный протокол пробуждения BSP и AP внутри ВМ.

Shutdown

Увы, код, который пишут люди, не безупречен. Серьёзные ошибки в прикладных программах чаще всего приводят к их завершению под зорким надзором операционной системы. Но вот кто позаботится о самой ОС, если она оступится? В качестве её «надзирателей» могут выступать программные мониторы вирутальных машин или, если они не используются, сама аппаратура, т.е. процессор и его особые состояния. О них и поговорим.

Типичная ситуация при работы любой программы — возникновение исключительной ситуации (interruption). Она далеко не всегда и вовсе не обязательно обозначает ошибку; прерывание текущей программы может быть временным, связанным с работой внешних устройств, или быть инициированно самим приложением намеренно, чтобы запросить у ОС некоторые сервисы (см. классификацию таких ситуаций в моём комментарии).

При возникновении исключительной ситуации происходит переключение состояния процессора, в чём-то похожее на очень усложнённый вызов процедуры. Нас сейчас не интересуют его детали (эта статья не об исключениях), важен лишь факт, что в этом процессе что-то может пойти не так — возникнуть исключение при попытки обработки исключения. В спецификации Intel IA-32 этот случай именуется Double Fault — двойной промах. Как и другие исключения, он имеет свой номер (8) и свою запись в системной таблице прерываний. ОС может настроить для него свой собственый програмный обработчик.

Но что будет, если и при попытке перехода в обработку Double Fault возникнет исключение? Гадать не нужно — такая ситуация зовётся Triple Fault, тройной промах. Вот только для него обработчика уже не предусмотрено; вместо этого процессор переводится в режим shutdown — останов.

Этот режим похож на состояние после HLT. В нём процессор прекращает исполнение инструкций до прибытия сигналов NMI, SMI, RESET или INIT. Что на самом деле произойдёт с системой в состоянии shutdown, зависит от реализации. Например, может быть включен световой индикатор на передней панели, сгенерировано немаскируемое прерывание для того, чтобы записать диагностическую информацию, проведена перезагрузка системы (горячая или холодная), или сгенерирован сигнал SMI.

Пожалуй, самая частая реакция на переход процессора в режим shutdown — это перезагрузка всей системы. В Linux намеренное переведение процессора в режим останова — это один из шести методов (последний, как самый отчаянный) обработать запрос на reboot.

Как и в случае с wait-for-SIPI, виртуализация добавляет ньюансов в поведение процессора в режиме shutdown. Тройной промах в режиме non-root, конечно же, не перезагружает всю систему. Он вызывает VM-exit, позволяя монитору ВМ обработать ситуацию в «глючной» гостевой системе. Кроме того, монитор может запускать гостя в режиме non-root в состоянии shutdown (уж не знаю, зачем это может понадобиться).

Ещё про Shutdown

Очень внимательный читатель документации может обнаружить, что некоторые выходы VM-exit с нарушенным состоянием процессора могут перевести процессор в так называемый режим VMX-abort shutdown. Он настолько суров, что из него процессор может вывести только RESET; все остальные сигналы он игнорирует.

Хочу отметить, что обычный Triple Fault в системном коде вызвать достаточно просто, достаточно просто не настраивать системные таблицы и немного подождать. Первое же разрешённое прерывание приведёт к (не)желаемому эффекту и перезагрузке.

А вот событие VMX-abort с последующим остановом получить не так просто. Возникнуть оно может только во время выхода из гостя в монитор (переход из non-root в root). Прежде чем выйти, надо войти (осуществить VM-entry). Но только при входе в non-root проводится огромное число проверок, в том числе таких, что запрещают работу с неконсистентным состоянием. Если что-то было настроено неверно, то попытка входа в гостевую ВМ сразу вернётся с кодом ошибки. Во время работы гость значительно ограничен в правах и самостоятельно разрушить системные структуры обычно не может. Другими словами, обычно ошибка в программе монитора проявляется раньше, при входе. Необходимо быть очень изобретательным (например, напортачить с изоляцией памяти или модель-специфичными регистрами), чтобы получить ошибку именно при VM-exit.

Экзотика: SENTER sleep и TXT shutdown

Напоследок, стоит упомянуть о расширении SMX (safer mode extensions), являющимся программным интерфейсом к набору платформенных технологий Intel TXT (trusted execution technology). Процессоры, поддерживающие SMX, получают ещё два неактивных режима.

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

Исполнение инструкции GETSEC[SENTER] на одном логическом процессоре вводит остальные процессоры в новое неактивное состояние SENTER Sleep. После этого программа, исполняющаяся на оставшемся активном процессоре, должна перевести систему в так называемое «заверенное» окружение (measured environment), Как только заверенное окружение готово, в нём могут работать и остальные процессоры. Для этого они выводятся из состояния SENTER sleep с помощью инструкции GETSEC[WAKEUP].

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

При детектировании недопустимых событий в заверенном окружении процессор переводится в новое состояние — TXT-shutdown. Его отличительная особенность состоит в том, что информация о причине останова сохраняется в платформенных регистрах и выживает после перезагрузки, что позволяет проанализировать её впоследствии. Эх, вот бы и для обычного Triple Fault было бы что-то такое! Заметно помогло бы с диагностикой проблем.

Источник

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

Расширение системы команд

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

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

Расширение системы команд

MMX (Multimedia Extensions — мультимедийные расширения) — коммерческое название дополнительного набора инструкций, выполняющих характерные для процессов кодирования/декодирования потоковых аудио/видео данных действия за одну машинную инструкцию. Впервые появился в процессорах Pentium MMX.

SSE (Streaming SIMD Extensions, потоковое SIMD-расширение процессора) — это SIMD (Single Instruction, Multiple Data, Одна инструкция — множество данных) набор инструкций, разработанный Intel и впервые представленный в процессорах серии Pentium III как ответ на аналогичный набор инструкций 3DNow! от AMD, который был представлен годом раньше. Первоначально названием этих инструкций было KNI — Katmai New Instructions (Katmai — название первой версии ядра процессора Pentium III).

Технология SSE позволяла преодолеть 2 основные проблемы MMX — при использовании MMX невозможно было одновременно использовать инструкции сопроцессора, так как его регистры были общими с регистрами MMX, и возможность MMX работать только с целыми числами.

SSE включает в архитектуру процессора восемь 128-битных регистров и набор инструкций, работающих со скалярными и упакованными типами данных.

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

SSE2 (Streaming SIMD Extensions 2, потоковое SIMD-расширение процессора) — это SIMD (Single Instruction, Multiple Data, Одна инструкция — множество данных) набор инструкций, разработанный Intel и впервые представленный в процессорах серии Pentium 4. SSE2 расширяет набор инструкций SSE с целью полностью вытеснить MMX. Набор SSE2 добавил 144 новые команды к SSE, в котором было только 70 команд.

SSSE3 (Supplemental Streaming SIMD Extension 3) — это обозначение данное Intel’ом четвёртому расширению системы команд. Предыдущее имело обозначение SSE3 и Intel добавил ещё один символ ‘S’ вместо того, чтобы увеличить номер расширения, возможно потому, что они посчитали SSSE3 простым дополнением к SSE3. Также их называли кодовыми именами Tejas New Instructions (TNI) и Merom New Instructions (MNI) по названию процессоров, где впервые Intel намеревалась поддержать эти новые команды. Появившись в Intel Core Microarchitecture, SSSE3 доступно в сериях процессоров Xeon 5100 (Server и Workstation версии), а также в процессорах Intel Core 2 (Notebook и Desktop версии) и Intel Atom. Новыми в SSSE3, по сравнению с SSE3, являются 16 уникальных команд, работающих с упакованными целыми. Каждая из них может работать как с 64-х битными (MMX), так и с 128-ми битными (XMM) регистрами, поэтому Intel в своих материалах ссылается на 32 новые команды.

SSE4 — новый набор команд микроархитектуры Intel Core, впервые реализованный в процессорах серии Penryn. SSE4 состоит из 54 инструкций, 47 из них относят к SSE4.1 (они есть в процессорах Penryn). Полный набор команд (SSE4.1 и SSE4.2, то есть 47 + оставшиеся 7 команд) доступен только в процессорах Intel с микроархитектурой Nehalem, которые были выпущены в середине ноября 2008 года. Ни одна из SSE4 инструкций не работает с 64-х битными mmx регистрами (только с 128-ми битными xmm0-15).

AVX (Advanced Vector Extensions) — расширение системы команд x86 для микропроцессоров Intel, предложенное Intel в марте 2008. AVX предоставляет различные улучшения, новые инструкции и новую схему кодирования машинных кодов: 1. Размер векторных регистров SIMD увеличивается с 128 до 256 бит. Существующие 128-битные инструкции будут использовать младшую половину новых YMM регистров. В будущем возможно расширение до 512 или 1024 бит. 2. Неразрушающие операции. Набор инструкций AVX позволяет использовать любую двухоперандную инструкцию XMM в трёхоперандном виде без модификации двух регистров-источников, с отдельным регистром для результата. Например, вместо a = a + b можно использовать c = a + b, при этом регистр a остаётся не изменённым. AVX не поддерживает неразрушающие формы операций над обычными регистрами общего назначения, такими как EAX, но такая поддержка, возможно, будет добавлена в последующих расширениях. 3.Требования выравнивания данных для операндов SIMD в памяти ослаблены.

AES (Advanced Encryption Standard) — расширение системы команд x86 для микропроцессоров, предложенное компанией Intel в марте 2008. Целью данного расширения является ускорение приложений, использующий шифрование и дешифрирование по алгоритму AES.

EM64T (также x86-64/ x64/Intel64/) — 64-битная аппаратная платформа для выполнения 64-разрядных приложений. Это расширение архитектуры x86 с полной обратной совместимостью. Основной отличительной особенностью EM64T является поддержка 64-битных регистров общего назначения, 64-битных арифметических и логических операций над целыми числами и 64-битных виртуальных адресов. В процессоры с EM64T добавились 16 целочисленных 64-битных регистра общего назначения, 8 80-битных регистров с плавающей точкой, 8 64-битных регистров Multimedia Extensions, 16 128-битных регистров SSE, 64-битный указатель RIP и 64-битный регистр флагов RFLAGS. Кроме поддержки со стороны процессора, технология так же требует поддержки со стороны материнской платы (чипсета). Технология впервые была реализована в поздних моделях Pentium4.

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

LLC (LoadLine Calibration, Vcore Drop Control ) – интеллектуальная функция устранения просадки напряжения Vcore в нагрузке. Как правило имеет несколько режимов устранения просадок, чем жестче режим, тем выше будет нагрев процессора.

Execute Disable Bit (XD) — атрибут страницы памяти в архитектурах x86 и x86-64. Поскольку в современных компьютерных системах память разделяется на страницы, имеющие определенные атрибуты, разработчики процессоров добавили ещё один: запрет исполнения кода на странице. То есть, такая страница может быть использована для хранения данных, но не программного кода. При попытке передать управление на такую страницу процессор сформирует особый случай ошибки страницы и программа (чаще всего) будет завершена аварийно.

Physical Address Extension (PAE) — режим работы встроенного блока управления памятью x86-совместимых процессоров, в котором используются 64-битные элементы таблиц страниц (из которых для адресации используются только 36 бит), c помощью которых процессор может адресовать 64 ГБ физической памяти (вместо 4 ГБ, адресуемых при использовании 32-разрядных таблиц), хотя каждая задача (программа) всё равно может адресовать максимум 4 ГБ виртуальной памяти.

Температуры, термомониторинг, термозащита

Thermal Monitor 1 (TM1) – он же троттлинг, Throttling, или Thermal Throttling, а также Thermal Trip. Механизм TM1 заключается в снижении тепловыделения за счет пропуска тактов при перегреве процессора. TM1 основан на механизме модуляции тактового сигнала (clock modulation), позволяющем регулировать эффективную частоту работы ядра с помощью введения холостых циклов — периодического отключения подачи тактового сигнала на функциональные блоки процессора. Перегревом считается достижение значения 0 по датчикам DTS. Впервые появился в процессорах Pentium M.

TurboThrottling – выражение, появившееся на страницах оверклокерских форумов. Означает прекращение работы технологии TurboBoost в Nehalem или TurboBoost 2.0 в Sandy Bridge, по сути дальнейшее развитие TM2 в процессорах Core i7(i5, i3), постепенно снижает турбомножитель вплоть до стандартного в нагрузке, если были превышены турболимиты (Sandy Bridge) или превышено TDP (nehalem). TurboThrottling также срабатывает при достижении критической температуры.

Tjmax – значение для вычисления температуры по датчикам DTS, формула проста: Tcore = Tjmax – Distance to tjmax. В процессорах nehalem и более поздних содержится в специальном регистре, и может быть считано программами мониторинга. Для всех процессоров Core 2 значение Tjmax составляет 100 градусов за исключением экстремальных моделей QX****. Автор данного FAQ предпочитает игнорировать Tjmax и в качестве индикатора температуры предпочитает Distance to tjmax.

TDP (Thermal Design Package, Thermal Design Power) – или проще термопакет. Параметр, характеризующий максимальную выделяемую процессором тепловую мощность, необходим для расчета мощности системы охлаждения. Измеряется в ваттах.

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

Функциональные блоки, шины, и т.п.

Чипсет (англ. chipset) — набор микросхем, спроектированных для совместной работы с целью выполнения набора каких-либо функций. Так, в компьютерах чипсет, размещаемый на материнской плате, выполняет роль связующего компонента, обеспечивающего совместное функционирование подсистем памяти, центрального процессора (ЦП), ввода-вывода и других.

PCH (Platform Controller Hub) – так называется южный мост в чипсетах для процессоров Lynnfield и Sandy Bridge. Главное отличие от ЮМ в том, что PCH подключается непосредственно к процессору через шину DMI. Функционально – самый обычный ЮМ.

IMC (Integrated Memory Controller) – интегрированный контроллер памяти как правило в процессорах s1156.

FSB (Front Side Bus) – шина эпохи s775 обеспечивающая соединение между процессором и северным мостом.

Частота CPU = BCLK x Множитель процессора

Частота Uncore = BCLK x Множитель Uncore (в процессорах поколения Nehalem)

Частота памяти = BCLK x Множитель памяти

Частота QPI = BCLK x Множитель QPI (в процессорах поколения Nehalem, в исполнении 1366)

iGPU (integrated Graphics processing unit) – интегрированное графическое ядро процессоров интел.

PLL (Phase-locked loop) – ФАПЧ, или Фа́зовая автоподстро́йка частоты.

Absolute maximum and minimum ratings для процессоров Sandy Bridge до сих пор не представлены (отсутствует в даташитах), поэтому о допустимых вольтажах приходится судить по косвенным данным:

Исходя из одинакового техпроцесса (32nm) о допустимых вольтажах для Sandy Bridge можно судить по таблице для i7 32nm для s1366.

Vcore (CPU Voltage)– напряжение питания ядра (ядер) процессора. Увеличение этого напряжения благоприятно влияет на разгон ядер процессора. В процессорах i7(i5, i3), установка Vcore через этот пункт приводит к невозможности энергосберегающих технологий управлять напряжением Vcore.

CPU Offset Voltage (DVID) – параметр биос материнских плат для процессоров i7(i5, i3) устанавливает смещение Vcore в вольтах, может принимать как положительное так и отрицательное значение. При этом параметр CPU Voltage должен быть установлен в normal или в offset mode (зависит от материнской платы). Установка Vcore через этот параметр позволяет корректно работать энергосберегалкам. Так же подобный параметр присутствовал на некоторых платах с чипсетом х38/48 но не был широко распространен.

Vtt (FSB termination voltage)– напряжение питания терминаторов внешних шин процессора, ключевое напряжение в GTL логике. Поднятие напряжения благоприятно влияет на стабильность всех внешних шин процессора, положительно влияет на стабильность операций с памятью.

QPI/VTT, QPI/DRAM – в процессорах поколения Nehalem совмещенное напряжение питающее блок Uncore, а также терминаторы внешних шин процессора. Рекомендуется поднимать при разгоне Uncore/DDRIII.

VccIO – аналог VTT в процессорах Sandy Bridge.

CPU PLL Voltage (VccPLL)— Напряжение питания блока ФАПЧ (Фазовой автоподстройки частоты, и тактового генератора в Sandy Bridge). На материнских платах s775 часто совмещалось с напряжением питания южного моста. На процессорах Core i7(i5, i3) становится полностью самостоятельным параметром. Считается, что напряжение благоприятно влияет на стабильность системы при экстремальном разгоне. При среднем и низком разгоне параметром можно пренебречь, а иногда и снизить (на Nehalem и Sandy Bridge).

NB Core Voltage (MCH Voltage)– напряжение питания Северного Моста на материнских платах эпохи s775. Поднятие напряжение положительно влияет на стабильность при высоких шинах FSB, а также на стабильность подсистемы памяти.

SB Core Voltage (ICH Voltage, PCH Voltage)– напряжение питания Южного Моста, теоретически поднятие этого напряжения положительно влияет на стабильность внешних интерфейсов материнской платы, таких как IDE, SATA, USB, etc.

IMC Voltage – напряжение питания контроллера памяти в процессорах Lynnfield.

DDR Voltage (DRAM Voltage)– напряжение питания модулей памяти, в процессорах поколения Nehalem так же питает шину памяти процессора.

Стабильность, тесты, мониторинг

Prime95 является клиентом распределенных вычислений для решения математической задачи – поиска простых чисел Мерсенна. Как и любой другой подобный клиент, программа загружает задание с центрального сервера, производит необходимые вычисления и возвращает результат. Но компьютерным энтузиастам Prime95 известна благодаря другим способностям – ее можно использовать как достаточно эффективный тест стабильности компьютера. Сравнение полученных результатов с эталонными помогает выявить ошибки в работе связки процессор–память (правда, определить, что именно «виновато» в возникновении ошибок – процессор или же память, бывает затруднительно). Имеется три режима проверки стабильности, причем Large FFT более эффективно тестирует CPU, а Blend – память. Для уверенности в стабильности рекомендуется тестирование праймом проводить не менее 3 часов, а для железной стабильности не менее 12.

Linpack — программная библиотека, написанная на языке Фортран, которая содержит набор подпрограмм для решения систем линейных алгебраических уравнений. Изначально предназначалась для работы на суперкомпьютерах которые использовались в 1970-х — начале 1980-х годов.

Сегодня переработанный и оптимизированный компанией intel линпак используется для измерения производительности системы в гигафлопсах. В оверклокерской среде линпак получил популярность благодаря способности создавать максимальную нагрузку сопровождаемую максимальным энергопотреблением и нагревом процессора. Поэтому тест рекомендуется использовать в первую очередь для испытания на прочность охлаждения и проверки достаточности Vcore. При тестировании используйте максимальный объем задачи и минимум 20 проходов (рекомендую не менее 50-ти). Память линпак тестирует плохо, и даже с заведомой нестабильностью подсистемы память-северный мост может пройти успешно как 20 так и 100 проходов. Так что тест не самодостаточен, и без тестов основанных на прайм коде не обойтись.

График зависимости нагрузки от объема вычислений в линпак, взят с сайта интел:

Если результаты в Linx снижаются с каждым следующим проходом или «прыгают» от прохода к проходу возможно сработал троттлинг, турботроттлинг (i7, i5, i3) или троттлинг памяти (i7, i5, i3 только ахитектуры Sandy Bridge). Попытайтесь понизить температуру процессора, если с температурой все в порядке, проверьте установку турболимитов, а также память соотв софтом (см. выше).

Программа поддерживает несколько процессоров (от номера версии), имеет оптимизированные тесты прогрева с обнаружением ошибок под процессоры AMD, Intel Pentium4 и Core2. Тест памяти может проверять любой объем памяти. Тестирование так-же сегментами, тесты сделаны по образу и подобию TM1 и TM2.

Тест диска, особенно тест интерфейса, тоже вовсе не декоративный элемент программы. 🙂

Тест-комбайн включающий в последних версиях практически все популярные тесты стабильности почти для всех узлов системы.

CPU OCCT основан на прайм коде, может заменить прайм95.

Кроме самих тестов в программу встроен очень недурной мониторинг, сопровождаемый графическими логами.

После тестирования можно просмотреть графики просадки напряжений и сопоставить их с нагрузкой на разные узлы системы. Как вы уже наверное поняли, для непредвзятых пользователей OCCT Perestroïka 3.1.0 способен заменить линпак прайм и фурмарк.

Перед запуском теста рекомендуется установить в свойствах максимально допустимую температуру равной tjmax вашего камня.

Intel Thermal Analysis Tool (TAT) – отличная грелка для процессоров Pentium 4, Pentium D, Core 2 65 нм. Не работает с камнями архитектуры Penryn и более поздними. Отслеживает троттлинг, мониторит температуры.

Известен наверное всем. Утилита работает из под DOS, и отлично тестирует память на дефекты. В качестве теста стабильности памяти для разогнанной системы подходит слабо (очень долго выявляет ошибки). Для разогнанной системы желательно пройти несколько полных циклов тестирования (хотя бы три). Для тестирования систем на базе Sandy Bridge используйте версию не младше 4.2.

Новый тест памяти от камрада serj, подробности можно прочесть в теме https://forums.overclockers.ru Программа имеет очень гибкие настройки и оптимизирована под современные многоядерные процессоры.

BSOD в разогнанных системах

BSOD Codes for i7 x58 chipset:

0x101 = необходимо увеличить Vcore.

0x124 = увеличить или уменьшить QPI/VTT, если не помогло увеличить Vcore.

0x1A = Возможно неисправный модуль памяти, проверить память с помощью MemTest. Так же возможна нехватка Vddr.

0x1E = Увеличить Vcore.

0x3B = Увеличить Vcore.

0x3D = Увеличить Vcore.

0xD1 = увеличить или уменьшить QPI/VTT, если не помогло увеличить Vddr.

0x9C = увеличить или уменьшить QPI/VTT, если не помогло увеличить Vcore.

0x109 = увеличить/уменьшить Vddr.

0x116 = занижен IOH (NB) voltage, либо проблемы с видиосистемой, особенно актуально для систем с несколькими видеокартами.

BSOD Codes for SandyBridge:

0x101 = необходимо увеличить Vcore.

0x50 = неверно подобраны тайминги или множитель памяти, увеличить/уменьшить Vddr, если не помогло VccIO и/или VccSA.

0x1E = необходимо увеличить Vcore.

0x3B = необходимо увеличить Vcore.

0xD1 = увеличить VccIO /или VccSA.

0x9C = увеличить или уменьшить VccIO и/или VccSA, если не помогло увеличить Vcore.

Источник

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

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