Поддержка центральным процессором инструкций sse2. Развитие технологии SSE в новых процессорах Intel Prescott

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

AMD64 (x86-64)

EM64T (x86-64)

Extended 3DNow!

IA-32 (x86-32)

MIMD

MISD

SIMD

SISD

SSE2

SSE3

SSE4

SSE4.1

SSE4.2

SSE4A

SSSE3

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

SIMD (англ. Single Instruction, Multiple Data) - принцип компьютерных вычислений, позволяющий обеспечить параллелизм на уровне данных.

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 и работы с вещественными числами.

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

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

Реализация блоков SIMD осуществляется распараллеливанием вычислительного процесса между данными. То есть когда через один блок проходит поочерёдно множество потоков данных.

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

SSE2 использует восемь 128-битных регистров (xmm0 до xmm7), включённых в архитектуру x86 с вводом расширения SSE, каждый из которых трактуется как 2 последовательных значения с плавающей точкой двойной точности. SSE2 включает в себя набор инструкций, который производит операции со скалярными и упакованными типами данных. Также SSE2 содержит инструкции для потоковой обработки целочисленных данных в тех же 128битных xmm регистрах, что делает это расширение более предпочтительным для целочисленных вычислений, нежели использование набора инструкций MMX, появившегося гораздо раньше.

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

SSE3 (PNI - Prescott New Instruction) - третья версия SIMD-расширения Intel, потомок SSE, SSE2 и x87. Впервые представлено 2 февраля 2004 года в ядре Prescott процессора Pentium 4. В 2005 AMD предложила свою реализацию SSE3 для процессоров Athlon 64 (ядра Venice и San Diego).

Набор SSE3 содержит 13 инструкций:

FISTTP (x87)

MOVSLDUP (SSE)

MOVSHDUP (SSE)

MOVDDUP (SSE2)

LDDQU (SSE/SSE2)

ADDSUBPD (SSE)

ADDSUBPD (SSE2)

HADDPS (SSE)

HSUBPS (SSE)

HADDPD (SSE2)

HSUBPD (SSE2)

- MONITOR (нет аналога в SSE3 для AMD)

- MWAIT (нет аналога в SSE3 для AMD).

SSE4 это набор команд Intel Core микроархитектуры, впервые реализованный в процессорах серии Penryn (не следует путать с SSE4A от AMD). Он был анонсирован 27 Сентября 2006, однако детальное описание стало доступно только весной 2007.

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

Компилятор языка Си от Intel начиная с версии 10 генерирует инструкции SSE4 при задании опции -QxS.

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

SSE4.1 это расширенный набор команд SSE4 от Intel.

Ниже приведены инструкции, входящие в SSE4.1:

- Ускорение видео (3 инструкции)

- Векторные примитивы (5 инструкций)

- Вставки/извлечения (4 инструкции)

- Скалярное умножение векторов (2 инструкции)

- Смешивания (4 инструкции)

Проверки бит

- Округления (2 инструкции)

Чтение WC памяти

SSE4.2 состоит из 7 инструкций.

- Обработка строк (4 инструкции)

Подсчет CRC32

- Подсчет популяции единичных бит

- Векторные примитивы

SSE4A это расширенный набор команд SSE4 от AMD, разработанный скорее не как дополнение, а как альтернатива инструкциям SSE4 от Intel.

SSSE3 (Supplemental Streaming SIMD Extension 3) - это обозначение данное Intel 4-му расширению системы команд. Предыдущее имело обозначение SSE3 и Intel добавил ещё один символ "S" вместо того, чтобы увеличить номер расширения, возможно потому, что они посчитали SSSE3 простым дополнением к SSE3. Часто, до того как стало использоваться официальное обозначение SSSE3, эти новые команды назывались SSE4. Также их называли кодовыми именами Tejas New Instructions (TNI) и Merom New Instructions (MNI) по названию процессоров, где впервые Intel намеревалась поддержать эти новые команды. Появившись в Intel Core Microarchitecture, SSSE3 доступно в сериях процессоров Xeon 5100 (Server и Workstation версии), а также в процессорах Intel Core 2 (Notebook и Desktop версии).

