Новые возможности процессора с введением SSE2 и SSE3. Развитие технологии SSE в новых процессорах Intel Prescott

No-eXecute (NX)

No-eXecute (NX) - это функция процессора, которая позволяет отмечать страницы памяти, как не содержащие исполняемый код. Эта функция позволяет ЦП обеспечивать защиту системы от атак вредоносных программ. Функция NX предотвращает размещение вредоносного программного кода в доступных областях памяти. Windows 8 требует, чтобы системы имели процессоры, которые поддерживают NX, и функция NX должна быть включена для обеспечения надлежащей безопасности и во избежание возможных уязвимостей.

В этом разделе термин NX относится непосредственно к биту процессора NX, который определен AMD, или эквивалентному биту процессора XD, который определен Intel для поддержки функции предотвращения запуска данных (DEP) в Microsoft Windows.

DEP позволяет предотвращать запуск вредоносного кода со страниц памяти. содержащих данные. 32-разрядная версия Windows использует один из следующих функций для поддержки DEP:

    Функция процессора для защиты страниц от запуска исполняемого кода (NX)

    Функция бита eXecute Disable (XD), определенная Intel.

Для использования этих функций процессора процессор x86 (32-разрядный) должен работать в режиме расширения физических адресов (PAE). 64-разрядная версия Windows использует функцию процессора NX для 64-разрядных расширений и определенные значения поля прав доступа PTE для процессоров семейства Intel Itanium (IPF).

Помимо DEP функция случайного выбора расположения адресного пространства (ASLR) перемещает исполняемые образы в случайные места при загрузке системы, что усложняет возможность преднамеренного запуска вредоносного кода. ASLR и DEP эффективны только при совместном использовании. Для эффективной работы этих двух важных мер безопасности Windows должна быть включена функция NX. Дополнительные сведения см. в разделе Меры обеспечения безопасности программ для Windows независимыми поставщиками программных продуктов .

Расширение физических адресов (PAE)

Процессор должен работать в режиме расширения физических адресов (PAE) для использования функции процессора NX. PAE - это функция процессора, которая позволяет процессорам x86 получать доступ к более чем 4 ГБ физической памяти на поддерживающих эту функцию версиях Windows. Архитектуры процессоров Intel Itanium и x64 естественным образом могут получать доступ к более чем 4 ГБ физической памяти, поэтому не имеют эквивалента PAE. PAE поддерживается 32-разрядными версиями Windows, работающими исключительно на системах x86.

Если функция DEP включена на системе, процессор который поддерживает функцию NX, функция PAE включается автоматически.

Расширения SIMD (SSE2)

Все процессоры, которые поддерживают NX, также поддерживают расширения SIMD 2 (SSE2). SSE2 - это дополнительный набор инструкций процессора SIMD. AMD также включает поддержку SSE2 в линейки Opteron и Athlon 64 своих процессоров AMD64. Все процессоры, которые поддерживают NX, также поддерживают SSE2. Многие приложения Windows 8 имеют пути кода с набором инструкций SSE2. SSE2 является обязательным требованием для Windows 8.

Область применения

Все современные процессоры поддерживают функцию NX. Функция NX может быть отключена в BIOS. На основе доступных данных телеметрии на одном проценте всех систем под управлением Windows® 7 функция NX отключена из-за неправильной настройки BIOS.

Для работы NX в 32-разрядных версиях Windows требуется наличие процессоров, поддерживающих PAE. Все 64-разрядные процессоры поддерживают NX, поскольку поддерживают AWE. Поэтому использование более старых 32-разрядных процессоров, которые не поддерживают PAE, не влияет на WOA или Windows Server (Windows Server 2012 является исключительно 64-разрядной системой). Требование к процессору не влияет на клиентов, использующих современные системы, или на системы, которые соответствуют требованиям к эмблеме Windows 7, поскольку эти системы оснащены поддерживающими PAE 32-битными процессорами, которые также поддерживают функцию NX и ее включение. Это затронет только небольшое число клиентов, у которых Windows 7 работает на очень старых 32-битных процессорах без поддержки PAE/NX.

Для Windows 8 и Windows Server 2012 наличие PAE является обязательным. Это требование влияет на небольшое число пользователей, которые используют более старое оборудование, не поддерживающее PAE. Ошибки возникают, когда Windows 8 устанавливается на неправильно настроенных виртуальных машинах (ВМ). Установка Windows завершается с ошибкой 0xc0000260 и откатывается до Windows 7.

Visual Studio предоставляет инструкции SSE2 по умолчанию. Приложения, которые обращаются к этим инструкциям, завершаются со сбоем на системах с более старыми процессорами, которые не поддерживают SSE2, как описано в разделе Инструкции SSE2 создаются при указании параметра /arch:SSE .

Требования к поддержке

В этом разделе описаны меры, которые проверяют поддержку требований к PAE, NX и SSE2 процессорами систем, работающих под управлением Windows 8.

