Добрый день!
Скажите, пожалуйста,планируется ли продолжение курсов по нанотехнологиям? Спасибо, Евгений
|
МКМД-БИТ-потоковые субпроцессоры с (микро)программируемой архитектурой
4.3. Ассоциативные конструкции в базовой системе команд МКМД-бит-потокового (суб)процессора векторно-матричной обработки
В современных задачах цифровой обработки сигналов и изображений темпа реального времени [70] доминируют векторно-матричные преобразования, операционное ядро которых образует скалярное произведение (свертка)
![L(X^{s}_n,Y^s_n)=\sum\limits_{s=1}^{S_n}{X_n^s*Y_n^s}](/sites/default/files/tex_cache/53fddc62eb09bdc29cef937098cf3b0f.png)
двух векторов и
размерности
и разрядности
. В результате упрощенная функциональная схема операционного устройства цифровых процессоров обработки сигналов принимает вид
рис. 4.6, где все блоки реализованы аппаратно.
![Упрощенная функциональная схема операционного устройства цифровых процессоров обработки сигналов](/EDI/04_03_16_3/1457043730-16689/tutorial/594/objects/4/files/04_06.gif)
Рис. 4.6. Упрощенная функциональная схема операционного устройства цифровых процессоров обработки сигналов
В векторно-конвейерной арифметике умножение можно выполнить в прямом коде над абсолютными значениями входных векторов с последующим присвоением знака
результату
, где все операнды имеют традиционный для МКМД-бит-потоковой организации вычислений формат фиксированной запятой с "нулевым" старшим разрядом и следующим за ним знаковым разрядом. В этом случае:
![]() |
( 4.3) |
где ,
i,j = \overline{1,n-2} - содержимое бит (
)-разрядных модулей множимого
и множителя
Отвечающая (4.3) схема МКМД-бит-потокового (по конвейерного умножителя (рис. 4.7) работает в соответствии с ассоциативным алгоритмом: для всех
![]() |
( 4.4) |
где ,
а множитель
реализуется пошаговым наращиванием временного сдвига на
тактов по отношению к накапливаемой сумме частных произведений.
Здесь: , а
- целочисленное время начальной задержки поступления потоков
и
на входы умножителя.
Отвечающая (4.4) топологическая схема DD -ассоциативного МКМД-бит-потокового умножителя приведена на рис. 4.7, и в ней:
-
-й цикл работы продолжительностью
тактов задается циклической константой
вида: первый справа (младший) бит - "единица", а остальные
бита - "нули", которая распространяется по каналам транзита первой строки бит-процессоров с задержкой на 2 такта в каждом и передается вниз с задержкой на 1 такт в каждом столбце бит-матрицы;
- поток множителей
(в каждом из которых
младших бита - значащие, а остальные - "нули") распространяется по каналам транзита бит-процессоров 2-й строки (с задержкой на 1 такт в каждом);
- содержимое
-го бита
запоминается циклически (по
) на
тактов и с выхода бит-инструкции ST1 передается вниз с задержкой на 2 такта (см. табл. 5.8 курса "Задачи и модели вычислительных наноструктур") в соответствующем
-м столбце бит-матрицы;
- поток множимых ?
формата: (
) бит - значащие, а остальные - "нули", распространяется по каналам транзита бит-процессоров 3-й строки с задержкой на 2 такта в каждом и через бит-инструкцию
ответвляется вниз в каждом столбце бит-матрицы;
- операция "сдвиг - сложение"
-го множимого с самим собой (в зависимости от содержимого
-го бита соответствующего
-го множителя) реализуется в бит-процессорах 4-й строки бит-матрицы, причем операция сдвига на 1 разряд в каждом столбце осуществляется за счет дополнительной задержки множимого на 1 такт по отношению к моменту поступления соответствующей суммы частных произведений.
В этой схеме время начальной задержки равно ( ) цикла изменения индекса
, а аппаратные затраты на FIFO -регистровую память зависят от
линейно: 1-я строка -
бит, 2-я строка -
бит, 3-я строка -
бит, 4-я строка -
бит, что в сумме дает
бит.
Однако скорость приращения индекса равна
циклам изменения индекса
.
Из приведенных алгоритмов и схем видно, что содержимое бит множителя определяет структуру "сдвигов-сложений", что является необходимой предпосылкой эффективного использования PD -ассоциативных конструкций при построении операционных устройств самого разнообразного функционального назначения.
В схеме конвейерного умножителя рис. 4.7:
- регистр
является виртуальным и соответствует времени задержки
-го бита, множимого на соответствующем входе (первый бит-процессор 3-й строки бит-матрицы);
- регистр
формируется бит-процессорами 2-й строки бит-матрицы (выходы бит-операций ST1);
- регистр
также является виртуальным и соответствует времени задержки
-го бита произведения на выходе последнего бит-процессора 4-й строки бит-матрицы.
Входящий в состав операционного устройства рис. 4.6 МКМД-бит-потоковый DD -ассоциативный сумматор-накопитель реализуется совместно с аккумулятором (рис. 4.8), и в нем:
- входной операнд
имеет разрядность
бит, а размерность результирующей матрицы равна
элемента;
- входной операнд
является управляющим, задает период накопления частных произведений и имеет вид циклической константы, в которой
бит - "единица", а остальные
бит - "нули";
- входной операнд
является циклической константой вида: младший бит - "ноль", а остальные 15 бит - "единица", которая используется для обнуления буферных разрядов в 3-х накапливаемых частных суммах.
![Топологическая схема DD-ассоциативного сумматора-накопителя для умножения матриц 3*3 (n = 16 бит) (ADDA(DD))](/EDI/04_03_16_3/1457043730-16689/tutorial/594/objects/4/files/04_08.gif)
Рис. 4.8. Топологическая схема DD-ассоциативного сумматора-накопителя для умножения матриц 3*3 (n = 16 бит) (ADDA(DD))
В отличие от обычных алгоритмов поэлементного формирования результирующей матрицы, в МКМД-бит-потоковых субпроцессорах цифровой обработки сигналов используются алгоритмы формирования по строкам или по столбцам, в которых регистр-аккумулятор имеет размерность , где
- соответственно размер результирующей матрицы по числу строк или столбцов. В этом случае поточный алгоритм построчного формирования матрицы
имеет вид:
![a_{11}*<b_{11}, b_{12}, …, b_{1Sm}> \\
+\,\,\,\,\,+\,\,…\,\,+\\
a_{12}*<b_{21}, b_{22}, …, b_{2Sm}> \\
+\,\,\,\,\,+\,\,…\,\,+\\
……………………\\
a_{1Sm}*<b_{Sm1}, b_{Sm2}, …, b_{SmSm}> \\
=\,\,\,\,\,=\,\,…\,\,=\\
<c_{11}, c_{12}, …, c_{1Sm}>\\ \\ \\
a_{21}*<b_{11}, b_{12}, …, b_{1Sm}> \\
+\,\,\,\,\,+\,\,…\,\,+\\
a_{22}*<b_{21}, b_{22}, …, b_{2Sm}>\\
+\,\,\,\,\,+\,\,…\,\,+\\
…………………… \\ (4.5)
a_{2Sm}*<b_{Sm1}, b_{Sm2}, …, b_{SmSm}>\\
=\,\,\,\,\,=\,\,…\,\,=\\
<c_{21}, c_{22}, …, c_{2Sm}>\\ \\ \\
……………………… \\ \\ \\
a_{Sm1}*<b_{11}, b_{12}, …, b_{1Sm}> \\
+\,\,\,\,\,+\,\,…\,\,+\\
a_{Sm2}*<b_{21}, b_{22}, …, b_{2Sm}> \\
+\,\,\,\,\,+\,\,…\,\,+\\
........................\\
a_{SmSm}*<b_{Sm1},b_{Sm2}, …, b_{SmSm}> \\
=\,\,\,\,\,=\,\,…\,\,=\\
<c_{Sm1},c_{Sm2}, …, c_{SmSm}>](/sites/default/files/tex_cache/9aab78a01042144ffe113b80fc6c2a92.png)
В МКМД-бит-потоковых сопроцессорах цифровой обработки сигналов алгоритм (4.5) реализуется следующим образом:
- "быстрые" переменные
образуют бит-поток множимых
, в котором индекс
изменяется с циклом
; "медленные" переменные
образуют бит-поток множителей
, в котором индекс
изменяется с циклом
, а каждая
"хранится" в теле микропрограммы такое же время;
- суммирование ведется по столбцам соотношения (4.5), в которых находятся частные произведения
, причем накопление суммы значения
осуществляется с помощью одного сумматора с FIFO-регистровым аккумулятором разрядности
.
Одно из главных преимуществ МКМД-бит-потоковых вычислительных технологий - это возможность варьировать разрядностью, а значит, и точностью непосредственно во время вычислений. Достигается это за счет высокой скорости генерацией микропрограмм соответствующих операционных устройств, что обеспечивается очень простыми алгоритмами рекуррентного наращивания микропрограмм, зависящих в данном случае от параметров результирующих потоков данных и
.
Действительно, при увеличении разрядности множимого в умножителе (см.
рис. 4.7) необходимо соответственно изменить только вид циклической константы , а при увеличении разрядности множителя умножитель необходимо нарастить соответствующим числом столбцов, которые называются термами. Такой термальный синтез применим и к сумматору-накопителю, в котором варьируемым является только размер аккумулятора, а схемы суммирования и управления периодом накопления остаются неизменными (см.
рис. 4.8). В этом случае достаточно использовать ограниченное число термов расширения разрядности аккумулятора и, в частности, терм
рис. 4.8-б, если шаг наращивания составляет 18 бит. Этот терм пристраивается справа как столбец бит-матрицы
рис. 4.8. Его также можно использовать и при увеличении разрядности данных в слов-инструкции DCC
рис. 4.2, которая используется в схеме
рис. 4.6 при сопряжении умножителя, работающего в прямом коде, с сумматором-накопителем, работающем в дополнительном коде.