Процессоры и их малодокументированные функции / Блог компании Intel / Хабр
С каждым новом поколением процессоры Intel вбирают в себя все больше технологий и функций. Некоторые из них у всех на слуху (кто, например, не знает про гипертрединг?), о существовании других большинство неспециалистов даже не догадываются. Откроем всем хорошо известную базу знаний по продуктам Intel Automated Relational Knowledge Base (ARK) и выберем там какой-нибудь процессор. Мы увидим здоровенный список функций и технологий — что скрывается за их таинственными маркетинговыми наименованиями? Предлагаем углубиться в вопрос, обращая особое внимание на мало известные технологии — наверняка, там найдется много интересного.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. Будьте в теме!
habr.com
Что за технология Intel® TSX-NI. Появилась в процессорах 4 поколения. Хочу узнать зачем она!
Расширенная технология Intel SpeedStep® поддерживает процессор Pentium® M как улучшенных средств для включения очень высокую производительность при также удовлетворяет потребности экономии питания мобильных систем. Стандартной технологии Intel SpeedStep переключение напряжения и тактовой частоты в тандеме между уровнями высокой и низкой в ответ нагрузка на процессор. Улучшенная технология Intel SpeedStep построена на базе этой архитектуры с помощью стратегии разработки, включая следующие:Разделение между напряжением и частотой изменений. Степпинг напряжение вверх и вниз мелкими шагами отдельно от частоты изменений, процессор способен сократить периоды недоступности системы (которые возникают при изменении частоты). Таким образом система имеет возможность перехода между напряжением и частотой состояниями чаще, обеспечивает баланс повышения мощности и производительности.
Часы секционирование и восстановления. Часы шины продолжает выполнение во время перехода состояния, даже при остановке часов ядра и Phase-Locked цикл, позволяющий логика остается активным. Основные часы также является возможность гораздо быстрее, с улучшенной технологии Intel SpeedStep чем перезапустить под предыдущей архитектуры.
Поскольку улучшенной технологии Intel SpeedStep сокращает задержки, связанные с изменением напряжения и частоты пары (называемые P-состояния), эти изменения можно практически озаботиться чаще, что позволяет более детальный по требованию Переключение и оптимизации на основе спроса баланс питания и производительности. В этой статье дает разработчикам обзор поддержки для улучшенной технологии Intel SpeedStep и по требованию переключения в Linux. Это также готов справочник для разработчиков, заинтересованных в новую политику уровня пользователя или в ядре по улучшенной технологии Intel SpeedStep.
Cpufreq ядра инфраструктуры
Cpufreq представляет собой подсистему, позволяющий явно задавать на процессоры для мобильных ПК с тактовой частотой ядра Linux. Большое количество текущих содержит мощный модульной архитектуры универсального ядра cpufreq. На следующем рисунке показаны 2.6.8 инфраструктуры cpufreq ядра на высоком уровне:
https://software.intel.com/ru-ru/node/140450
otvet.mail.ru
Intel отключает TSX инструкции в процессорах Haswell, Haswell-E/EP, Broadwell-Y / Песочница / Хабр
Когда Intel впервые представили Haswell широкой публике, пожалуй самым интересным показался новый набор расширенных инструкций TSX-NI. Обещалось, и, до некоторого времени, функционировало — с помощью оных инструкций возможно было, наконец, избавиться от необходимости использовать дополнительные функции при синхронизации кода и выводе данных, в многоядерной среде, то есть, фактически, код избавлялся от «синхронизационных костылей» и вся забота по синхронизации ложилась на плечи нового набора инструкций.Как известно, в первой серии процессоров Haswell для настольных ПК эти инструкции были только у процессоров с фиксированным множителем базовой частоты. То есть так называемые «разгоняемые» экземпляры, с буквой «К» в наименовании, были лишены этих инструкций, что породило массу слухов и толкований. В частности, утверждалось, что если сравнивать производительность 4770 и 4770К, то последний на штатной частоте уступал свои позиции, якобы благодаря и этому набору инструкций. Думаю сие утверждение было бы правомерно, если бы можно было осуществить адекватное сравнение, теперь же оно просто потеряло смысл.
В августе 2014 года некий разработчик вне корпорации, как это бывает, случайно обнаружил ошибку закравшуюся в данный набор инструкций. Подробности до сих пор не раскрыты, но, видимо, ошибка представляет столь серьёзную опасность, что в Intel предпочли просто внести запрет на использование TSX-NI инструкций во всех ранее выпущенных процессорах, обладающих набором этих инструкций. Запрет на использование инструкций будет или уже был сделан с помощью обновления микрокода входящего в состав современных UEFI / BIOS.
Некоторых разработчиков данный инциндент заставил просто остановить разработку с использованием этого набора инструкций. Возможно, навсегда.
Что обещает Intel?
Так как ошибка, судя по всему, на уровне структуры процессора, то исправление ошибки ожидается только с выходом нового поколения процессоров, а именно — Broadwell-K, выход которого, согласно тому, что Intel объявила на ITC 2014 Athens, намечен на второй квартал 2015 года. К сожалению, данный процессор, по предварительным данным, поддерживаться будет только чипсетами Intel, начиная с Z97 серии, что не оставляет шансов пользователям более старых систем обойтись только заменой процессора, если им необходим данный набор инструкций.
c++ — Является ли Intel® Transactional Synchronization Extensions новой инструкцией (TSX-NI) отличной от Intel TSX?
Это просто маркетинговое украшение.
Я не нашел ссылок на «TSX-NI», ни в Интернете, ни в руководствах Intel, ни в руководстве по расширению ISA для Intel.
Цитата Intel [1]
Расширения синхронизации транзакций Intel (Intel TSX) поставляются в двух вариантах: HLE и RTM.
Благодаря их реализации эти два аспекта отделены друг от друга (или могут поддерживаться отдельно от другого), и только RTM вводит новые инструкции.
Поэтому они, вероятно, относятся к RTM.
Я считаю, что сначала был представлен HLE, и должны быть процессоры, поддерживающие HLE, но не RTM (обратное, хотя и возможно, кажется неправдоподобным).
Итак, возможно, это правильный маркетинговый способ сказать: «Этот процессор поддерживает наши новейшие функции TSX!».
Для справки я написал краткое введение в две части Intel TSX, исходя из предположения, что «TSX-NI» относится к «TSX RTM».
Полную ссылку можно найти в Руководстве Intel 1 — Глава 15.
HLE
Часть HLE (Hardware Lock Elision) обратно совместима.
Мы все еще можем проверить его доступность с CPUID.07H.EBX.HLE [бит 4], но он реализуется путем изменения семантики префиксов repne
/repe
для инструкций.
Эта функция состоит из двух «новых» префиксов: xacquire
xrelease
.
Теперь CPU может войти в транзакционное состояние, когда каждое чтение добавляется в считываемый набор транзакций, и каждая запись добавляется к набору записей транзакции и не выполняется в памяти. Гранулярность — это размер строки кэша.
Если поток читает из набора read-set или записывает либо в набор для чтения, либо из набора записей другого потока, транзакция прерывается.
CPU восстанавливает архитектурное состояние, как это было в начале транзакции, и повторно выполняет инструкции без транзакций.
Если транзакция завершится успешно, вся записанная память будет совершена атомарно.
Транзакции разделены на xacquire
и xrelease
.
Они могут входить, но есть ограничение на глубину (выше которой транзакция прерывается) и количество различных блокировок, которые могут быть отменены (превышено, что ЦП не будет преодолевать новые блокировки, но не прекратит транзакцию).
xacquire
(код операции F2
, то же, что и repne
) используется перед инструкцией, которая будет получать блокировку (то есть запись в блокировку) и отмечает начало транзакции.
Это чтение не добавляется к набору записей (или не может быть concurrency, поскольку каждый поток записывает блокировку и который немедленно прервет последующую транзакцию).
Вместо этого он добавляется к считываемому набору.
xrelease
(opcode F3
) используется перед инструкцией, которая освободит блокировку и отметит окончание транзакции. xrelease
должен использоваться с одним и тем же замком, используемым с xacquire
, для сопряжения с ним и завершения транзакции.
xacquire
может использоваться только с версией lock
d этих инструкций: ADD, ADC, AND, BTC, BTR, BTS, CMPXCHG, CMPXCHG8B, DEC, INC, NEG, NOT, OR, SBB, SUB, XOR, XADD, XCHG
. xrelease
с теми же инструкциями плюс MOV mem, reg
и MOV mem, imm
без префикса lock
.
Новая команда
доступна, если присутствует HLE (или RTM), она устанавливает ZF, если процессор не находится внутри транзакции.
RTM
RTM (ограниченная транзакционная память) не поддерживает обратную совместимость.
Он может быть протестирован с CPUID.07H.EBX.RTM [бит 11].
В нем представлены три новые инструкции: xbegin
, xend
и xabort
.
Это просто новый интерфейс к уже заданной и общей возможности транзакционного выполнения.
xbegin
должен указывать в качестве относительного смещения указатель на резервный код.
Этот код выполняется всякий раз, когда транзакция не выполняется.
В таких случаях
содержит причину прерывания. xend
завершает транзакцию и инструктирует CPU выполнить ее. xabort
позволяет программисту явно отказаться от транзакции с помощью специального кода ошибки.
Intel не дает никаких гарантий относительно способности процессора успешно совершать транзакцию.
В то время как HLE имеет множество очень специфических условий, RTM — это функция «наилучшего усилия», поэтому требование для резервного кода.
RTM более низкоуровневый, чем HLE, он позволяет программисту использовать транзакционную память с использованием или без использования блокировок.
Смешивание HLE и RTM
Цитата Intel:
Поведение, когда HLE и RTM вложены вместе — HLE внутри RTM или RTM внутри HLE — это конкретная реализация. Однако во всех случаях реализация будет поддерживать семантику HLE и RTM. Реализация может выберите игнорировать подсказки HLE, когда они используются в регионах RTM, и могут привести к прерыванию транзакции, когда инструкции RTM используются внутри областей HLE. В последнем случае, переход от транзакционного к не-транзакционному исполнению происходит плавно так как процессор будет повторно выполнять область HLE, не выполняя фактически эликсирования, и затем выполните инструкции RTM.