Опубликован: 01.10.2013 | Доступ: свободный | Студентов: 255 / 19 | Длительность: 24:58:00
ISBN: 978-5-9963-0223-9
Специальности: Разработчик аппаратуры
Лекция 4:

Специфика построения аппаратных платформ высокопроизводительных вычислительных систем с микропрограммным уровнем доступа

3.3. Синтез ассоциативно управляемых МКМД-бит-потоковых матричных СБИС арифметико-логической обработки данных по критерию максимума функциональной интеграции при минимуме аппаратных затрат

Как и в обычных RISC -процессорах, аппаратные ресурсы бит-процессоров, а значит, и площадь кристалла бит-матричной СБИС расходуются на параллельное выполнение операционных, адресных, управляющих, интерфейсных и диагностических функций. Поэтому центральная проблема повышения интенсивности использования степени функциональной интеграции СБИС [276] состоит в оптимизации состава основных и вспомогательных функций бит-процессоров, обеспечивающих минимальные аппаратные затраты на реализацию заданного класса поток-операторов пользователя.

При этом специфика технологии прототипирования в вычислительной технике состоит в том, что необходимо не только повысить потребительские характеристики новой версии бит-матричных СБИС, но и сохранить микропрограммную совместимость новых версий с более ранней версией архитектуры, заложенной в данном случае в Н1841 ВФ1.

Таким образом, снижение топологических норм производства отечественных СБИС должно постоянно сопровождаться взаимосвязанной реконструкцией операционной, коммутационной и управляющей частей бит-процессора в Н1841 ВФ1. Связано это с тем, что в современной микроэлектронике скорость роста степени интеграции на кристаллах почти на порядок опережает скорость роста количества выводов в СБИС,

так как первый показатель пропорционален площади, занимаемой транзистором или вентилем, а второй - линейным размерам контактных площадок, обеспечивающих гальванические переходы от периферии кристалла к выводам матричных корпусов СБИС. В результате с ростом степени интеграции матричных СБИС практически всегда появляется дополнительный аппаратный ресурс, который и необходимо эффективно задействовать во время вычислений.

Поэтому в процессе реконструкции СБИС Н1841 ВФ1 прежде всего необходимо определить направления модификации структурно-функциональной схемы ее бит-процессоров, которая выбиралась исходя из эффективной реализации операций конвейерного умножения, составляющего основу подавляющего числа алгоритмов цифровой обработки сигналов и изображений реального времени. С этой целью рассмотрим алгоритм конвейерного умножения в качестве базовой пословной операции.

Пусть абсолютные значения сомножителей представлены n -разрядными двоичными числами в прямом коде Y = (y_{n}, y n-_{1},\ldots , y_{j},\ldots , y _{1})

и X = (x_n, x_{n-1}, ..., x_i, ..., x_1) и поступают они на входы умножителя последовательно и младшим разрядом вперед.

Тогда их произведение можно представить:

U_{2n} = \sum_j{\left ( x_i \bigcap\limits_i y_j \right )}*2^{j-1},\, i,j = \overline{1,n} ( 3.1)

где \bigcap - многоместная операция логического умножения.

Если с индексом j связать пространственную координату систолической матрицы, а с индексом i - целочисленное время Т, то отвечающий (3.1) алгоритм конвейерного умножения примет вид:

Шаг 1. Выделить и запомнить на n тактов в 1-й ячейке систолической матрицы содержимое 1-го бита множителя b_1(n):=y_1=const и переслать Y в следующую ячейку систолической матрицы.

Шаг 2. Выполнить последовательно в 1-й ячейке систолической матрицы n -местную операцию AND всех бит множимого с b_{1}(n): B_1:=b_1(n) \land x_i, i =\overline{1,n} и переслать X_n в следующую ячейку систолической матрицы.

Шаг 3. Повторить во 2-й ячейке систолической матрицы шаги 1, 2 для 2-го бита множителя b _{2}( n ):=y _{2}= const и переслать Y_n и X_n в следующую ячейку систолической матрицы.

Шаг 4. Сдвинуть во 2-й ячейке систолической матрицы частное произведение B_2, на один такт по отношению к В_1 и сформировать частную сумму S_{1}:=B_{1}+\tilde{B}_{2}, где \tilde{B}_{2} :=B_{2}*2^1.

Шаг 5. Повторить в 3-й ячейке систолической матрицы шаги 3 и 4, сформировав частную сумму S_{2}:= S_{1}+\tilde{B}_3, где \tilde{B}_{3} :=B_{3}*22, и т. д. до j = n.