Новыми в SSSE3, по сравнению с SSE3, являются 16 уникальных команд, работающих с упакованными целыми. Каждая из них может работать как с 64-х битными (MMX), так и с 128-ми битными (XMM) регистрами, поэтому Intel в своих материалах ссылается на 32 новые команды.

Вот некоторые из них:

- Работа со знаком (2 инструкции)

Сдвиги

- Перемешивание байт

- Умножения (2 инструкции)

- Горизонтальные сложения/вычитания целых (4 инструкции)

3DNow! - дополнительное расширение MMX для процессоров AMD, начиная с AMD K6 3D. Причиной создания 3DNow! послужило стремление завоевать превосходство над процессорами производства компании Intel в области обработки мультимедийных данных. Хотя это расширение является разработкой AMD, его также интегрировали в свои процессоры IBM, Cyrix и другие.

Технология 3DNow! ввела 21 новую команду процессора и возможность оперировать 32-битными вещественными типами в стандартных MMXрегистрах. Также были добавлены специальные инструкции, оптимизирующие переключение в режим MMX/3DNow! (femms, которая заменяла стандартную инструкцию emms) и работу с кешем процессора. Таким образом технология 3DNow! расширяла возможности технологии MMX, не требуя введения новых режимов работы процессора и новых регистров.

Проверка поддержки 3DNow! процессором.

Перед началом работы с расширением 3DNow! следует убедиться, что ЦП их поддерживает. Для этого используется инструкция CPUID. Общий порядок действий при проверке выглядит следующим образом:

1. Убедиться, что процессор поддерживает инструкцию CPUID. Если нет, то ЦП не поддерживает и 3DNow!.

2. Выполнить инструкцию cpuid со значением EAX = 0 - это необходимо для следующего шага.

3. Выполнить CPUID со значением EAX = 80000000h. Если после выполнения инструкции в EAX будет значение меньше 1, то 3DNow! не поддерживается.

4. Выполнить CPUID с EAX = 80000001h. Если после выполнения бит 31 регистра EDX будет установлен в 1, то 3DNow! поддерживается. Иначе - нет.

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

Так почему этот термин был? Все дело в том, что резко все компании перестали обновлять свой софт для пользователей с windows xp и процессорами не поддерживающими sse2. Прикольно? Да нет, не очень! Даже печально.

Если процессор не поддерживает sse2, Вы:

  1. Не сможете установить актуальную версию windows. Вернее, даже не установите windows 7.
  2. Не установите ни одного браузера, даже никому ненужный амиго и сафари. Мне чисто повезло, что у меня была сборка XP chip 2010 и там были старенькие браузеры, которые я смог установить.
  3. Не откроите 30% сайтов, а из оставшихся 70 половина будет частично не работающими.
  4. Не сможете смотреть фильмы онлайн. На половине сайтов вас пошлют… обновляться всмысле, а на второй половине, каждая секунда фильма будет идти 2-5 сек.

Я так могу долго перечислять, но в этом нет необходимости. И так все ясно. Так что – компьютеры для интернета вымерли. Остались только слабенькие и нормальные.

Процессор не поддерживает sse2 – что делать?

В сети полно инфы, которая вводит в заблуждение, например – обход проверки процессора на sse2. Бред, её обойти нельзя, вернее можно, но потребуется изменить очень много кода, и это для каждой программы в отдельности. Т.е. нельзя! Можно только поменять проц, если это позволяет мать, а в моем случае нет.

Скачать браузер который не требует sse2

Друзья, я вам очень сожалею, и поэтому делюсь с вами старыми браузерами (opera, mozila firefox, google chrome) При установке у вас не должны появится ошибки. Скачать бесплатно

Лох не мамонт, он не вымрет