Требование к эмблеме Windows 8

Требование сертификации оборудования для Windows 8 требует, чтобы все драйверы работали вместе с защитой предотвращения выполнения данных для обеспечения надлежащего поведения системы устройства и драйвера. Драйверы не должны выполнять код из стека, выгружаемого пула и пула сеансов. Драйверы не должны давать сбои при загрузке, если включен режим PAE. Во встроенном ПО системы должна быть включена функция NX, а для политики DEP должно быть установлено значение Всегда выключено . Включен сертификационный тест, подтверждающий, что система соответствует этому требованию к поддержке NX.

Дополнительные сведения см. в разделе Требования к сертификации оборудования для Windows .

Проверка на совместимость оборудования при установке Windows

Программа установки Windows имеет средство проверки совместимости оборудования для поддержки PAE, NX и SSE2 в устанавливаемой системе. Системы, которые не соответствуют требованию к поддержке процессором PAE, NX и SSE2, отмечаются как блокировки по оборудованию для Windows 8 в отчете о проблемах совместимости, при этом отображается сообщение Процессор вашего компьютера не совместим с Windows 8 .

Рис. 1. Сообщение об ошибке, связанной с несовместимостью процессора

Примечание

Эта проверка требований к поддержке доступна только в новой программе установки Windows и помощнике по обновлению. Windows 8 включает альтернативную версию программы установки и папке Sources на установочном носителе, которая не выполняет подобной проверки. Клиенты, которые попытаются использовать эту альтернативную версию программы установки Windows в системе, не соответствующей требованиям к поддержке PAE/NX/SSE2, увидят сообщение об ошибке во время установки, после чего будет выполнен откат к предыдущей версии операционной системы.

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

Улучшения ядра

В целях проверки соответствия требованию поддержки инструкций SSE2 и функции NX для работы Windows 8 ядро этой операционной системы проверяет наличие этих функций во время инициализации. Системы, которые не поддерживают NX или SSE2, не могут инициализировать ядро Windows 8. В системах, которые могут отключить NX во встроенном ПО, этот параметр переопределяется, поэтому неправильно настроенное встроенное ПО не приводит к сбою загрузки. Попытка загрузить систему без поддержки NX или SSE2 приведет к возникновению критической ошибки. В 32-разрядной системе пользователи получают ошибку кода UNSUPPORTED_PROCESSOR (0x0000005D) вместе с 4 информационными строками:

    Строка 1 - код, указывающий отсутствующую функцию и идентификатор ЦП

    Строки 2 - 4 - строки идентификатора поставщика

В 64-разрядной системе критическая ошибка показывает тот же код UNSUPPORTED_PROCESSOR, что и на 32-разрядной системе вместе со следующими четырьмя информационными строками:

    Строка 1 - содержимое регистра стандартных функций

    Строка 2 - содержимое регистра расширенных функций

    Строки 3 - 4 - обе со значением 0

Вопросы и ответы

Как узнать, поддерживает ли моя система NX или SSE2?

Вы можете использовать средство командной строки Coreinfo для получения сведений о процессоре системы и просмотреть записи PAE, NX и SSE2 в выходном списке. Символ * отображается рядом с названием поддерживаемой функции. Символ - отображается, если функция не поддерживается. Например:

Coreinfo v3.04 - Dump information on system CPU and memory topology Copyright (C) 2008-2012 Mark Russinovich Sysinternals - www.sysinternals.com AMD Athlon(tm) 64 X2 Dual Core Processor 4600+ x86 Family 15 Model 75 Stepping 2, AuthenticAMD HTT* Hyperthreading enabled HYPERVISOR - Hypervisor is present VMX - Supports Intel hardware-assisted virtualization SVM * Supports AMD hardware-assisted virtualization EM64T * Supports 64-bit mode SMX - Supports Intel trusted execution SKINIT - Supports AMD SKINIT EIST - Supports Enhanced Intel Speedstep NX * Supports no-execute page protection PAGE1GB - Supports 1 GB large pages PAE * Supports > 32-bit physical addresses PAT * Supports Page Attribute Table PSE * Supports 4 MB pages PSE36 * Supports > 32-bit address 4 MB pages PGE * Supports global bit in page tables SS - Supports bus snooping for cache operations VME * Supports Virtual-8086 mode FPU * Implements i387 floating point instructions MMX * Supports MMX instruction set MMXEXT * Implements AMD MMX extensions 3DNOW * Supports 3DNow! instructions 3DNOWEXT * Supports 3DNow! extension instructions SSE * Supports Streaming SIMD Extensions SSE2 * Supports Streaming SIMD Extensions 2 SSE3 * Supports Streaming SIMD Extensions 3 SSSE3 - Supports Supplemental SIMD Extensions 3 SSE4.1 - Supports Streaming SIMD Extensions 4.1 SSE4.2 - Supports Streaming SIMD Extensions 4.2 …….. ……..