В системе команд Н1841 ВФ1 (см. табл. 3.1) данному алгоритму соответствует структурная схема конвейерного умножителя рис. 3.8, в которой операционный канал обозначен пунктирными линиями с соответствующей операцией, канал транзита - сплошными линиями, а дополнительная задержка - звездочкой ( * ) в соответствующем канале. Цифрами обозначены такты поступления младшего разряда операнда на вход соответствующего бит-процессора, причем прохождение операнда через любой канал обходится не менее чем в 1 такт задержки. Циклическая константа, задающая разрядность ( n ) преобразуемых операндов, имеет вид С_{n}1 = 00...01, где младший бит - "1", а остальные (n-1) бит - "нули".

Если каждый столбец бит-матрицы рис. 3.8 разбить на верхнюю и нижнюю половины, то получим ячейки систолической матрицы с двумя горизонтально расположенными входами-выходами, которые взаимодействуют между собой одним вертикальным входом-выходом, что соответствует приведенному выше алгоритму умножения.

Структурная схема систолической матрицы конвейерного умножителя

Рис. 3.8. Структурная схема систолической матрицы конвейерного умножителя

Из приведенных данных следует:

  • бит-матрица Н1841 ВФ1 на макроуровне эмулирует линейную систолическую матрицу конвейерного умножителя, то есть работает в режиме "микро-МКМД" - "макро-ОКМД";
  • даже при реализации базовой пословной операции дорогой по площади ресурс внешних гальванических связей бит-процессоров Н1841 ВФ1 используется не более чем на 3/8 \approx 38\% ;
  • даже при реализации базовой пословной операции внутренний операционный и коммутационный ресурс бит-процессоров Н1841 ВФ1 используется в среднем на 50%, если иметь в виду, что в канале АЛУ можно выполнить 18 элементарных арифметико-логических операций, совмещенных по времени и аппаратуре с пересылкой результатов (см. раздел 3.1).

Разобьем систолическую матрицу рис. 3.8 на две части: верхнюю и нижнюю. Тогда для объединения возможностей двух бит-процессоров Н1841 ВФ1 в одном бит-процессоре новой версии необходимо реализовать:

  • однонаправленный двумерный поток операндов;
  • операционное устройство на 3 операнда, что соответствует типовым требованиям двумерных систолических структур рис. 3.9 [289].
Типовые структуры двумерных систолических матриц

Рис. 3.9. Типовые структуры двумерных систолических матриц

Для перехода от двунаправленных ортогональных связей рис. 3.9-а к однонаправленным двумерным связям рис. 3.9-б достаточно в каждом бит-процессоре реализовать двунаправленные перепрограммируемые порты ввода-вывода рис. 3.10 и два независимых канала транзита с задержкой на 1 и 2 такта. Двунаправленные порты ввода-вывода увеличивают коэффициент использования двунаправленных ортогональных связей в конвейерном умножителе рис. 3.8 до 5/8 \approx 60\%, а в типовых систолических структурах рис. 3.9 до 6/8 \approx 75\%.

Двунаправленные порты ввода-вывода бит-процессора

Рис. 3.10. Двунаправленные порты ввода-вывода бит-процессора

Для кодирования всех типов внешних "систолических" связей рис. 3.3 требуется 2 бита в слове инструкции и признак типа связи ( R ).

Структура связей в бит-матрице с учетом переименований входов-выходов

Рис. 3.11. Структура связей в бит-матрице с учетом переименований входов-выходов

Удовлетворяющая функциональным требованиям рис. 3.9 схема АЛУ на 3 входа включает (рис. 3.12) два мультиплексора с двумя управляющими входами, которые используются как универсальные логические модули по отношению к двум переменным (x_{i}, x_{j}) (УЛМ). Первый из этих УЛМ реализует все 16 логических функций 2-х переменных F_{1}(x_{1}, x_{2}), а второй в дополнение к ним реализует еще и конечно-автоматные функции F_{2}(F_{1}, x_{3}) типа "арифметическая сумма" и "запоминание единицей", первая из которых используется как единственная арифметическая, а вторая - как единственная оперативно управляющая потоком данных операция.

Независимое управление УЛМ2 рис. 3.12 с двумя информационными входами требует 8-битного кода операции (КОП), что увеличивает разрядность регистра инструкции на 50 %, который является наиболее аппаратно емким блоком бит-процессора (см. табл. 3.3).

Схема АЛУ на 3 входа

