Операции | Арифметические форматы | |
---|---|---|
Операнды | Результат | |
Устройство 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 позволяют коммутировать внутри устройства один из нескольких операндов.
Блок сложения/вычитания имеет более 32 разрядов для того, чтобы учесть промежуточные переполнения в ряде операций умножения с накоплением. Флаг MV (переполнение) устанавливается в единицу, если значение аккумулятора превышает 32 разряда.
Регистры ввода-вывода подобны регистрам ALU. Порт X может принимать данные из регистра MX или из любого другого регистра на R-шине результата. R-шина соединяет выходные регистры всех вычислительных модулей для непосредственного использования результатов вычислений в качестве входных операндов. Регистр MX состоит из двух регистров (MX0 и MX1).
Эти регистры читаются и записываются с DMD-шины. Организованы регистры MX0 и MX1 таким образом, что один из них поставляет множитель в блок умножения, а другой управляет DMD-шиной.
Порт Y принимает данные из регистра MY или регистра обратной связи MF. Регистр MY также разбит на два регистра (MY0 и MY1), доступ к которым осуществляется с DMD-шины и возможна запись с PMD-шины. Система команд предусматривает чтение этих регистров с помощью PMD-шины, но прямого доступа для этой операции нет, в этом случае используется устройство DMD-PMD обмена. Выводы регистра MY устроены аналогично MX.
Результат умножения поступает либо в блок сложения/вычитания, либо в регистры MY или MF. Регистр обратной связи MF позволяет результату вычисления в предыдущем цикле становиться операндом умножения на входе Y, в последующей операции. 40-разрядный регистр MR разделен на три регистра (MR0, MR1, MR2). Содержимое любого из них может быть выведено на DMD-шину или R-шину и записано с DMD-шины.