Умножители с накоплением - MACs (Multiply-and-Accumulate units)

 

Рис. 9 – Умножители с накоплением в схеме операционного устройства.

Операционное устройство содержит два модуля умножения с накоплением (MACs). В каждом цикле такой модуль может осуществлять умножение двух 17-битных чисел (целых или дробных) и 40-битное сложение или вычитание с переполнением в 40 или 32 бита (опционально).

Модули умножения с накоплением получают непосредственные значения из модуля очереди команд (I-unit), значения берутся из памяти, пространства ввода-вывода, регистров устройства формирования адресов данных (A-unit). Умножитель с накоплением двунаправленно взаимодействует с регистровыми файлами операционного устройства (D-unit) и устройства потока команд (P-unit).

Выполнение операций на умножителе с накоплением влияет на значения битов в статусном регистре устройства потока команд (P-unit).

Важно заметить, что обнаружение переполнения осуществляется только после финального вычисления в цикле умножителя с накоплением.

Рис. 10 – Схема вычисления умножения с накоплением.

Рис. 11 – Виды умножения с накоплением. Где Tz – накопленная сумма, k8 – 8-битная константа, k16 – 16-битная константа, ACx, ACy – регистры – аккумуляторы операционного устройства.

 

4. Битовый манипулятор – D-Unit BIT (D-Unit Bit Manipulation Unit)

 

Рис. 12 – Битовый манипулятор в схеме операционного устройства.

Для упрощения работы АЛУ и сдвигателя операционного устройства, в него был добавлен небольшой модуль, выполняющий специальные операции.

Операции, выполняемые данным модулем:

· Возведение в экспоненту значения регистра ACx

· Нормализация – mant::nexp (mantisa, exp)

· Подсчет числа бит – bcnt (bit count)

· Извлечение бит – bfxtr (bit field extract)

· Расширение бит – bfxpa (bit field expand)

 

Примеры:

 

Нормализация mant::nexp

 

Извлечение бит bfxtr

 

Расширение бит bfxpa