Реферат: Операции над данными в СП с плавающей точкой
Максимальное беззнаковое целое число
00000000 0000FFFF FFFF
Результат насыщения MR можно поместить или в регистровый файл, или назад в тот же самый регистр MR.
1.6.4 Режимы работы с плавающей точкой
Умножитель управляется двумя битами состояния режима в регистре MODE1: биты режима округления и границы округления. Кроме того, эти биты влияют на операции ALU.
Бит | MODE1 | Имя |
15 | TRUNC | |
16 | RND32 |
Функция
1=усечение; 0=округление к ближайшему
1=округление до 32 бит; 0=округление до 40 бит
6.4.1 Режимы округления данных с плавающей точкой
Умножитель поддерживает два режима округления стандарта IEEE для операций с плавающей точкой. Если бит TRUNC установлен, то умножитель округляет результат с плавающей точкой к нулю (усечение). Если бит TRUNC обнулен, то умножитель округляет результат к ближайшему.
6.4.2 Граница округления данных с плавающей точкой
В ADSP-2106x входные данные и результаты умножителя с плавающей точкой могут быть 32 - и 40-разрядными. Если бит RND32 установлен, то восемь младших бит каждого входного операнда обнуляются перед умножением. Результаты с плавающей точкой выводятся в 32-разрядном формате стандарта IEEE с нулями в 8 младших разрядах 40-разрядного регистра регистрового файла. Мантисса результата округляется до 23 бит (не включая скрытый бит). Если бит RND32 равен нулю, то умножитель получает 40-разрядные числа из регистрового файла и выводит результаты в 40-разрядном формате стандарта IEEE повышенной точности, с мантиссой, округленной до 31 бита (не включая скрытый бит).
6.5 Флаги состояния умножителя
В конце каждой операции умножитель обновляет четыре флага состояния в регистре ASTAT. Состояния этих флагов отражают результат самой последней операции умножителя. Умножитель также обновляет четыре "залипших" флага состояния в регистре STKY. После обновления "залипший" флаг остается в этом состоянии, пока явно не будет обнулен.
Бит ASTAT | Имя |
6 | MN |
7 | MV |
8 | ми |
9 | Ml |
Бит STKY | Имя |
6 | MOS |
7 | MVS |
8 | MUS |
9 | MIS |
Описание:
Результат операции умножителя отрицательный
Переполнение умножителя
Потеря значащих разрядов
Неправильная операция умножителя с плавающей точкой
Описание
Переполнение результата умножителя с фиксированной
точкой
Переполнение результата умножителя с плавающей точкой
Потеря значащих разрядов
Неправильная операция умножителя с плавающей точкой
Обновление флага происходит в конце цикла, в котором генерируется состояние, а в следующем цикле он становится доступным. Если программа осуществляет прямую запись в регистры ASTAT или STKY в том же цикле, в котором умножитель выполняет операцию, то явная запись имеет преимущество.
6.5.1 Флаги потери значащих разрядов (MU, MUS)
Потеря значащих разрядов определена для всех операций умножителя с фиксированной и плавающей точкой. Флаги устанавливаются, если результат операции умножителя меньше, чем минимальное число, представимое в этом формате. Иначе он сброшен.
Для результатов с плавающей точкой MU и MUS устанавливаются, если результат после округления потерял значащие разряды (несмещенный порядок <-126). Ненормализованные операнды всегда обрабатываются как нули, поэтому они никогда не приводят к потере значащих разрядов.
Для результатов с фиксированной точкой установка MU и MUS зависит от формата данных и происходит при следующих условиях:
Дополнительный код:
Дробное: выше 48 бит все нули или все единицы, ниже 32 бит не все нули
Целое: невозможно
Беззнаковый: