December 17 2017 17:45:40
Навигация
Авторизация
Логин

Пароль



Вы не зарегистрированы?
Нажмите здесь для регистрации .

Забыли пароль?
Запросите новый здесь.
Упакованные числа в формате с плавающей точкой одинарной точности
ПРОЦЕССОРЫ ОБЩЕГО НАЗНАЧЕНИЯ И СИСТЕМЫ НА ИХ ОСНОВЕ

При выполнении SSE-команд могут возникать такие же типы ошибок (исключительных случаев) #I, #D, #Z, #O, #U, #P, как и при работе блока FPU. В этом случае в регистре управления-состояния MXCSR блока SSE соответствующий признак IE, DE, ZE, OE, UE или РЕ принимает значение «1». При установке этого значения признака ошибки реализуется исключение типа #ХМ «ошибка SSE», если в регистре управления CR4 установлено значение бита OSXMMEXCPT = 1 (см. рис. 2.16, в). Для обслуживания исключения процессор вызывает необходимую подпрограмму. Если в регистре CR4 значение бита OSXMMEXCPT = 0, то при установке какого-либо из признаков ошибки реализуется исключение #UD «недействительный код операции». В табл. 2.45 приведена информация о том, какие ошибки могут возникать при выполнении SSE-команд (команды, не указанные в данной таблице, не вызывают появления таких ошибок). Необходимо отметить, что блок SSE не фиксирует, обработка какого из элементов пакета вызвало появление ошибки. Эту задачу должна выполнять подпрограмма обслуживания исключения.

Реализация исключения может быть замаскирована установкой в единичное значение соответствующего бита маски IM, DM, ZM, ОМ, UM или РМ в регистре MXCSR (рис. 2.34). В этом случае при возникновении ошибки (установке какого-либо из признаков IE, DE, ZE, OE, UE, РЕ в «1») процессор продолжает выполнение программы без реализации исключения, а результат операции принимает такое же значение, как при маскировании аналогичных исключений для операций FPU.

127 126
119 118 96 95 94 87 86 64 63 62 55 54 32 31 30 23 22 0
S E M S E M S E M S E M


F3(B15-B12)

F2(B11-B8)

F1(B7-B4)

F0(B3-B0)
2010h
















2000h

Рис. 2.33. Упакованные числа в формате с плавающей точкой одинарной точности (пакет одинарной точности)

Формат содержимого SSE-регистра управления-состояния MXCSR показан на рис. 2.34. Отметим, что большинство битов этого регистра имеют такое же назначение, как соответствующие биты в регистрах FPCR, FPSR блока FPU (см. рис. 2.5). Поле RC в регистре MXCSR определяет правила округления результата в соответствии с табл. 2.1. Бит FZ в этом регистре управляет реакцией блока SSE на антипереполнение. Согласно стандарту IEEE, если произошло антипереполнение (признак UE = 1), а соответствующее исключение замаскировано (бит UM = 1), то процессор выдает в качестве результата денормализованное число. Установка бита FZ = 1 позволяет отойти от стандарта IEEE. При FZ = 1 результатом антипереполнения будет нуль соответствующего знака (устанавливаются признаки ошибок UE = РЕ = 1). Если установлено значение бита маски UM = 0 (ошибка #U не маскирована), то независимо от значения бита FZ при установке признака антипереполнения UE = 1 реализуется исключение #ХМ.

Таблица 2.45 Типы ошибок, возникающих при выполнении SSE-команд

Команда #I #D #Z #U
ADDPS + +
+ + +
ADDSS + +
+ + +
CMPPS + +



CMPSS + +



COMISS + +



CVTPI2PS




+
CVTPS2PI +



+
CVTSI2SS




+
CVTSS2SI +



+
CVTTPS2PI +



+
CVTTSS2SI +



+
DIVPS + + + + + +
DIVSS + + + + + +
MAXPS + +



MAXSS + +



MINPS + +



MINSS + +



MULPS + +
+ + +
MULSS + +
+ + +
SQRTPS + +


+
SQRTSS + +


+
STMXCSR





SUBPS + +
+ + +
SUBSS + +
+ + +
UCOMISS + +




Комментарии
Нет комментариев.
Добавить комментарий
Пожалуйста, залогиньтесь для добавления комментария.
Рейтинги
Рейтинг доступен только для пользователей.

Пожалуйста, авторизуйтесьили зарегистрируйтесь для голосования.

Нет данных для оценки.

Время загрузки: 0.03 секунд 2,299,340 уникальных посетителей