XMM технология
Технология MMX получила свое развитие в микропроцессоре Pentium III с появлением специального аппаратного блока SSE (Streaming SIMD Extension - потоковое SIMD-расширение) обработки информации по схеме SIMD. Новая технология получила название XMM (eXtended Multi-Media). Блок SSE содержит отдельный регистровый файл из восьми 128-разрядных регистров XMM, что позволяет обрабатывать по схеме SIMD числа с плавающей запятой (четыре 32-разрядных числа).
Числа с плавающей запятой имеют следующий формат:
· знак: 1 разряд;
· порядок (смещенный): 8 разрядов;
· мантисса: 23 разряда.
Расширено и количество форматов чисел с фиксированной точкой, обрабатываемых в XMM по схеме SIMD:
· 16 операндов х 8 разрядов;
· 8 операндов х 16 разрядов;
· 4 операнда х 32 разряда;
· 2 операнда х 64 разряда.
Для обработки чисел новых форматов в систему команд дополнительно введены 70 новых команд.
Блок SSE2, включенный в микропроцессор Pentium 4, реализует 144 новые команды. Из этих 144 инструкций 68 расширяют возможности старых SIMD-инструкций по работе с целыми числами, а 76 являются совершенно новыми. Среди последних - инструкции, позволяющие оперировать со 128-разрядными числами (как целыми, так и вещественными с двойной точностью).
Операции SSE2 позволили существенно повысить эффективность применения микропроцессора при реализации трехмерной графики и современных интернет-приложений, обеспечении сжатия и кодирования аудио- и видеоданных и ряда других применений. В результате производительность процессора Pentium 4 при выполнении таких операций стала вдвое выше, чем Pentium III.
Отметим несколько новых по сравнению с MMX инструкций, вошедших в состав команд SSE/SSE2.
Команда ADDSUBPS выполняет сложение второго и четвертого элементов с одинарной точностью с одновременным вычитанием первого и третьего элементов. Эта инструкция полезна при работе с комплексными числами в случае использования соответствующего типа переменных.
Команда HADDPS осуществляет горизонтальное сложение элементов с одинарной точностью. Первый результат является суммой первого и второго элементов первого (исходного) операнда; второй результат - суммой третьего и четвертого элементов первого операнда; третий результат - суммой первого и второго элементов второго операнда (операнда назначения) и, наконец, четвертый результат - суммой третьего и четвертого элементов второго операнда.
Новые возможности в этом направлении обработки информации были обеспечены в технологии SSE3, внедренной в ядре Prescott процессора Pentium 4 добавлением набора из 13 инструкций, и в технологии SSE4 в микропроцессорах семейства INTel Core 2 Duo.