Расматривая арифметику семейства ADSP-2100 знаковые числа можно отнести к числам с двойным дополнением. Дольшенства операций процессора поддерживают работу с двойным дополнением. Процессоры семейства ADSP-2100 не поддерживают работу с остатками и BCD-форматом.
Дробное представление: 1.15
Арифметики ADSP-2100 приспособленна для работы с числами в дробном двочном формате, называемом 1.15. В этом формате имеется один знаковый разряд (MSB) и пятнадцать дробных битов.
Далее представленны весовые значения битов в формате 1.15:
–20 2 –1 2 –2 2 –3 2 –4 2 –5 2 –6 2 –7 2 –8 2 –9 2 –10 2 –11 2 –12 2 –13 2 –14 2 –15
Числа в формате 1.15 | Десятичный эквивалент |
0x0001 0x7FFF 0xFFFF 0x8000 | 0.000031 0.999969 –0.000031 –1.000000 |
Арифметика ALU
Все комманды ALU обрабатывают операнды, как двоичные 16-разрядные последовательности. Биты состояния: AV- переполнение, AN – знак.
Логика бита переполнения основана на арифметике двойного дополнения. Например при сложении двух положительных чисел получается положительный результат, но может повлечь за собой переполнение. При сложении двух чисел с разными знаками результат может быть как положительным так и отрицательным, но переполнение в этом случае невозможно.
Логика бита переноса основана на арифметике чисел без знака. Он устанавливается если перенос сгенерирован 16-ым битом (MSB).
Арифметика MAC
Операциив модуле MAC производятся над числами, представленными ввиде двоиных последовательностей и результет выдается в том же виде.
Процессоры семейства ADSP-2100 поддерживают два режима корректировки формата: дробный режим – для дробных операндов (формат 1.15) и целочисленный режим для целых чисел формата 16.0.
Когда процессор умножает два операнда в формате 1.15 в результате получается число 2.30 (два знаковых и 30 дробных разряда). В дробном режиме МАС автоматически сдвигает результат на один бит влево перед пересылкой его в регистр результата (MR). Этим сдвигом результат приводится к виду 1.31, который может быть округлед до формата 1.15.
В целочисленном режиме сдвига влево не происходит. Напрмер при умножении операндов 16.0 результат представляется ввиде 32.0. Сдвиг влево в этом случае не нужен, т.к. он изменит числовое представление результата.
Резюме
Таблица 1.1 обобщает некоторые арифметические характеристики процессоров семейства ADSP-2100.
Таблица 1.1
Операции | Арифметические форматы | |
Операнды | Результат | |
ALU | ||
Сложение | Знаковые или без знака | Установка флагов |
Вычитание | Знаковые или без знака | Установка флагов |
Логические операции | Двоичные строки | Тот же, что и операнды |
Деление | Явно знаковые/без знака | Тот же, что и операнды |
Переполнение ALU | Знаковые | Тот же, что и операнды |
Бит коррекции ALU | 16-разрядные без знака | Тот же, что и операнды |
Насыщение ALU | Знаковые | Тот же, что и операнды |
MAC (дроб.) | ||
Умножение (Р) | 1.15 Явно знаковые/без знака | 32 разряда (2.30) |
Умножение (MR) | 1.15 Явно знаковые/без знака | 2.30 сдвинутый к 1.31 |
Умножение с накоплением | 1.15 Явно знаковые/без знака | 2.30 сдвинутый к 1.31 |
Умножение с вычитанием | 1.15 Явно знаковые/без знака | 2.30 сдвинутый к 1.31 |
Насыщение МАС | Знаковые | Тот же, что и операнды |
МАС(цел.) | ||
Умножение (Р) | 1.15 Явно знаковые/без знака | 32 разряда (2.30) |
Умножение (MR) | 16.0 Явно знаковые/без знака | 32.0 без сдвига |
Умножение с накоплением | 16.0 Явно знаковые/без знака | 32.0 без сдвига |
Умножение с вычитанием | 16.0 Явно знаковые/без знака | 32.0 без сдвига |
Насыщение МАС | Знаковые | Тот же, что и операнды |
Shifter | ||
Логические сдвиги | Баз знака/двоичные строки | Тот же, что и операнды |
Арифметические сдвиги | Знаковые | Тот же, что и операнды |
Определение порядка | Знаковые | Тот же, что и операнды |
Арифметико-логический модуль ALU
Модуль ALU предоставляет набор стандартных арифметических и логических функций. Арифметические функции: сложение, вычитание, отрицание, инкремент, декремент и модуль.Они дополненны двумя примитивами деления, с помощью которых возможна реализация цикла многократного деления. Логические: OR, AND, XOR (исключающее ИЛИ) и NOT.
Блок-схема ALU
На рисунке 2.1 показана структурная схема вычислительного модуля ALU.
|
ALU – это 16-разрядное устройство с двумя 16-разрядными портами ввода данных X и Y,и одним портом вывода - R . ALU генерирует шесть сигналов состояния: ноль (AZ), негатив (AN), перенос (AC), переполнение (AV), знак (AS) и quotient (AQ). В конце каждого цикла эти сигналы сохраняются в регистре состояния процессора (ASTAT).
Порт ввода X может принимать данные из двух источников: из регистра АX и с шины результатов R. R-шина соединяет выходные регистры всех вычислительных модулей. Регистр AX предназначен только для порта X и состоит из двух частей AX0 и AX1. Эти регистры подключенны к DMD-шине. Система команд позволяет чтение регистра AX и с помощью PMD-шины, но прямого соединения с ней нет, эта операция использует модуль DMD-PMD обмена. Выводы регистров AX0 и AX1 реализованы таким образом, чтобы один обеспечивал ввод в ALU, а другой в это время управлял DMD-шиной.
Порт ввода Y также принимает данные из двух источников: из регистра AY и регистра обратной связи ALU – AF. Регистр AY привязан к порту Y и состои из двух регистров AY0 и AY1. Эти регистры даступны для чтения и записи с DMD-шины и перезаписываемы с PMD-шины. Система комманд позволяет читать регистры AY0 и AY1 с помощью PMD-шины, но то же с использованием DMD-PMD модуля. Выводы ругистров AY0 и AY1 реализованы аналогично регистрам AX0 и AX1.
Выход ALU подключен к выходному регистру результата AR и через регистр обратной связи AF на вход. AF – внутренний регистр ALU, который позволяет результату вычисления использоваться в качестве следующего операнда. Регистр AR имеет выход на DMD- и R-шины. В системе комманд предусмотрена возможность чтения регистра AR посредством PMD-шины аналогично двум предыдущим случаям.
Любой из регистров ALU доступен для записи и чтения в течении цикла процессора (для чтения в начале цикла, для чтения - в конце). Таким образом, новое значение, записанное в конце одного цикла, может быть прочитанно лишь в начале следующего. Это позволяет входным регистрам записать в ALU опренд в начале цикла и считать следующий в конце того же цикла. Это так же позволяет сохранить содержимое регистра результата в памяти и прооперировать со следующим результатом в одном цикле.
ALU имеет двойные банки регистров AX, AY, AF и AR (на рис.2.1 это показано тенями). Но в один момент времени доступен только один банк. Доплнительный банк может быть активизирован для чрезвычайно быстрого контекстного переключения. В этом случае новая задача, подобно подпрограмме обработке прерывания, может выполнияться без сохранения текущих данных в памяти.
Выбор главного или альтернативного банка регистров определяется битом 0 регистра режимоа процессора MSTAT. Если этот бит – 0, то выбран главный банк, если – 1, то дополнительный.
Стандартные функции
Стандартные функции ALU перечисленны в таблице 2.1.
Таблица 2.1
Функция | Назначение |
R= X+Y | Сложение операндов X и Y |
R= X+Y+CI | Сложение операндов X и Y и бита коррекции |
R= X-Y | Вычитание операндов X из Y |
R= X-Y+CI-1 | Вычитание операндов X из Y с заемом |
R= -X | Инверсия X |
R= -Y | Инверсия Y |
R= X+1 | Инкремент X |
R= Y+1 | Инкремент Y |
R= X-1 | Декремент X |
R= Y-1 | Декремент Y |
R= PASS X | Операнд X не изменяет результата |
R= PASS Y | Операнд Y не изменяет результата |
R= 0 | Очистка результата |
R= ABS X | Модуль X |
R= X AND Y | Логическое умножение операндов X и Y |
R= X OR Y | Логическое сложение опреандов X и Y |
R= X XOR Y | Исключающее ИЛИ операндов X и Y |
R= NOT X | Отрицание X |
R= NOT Y | Отрицение Y |
Регистры ввода вывода ALU
Регистры ввода ALU перечисленны ниже.
Регистры для порта X: AX0, AX1, AR, MR0, MR1, MR2, SR0, SR1.
Регистры для порта Y: AY0, AY1, AF.
Регистры для порта R: AR, AF.
Регистры MR0, MR1, MR2 являются регистрами результатов модуля MAC, а SR0, SR1 – модуля Shifter.
Возможность мультиточности
Операции мультиточности в ALU связаны с сигналом carry-in и битом переноса AC. Операция сложение с переносом предназначена для сложения старших частей мультиточных чисел, также как, вычитание с заемом – для их вычитания.
Режим насыщения ALU
Регистр AR имеет режим работы - насыщение, в котором он устанавливается в минимальное отрицательное значение или максимальное положительное, если операция заканчивается переполнением. Эта функция регистра AR становится возможной при установке 3 регистра MSTAT.
Таблица 2.2.
Переполнение (AV) | Carry (AC) | Содержимое AR |
0 | 0 | Результат на выходе ALU |
0 | 1 | Результат на выходе ALU |
1 | 0 | 0111111111111111 (положит.) |
1 | 1 | 1000000000000000 (отриц.) |
Дата: 2019-05-29, просмотров: 217.