Компы вымерли, а лохи никогда! Вот наглядный пример – Я . Казалось бы, вроде вебмастер, можно даже сказать программист, а это г… купил. Как так, бро? Прикинь, открыл олх, смотрю – ПК 1.8 ггц, 2 гб ОЗУ, 512 видео, 500 ВТ БП, 120 хдд, и все это за 20$. Я быстро рванул, т.к. аналоги стоят в 2 раза дороже, купил, думаю во лохи, а я п…. Приехал домой, пытаюсь все установить, а мне сплошные error’ы, подумал дрова, а оказалось sse2. Печаль одним словом.

SSE2 instructions – сокращение от Streaming SIMD Extensions 2. Появился только в линейке процессоров Pentium 4. Технология SSE2 – это набор инструкций, которые содержат 144 команды, и они крайне необходимы для всех современных программ.

Без поддержки этих технологий, Вы не сможете установить актуальную версию windows, и даже любой современный браузер. Во время установки, если процессор не поддерживает SSE2 Вы увидите ошибку — This program requires a computer that supports SSE2 instructions . Давайте разберемся с этим подробнее.

Как включить SSE2

Если ваш процессор не поддерживает эту технологию, включить её не получиться. Убедитесь, что ваша модель новее чем:

  • IA-32
  • Все процессоры AMD до Athlon 64 не поддерживают sse2
  • Pentium 1, 2, 3. Как сказано выше, поддержка появилась только в 4.
  • Transmeta Crusoe
  • VIA C3

Все остальные уже имеют поддержку набора инструкций.

Так же, чтоб убедится, что поддержка присутствует, установите программу «CPU-Z ». Чтоб при помощи программы понять, есть ли поддержка sse2, обратите внимание на графу «Instructions». В ней должны быть перечислены технологии, которые поддерживает ваш процессор.

Чтоб включить её в BIOS сделайте следящее:

Перезагрузите компьютер и в тот момент как он будет только включаться, нажимайте много раз Del или F1 (в зависимости от материнской платы). После того, как у вас получилось попасть в BIOS, зайдите в «SSE Tweaks» затем вам необходимой поставить «SSE Enable». Нажмите F10, Y, Enter.

Процессор не поддерживает SSE2

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

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

Тем не менее, если нет возможности купить другой компьютер, можно еще поработать на этом.

Как обойти проверку sse2

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

Браузеры для процессора без поддержки SSE2

Я долгое время, как и Вы не хотел менять ноутбук из-за SSE2, но они меня победили (ошибки и уведомления). У меня остались браузеры (Google Chrome, Mozilla firefox и Опера) которые не требуют этот набор инструкций. Вот, делюсь с вами – Скачать

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

Где брать программы, которые не требуют поддержку

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

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

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

В отличии от MMX и 3DNow ! Инструкций, SSE может одновременно использовать свои инструкции вместе с инструкциями сопроцессора, так как регистры SSE и сопроцессора не являются общими. Это ещё одно неоспоримое преимущество, впрочем, как и возможность работать не с целыми числами (MMX могла работать только с целыми).

Использование SSE возможно только если операционная система поддерживает данные инструкции.

SSE состоит из:

SIMD расширение добавляет восемь(или 16 , если процессор 64 -битный) 128 -битных регистров XMM (XMM 0-XMM 7), разделённых на четыре 32 -битных (одинарной точности)регистра с плавающей точкой. Также, в составе есть 32 -битный (в x 86-64 64 -битный) регистр управления и контроля, который также нужен для проверки состояния SSE инструкций.

Так как каждый регистр имеет 128 -бит, может хранить всего 4 из 32 -разрядных чисел с плавающей точкой (1 бит знака, 8-бит экспоненты , 23 -х разрядная мантисса). На самом деле, за один такт могут выполняться любые данные помещающиеся в 128 бит (буквы, целые числа, байты, с двойной точностью и т.д.) и всё зависит от оптимизации программы под определённую задачу.

SSE

SSE может выполнять 70 новых инструкций , которые и работают на этих 128 битах, MMX и даже обычными 32 -битными регистрами, если SIMD простаивает без дела.

