Архитектура сигнальных процессоров. Введение. Основные задачи обработки сигналов. Методы обработки сигналов, страница 10

Выбор определяется битом 0 регистра состояния процессора MSTAT.

Список операций  MAC:

R = X*Y           - умножить X на Y;

R = (MR) + X*Y       - добавить произведение X*Y к содержимому регистра MR;

R = (MR) – X*Y       - вычесть произведение X*Y из содержимого регистра MR;

R = 0                         - очистка регистра результата MR.

MAC обеспечивает два стандартных режима выполнения своих операций: дробный (для чисел в формате 1.15) и целый (целые числа, формат 16.0). Режим выбирается 4-м битом регистра состояния MSTAT: 1 в разряде – целочисленный режим, 0 – дробный.

В дробном режиме формат 32-битного выходного порта P поддерживает знаковое расширение и сдвиг содержимого на 1 бит влево перед добавлением в (вычитанием из) MR. Это означает, что 31-й бит порта P соответствует 32-му биту регистра MR (нулевому биту регистра MR2),  нулевой бит порта P соответствует 1-му биту регистра MR (биту 1 регистра MR0), а  младший, нулевой, бит регистра MR просто очищается; старшие семь разрядов регистра MR2 заполняются знаком (содержимым 31-го бита порта P).

В целочисленном режиме 32-битный результат выходного порта P при подаче в регистр MR не сдвигается. Все восемь разрядов регистра MR2 заполняются знаком  порта P.

Для реализации вычислений с повышенной точностью MAC позволяет осуществлять любые комбинации форматов операндов X и Y: умножить знаковое на знаковое (SS), беззнаковое на знаковое (US), беззнаковое на беззнаковое (UU), знаковое на беззнаковое (SU). Форматы операндов записываются как часть инструкции и динамически выбираются из каждой инструкции умножения.

Особые режимы в MAC.

Сумматор генерирует флаг переполнения MV, засылаемый в  регистр признаков результата («арифметического состояния») ASTAT после выполнения устройством каждой операции. Этот флаг устанавливается в 1 в случае, если результат суммирования/вычитания, интерпретируемый как число с дополнением до 2,  приводит к переносу из регистровой пары MR0/MR1. Другими словами флаг MV устанавливается в 1, если верхние девять бит регистра MR не все одновременно равны 0 или 1.

В регистре MR может выполняться операция «насыщения», т.е. в регистре устанавливается максимальное положительное или отрицательное число при переполнении. Операция определяется флагом MV и знаковым битом регистра MR2:

Флаг MV    Старший                      Результат после насыщения бит MR2

0                     0                            без изменений

0                     1                            без изменений

1                     0            00000000 01111111111111111111111111111111

1                     1            11111111 10000000000000000000000000000000

«Насыщение» в MAC – это операция (в отличие от ALU, где это режим). Выполнение этой операции необходимо использовать после умножений с накоплением так, чтобы предварительные результаты не вызывали насыщения, ибо это приведёт к потере точности.

Переполнение выше 40-го бита регистра MR не должно допускаться. Знак числа при этом теряется безвозвратно, и насыщение может получить совершенно противоположный результат. Но требуется более 255 простых переполнений MV, чтобы такое могло случиться.

Устройство имеет возможность округлять 40-битный результат R до 16-битного. Округление должно быть указано в команде с помощью опции RND. Округлённый результат направляется в регистр MR или MF. Когда происходит округление с регистром MR в качестве выходного, содержимое MR1 является округлённым 16-битным  результатом.

5.4.3. Устройство сдвига SHIFTER.           

Операционное устройство сдвига обеспечивает полный набор сдвигов для 16-битных аргументов, результатом которых является 32-битное слово. Операции включают логические и арифметические сдвиги и нормализацию. Устройство также производит нахождение порядка и общего порядка для блока их нескольких чисел. Базовые примитивы могут быть эффективно скомбинированы для вычислений повышенной точности и реализации вычислений с плавающей точкой.

Структурная схема устройства показана на рис.5.9.