Реферат: Операции над данными в СП с плавающей точкой

--PAGE_BREAK--Описание:
Нулевой результат или потеря значащих разрядов в операции с плавающей точкой Переполнение ALU Отрицательный результат ALU Перенос для результата с фиксированной точкой Знак операнда X (операции ABS, MANT) Неправильная операция ALU с плавающей точкой Последняя операция ALU была операцией с плавающей точкой С АС С Регистр накопления сравнений (Compare Accumulation register) (результат 8 последних операций сравнения)
Описание:
Потеря значащих разрядов в операции с плавающей точкой Переполнение результата операции ALU с плавающей точкой Переполнение результата операции ALU с фиксированной точкой Неправильная операция ALU с плавающей точкой
Флаг обновляется в конце того цикла, в котором генерируется состояние, и доступен в следующем цикле. Если программа осуществляет прямую запись в регистры ASTAT или STKY в том же цикле, в котором ALU выполняет операцию, то явная запись имеет преимущество.
5.3.1 Нулевой флаг ALU (AZ) Нулевой флаг определен для всех операций ALU с фиксированной и плавающей точкой. AZ устанавливается, когда результат операции ALU равняется нулю. Установка AZ также сигнализирует о потере значащих разрядов результата с плавающей точкой (см. ниже). В противном случае он сброшен.
5.3.2 Флаги потери значащих разрядов (AZ, AUS) Потеря значащих разрядов определена для всех операций ALU, которые возвращают результат с плавающей точкой, а также для операции преобразования форматов. AUS и AZ устанавливаются, когда результат операции ALU меньше, чем минимальное число формата представления результата.

5.3.3 Отрицательный флаг ALU (AN) Отрицательный флаг ALU определен для всех операций ALU. Он устанавливается, когда результат операции ALU отрицательный. Иначе он сброшен.
5.3.4 Флаги переполнения ALU (AV, AOS, AVS) Переполнение определено для всех операций ALU с плавающей и с фиксированной точкой. Для результатов с фиксированной точкой AV и AOS устанавливаются, когда результат операции «исключающее ИЛИ» (XOR) двух старших разрядов результата равен 1, иначе AV сброшен. Для результатов с плавающей точкой AV и AVS устанавливаются, когда результат после округления переполнен (несмещенный порядок >127), иначе AV сброшен.
5.3.5 Флаг переноса операции АШ с фиксированной точкой (АС) Флаг переноса определен для всех операций ALU с фиксированной точкой. Для арифметических операций с фиксированной точкой АС устанавливается, если произошел перенос за старший разряд результата, иначе он сброшен. АС сброшен для операций PASS, MIN, MAX, COMP, ASP, CLIP и логических операций. ALU считывает флаг АС в операциях с фиксированной точкой: сложение с переносом и вычитание с переносом.
5.3.6 Знаковый флаг ALU (AS) Знаковый флаг определен только для операции ABS с фиксированной и с плавающей точкой и операции MANT. AS устанавливается, если входной операнд отрицательный. Иначе он сброшен. ALU обнуляет бит AS для всех операций, кроме ABS и MANT; в отличие от процессоров семейства ADSP-2100, которые обновляют флаг AS только при операции ABS.

5.3.7 Флаги ошибки ALL) (Al, AIS) Флаги ошибки ALU определены для всех операций ALU с плавающей точкой. AI и AIS устанавливаются, когда: входной операнд NAN («не число»); складываются бесконечности с противоположными знаками; вычитаются бесконечности одного знака; не установлен режим насыщения, а результат преобразования из формата с плавающей точкой в формат с фиксированной точкой переполнен, или производится операция преобразования над бесконечностью.
Иначе AI сброшен.
5.3.8 Флаг операции с плавающей точкой ALU (AF) AF определен для всех операций ALU с фиксированной и с плавающей точкой. Он устанавливается, если последняя операция ALU была с плавающей точкой, иначе он сброшен.
5.3.9 Накопление сравнений Биты 31-24 в регистре ASTAT хранят флаги результатов до восьми операций сравнения ALU. Эти биты формируют регистр со сдвигом вправо. После выполнения операции сравнения восемь бит сдвигаются в направлении младшего разряда (бит 24 теряется). Затем в старший бит (31) записывается результат операции сравнения. Если операнд X больше операнда Y, то бит 31 устанавливается, иначе он обнуляется.

