Федеральное Агентство образования Российской Федерации
Пензенский государственный университет
Кафедра "Информационная безопасность систем и технологий"
РЕФЕРАТ
по теме:
"Операции над данными в СП с плавающей точкой "
Дисциплина: ЦиМПТ
Группа:
Выполнил: .
Руководитель работы:
Пенза 2006
1. Обзор
2. Операции с плавающей точкой стандарта IEEE
2.1 Формат с плавающей точкой повышенной точности
2.2 Формат коротких слов с плавающей точкой
2.3 Исключения при выполнении операций с плавающей точкой
3. Операции с фиксированной точкой
4. Округление
5. Арифметико-логическое устройство (ALU)
5.1 Работа ALU
5.2 Режимы работы ALU
5.2.1 Режим насыщения
5.2.2 Режимы округления данных с плавающей точкой
5.2.3 Границы округления данных с плавающей точкой
5.3 Флаги состояния ALU
5.3.1 Нулевой флаг ALU (AZ)
5.3.2 Флаги потери значащих разрядов (AZ, AUS)
5.3.3 Отрицательный флаг ALU (AN)
5.3.4 Флаги переполнения ALU (AV, AOS, AVS)
5.3.5 Флаг переноса операции АШ с фиксированной точкой (АС)
5.3.6 Знаковый флаг ALU (AS)
5.3.7 Флаги ошибки ALL) (Al, AIS)
5.3.8 Флаг операции с плавающей точкой ALU (AF)
5.3.9 Накопление сравнений
6. Умножитель
6.1 Работа умножителя
6.2 Результаты с фиксированной точкой
6.2.1 Регистры MR
6.3 Операции с фиксированной точкой
6.3.1 Обнуление регистра MR
6.3.2 Округление содержимого регистра MR
6.3.3 Насыщение регистра MR при переполнении
1.6.4 Режимы работы с плавающей точкой
6.4.1 Режимы округления данных с плавающей точкой
6.4.2 Граница округления данных с плавающей точкой
6.5 Флаги состояния умножителя
6.5.1 Флаги потери значащих разрядов (MU, MUS)
6.5.2 Отрицательный флаг умножителя (MN)
6.5.3 Флаг переполнения умножителя (MV)
6.5.4 Флаг ошибки умножителя (Ml)
7. Устройство сдвига
7.1 Работа устройства сдвига
7.2 Флаги состояния устройства сдвига
7.3.1 Нулевой флаг устройства сдвига (SZ)
7.3.2 Флаг переполнения устройства сдвига (SV)
7.3.3 Знаковый флаг устройства сдвига (SS)
7.4 Резюме команд устройства сдвига
8. Многофункциональные вычисления
9. Регистровый файл
9.1 Дополнительные регистры
Вычислительные устройства (ВУ) процессора ADSP-2106x используются для операций, осуществляемых при реализации алгоритмов цифровой обработки сигналов. Процессор ADSP-2106x содержит три ВУ: арифметико-логическое устройство (ALU), умножитель и устройство сдвига. Процессор поддерживает операции с фиксированной и плавающей точкой. Каждое ВУ выполняет команды за один цикл.
ALU выполняет стандартный набор арифметических и логических операций в обоих форматах: с фиксированной и плавающей точкой. Умножитель выполняет умножения с фиксированной и плавающей точкой, а также операции умножение/сложение и умножение/вычитание с фиксированной точкой. Устройство сдвига выполняет логические и арифметические сдвиги, манипуляцию битами, операции внесения и извлечения поля над 32-разрядными операндами и определение порядка.
В У имеют параллельную архитектуру, как показано на рис.2.1 Выход любого ВУ может быть входом любого ВУ в следующем цикле. ВУ получают и выводят данные через 10-портовый регистровый файл, который состоит из 16 первичных и 16 дополнительных регистров. Регистровый файл доступен для шины данных памяти программы и шины данных памяти данных, по которым передаются данные между ВУ и внешней памятью или другими частями процессора.
Один и тот же регистр в регистровом файле начинается с префикса F (в исходном коде ассемблера), когда он используется в вычислениях с плавающей точкой. И начинается с префикса R, когда используется в вычислениях с фиксированной точкой. Например, следующие команды используют одни и те же регистры:
FO=F1 * F2; умножение с плаваюгцей точкой
RO=R1 * R2; умножение с фиксированной точкой
Префиксы F и R не влияют на передачу 32-разрядных (или 40-разрядных) данных; они только определяют, как ALU, умножитель или устройство сдвига обрабатывают данные. F и R могут быть прописными и строчными; в ассемблере не учитывается регистр клавиатуры.
В этой главе рассматриваются следующие темы:
форматы данных и округление;
архитектура и функции ALU;
архитектура и функции умножителя;
архитектура и функции устройства сдвига;
многофункциональные вычисления;
регистровый файл и передача данных.
Умножитель и ALU поддерживают формат чисел с плавающей точкой одиночной точности, определенный стандартом IEEE 754/854. Этот стандарт описан в приложении С Форматы представления чисел. ADSP-2106x соответствует стандарту IEEE 754/854 для операций с плавающей точкой одиночной точности, за исключением:
ADSP-2106x не обеспечивает неточные флаги;
при вводе NAN (Not-a-Number - "не число") генерируется исключение и возвращается NAN (1 во всех разрядах);
ненормализованные операнды обнуляются, когда попадают в вычислительное устройство, и исключение потери значащих разрядов не генерируется. Если результат арифметической операции не нормализован или произошла потеря значащих разрядов, то он обнуляется и генерируется исключение потери значащих разрядов;
поддерживаются режимы округления к ближайшему и округления по направлению к нулю; округление к ±°о не поддерживается.
Кроме того, в ADSP-2106x поддерживается режим повышенной точности с плавающей точкой для 40-разрядных операндов, которые имеют восемь дополнительных младших разрядов мантиссы. Режим не соответствует стандартам 754/854, но результаты в этом формате более точные, чем в формате одиночной точности стандарта IEEE.
В ADSP-2106x данные с плавающей точкой могут быть как 32-, так и 40-разрядными. Формат с плавающей точкой повышенной точности (8 бит порядок и 32 бита мантисса) устанавливаются при записи 0 в бит RND32 в регистре MODEL Если этот бит установлен (1), то используется обычная точность стандарта IEEE (8 бит порядок и 24 бита мантисса). В этом случае в ВУ перед выполнением операции обнуляются восемь младших разрядов входного операнда. Мантисса результата округляется до 23 бит (не включая скрытый бит), а 8 младших разрядов 40-разрядного результата обнуляются, таким образом, формируется 32-разрядное число, которое эквивалентно представлению результата по стандарту IEEE.
ADSP-2106x поддерживает тип 16-разрядных данных с плавающей точкой и обеспечивает команды преобразования для него. Формат короткого слова с плавающей точкой имеет 11-разрядную мантиссу и 4-разрядный порядок, плюс знаковый бит.16-разрядное число размещается в 16 младших битах 32-разрядного поля. Две команды устройства сдвига, FPACK и FUNPACK, выполняют преобразования (упаковку и распаковку) между 32 - и 16-разрядными словами с плавающей точкой. Команда FPACK преобразует 32-разрядное число с плавающей точкой стандарта IEEE в 16-разрядное число. FUNPACK преобразует 16-разрядные числа назад в 32-разрядные. Каждая из этих команд выполняется за один цикл. Формат коротких слов с плавающей точкой поддерживает постепенную потерю значащих разрядов. Когда упаковывается число, которое могло бы потерять значащие разряды, порядок обнуляется, а мантисса (включая "скрытую" 1) сдвигается вправо на соответствующую величину. Упакованный результат является ненормализованным и может быть распакован в нормальное число с плавающей точкой стандарта IEEE.
Умножитель и ALU информируют об исключении при выполнении операций с плавающей точкой. Они обновляют флаги переполнения, потери значащих разрядов, неправильной операции в регистрах арифметического состояния (ASTAT) и "залипшие" флаги состояния (STKY). Кроме этого, при потере значащих разрядов, переполнении или неправильной операции эти устройства генерируют маскируемое прерывание. Т.о., существует три способа обработки исключительных ситуаций при операциях с плавающей точкой:
Прерывания. Исключительная ситуация обрабатывается сразу же в программе обработки прерывания. Если необходимо обрабатывать исключения по мере их возникновения, то можно использовать этот метод.
Регистр ASTAT. Флаги исключительных ситуаций в регистре ASTAT, соответствующие определенным арифметическим операциям, проверяются после того, как операция выполнена. Этот метод можно использовать для контроля выполнения определенной операции с плавающей точкой.
Регистр STKY. Флаги исключительных ситуаций в регистре STKY проверяются после завершения последовательности операций. Если какой - либо флаг установлен, то это означает, что какие-то из результатов неправильны. Этот метод можно использовать, если обработка исключительной ситуации не критична ко времени.
Разрядность числа с фиксированной точкой всегда равна 32; в поле 40-разрядных данных оно занимает 32 старших бита. Форматы представления этих чисел могут быть дробные или целые, беззнаковые или знаковые. Каждое ВУ имеет свои собственные ограничения на то, как эти форматы совмещаются в данной операции. ВУ считывают 32-разрядные операнды из 40-разрядных регистров, игнорируя 8 младших разрядов, и записывают 32-разрядные результаты, обнуляя 8 младших разрядов.
В процессоре ADSP-2106x поддерживается два режима округления: округление к нулю и округление к ближайшему. Режимы округления соответствуют стандарту IEEE 754, как определено ниже:
Округление к нулю. Если результат до округления точно не представить в определенном формате, то он округляется до числа, которое ближе к нулю. Это эквивалентно усечению.
Округление к ближайшему. Если результат до округления точно не представим в определенном формате, то он будет округлен до числа, которое ближе к нему.