Intel tsx ni – Что за технология Intel® TSX-NI. Появилась в процессорах 4 поколения. Хочу узнать зачем она!

Процессоры и их малодокументированные функции / Блог компании 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 серии, что не оставляет шансов пользователям более старых систем обойтись только заменой процессора, если им необходим данный набор инструкций.

habr.com

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.
Они могут входить, но есть ограничение на глубину (выше которой транзакция прерывается) и количество различных блокировок, которые могут быть отменены (превышено, что ЦП не будет преодолевать новые блокировки, но не прекратит транзакцию).

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

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.

Новая команда

xtest доступна, если присутствует HLE (или RTM), она устанавливает ZF, если процессор не находится внутри транзакции.

RTM

RTM (ограниченная транзакционная память) не поддерживает обратную совместимость.
Он может быть протестирован с CPUID.07H.EBX.RTM [бит 11].

В нем представлены три новые инструкции: xbegin, xend и xabort.
Это просто новый интерфейс к уже заданной и общей возможности транзакционного выполнения.

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

eax содержит причину прерывания.
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.

qaru.site

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

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