SSE 2

SSE 2 инструкции, появились с выходом первых Pentium 4 и значительно усовершенствовали SSE первого поколения. Включает в себя возможность использовать операции со скалярными и упакованными типами данных. Присутствуют инструкции для потоковой обработки целочисленных MMX данных в 128 -битных XMM регистрах SSE . Новый набор инструкций значительно упростил работу программистов и даже родилась поговорка – «SSE должен был родиться таким, как SSE 2 ».

SSE 3

ТакжеимелиназваниеPNI (Prescott New Instructions ). Добавлены дополнительные 13 инструкций , которые расширяют математические возможности DSP и поток управления инструкциями. Больше походит на косметическое улучшение , чем на практическое, которым было предыдущее обновление.

SSSE 3

Дополнительное обновление для SSE 3 , которое включает 16 новых инструкций . Позволяет умножать 16 -ти разрядные числа с фиксированной точкой и правильным округлением, вносить слова в инструкции и переставлять байты в них.

Добавлены 54 инструкции , но с оговорками. В SSE 4.1 (появилась в Intel Penryn ) содержится урезанный набор из 47 инструкций , а в SSE 4.2 – полный, из 54 (+7 , добавлены в архитектуре Nehalem ).

Инструкции работают только с 128 -битными XMM 0-XMM 15 . Добавлены POPCNT и дополнительные целочисленные инструкции & etc . SSE 4 привнесла практически столько нововведений, как в своё время привнесла первая SSE . Основным направлением при разработке было расширение мультимедийных возможностей — декодирование игр, ускорение физических и векторных расчётов для игр, ускорение обработки фото, музыки & etc.

SSE2 значительно расширяет возможности обработки нескольких операндов по принципу SIMD. Используется 144 новых команды, обеспечивающих одновременное выполнение операций над несколькими операндами, которые располагаются в памяти и в 128-разрядных регистрах ХММ. В регистрах могут храниться и одновременно обрабатываться два числа с плавающей запятой в формате двойной точности (64 разряда) или 4 числа в формате одинарной точности (32 разряда), любые целочисленные типы данных, способные разместиться в 128-разрядных регистрах. Команды SSE2 существенно повышают эффективность процессора при реализации трехмерной графики и Интернет - приложений, обеспечение сжатия и кодирования аудио- и видеоданных и в ряде других приложений.

SSE3 включает 5 новых операций с комплексными числами, 5 потоковых операций над числами с плавающей запятой, 2 команды для синхронизации потоков и одну специальную инструкцию для применения при кодировании видео.

Расширения AES-NI и AVX

AES-NI – набор из 6 новых SIMD-инструкций, ускоряющий процесс шифрования и дешифрования информации по стандарту AES. Стандарт AES является стандартом шифрования США, принятым в 2000-ом году. Он специфицирует алгоритм Rijndael, который представляет собой симметричный блочный шифр, работающий с блоками длиной 128 бит, и использует ключи длиной 128, 192 и 256 бит.

AVX – расширение системы команд х86 для микропроцессоров с новой микроархитектурой Intel Sandy Bridge и процессоров AMD Bulldozer. Представляет различные улучшения, новые инструкции и новую схему кодирования машинных кодов. Размер векторных регистров SIMD увеличивается с 128-ми до 256 бит. Существующие 128-битные инструкции будут использовать только младшую половину новых YMM-регистров. Набор инструкций AVX позволяет использовать любую двухоперандную инструкцию ХММ в трехоперандном виде без модификации 2-х регистров-источников, с отдельным регистром для результата. Добавлены инструкции с количеством операндов, более трех. Новая система кодирования машинных кодов VEX предоставляет новый набор префиксов кода, которые расширяют пространство возможных машинных кодов.



Особенности архитектуры процессоров x86-64