Если в выходных данных команды Coreinfo PAE отображается как неподдерживаемая функция, это означает, что процессор системы не поддерживает PAE и не может поддерживать NX. Если PAE отображается как поддерживаемое, но функция NX отображается в выходных данных команды Coreinfo как не поддерживаемая:

    Если процессор поддерживает NX, возможно, настройки BIOS этой системы неправильно определены для поддержки NX.

Если NX поддерживается в системе, как включить NX?

Изучите руководство производителя системы и зайдите на системе, которая поддерживает NX, в BIOS, чтобы найти параметр NX или XD в разделе Безопасность , а затем включить поддержку NX. Если в системе нет параметров BIOS, включающих поддержку NX, возможно, следует обратиться к производителю, чтобы обновить BIOS.

Примечание

Если NX поддерживается 64-разрядной системой, параметры конфигурации системы не позволяют установить для политики DEP значение Всегда выключено . Дополнительные сведения о системной конфигурации DEP см. в разделе .

Для успешной загрузки Windows 8 процессоры системы должны поддерживать NX и SSE2. Если система поддерживает эти функции, но параметры настроены неверно, эти параметры переопределяются перед загрузкой системы ядром.

Что делать, если не удалось установить Windows 8 на виртуальной машине из-за ошибки 0x0000260?

Если виртуальная машина размещена на системе, которая поддерживает NX, необходимо включить PAE/NX в параметрах ВМ или диспетчере конфигураций при настройке виртуальной машины Windows 8. Инструкции по включению PAE/NX для виртуальной машины см. в руководстве по установке продукта виртуализации.

Примечание

Если при попытке установить Windows 8 на виртуальной машине, размещенной в системе под управлением Windows, где функция NX отключена, необходимо выполнить инструкции в разделах и , чтобы включить NX в системе до включения PAE/NX для виртуальной машины.

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 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 поддерживает процессор. Но что такое SSE вы знаете? Я вот не знаю и не то чтобы не знаю, я даже понять не могу что это такое. Ну то есть я понимаю, что это инструкция процессора, которая нужна для оптимизации его работы, то есть чтобы при одной и тоже частотой проц с этой инструкцией мог больше обрабатывать команд. Но это так, грубо говоря так бы сказать…

Про SSE я вообще не знаю где в жизни он нужен, может быть для игр? Я знаю что такое Hyper-threading (правда это не инструкция процессора, это технология), что такое VT-x, VT-d, что такое EM64T знаю, а вот что такое SSE не знаю! Ну вот такие пироги ребята

Короче ребята, я вам скажу сразу, что есть небольшой обломчик с этим делом, это я имею ввиду то, что штатными средствами винды такую штуку как SSE нельзя узнать есть она или нет. Тут нужно качать специальную прогу. Но вы не переживайте, эта супер пупер прога бесплатная, весит очень мало, комп вообще никак не грузит, но при этом она МЕГА ПОЛЕЗНАЯ и зовут ее CPU-Z (кстати скачать можно тут: cpuid.com/softwares/cpu-z.html, это официальный сайт).

Итак ребята, скачали CPU-Z, установили и потом запускаем. И вот сразу же вы все узнаете, вот сколько у меня этих SSE:

Не одна и не две, а целых шесть, огогошеньки ребята

Кстати, как видите тут еще много есть всякой полезной инфы, видите? Если срочно нужно узнать что-то о своем проце, то вы быстро запускаете CPU-Z и опа, все что вам нужно у вас под рукой! Говорю же что прога CPU-Z это одна годнота! Не верите? Ну нет проблем, я вам щас докажу. Смотрите, вот вы знаете когда у вас была выпущена та или иная планка памяти? Ну то есть дату ее выпуска на заводе так бы сказать. Или вам это не интересно? Ну некоторым очень интересно, вот мне например очень интересно! И вот прога CPU-Z может показать такую инфу! Итак ребята, смотрите, запустили CPU-Z, идете на вкладку SPD, там выбираете слот с планкой (слева), ну то есть разьем куда она установлена и смотрите инфу по выбранной планке. У меня вот стоит одна планка на 8 гигов в четвертом слоту и вот какую инфу показала прога CPU-Z:

Тут видно, что моя планка была выпущена в 30-тую неделю 2014-го года. Также написано что производитель у меня это Hyundai Electronics, ну это планка Hynix так называется

Ну короче CPU-Z это супер, если нужно быстро посмотреть вообще самую важную инфу о железе компа или ноута, она все это покажет без приколов! Короче рекомендую ребята!

И еще, забыл кое что написать про SSE. Включить или отключить SSE нельзя. Ибо эта инструкция или есть или нет. Вот например Hyper-threading включить/отключить можно, а SSE нет!

На этом все ребята, надеюсь что все вам тут было понятно, а если что-то не так, то прошу прощения. Эта инфа была вам полезной, только честно? Я буду всем сердцем надеется что да! Удачи вам в жизни, чтобы вы были здоровы и не болели, удачи

09.12.2016

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

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