Числа со знаком: двойное дополнение
Поможем в ✍️ написании учебной работы
Поможем с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой

Расматривая арифметику семейства 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.

Рис.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, просмотров: 183.