Рис. 3.12. Схема АЛУ на 3 входа

Для сохранения преемственности "снизу-вверх" с Н1841 ВФ1 достаточно реализовать четыре функции трех переменных табл. 3.5. Эти функции, с одной стороны, ориентированы на ассоциативную обработку потоков данных, активно использующую такие пословные операции предварительного "маскирования", как "логическое умножение", "равнозначность", "неравнозначность" [46]. С другой стороны, они обеспечивают настройку на все функции 1-й и 2-х переменных Н1841 ВФ1 за счет "фиксации в ноль" ( \equiv
0 ) одной или двух из трех входных переменных, что в КМОП-технологии реализуется настройкой входных коммутаторов на незадействованные входы бит-процессора.

Таблица 3.5. Система команд программируемого бит-процессора (версия 1)
№ п/п Количество операндов ( n=3 ) КОП Условие (1) Условие (2) Количество операндов ( n=2 ) № п/п
1 (x_1\oplus x_2) + x_3 00 - x_3\equiv 0 x_1\oplus x_2 1
x_1\lor x_2 \equiv 0 x_i + x_3 2
2 Расширенный транзит 00 A_1\equiv 11 x_1\lor x_2 \equiv 0 -
3 St1((x_1\oplus x_2),x_3) 01 - (x_1\oplus x_2) \equiv 0 St1(x_i,x_3) 3
2 Расширенный транзит 01 x_3\equiv 0 НОП 4
4 (x_1\land x_2) + x_3 10 - x_3\equiv 0 x_1 \land x_2 5
x_1\lor x_2 \equiv 0 x_i + x_3
2 Расширенный транзит 10 A_1\equiv 11 -
5 (\overline{x}_1\oplus
\overline{x}_2)\lor x_3 11 - x_3\equiv 0 \overline{x_1 \oplus x_2} 6
x_1\lor x_2 \equiv 0 x_i \lor x_3 7
x_1\lor x_2 \equiv 0 \overline{x}_i \lor x_3 8
x_3\equiv 0\\
x_1\lor x_2 \equiv 0
\overline{x}_i 9
11 A_1\equiv 11 CG
10

В таком бит-процессоре используется интегрированная двухступенчатая схема управления АЛУ: с раздельными информационными и управляющими входами при задании функций трех переменных и со смешанными ( ассоциирующими ) информационными и управляющими входами при выделении функций одной или двух переменных из функций трех переменных, где задействованы ресурсы управления системой внешней коммутации бит-процессора. Благодаря этому на хранение кода операции (КОП) бит-процессора можно затратить 2 бита регистра инструкции, а для функциональной подстройки на функции двух переменных использовать коммутационное поле этой же бит-инструкции.

Все функции двух переменных симметричны по отношению к переименованию переменных F_{{\alpha}}(x_{2}, x_{1}) = F_{{\alpha}}(x_{1}, x_{2}) (кроме функции "запоминание единицей" - см. табл. 5.8 курса "Задачи и модели вычислительных наноструктур"]). Поэтому для входной коммутации операционного канала на три переменные достаточно использовать взаимозависимое управление с помощью схемы выбора "два из четырех" (C^{2}_{n} ) и схемы полного коммутатора "четыре в один", первая из которых выделяет две "симметричные" переменные из четырех возможных (рис. 3.13).

Схема входной коммутации канала АЛУ

Рис. 3.13. Схема входной коммутации канала АЛУ

Благодаря этому на входную коммутацию операционного канала на три переменные можно затратить не три, а два 2-битных поля регистра инструкции ( A_{1} и A_{2} ), причем в поле A_{2} в режиме коммутации используется кодовая комбинация "3" (табл. 3.6).

Таблица 3.6. Правила входной коммутации канала АЛУ
x_l x_{2} x_3 A_1 A_{2} x_l x_{2} x_3 A_1 A_{2}
a_1 а_2 а_4 00 11 а_1 а_3 а_2 00 01
а_3 а_1 а_4 01 11 а_4 а_1 а_2 01 01
а_2 а_3 а_4 10 11 а_3 а_4 а_2 10 01
а_1 а_2 а_3 00 10 а_2 а_3 а_1 00 00
а_4 а_1 а_3 01 10 а_4 а_2 а_1 01 00
a_{2} а_4 а_3 10 10 а_3 а_4 а_1 10 00
Евгений Акимов
Евгений Акимов

Добрый день!

 

Скажите, пожалуйста,планируется ли продолжение курсов по нанотехнологиям?

Спасибо,

Евгений