6. Умножитель Умножитель выполняет операции умножения с фиксированной или с плавающей точкой и умножение/накопление с фиксированной точкой. Умножение/накопление может быть выполнено и с накопленным сложением, и с накопленным вычитанием. Умножение/накопление с плавающей точкой может быть выполнено посредством параллельных операций ALU и умножителя. Для этого используются многофункциональные команды (см. далее раздел «Многофункциональные вычисления» в этой главе). При операциях с плавающей точкой умножитель оперирует 32 — или 40-разрядными операндами и результатами формата с плавающей точкой. При операциях с фиксированной точкой умножитель оперирует 32-разрядными данными с фиксированной точкой и выдает 80-разрядные результаты. Входные данные обрабатываются как целые или дробные, беззнаковые или в дополнительном коде.
Команды умножителя: умножение с плавающей точкой; умножение с фиксированной точкой; умножение/накопление со сложением для данных с фиксированной точкой (необязательное округление); умножение/накопление с вычитанием для данных с фиксированной точкой (необязательное округление); округление результата; насыщение результата; обнуление результата.
6.1 Работа умножителя На вход умножителя поступают один или два входных операнда, называемые X и Y, которые могут быть содержимыми любого регистра в регистровом файле. При операциях с фиксированной точкой результаты могут накапливаться в любом из двух локальных регистров результата умножителя (MR) или записываться назад в регистровый файл. Результаты, сохраненные в регистрах MR, могут округляться или насыщаться в отдельных операциях. При операциях с плавающей точкой возвращается результат с плавающей точкой, который всегда записывается назад в регистровый файл.
Входные операнды передаются в течение первой половины цикла. Результаты передаются в течение второй половины цикла. Т.о., умножитель может считывать и записывать один и тот же регистр регистрового файла за один цикл.
При операциях умножителя с фиксированной точкой входные данные считываются из 32 — старших битов регистра регистрового файла. Операнды с фиксированной точкой могут обрабатываться в целом или дробном форматах. Формат результата соответствует формату входных данных. Каждый операнд с фиксированной точкой может обрабатываться как беззнаковый, так и знаковый (в дополнительном коде). Если оба входных операнда дробные и знаковые, то умножитель автоматически сдвигает результат влево на один бит, чтобы удалить избыточный знаковый бит. Тип входных данных определяется внутри команды умножителя.
6.2 Результаты с фиксированной точкой Операции с фиксированной точкой возвращают 80-разрядные результаты в регистр MR. Положение результата в 80-разрядном поле зависит от его формата: результат дробный или целый (см. рис.2.2). Если результат посылается прямо в регистровый файл, то пересылаются те 32 разряда, которые соответствуют формату входных данных: т.е. разряды 63-32 для дробного результата или разряды 31-0 — для целого. Восемь младших бит 40-разрядного регистра регистрового файла заполняются нулями. Перед передачей дробного результата в регистровый файл он может быть округлен к ближайшему (см. далее). Если округление не определено, то ненужные разряды 31-0 отбрасываются, что соответствует усечению дробного результата (округление к нулю).

6.2.1 Регистры MR Результат может пересылаться в один из двух 80-разрядных регистров результатов (MR). Регистры MR имеют одинаковый формат — каждый делится на регистры MR2,MR1,MRO, содержимое которых может отдельно считываться или записываться в регистровый файл. Когда данные считываются из MR2, они дополняются по знаку до 32 бит (см. рис.2.3). Когда данные считываются из MR2, MR1, MR0 в регистровый файл, восемь младших бит 40-разрядного регистра регистрового файла заполняются нулями. При записи данных в MR2, MR1, MR0 из регистра регистрового файла считываются 32 старших бита, а восемь младших игнорируются. Данные, записанные в MR1, дополняются по знаку в MR2, т.е. старшие биты MR1 повторяются в 16 разрядах MR2. Однако записанные в MR0 данные не дополняются по знаку.
Два регистра MR обозначаются как MRF (основной) и MRB (дополнительный). Основной относится к тем регистрам, которые обычно активируются битом SRCU в регистре MODEL Когда используется только один регистр MR, бит SRCU активирует либо один, либо другой регистр для быстрого контекстного переключения. Однако, в отличие от других регистров, которые имеют дополнительный набор, регистры MRF и MRB могут использоваться в одно и то же время. Все команды накопления (с фиксированной точкой) могут определять любой регистр результата для накопления независимо от состояния бита SRCU.Т.о., вместо использования регистров MR как основного и дополнительного их можно использовать как два параллельных накопителя. Эта особенность облегчает работу с комплексными числами.
Пересылка данных между регистрами MR и регистровым файлом рассматривается как операция вычислительного устройства, т.к она задействуют умножитель. Т.о., хотя синтаксис команды передачи такой же, как и для любой другой команды передачи данных в регистровый файл или из него, передача данных в MR размещается в команде, в том месте, где обычно располагается вычисление. Например, процессор может выполнять умножение/ накопление параллельно со считыванием данных из памяти:MRF=MRF-R5*R0, R6=DM (II, М2); или может выполнять пересылку данных в MR вместо вычисления: R5=MR1F, R6=DM (I1,M2).
6.3 Операции с фиксированной точкой Помимо умножения к операциям с фиксированной точкой относятся накопление, округление и насыщение. Существуют три операции с содержимым регистра MR: обнуление (Clear), округление (Round) и насыщение (Saturate).
6.3.1 Обнуление регистра MR Операция обнуления обнуляет заданный регистр MR. Обнуление выполняется в начале операции умножение/накопление для удаления результатов, оставшихся от предыдущей операции.
6.3.2 Округление содержимого регистра MR Округление результата с фиксированной точкой происходит или как часть операций умножение и умножение/накопление, или как явная операция регистра MR. Операция округления применяется только к дробным результатам (целые результаты не округляются), 80-разрядное число в MR округляется к ближайшему за счет бита 32, т.е. границы MR1-MR0. Округленный результат из MR1 может быть отправлен в регистровый файл или в тот же самый регистр MR. Для округления дробного результата к нулю (усечение) вы пересылаете неокругленный результат из MR1, отбрасывая 32 младших бита (MR0).

