Исключения при выполнении операций с плавающей точкой
Обзор
Вычислительные устройства (ВУ) процессора 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; архитектура и функции умножителя; архитектура и функции устройства сдвига; многофункциональные вычисления; регистровый файл и передача данных. Операции с плавающей точкой стандарта IEEE
Умножитель и 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 проверяются после завершения последовательности операций. Если какой - либо флаг установлен, то это означает, что какие-то из результатов неправильны. Этот метод можно использовать, если обработка исключительной ситуации не критична ко времени.
Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|