2.6.1. Регистры SSE

Со времени процессора Pentium III (Katmai) появилось новое расширение SSE (Streaming SIMD Extensions - потоковые SIMD-расширения), где SIMD (Single Instruction - Multiple Data) - общий для SSE и ММХ подход к обработке боль­шого количества данных одной командой. Расширение предназначается для со­временных приложений, работающих с двумерной и трехмерной графикой, видео-, аудио- и другими видами потоковых данных.

В отличие от ММХ, это расширение не использует уже существующие ресур­сы процессора, а вводит 8 новых независимых 128-битных регистров данных: ХММО, ХММ1, ХММ2, ХММЗ, ХММ4, ХММ5, ХММ6 и ХММ7. Таким образом

решаются проблемы технологии ММХ - не требуется команд типа EMMS для

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

ЕЕЯНИШМШ       Процессоры Intel в реальном режиме

Кроме восьми регистров данных, вводится дополнительный 32-битный ре­гистр управления/состояния MXCSR, который используется для маскирования исключений, выбора режимов и определения состояния флагов:

бит 0: произошло исключение IE

бит І: произошло исключение DE

бит 2: произошло исключение ZE

бит 3: произошло исключение ОЕ

бит 4: произошло исключение UE

бит 5: произошло исключение РЕ

бит 6: зарезервирован (всегда 0)

бит 7: IM - маска исключения IE

бит 8: DM - маска исключения DE

бит 9: ZM - маска исключения ZE

бит 10: ОМ - маска исключения ОЕ

бит     UM - маска исключения UE

бит І2: РМ - маска исключения РЕ

биты 14-13: RC - управление округлением

бит 15: FZ - режим сброса в ноль (flush-to-zero)

биты 3І-І6: зарезервированы (всегда 0)

Все маскирующие биты по умолчанию (при включении процессора) устанав­ливаются в І, так что никакие исключения не обрабатываются. ;

Поле RC определяет режим округления: 00 - к ближайшему числу, 0І - к от­рицательной бесконечности, 10 - к положительной бесконечности, 11 - к нулю. По умолчанию устанавливается в режим округления к ближайшему числу.

Бит FZ включает режим сброса в ноль (по умолчанию выключен). В этом ре­жиме команды SSE не превращают слишком маленькое число с запя­той в (как этого требует стандарт IEEE), а возвращают ноль. Знак нуля соответствует знаку получившегося бы числа, и, кроме того, устанавливаются флаги РЕ и UE.