6.3.3 Насыщение регистра MR при переполнении Операция насыщения устанавливает максимальное значение в MR, если содержимое MR переполнено. Переполнение происходит, когда значение в MR больше максимального значения данного формата (беззнаковый или в дополнительном коде, целый или дробный). Ниже приведены шесть возможных максимальных чисел, представленных в шестнадцатиричном формате:
MR2MR1MR0
Максимальное дробное число в дополнительном коде
00007FFF FFFFFFFF FFFF Положительное
FFFF8000 00000000 0000 Отрицательное
Максимальное целое число в дополнительном коде
00000000 00007FFF FFFF Положительное
FFFFFFFF FFFF8000 0000 Отрицательное
Максимальное беззнаковое дробное число
0000FFFF FFFF FFFF FFFF
Максимальное беззнаковое целое число
00000000 0000FFFF FFFF
Результат насыщения MR можно поместить или в регистровый файл, или назад в тот же самый регистр MR.
1.6.4 Режимы работы с плавающей точкой Умножитель управляется двумя битами состояния режима в регистре MODE1: биты режима округления и границы округления. Кроме того, эти биты влияют на операции ALU.
Функция
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 или STKY в том же цикле, в котором умножитель выполняет операцию, то явная запись имеет преимущество.

6.5.1 Флаги потери значащих разрядов (MU, MUS) Потеря значащих разрядов определена для всех операций умножителя с фиксированной и плавающей точкой. Флаги устанавливаются, если результат операции умножителя меньше, чем минимальное число, представимое в этом формате. Иначе он сброшен.
Для результатов с плавающей точкой MU и MUS устанавливаются, если результат после округления потерял значащие разряды (несмещенный порядок <-126). Ненормализованные операнды всегда обрабатываются как нули, поэтому они никогда не приводят к потере значащих разрядов.
Для результатов с фиксированной точкой установка MU и MUS зависит от формата данных и происходит при следующих условиях:
Дополнительный код:
Дробное: выше 48 бит все нули или все единицы, ниже 32 бит не все нули
Целое: невозможно
Беззнаковый:
Дробное: выше 48 бит все нули, ниже 32 бит не все нули
Целое: невозможно
При помещении результата с фиксированной точкой в регистр MR потерявшая значащие разряды часть результата доступна в MR0 (только для дробного результата).
6.5.2 Отрицательный флаг умножителя (MN) Отрицательный флаг определен для всех операций умножителя. MN устанавливается, если результат операции умножителя отрицательный. Иначе сброшен.
6.5.3 Флаг переполнения умножителя (MV) Переполнение определено для всех операций умножителя с фиксированной и плавающей точкой. Для результатов с плавающей точкой MV и MVS устанавливаются, если результат после округления переполнен (несмещенный порядок > 127).
Для результатов с фиксированной точкой установка MV и MOS зависит от формата данных и происходит при следующих условиях:
Дополнительный код:
Дробное: выше 17 бит MR не все нули или все единицы
Целое: выше 49 бит MR не все нули или все единицы
Беззнаковый:
Дробное: выше 16 бит MR не все нули
Целое: выше 48 бит MR не все нули
    продолжение
--PAGE_BREAK--
еще рефераты
Еще работы по информатике