где результат предыдущих вычислений R(n) возвращается для суммирования
по магистрали С. Выход сумматора ADD/SUB имеет увеличенную на M
битов разрядность, так что, по крайней мере, 2
M
повторяющихся MPY/ACC
операций могут выполняться без переполнения (рис.3.2.1.а)
Например, 40-бит аккумулятор с 32-бит умножителем позволяет выполнить
256 командных циклов без переполнения, что достаточно для большинства
фильтров и многих приложений спектрального анализа.
Выход MAC осуществляется через систему регистров (рис.3.2.1b), которые
реализуют «насыщение» при превышении разрядности результата операции,
приводят результат к формату шины данных
и/или передают число двойной
точности в виде двух слов MSW, LSW (most-significant word, least-significant
word = старшее слово, младшее слово). Для этого регистр аккумулятора
разделен на части LSW, MSW и EX (расширение). Для детектирования
предстоящего переполнения весь регистр EX и старший бит MSW
тестируются логикой детектора переполнения. Сдвигатель предназначен
для двух случаев: левый сдвиг устраняет избыточные знаковые биты (для
чисел
в дополнительном коде), возвращая сформатированное для
дальнейших вычислений значение. Правый сдвиг понижает масштабы чисел
в блоковых операциях с плавающей точкой. Логика «насыщения»
преобразует данные, полученные в результате вычислений и выходящие за
разрядную сетку (за формат) шины данных (см. рис.3.2.1b). Если имеется
переполнение, логика «насыщения» устанавливает в регистр устройства
максимальное значение (или
минимальное в зависимости от знака). Функция
насыщения аналогична насыщению аналоговых сигналов, например, в
линейных усилительных схемах и предотвращает серьезные ошибки в работе
DSP систем. Расширение вычислительных возможностей MAC основывается
на применении дополнительных промежуточных регистров и трактов
обратной связи. Например, вычисления типа
D
+
выполняются в
MAC изображенном на рис.3.2.2 путем прямой загрузки аккумулятора через
один из входных портов по шине P.
46