процессор, построенный на основе х86-64, может безо всяких проблем исполнять существующие 32-битные приложения, Причем, эти приложения могут выполняться без каких бы то ни было потерь в производительности. Существующие в х86 регистры общего назначения расширены с 32 до 64 бит и к ним добавлены еще 8 новых 64 разрядных регистров.

В 64-битном режиме обеспечивается поддержка:

64-битных виртуальных адресов;

8 новых и расширенных 64-битных регистров общего назначения;

64-битного указателя инструкций RIP;

Сплошного адресного пространства с единым пространством для инструкций, данных и стека.

64-битных арифметических и логических операций над целыми числами.

архитектура AMD64 предполагает поддержку процессорами 2-х режимов: Long Mode («длинный» режим), имеющего два подрежима – 64-битный режим и Compatibility mode (режим совместимости), и Legacy Mode (наследственный режим). Что они собой представляют, можно понять из табл. 2.2.

Итак, в 64-битном режиме обеспечивается поддержка:

  • 64-битных виртуальных адресов;
  • 8 новых и расширенных 64-битных регистров общего назначения;
  • 64-битного указателя инструкций RIP;
  • сплошного адресного пространства с единым пространством для инструкций, данных и стека.
  • 64-битных арифметических и логических операций над целыми числами.

Данный режим снимает ограничение в размерности адресного пространства оперативной памяти, которое в современных 32-разрядных х86 системах составляет 232 = 4 Гбайт.

Для адресации новых регистров в команды введены так называемые «префиксы расширения регистра», кодирование которых осуществляется кодами, использующимися для команд INC <регистр> и DEC <регистр> в 32- и 16-битных режимах. Команды INC и DEC в 64-битном режиме должны кодироваться в более общей, двухбайтовой форме.

Intel 64

Архитектура Intel 64 (технология EM64T) в сочетании с соответствующим программным обеспечением поддерживает работу 64-разрядных приложений на серверах, рабочих станциях, настольных ПК и ноутбуках. Она, как и х86-64 от AMD, реализует 64-разрядное расширение регистров, те же режимы работы процессора, ту же программную совместимость с 16- и 32-битными приложениями, а главное – эта технология расширяет адресное пространство виртуальной и физической памяти.

Архитектура Intel 64 поддерживает следующие возможности:

  • 64-разрядное сплошное пространство виртуальных адресов;
  • 64-разрядные указатели;
  • 64-разрядные регистры общего назначения;
  • 64-разрядная поддержка вычислений с целыми числами;
  • до 1 Тбайт адресного пространства платформы.

· 44. Обобщенный формат команд x86

· Базовый набор команд обеспечивает выполнение операций над операндами, которые находятся в регистре, памяти или непосредственно в команде. В набор входят безадресные, одно-, двух- и трехадресные команды. Процессор реализует следующие типы двухадресных команд: регистр – регистр; память – регистр; непосредственный операнд – регистр; регистр – память; память – память; непосредственный операнд – память.

· Операнды могут содержать 8, 16 или 32 разряда. Для реализации различных типов команд определены форматы, задающие порядок размещения информации о выполняемой операции и способах выбора операндов. Обобщенный вид формата команды допускает наличие следующих полей: кода операции (1 или 2 байта); байтов адресации (0, 1 или 2 байта); байтов смещения (0, 1, 2 или 4 байта); байтов непосредственных данных - операндов (0, 1, 2 или 4 байта).

· Назначение основных полей кода команды:

· Код операции определяет тип выполняемой операции. В некоторых командах в первом байте содержится бит, задающий разрядность операндов.

· В ряде команд первый байт КОП содержит поля reg или sreg, определяющие адрес используемых регистров. Трехбитовое поле reg задает выбираемый регистр в соответствии с разрядностью обрабатываемых операндов. Поле sreg (двух или трехбитовое) определяет адрес сегментных регистров. Байт адресации MОD R/M содержит три поля. Поля MОD и R/M задают адрес одного из операндов, который может храниться в регистре или ячейке памяти. Кодировка этих полей определяет выбираемый способ адресации.

Понравилась статья? Поделиться с друзьями: