Шрифт:
Команды тестирования результата:
Последняя команда выполняет заданную команду АЛУ, устанавливает флаги и сбрасывает значение результата. Она позволяет тестировать значения в регистрах без изменения содержимого AR или AF. Строка <ALU> — это любая безусловная команда АЛУ, кроме DIVS, DIVQ и дополнительных команд АЛУ с константами.
Для всех приведенных выше команд ALU разрешено использовать следующие операнды:
xop: AX0, АХ1, AR, MR0, MR1, MR2, SR0, SR1; yop: AY0, AY1, AF;
constant: 0, 1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096, 8192, 16384, 32767, -2, -3, -5, -9, -17, -33, -65, -129, -257, -513, -1025, -2049, -4097, -8193, -16385, -32768.
Команда DIVS не может использовать регистр AY0 как оператор yop. Коды условия IF соответствуют кодам, приведенным ранее в табличном виде.
Примеры записи команд:
Глава 15. Устройство MAC
В этой главе говорится о вычислительном устройстве MAC (умножителя с накопителем) сигнального процессора и выполняемых в нем командах.
Свое название устройство MAC получило от сокращения английских слов: multiplier (умножитель) и accumulator (накопитель). Устройство MAC выполняет быстрые одноцикловые операции умножения, умножения с добавлением, умножения с вычитанием, функции насыщения и очистку результата. Функция обратной связи позволяет части результата в одном цикле быть одним из сомножителей в следующем цикле.
Операции в MAC производятся над числами, представленными в виде двоичных последовательностей. Результат выдается в том же виде.
Процессор ADSP-2181 поддерживает два режима корректировки формата: дробный режим для дробных операндов формата 1.15 и целочисленный режим для целых чисел формата 16.0.
Когда процессор умножает два операнда в формате 1.15, в результате получается число в формате 2.30 (два знаковых и 30 дробных разрядов).
В дробном режиме MAC автоматически сдвигает результат на один бит влево перед пересылкой его в регистр результата MR. Этим сдвигом результат приводится к виду 1.31, который может быть округлен до формата 1.15.
В целочисленном режиме сдвига влево не происходит. Например, при умножении операндов в формате 16.0 результат представляется в виде 32.0.
Сдвиг влево в этом случае не нужен, т.к. он изменит числовое представление результата. В табл. 15.1 показаны форматы данных операндов и результата для вычислительных устройств процессора ADSP-2181.
Таблица 15.1 Форматы данных операндов и результата для вычислительных устройств процессора ADSP-2181
Операции | Арифметические форматы | |
---|---|---|
Операнды | Результат | |
Устройство ALU | ||
Сложение | Знаковые числа или без знака | Установка флагов |
Вычитание | Знаковые числа или без знака | Установка флагов |
Логические операции | Двоичные строки | Тот же, что и операнды |
Деление | Знаковые числа или без знака | Тот же, что и операнды |
Переполнение ALU | Знаковые числа | Тот же, что и операнды |
Бит коррекции ALU | 16-разрядные числа без знака | Тот же, что и операнды |
Насыщение ALU | Знаковые числа | Тот же, что и операнды |
Устройство MAC (дробные числа) | ||
Умножение (P) | 1.15 знаковые числа /без знака | 32 разряда (2.30) |
Умножение (MR) | 1.15 знаковые числа /без знака | 2.30, сдвинутый к 1.31 |
Умножение с накоплением | 1.15 знаковые числа /без знака | 2.30, сдвинутый к 1.31 |
Умножение с вычитанием | 1.15 знаковые числа /без знака | 2.30, сдвинутый к 1.31 |
Насыщение MAC | Знаковые числа | Тот же, что и операнды |
Устройство MAC (целые числа) | ||
Умножение (P) | 1.15 знаковые числа /без знака | 32 разряда (32.0) |
Умножение (MR) | 16.0 знаковые числа /без знака | 32.0 без сдвига |
Умножение с накоплением | 16.0 знаковые числа /без знака | 32.0 без сдвига |
Умножение с вычитанием | 16.0 знаковые числа /без знака | 32.0 без сдвига |
Насыщение MAC | Знаковые числа | Тот же, что и операнды |
Устройство сдвига Shifter | ||
Логические сдвиги | Баз знака/двоичные строки | Тот же, что и операнды |
Арифметические сдвиги | Знаковые числа | Тот же, что и операнды |
Определение порядка | Знаковые числа | Тот же, что и операнды |
Рассмотрим подробнее содержимое устройства MAC. Его структурная схема приведена на рис. 15.1.
Рис. 15.1. Структурная схема MAC
MAC имеет два входных 16-разрядных порта X и Y и один 32-разрядный порт вывода результата P. 32-разрядный результат поступает в 40-разрядный блок сложения/вычитания, который либо прибавляет, либо вычитает текущий результат из регистра результата MR, либо передает текущий результат непосредственно в MR. Регистр MR имеет 40 разрядов. Фактически регистр MR состоит из трех регистров. Два из них, MR0 и MR1, являются 16-разрядными, а регистр MR2 8-разрядный. Мультиплексоры MUX позволяют коммутировать внутри устройства один из нескольких операндов.