В МКМД-бит-потоковых вычислительных технологиях переход с микропрограммного на ассемблерный уровень организации вычислений осуществляется методами и средствами "восходящего" микропрограммного конструирования, которому всегда предшествует фаза "нисходящей" декомпозиции поток-оператора пользователя в граф-поток реализующих его слов-инструкций (см. раздел 6.1 курса "Задачи и модели вычислительных наноструктур").
Главная специфика микропрограммного конструирования:
В частности, бит-потоковая инструкция $$ADD(t+1) $$ отличается от слов-потоковой $$ADD(t+2+n*s)$$ тем, что в ней циклически обнуляется старший (буферный) разряд каждого операнда-приемника (рис. 4.1 - в условных обозначениях табл. 4.1):
$$ADD(t+2+n*s) = AND[ADD(t+l), \overline{C^l_n(t + n*s) }],$$где:
(рис 4.1) Топологическая схема микропрограммы потоковой слов-инструкции ADDАлгоритмическим сдвигом будем считать целочисленное время задержки, определяемое граф-потоком, реализуемым на уровне слов- или поток-инструкции. Технологический сдвиг определяется топологией размещения бит-инструкций на бит-матрице, в нашем случае он минимален и составляет 2 такта задержки, расходуемых на прохождение потоков бит-данных через 2 последовательно соединенных бит-процессора.
Здесь и далее принят традиционный для конвейерной арифметики формат данных
Из (4.1) и рис. 4.1 видно, что в МКМД-бит-потоковых вычислительных технологиях:
| Ус ловное изображение | Комментарий |
|---|---|
![]() |
В канале АЛУ бит-процессора выполняется операция $$ADD$$ над операндами, поступающими на первом такте слева и снизу. Результирующий операнд выдается на 3 такте вправо. В канале транзита входной операнд поступает снизу на 1 такте и подается с задержкой на один такт вверх, а с задержкой на 3 такта - вниз |
![]() |
В канале АЛУ бит-процессора выполняется операция $$ADD$$ над операндами, поступающими на первом такте слева и снизу. Результирующий операнд выдается на 3 такте вправо. В канале транзита входной операнд поступает снизу на 1 такте и подается с задержкой на один такт вверх, а с задержкой на 3 такта - вниз |
![]() |
В канале АЛУ выполняется операция "запоминание единицей", в которой информационный операнд подается на 0 такте слева, а управляющий операнд - на 2 такте справа и, если он имеет вид циклической константы 00…01, то на выходе с дополнительной задержкой на 2 такта по отношению к управляющему входу запоминается содержимое ( $$n-3$$ )-го бита информационного операнда. Канал транзита не используется |
![]() |
В каналах АЛУ и транзита выполняется слияние потоков по "ИЛИ" по правилу: $$x(t+1)\lor x(t+2)\lor x(t+3)$$, где $$\lor$$ - операция "ИЛИ", а результирующий операнд поступает на правый выход бит-процессора с задержкой на 1, 2 и 3 такта |
![]() |
В канале АЛУ реализуется операция $$NOP$$, то есть он не используется, а в канале транзита входной операнд поступает слева и передается вправо с дополнительной задержкой на 2 такта, а вниз - с дополнительной задержкой на 1 такт |
На уровне слов-инструкций, как правило, используется смесь PD -или DD -ассоциативных конструкций бит-процессорного уровня, что обусловлено природой МКМД-бит-потоковой организации вычислений, где неделимой единицей инициализации и обработки являются не отдельные слов-инструкции и операнды, а соответственно пространственно фиксированные потоки бит-инструкций и преобразуемые ими пространственно-временные потоки бит-данных (см. системообразующее неравенство (6.1) раздела 6.5 курса "Задачи и модели вычислительных наноструктур").
Типичным представителем комплексного использования различных ассоциативных конструкций бит-процессорного уровня является потоковая слов-инструкция $$DCC(X^s_{n,c} (t+t_0), X^s_{n,d}(t))$$, циклически преобразующая потоковый операнд-источник $$X^s_{n,d}(t)$$, заданный в прямом коде ( DC ), в соответствующий ему потоковый операнд-приемник $$X^s_{n,c} (t+t_0)$$, заданный в дополнительном коде ( CC ).
Потоковая слов-инструкция DCC выполняет PD -ассоциативное преобразование:
$$X^s_{n,c}(t+t_0)= \begin{cases} DC(X^s_{n,d}(t)), \text{ если } z_{s}(t) = 0, \\ IC(X^s_{n,d}(t))+z_{s}(t), \text{ если } z_{s}(t) = 1. \end{cases}$$но над "непрерывным" потоком бит-данных, и делает это циклически по $$s$$ с фиксированной задержкой $$t _{0} > n$$. Здесь $$z^{s}$$ - знаковый разряд $$s$$ -го опе-ранда потока, причем целочисленный индекс $$s\in(1,+\infty)$$.
Реализующие эту слов-инструкцию циклические по $$s$$ МКМД-бит-потоковые процедуры имеют вид:
Шаг 1.1. Выделить и запомнить на $$n$$ тактов содержимое знакового разряда $$z^{s}$$ операнда-источника:
$$Z^s_{n} [t_{1}+2 + n*(s +1)] := ST1[X^{s}_{n,d} (t_{l}+2 + n*s),C^{1}_n(t_{l}+n*(s +1))].$$Шаг 1.2. Инвертировать ( $$IC$$ ) циклическую константу $$C^1_n$$, с помощью которой пользователь (суб)процессора задает требуемую и, в общем случае, некратную 2 разрядность слов-операндов:
$$IC[C^1_n(t_0+1+n*(s+1)]:=\overline{C^1_n(t_0+n*s)}$$Шаг 2.1. "Обнулить" старший разряд $$n$$ -битного знакового вектора $$Z $$:
$$Z_{n-1}^s[t_2+2+n*(s+1)]:=Z_{n}^{s}[t_2+1+n*s)]\land\overline{C^1_n(t_2+n*s)}$$Шаг 2.2. "Обнулить" знаковый разряд операнда-источника:
$$X_{n,d}^{\sim s}[t_3+3+n*s)]:=X_{n,d}^{s}[t_3+2+n*s)]\land\overline{C^1_n(t_3+n*s)}$$Шаг 2 3. Восстановить прямой код циклической константы $$C^1_n$$:
$$DC[C^1_n(t_4+1+n*s)]:=IC[\overline{C^1_n(t_4+n*s)}]$$Шаг 3.1. Выполнить "условную инверсию" ( $$ICA$$ ) над модифицированным операндом-источником:
$$ICA[X_{n,d}^{s}(t_5+1+n*s))]:=X_{n,d}^{\sim s}[t_5+n*(s+1)]\oplus Z_{n-1}^{s}[t_5+n*(s+1)]$$Шаг 3.2. Восстановить содержимое знакового разряда операнда-источника:
$$z^s[t_6+1+n*(s+1)]:=Z_{n-1}^s[t_6+n(s+1)]\land C^1_n[t_6+n*(s+1)]$$Шаг 4.1. Сложить содержимое знакового разряда с "условной инверсией" операнда-источника:
$$CC^{\sim}[X^{s}_{n,c}(t_{7}+l + n(s + l))] := z^{s}[t_{7}+n*(s + l)] + ICA[X^{s}_{n,d}(t_{7}+n*(s + l))]$$Шаг 4.2. Инвертировать содержимое знакового разряда операнда-источника:
$$IC[z^{s} (t_{8} +1 + n * (s +1))] := \overline{z^{s}[t_{8} + n * (s +1)]}.$$Шаг 5.1. "Обнулить" содержимое буферного разряда операнда-приемника:
$$CC[X^{s}_{n,c}(t_{9} + 2 + n * (s +1)] := CC^{\sim}[X^{s}_{n,c}(t_{9} +1 + n * (s + l))]\land\overline{z^{s}[t_{9} + n * (s +1)]}.$$Здесь $$t_i$$ - целочисленное время начала исполнения соответствующей МКМД-бит-потоковой процедуры.
С позиций перспективной нано- и супрамолекулярной вычислительной техники из приведенных данных следует:
Если эти DD -ассоциативные конструкции привести к PD -ассоциа-тивному виду (см. соотношение (8.12) раздела 8.4 курса "Задачи и модели вычислительных наноструктур"), то и отвечающие им вычислительные процедуры можно совместить во времени и пространстве с синтезом или регенерацией квантового "рабочего тела" нанометровых или супрамолекулярных вычислителей.
В идеале это предполагает поиск такой
Для иллюстрации сказанного на
рис. 4.2 (в условных обозначениях
табл. 4.1) приведены две топологические схемы потоковой слов-инструкции DCC для $$n = 16$$ бит. Из этого рисунка видно, что в схеме а расходуется 3x5 бит-процессоров c временем задержки 26 тактов, а в схеме б соответственно 4x4 бит-процессора и 25 тактов, из которых только 14 являются алгоритмическими, так как компенсируют объективную для последовательной арифметики задержку между "нулевым" и
В потоковой слов-инструкции DCC коэффициент использования структурно-функциональных возможностей заранее изготовленной бит-матрицы не превышает 50 % (см. рис. 4.2-а и табл. 4.2), причем ее коммутационные возможности использованы на 58 %, а операционные - на 38,3 %. Подобное соотношение между используемыми и предоставляе мыми в СБИС Н1841 ВФ1 структурно-функциональными возможностями достаточно типично для известных потоковых слов-инструкций.
(рис 4.2) Т опологические схемы микропрограммы потоковой слов-инструкции DCC| ij | операций | пересылок | ij | операций | пересылок | ij | операций | пересылок | ij | операций | пересылок | ij | операций | пересылок | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1,1 | 1 | 2 | 1,2 | 2 | 2 | 1,3 | 1 | 1 | 1,4 | 1 | 2 | 1,5 | 1 | 1 | |||
| 2,1 | 1 | 2 | 2,2 | 2 | 3 | 2,3 | 1 | 2 | 2,4 | 1 | 3 | 2,5 | 1 | 1 | |||
| 3,1 | 3 | 2 | 3,2 | 2 | 1 | 3,3 | 3 | 2 | 3,4 | 3 | 2 | 3,5 | 0 | 0 | |||
| всего | 5 | 6 | 6 | 6 | 5 | 5 | 5 | 7 | 2 | 2 | |||||||
| Итого | |||||||||||||||||
| Возможных | Использованных | Процент использования | |||||||||||||||
| операций | пересылок | операций | пересылок | операций | пересылок | ||||||||||||
| 4*15=60 | 3*15=45 | 23 | 26 | 38,3 | 58 | ||||||||||||
| Структурно-функциональных возможностей: (23+26)7(7* 15)=49/105 $$\approx$$ 46,7<50% | |||||||||||||||||
Из сравнения (4.2) и процедур "1.1"-"5.1" видно, что только 3 бит-процессора принимают непосредственное участие в преобразовании
"прямой код - дополнительный", и реализуют они процедуры "1.1", "3.1" и "4.1", из которых только первые две являются PD -ассоциативными. Отсюда можно заключить, что в МКМД-бит-потоковых вычислительных технологиях аппаратно-временные затраты на DD - и PD -ассоциативное управление потоками данных в темпе реального времени, а вместе с ними и всем вычислительным процессом превосходят не менее чем в 2-5 раз затраты на функционально значимые для пользователя преобразования, часть из которых также представима в ассоциативном виде.
Таким образом, в нанометровых и супрамолекулярных вычислителях переход к PD -ассоциативным конструкциям открывает качественно новые возможности в организации вычислительного процесса, где часть формально-логических преобразований можно заложить в процесс синтеза или регенерации квантового "рабочего тела".
Поэтому в таких условиях эффективность работы нанометровых и супрамолекулярных вычислителей придется оценивать энергетическими и временными затратами не только на собственно преобразования потоков данных, но и на деструкцию вычислителя-предка и на синтез вычислителя-потомка с учетом ограничений на обмен зарядами и/или энергией с "внешней" (буферной) средой. При этом деструкция вычислителя-предка и синтез вычислителя-потомка могут быть как планомерными (при переходе от одного поток-оператора пользователя к другому), так и вынужденными (при регенерации вычислителя-предка), и осуществляться они должны в темпе реального времени.
Высокая структурно-функциональная гибкость МКМД-бит-потоковых матриц, поддерживаемая микропрограммным уровнем доступа к каждому бит-процессору, позволяет перераспределять ее аппаратные ресурсы между арифметико-логическими, управляющими, интерфейсными, адресными и диагностическими устройствами проектируемых (суб) процессоров. Такой класс (суб)процессоров получил в литературе [11] название процессоров с программируемой архитектурой, основанных на принципе управления потоком данных.
Специфика МКМД-бит-потоковой организации вычислений сводит процесс проектирования таких (суб)процессоров к микропрограммному конструированию, в котором микропрограммный уровень доступа к вычислительным и коммутационным ресурсам каждого бит-процессора матрицы используется для закрепления за каждым из них единственной
бит-инструкции, которую каждый бит-процессор исполняет в течение всего времени активности $$j$$ -го поток-оператора: $$T^{j}_0 +T_{d}^{j} $$.
В результате структурно-функциональную схему проблемно- или алгоритмически ориентированного МКМД-бит-потокового (суб)процес-сора всегда можно сделать адекватной системе информационных связей, задаваемой граф-потоком алгоритма решения задачи пользователя.
При микропрограммном конструировании МКМД-бит-потоковых (суб)процессоров в качестве базовой обычно используется расширенная гарвардская архитектура (рис. 4.3) с независимыми шинами команд ( P -шина), данных ( D -шина) и адресов ( A -шины) и с RISC -подобной системой команд, в которой все основные и вспомогательные ассемблерные инструкции после вхождения (суб)процессора в конвейер выполня-
(рис 4.3) Базовая архитектура МКМД-бит-потокового (суб)процессораются с одним и тем же циклом $$\tau_{c} = n*\tau$$, где $$\tau$$ - цикл работы бит-матрицы, а $$n$$ - разрядность арифметики.
Как и в традиционных БЦВМ, в базовой архитектуре МКМД-бит-потокового (суб)процессора
рис. 4.3 используются многовходовые операционные устройства последовательного (конвейерного) типа и обслуживающие их многопортовые
P -шина (суб)процессора используется только при инициализации поток-оператора, а оперативная реконфигурация связей между операционными устройствами и оперативная модификация параметров потоков данных ( $$n$$ и/или $$N$$ ) осуществляется индивидуальным для каждого поток-оператора МКМД-бит-потоковым устройством управления через специально проложенные по бит-матрице каналы FIFO -типа, образующие специализированную
Процедуры инициализации проблемно- или алгоритмически ориентированных субпроцессоров представляют собой загрузку в МКМД-бит-матрицу соответствующих микропрограмм и параметров, задающих начальное состояние блоков управления и адресации потоков данных. Эти процедуры запускаются центральным процессором согласно циклограмме решения учебных или боевых задач, решаемых экипажем ЛА. Управление процессом инициализации осуществляется специальным отказоустойчивым контроллером, обеспечивающем обмен микропрограммами между отказоустойчивой флеш-памятью и МКМД-бит-матрицей. При отказе центрального процессора процедура инициализации запускается автоматически и обеспечивает загрузку микропрограмм, которые отвечают за жизненно важные функции управления, обеспечивающие живучесть ЛА и/или экипажа.
Обмен данными с центральными процессорами БВС МКМД-бит-потоковые (суб)процессоры осуществляют через параллельные порты и/или системные шины, удовлетворяющие по скорости требованиям реального времени.
В МКМД-бит-потоковых (суб)процессорах имеется специфическая FIFO-регистровая шлейф-шина, которая образуется за счет каналов транзита периферийных бит-процессоров на плате (рис. 4.4) и используется
для создания
(рис 4.4) Конструктивная схема FIFO-регистровой шлейф-шиныВысокопроизводительный отказоустойчивый узел БВС произвольной конфигурации образует неоднородный двухуровневый вычислительный комплекс (рис. 4.5) в составе центрального процессора традиционной RISC -архитектуры и МКМД-бит-потокового (суб)процессорного тракта. Именно этот тракт обеспечивает в реальном времени взаимодействие БВС с высокоскоростными источниками и приемниками сигналов типа фазированных антенных решеток сложной аэродинамической формы и дисплеями, обеспечивающими пилоту взаимодействие с внешней средой в режиме виртуальной реальности.
(рис 4.5) Структурная схема неоднородного двухуровневого комплекса (Б)ВСМКМД-бит-потоковые пред-, пост- и сопроцессоры могут осуществлять информационный обмен друг с другом как через системную шину и центральный процессор, так и через FIFO -регистровую шлейф-шину, причем основная нагрузка по потокам промежуточных данных ложится на последнюю, так как ее пропускная способность соответствует скорости работы всего (суб)процессорного тракта.
В современных задачах цифровой обработки сигналов и изображений темпа реального времени [70] доминируют векторно-матричные преобразования, операционное ядро которых образует скалярное произведение (свертка)
$$L(X^{s}_n,Y^s_n)=\sum\limits_{s=1}^{S_n}{X_n^s*Y_n^s}$$двух векторов $$X_n^s$$ и $$Y_n^s$$ размерности $$S_m$$ и разрядности $$n$$. В результате упрощенная функциональная схема операционного устройства цифровых процессоров обработки сигналов принимает вид рис. 4.6, где все блоки реализованы аппаратно.
(рис 4.6) Упрощенная функциональная схема операционного устройства цифровых процессоров обработки сигналов В векторно-конвейерной арифметике умножение можно выполнить в прямом коде над абсолютными значениями входных векторов $$| U^{s}_{2(n-2)}| = |X_{n-2}^s|*| Y_{n-2}^s | $$ с последующим присвоением знака $$z_u = z_x \oplus z_y$$
результату $$U^{s}_{2n} $$, где все операнды имеют традиционный для МКМД-бит-потоковой организации вычислений формат
где $$x_i^s\in|X_{n-2}^s|$$, $$y_j^s\in|Y_{n-2}^s|$$ i,j = \overline{1,n-2} - содержимое бит ( $$n - 2$$ )-разрядных модулей множимого $$| X^{s}_{n-2}|$$ и множителя $$| Y^s_{n-2}|.$$
Отвечающая (4.3) схема МКМД-бит-потокового (по $$s = (1,\infty)$$ конвейерного умножителя (рис. 4.7) работает в соответствии с ассоциативным алгоритмом: для всех $$y^{s}_j\in |Y^{s}_{n-2}|:$$
$$u_{ij}^s(t_0+(s-1)+i+j) = \begin{cases} u_{i}^s(t_0+(s-1)+i+(j-1)) + x_{i}^s(t_0+(s-1)+i+j), \text{ если } y_{j} = 1, \\ u_{i}^s(t_0+(s-1)+i+(j-1)), \text{ если } y_{j} = 0. \end{cases}$$где $$u_{ij}^s(t_0+(s-1)+i+j) \in |U_{(n-2)+j}^s(t_0+(s-1)+i+j)|$$, а множитель $$2^{j-1}$$ реализуется пошаговым наращиванием временного сдвига на $$(j-1)$$ тактов по отношению к накапливаемой сумме частных произведений.
Здесь: $$U_{n-2}^s(t_0+s-1)= const(s) \equiv 0$$, а $$t_{0}$$ - целочисленное время начальной задержки поступления потоков $$| X^{s}_{n-2}|$$ и $$| Y^{s}_{n-2}|$$ на входы умножителя.
Отвечающая (4.4) топологическая схема DD -ассоциативного МКМД-бит-потокового умножителя приведена на рис. 4.7, и в ней:
(рис 4.7) Топологическая схема микропрограммы DD-ассоциативной слов-инструкции умножения (MLTDD)В этой схеме время начальной задержки равно ( $$n-2$$ ) цикла изменения индекса $$i$$, а аппаратные затраты на FIFO -
Однако скорость приращения индекса $$s$$ равна $$2n$$ циклам изменения индекса $$j$$.
Из приведенных алгоритмов и схем видно, что содержимое бит множителя определяет структуру "сдвигов-сложений", что является необходимой предпосылкой эффективного использования PD -ассоциативных конструкций при построении операционных устройств самого разнообразного функционального назначения.
В схеме конвейерного умножителя рис. 4.7:
Входящий в состав операционного устройства рис. 4.6 МКМД-бит-потоковый DD -ассоциативный сумматор-накопитель реализуется совместно с аккумулятором (рис. 4.8), и в нем:
(рис 4.8) Топологическая схема DD-ассоциативного сумматора-накопителя для умножения матриц 3*3 (n = 16 бит) (ADDA(DD))В отличие от обычных алгоритмов поэлементного формирования результирующей матрицы, в МКМД-бит-потоковых субпроцессорах цифровой обработки сигналов используются алгоритмы формирования по строкам или по столбцам, в которых регистр-аккумулятор имеет размерность $$m*3$$, где $$m$$ - соответственно размер результирующей матрицы по числу строк или столбцов. В этом случае поточный алгоритм построчного формирования матрицы $$C = А*В$$ имеет вид:
$$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}>$$В МКМД-бит-потоковых сопроцессорах цифровой обработки сигналов алгоритм (4.5) реализуется следующим образом:
Одно из главных преимуществ МКМД-бит-потоковых вычислительных технологий - это возможность варьировать разрядностью, а значит, и точностью непосредственно во время вычислений. Достигается это за счет высокой скорости генерацией микропрограмм соответствующих операционных устройств, что обеспечивается очень простыми алгоритмами рекуррентного наращивания микропрограмм, зависящих в данном случае от параметров результирующих потоков данных $$n$$ и $$N $$.
Действительно, при увеличении разрядности множимого в умножителе (см. рис. 4.7) необходимо соответственно изменить только вид циклической константы $$C_{2n}1$$, а при увеличении разрядности множителя умножитель необходимо нарастить соответствующим числом столбцов, которые называются термами. Такой термальный синтез применим и к сумматору-накопителю, в котором варьируемым является только размер аккумулятора, а схемы суммирования и управления периодом накопления остаются неизменными (см. рис. 4.8). В этом случае достаточно использовать ограниченное число термов расширения разрядности аккумулятора и, в частности, терм рис. 4.8-б, если шаг наращивания составляет 18 бит. Этот терм пристраивается справа как столбец бит-матрицы рис. 4.8. Его также можно использовать и при увеличении разрядности данных в слов-инструкции DCC рис. 4.2, которая используется в схеме рис. 4.6 при сопряжении умножителя, работающего в прямом коде, с сумматором-накопителем, работающем в дополнительном коде.
Неравенство (6.1) курса "Задачи и модели вычислительных наноструктур", задающее условия эффективного использования МКМД-бит-потоковых субпроцессоров $$T_{\beta}^{p} + T_{\beta}^{c} \prec\prec T_{\beta}^{d}$$, обеспечиваются на этапе их синтеза (формирования потока (бит)инструкций) за счет высокой структурно-функциональной и (микро)программной гибкости и с учетом системотехнических возможностей используемой аппаратуры на этапах распределения (загрузки в бит-матрицу) и оперативного управления потоками инструкций в процессе вычислений.
Это неравенство говорит о том, что главная цель проекта - это поддержание темпа реального времени (РВ) за счет пренебрежимо малых (по сравнению с временем $$T_{\beta}^{d}$$ непрерывного (циклического) использования каждого $$\beta$$ -поток-оператора) системных временных издержек на одно-кратное программирование $$T_{\beta}^{p}$$ и вхождение в конвейер $$T_{\beta}^{c}$$ алгоритмически ориентированного МКМД-бит-потокового субпроцессора, что справедливо и для нейрокомпьютеров.
Чтобы удовлетворить (6.1) курса "Задачи и модели вычислительных наноструктур" в широком классе задач цифровой обработки сигналов и изображений в качестве основополагающего для МКМД-бит-потоковой организации вычислений принят базовый нейроподобный принцип: "одна (бит)инструкция - один (бит)процессор", который обеспечивается на всех уровнях управления, доступных разработчику или пользователю субпроцессора, и ряд соподчиненных методов (см. раздел 6.5 курса "Задачи и модели вычислительных наноструктур").
Реализация этих принципов и методов:
где $$n^{d}$$ - разрядность последовательной (конвейерной) арифметики, $$\tau$$ - цикл синхронной работы бит-матрицы, а $$T^{c}_{i(\beta)}\ge = n^{d} * \tau$$ - варьируемое по $$i(\beta) = \overline{1, L_{\beta}^{p}}$$ время задержки в одной слов-инструкции.
Вытекающие отсюда системотехнические особенности проектирования и работы МКМД-бит-потоковых субпроцессоров сводятся к следующему:
Из приведенных данных видно, что МКМД-бит-процессорная технология не нарушает базовых принципов и методов фон-неймановской организации вычислений с той разницей, что на разных стадиях проектирования и работы неделимой единицей проекта в ней считаются аппарат-но реализованные:
Поэтому такая технология практически не ограничивает традиционные алгоритмические, системотехнические и конструктивно-технологические методы и средства минимизации системных временных издержек в (6.1) курса "Задачи и модели вычислительных наноструктур".
Алгоритмические методы минимизации системных временных издержек используются на этапе выбора и декомпозиции алгоритмов для всего
родности поток-операторов пользователя, что позволяет по минимуму использовать перепрограммирование бит-матриц при переходе от одного поток-оператора к другому и по максимуму использовать реконфигурацию связей и ассоциативное взаимодействие потоков (возможно, и специально формируемых) данных с пространственно фиксированным потоком бит- и слов-инструкций.
Системотехнические методы минимизации системных временных издержек используются на этапе синтеза МКМД-бит-потоковых субпроцессоров и ориентированы на максимальное совмещение по времени вспомогательных и исполнительных фаз их работы.
Так, при $$T_{\beta+1}^{p} + T_{\beta+1}^{c} \le T_{\beta+1}^{d}$$ МКМД-бит-потоковые субпроцессоры можно выполнить по парафазной схеме (рис. 4.9), в которой фазы загрузки (микро)программы (сигнал $$УВП = 1$$ ) и вхождения в конвейер одной бит-матрицы совмещены по времени с фазой циклической обработки потоков данных в другой бит-матрице, то есть никогда не выполняется условие $$УВП(1) = УВП(2)$$. В результате абсолютные системные временные издержки всего вычислительного процесса определяются (в идеале) временем $$T_{1}^{p} + T_{1}^{c}$$ программирования и вхождения в конвейер при выполнении субпроцессором первого поток-оператора, а относительные временные издержки стремятся к нулю с ростом числа $$\beta$$ активизированных поток-операторов.
(рис 4.9) Структурная схема парафазного МКМД-бит-потокового субпроцессораПри $$T_{\beta+1}^{p} \le T_{\beta+1}^{c}$$ МКМД-бит-потоковые субпроцессоры можно выполнить по волновой схеме (рис. 4.10), в которой фаза загрузки (микро) программы в последующую бит-матрицу совмещена по времени с фазой вхождения в конвейер другой бит-матрицы. В этой схеме абсолютные системные временные издержки всего вычислительного процесса (в идеале) равны времени загрузки в бит-матрицу микропрограммы первого поток-оператора пользователя.
Конструктивно-технологические методы минимизации системных временных издержек используют возможности:
(рис 4.10) Структурная схема волнового МКМД-бит-потокового субпроцессораFIFO -регистровые шлейф-шины реализуются за счет коммутационных возможностей торцевых бит-процессоров, принадлежащих конструктивно разделенным бит-матрицам (см.
рис. 4.4), и позволяют создавать гиперцилиндрические, гиперкубические и т. п. вычислительные поверхности, обеспечивающие толерантное переразмещение активных поток-операторов субпроцессорного тракта тривиальными сдвигами рабочих микропрограмм по цилиндрическим поверхностям или узлам
С помощью сверхпараллельных шин инструкций, обеспечивающих в пределе прямой параллельный доступ к регистрам инструкций каждого бит-процессора, время программирования в (6.1) курса "Задачи и модели вычислительных наноструктур" можно свести к одному такту работы бит-матрицы, что, как и в нейрокомпьютерах, требует нетрадиционной организации ОЗУ инструкций, при которой "ширина" выборки может достичь размеров $$R*I*J > 16*10^{3}$$ бит, а "глубина" адресации определяется количеством $$\beta$$ -поток-операторов, закрепленных за конструктивно независимой бит-матрицей.
В современной вычислительной технике максимально параллельные шины инструкций и/или данных реализуются в оптоэлектронных ВС на основе произвольно коммутируемые оптоэлектронные вентильные матрицы (ПК ОЭВМ [228]), которые отличаются от МКМД-бит-процессорных матриц следующим: 1. Разработчику оптоэлектронного (суб)процессорного тракта доступен
наиболее низкий в схемотехнике вентильный уровень управления.
Согласно [214], оптимальная пространственно-временная система коммутации представляет собой иерархию подсистем:
С учетом этих особенностей в ПК ОЭВМ:
Такая схема управления соответствует технологии структурной реконфигурации оптоэлектронного поток-процессора, которая эффективна в случае, если голографическая память выполнена по технологии ППЗУ. Благодаря 3-уровневой декомпозиции удается управлять ПК ОЭВМ из 107 вентилей, на которой можно разместить в произвольном порядке и в соответствии с задаваемой разработчиком гистограммой различные по функциям бит- и слов-инструкции. При этом каждый уровень управления способен поддерживать библиотеки из 50-100 типов бит-, слов- и поток-инструкций [214]. Это разнообразие проблемно-ориентированного языка программирования покрывают потребности программистов в широком классе задач цифровой обработки сигналов и изображений.
При такой оптоэлектронной реализации из структурно-функциональной схемы бит-процессора рис. 3.2 исключаются:
В этом случае D -триггеры задержки нужны только в канале транзита и при необходимости реализации дополнительной задержки в канале АЛУ. В результате схема структурно адаптируемого через голографическую память оптоэлектронного бит-процессора принимает вид рис. 4.12, на которой все виртуальные блоки обозначены пунктирными линиями, так как их функции реализуются системными средствами оптической коммутации и голографической памятью.
(рис 4.12) Структурная схема оптоэлектронного бит-процессораКак видно из изложенного, управление оптоэлектронным бит-процессором осуществляется через голографическую память и методом сверхоперативной реконфигурации разветвленных оптических связей между вентилями, которая изменяется на каждом такте работы в соответствии с заданной бит-инструкцией. В частности, при выполнении бит-инструкции $$ADD$$ необходимо обеспечить взаимодействие вентилей по схеме рис. 4.13, где инвертора входных переменных x1 и x2 являются виртуальными и их функции реализует соответствующая ячейка гологра-фической памяти, которая одновременно выдает и саму переменную, и ее инверсию.
(рис 4.13) Логический блок АЛУ бит-процессора при выполнении бит-инструкции ADDВ оптоэлектронном исполнении (рис. 4.14) на реализацию такой схемы необходимо затратить всего 4 оптоэлектронных вентиля, оптические связи между которыми меняются на каждом такте работы или, что одно и то же, на каждом цикле обращения к голографической памяти (ср. с рис. 1.14 курса "Задачи и модели вычислительных наноструктур"). Структура связей между вентилями регламентируется индивидуальной для каждой бит-инструкции голограммой (см. рис. 4.11).
(рис 4.14) Оптоэлектронное исполнение логического блока АЛУ бит-процессора при выполнении бит-инструкции ADDИз схемы рис. 4.14 видно, что произвольно коммутируемая через голографическую память оптоэлектронная вентильная матрица на каждом такте работы используется неравномерно, а каждая бит-инструкция может быть выполнена за 4, возможно, и фемтосекундных тактов работы, то есть, проигрывая микроэлектронной бит-матрице по числу тактов, оптоэлек-тронная бит-матрица может несколько порядков выиграть во времени.
Триггер дополнительной задержки в канале АЛУ оптоэлектронного бит-процессора в основном играет системную функцию, делая стандартным 4-тактный цикл обращения к голографической памяти. Схема микроэлектронного двухполупериодного D -триггера рис. 4.15 в опто-электронном исполнении (рис. 4.16) требует всего двух вентилей, которые последовательно используются в течение четырех тактов работы, формируя соответствующее выходное состояние Q. При этом следует учесть, что в цепях прямой и обратной связи стоят ячейки голографической памяти, обеспечивающие задержку на 1 такт.
Оценку структурно-функциональных возможностей оптоэлектрон-ных бит-процессорных матриц и схем их управления через голографическую память можно получить, взяв за основу операцию конвейерного умножения рис. 4.7 32-битных операндов с 64-битным результатом,
(рис 4.15) Логическая схема двухполупериодного D-триггера
(рис 4.16) Логическая схема оптоэлектронного двухполупериодного D-триггеракоторые представлены в формате
Отсюда следует, что оптоэлектронные методы и средства структурной адаптации бит-процессоров позволяют в каждом бит-процессоре микропрограммы использовать те и только те структурно-функциональные возможности бит-процессоров, которые требуются в данной точке бит-матрицы. Это практически полностью исключает свойственную микроэлектронным бит-процессорам структурно-функциональную, а значит, и аппаратную избыточность, что позволяет снизить аппаратные затраты на оптоэлектронные субпроцессоры в десятки и сотни раз.
С позиций реального времени в оптоэлектронном конвейерном умножителе в 4 раза больше расходуется тактов по сравнению с микроэ-
лектронным умножителем: $$\Delta T_k =128 \tau_m$$, $$\tau_m$$ - такт работы оптоэлектронной бит-матрицы, который может быть на несколько порядков меньше, чем у микроэлектронной бит-матрицы.
Несмотря на все перечисленные преимущества, оптоэлектронные вычислительные технологии не получили пока широкого распространения, так как они в десятки и сотни раз проигрывают пока по потребляемой мощности, что приводит к разогреву оптических сред и к потере требуемых от них физико-технических свойств.
Из приведенных данных можно заключить:
Область задач, где МКМД-бит-потоковые вычислительные технологии гарантируют системотехнический выигрыш перед остальными вычислительными технологиями, задается тремя
Из перечисленных требований первое является доминирующим, так как при $$P^{C}(I) < P^{PH}(I)$$ обычно имеется достаточный аппаратно-временной резерв, чтобы удовлетворить два оставшихся требования с использованием хорошо отработанных традиционных методов и средств аппаратно-временной избыточности. Специфика работы (Б)ВС для боевых ЛА как раз и состоит в том, что подавляющее большинство решаемых задач выдвигает к оборудованию полный комплекс перечисленных выше
потоков инструкций и данных. Определить реальное количество операций, затрачиваемых на решение конкретной задачи даже при полностью известном алгоритме, удается только в отдельных простейших случаях.
Объясняется это тем, что в общем случае потоки инструкций и данных являются частично упорядоченными на оси времени, так как в вычислительных алгоритмах решаемых задач широко используются операторы условных переходов. Именно наличие в программах обработки операторов условных переходов делает взаимозависимыми процессы перечисления потоков инструкций и данных. Избавиться от такой взаимной зависимости практически невозможно, так как при написании алгоритмов и программ в подавляющем большинстве случаев известны только условия перехода или завершения цикла, зависящие от содержимого обрабатываемых потоков данных, но не момент наступления этого события. Отсюда видно, что объективно существующая в вычислительных алгоритмах PD -ассоциативная зависимость между потоками инструкций и данных, с одной стороны, упрощает задачу управления в темпе реального времени в (сверх)больших коллективах вычислителей, а с другой стороны, она не позволяет оценить точное количество инструкций, которые необходимо реально исполнить, чтобы на заданном интервале времени решить поставленную вычислительную задачу.
В МКМД-бит-потоковых вычислительных технологиях такая взаимозависимость между потоками инструкций и данных не устраняется, а только разрывается за счет того, что в ней аппаратно поддержаны только поток-операторы с линейным (инкрементным) порядком перечисления потока ассемблерных слов-инструкций с заранее известным количеством циклов их исполнения. Нелинейный и зависящий от содержимого обрабатываемых данных порядок перечисления реально исполняемых ассемблерных слов-инструкций реализуется на уровне задач, где неделимой единицей управления являются исполняемые поток-операторы и циклически преобразуемые ими потоки данных. В рамках активизированного поток-оператора порядок исполнения слов-инструкций строго задан, а количество циклов их исполнения задается по счетчику, а не по условию. При этом количество циклов исполнения самого поток-оператора считается бесконечным, а переход к другому поток-оператору может быть осуществлен по условию, проверяемому контроллером (суб)процессорного тракта после каждого цикла исполнения поток-оператора над выборкой из $$N$$ $$n$$ -битных данных (см. рис. 4.5), то есть с достаточно продолжительным периодом из $$N*n \gg 1$$ тактов.
В таких условиях оценка алгоритмических затрат дает минимальную нижнюю границу, отталкиваясь от которой, уже можно оценить реальные аппаратно-временные затраты, учитывающие и системные издержки на организацию вычислений. С этой целью в МКМД-бит-потоковых вычислительных технологиях необходимо:
Отличительная особенность МКМД-бит-потоковых технологий состоит в том, что они позволяют в таком итеративном процессе последовательного приближения предоставляемой производительности к требуемой достаточно быстро модифицировать не только архитектуру синтезируемого (суб)процессора, но и микропрограммные процедуры исполнения всех используемых слов-инструкций, состав и порядок реализации которых в остальных, в том числе и в RISC -технологиях, неизменен.
Таким образом, целевую функцию итеративного процесса проектирования МКМД-бит-потоковых субпроцессоров можно представить: $$P^{PH}(I) \to P^{C} ( I)$$, а интерактивные методы и средства достижения этой цели в качестве ограничений используют структурно-функциональные возможности бит-процессоров и схемотехнические характеристики комплектующих СБИС.
В качестве примера оценим потребную производительность при решении задачи медианной фильтрации [290] исходного изображения размером $$N*N$$ полутоновых черно-белых пикселей $$x_{ij}$$ "скользящим окном" $$М*М$$ (рис. 4.17 ). Медианный фильтр является частным случаем рангового фильтра и реализует преобразование подстановки центральному элементу "
фильтра выделяется маскирующая "точечная" (импульсная) помеха, когда за "точку" принимается любая пространственная композиция пикселей внутри "
(рис 4.17) Порядок присвоения значений при медианной фильтрации изображенийАлгоритмические затраты на вычисление каждого медианного значения $$\hat{x}_{rc}. = med\{ х^{rc}_{ij}\}$$ составляют $$E_{rc} = М^{2}*(М^{2}-1)/2$$, если вычисление упорядочение (сортировку) $$\{ х^{rc}_{ij}\}$$ проводить методом "пузырька". Отсюда, общие алгоритмические затраты на медианную фильтрацию изображения $$N*N$$ полутоновых черно-белых пикселей квадратично зависят от размеров обрабатываемого изображения $$(O(N^2))$$ и биквадратно - от размеров "
Именно биквадратная зависимость алгоритмических затрат вынуждает использовать векторно-конвейерную схему
Действительно, если темп поступления пикселей составляет $$F_{pc}$$ в секунду, то темп обработки должен составлять $$М^{2}*F_{pc} $$, так как вычисление медианы необходимо провести для каждого пикселя входного изображения, за исключением периферийных $$(N-M-1)$$ пикселей в каждой строке и в каждом столбце, для которых понятие медианы не определено (см.
рис. 4.17). Отсюда видно, что в системах реального времени коэффициент векторизации вычислительного алгоритма медианной фильтрации в принципе не может быть ниже площади "
(рис 4.18) Векторно-конвейерная схема ранговой фильтрации
(рис 4.19) Структурная схема звена рангового фильтраВ схеме медианного фильтра
рис. 4.18 коэффициент векторно-конвейерного
(рис 4.20) Структурная схема рангового фильтраДля значений яркости, укладывающихся в диапазон изменения 16-битных двоичных чисел, топологическая схема одного звена медианного фильтра (рис. 4.21) занимает бит-матрицу размером 6*7 бит-процессоров, и в ней:
(рис 4.21) Топологическая схема узла медианного фильтраВ итоге для реализации медианного фильтра требуется бит-матрица размером не менее $$42*Е_{rc} = 21*М^{2}*(М^{2}-1)$$ бит-процессоров с временем задержки во всем тракте обработки порядка $$T_{0} = 2n *М^{2}$$, так как в конвей-ерной арифметике признак результата сравнения $$B^S\in\{0,1\}$$ вырабатывается с задержкой более чем $$n$$ тактов.
Микропрограммный алгоритм процедуры сравнения двух операндов вытекает из традиционного правила:
$$B^s = \begin{cases} 1, \text{ если } x_i^s - x_j^s \ge 0, \\ 0, \text{ если } x_i^s - x_j^s \pi 0, \end{cases}$$которое в конвейерной арифметике реализуется следующим образом.
Шаг 1. Перевести операнд $$x_j^s$$ из прямого кода в дополнительный код с принудительной инверсией знака и сохранением "нуля" в буферном разряде: $$БП (3,2) - \overline{х}_j^s = x_j^s \oplus \overline{С}_{16}1$$ ; $$БП (3,3) - (-x^{s}_j) = x_j^s + С_{16}1$$,где $$C_{16}1$$ - 16-битная циклическая константа вида $$0000.0000.0000.0001$$, а $$\ovaerline{C}_{16}1$$ - ее инверсия, которая поступает на вход $$БП (3,2)$$ на 1 такт раньше $$x_j^s $$.
Шаг 2. Сложить операнды и запомнить на $$n$$ тактов знаковый разряд суммы: $$БП (4,3) - z^{s} = x^{s}_i +(x^s_j)$$ ; $$БП (4,4) - B^{s} = ST1(z^{s}, C _{16}1),$$ где циклическая константа $$C_{16}1$$ подается на второй, управляющий вход $$БП (4,4)$$ с опережением на 2 такта по отношению к $$z^{s}$$, которая поступает слева на первый, информационный вход этого БП (см. табл. 5.8 курса "Задачи и модели вычислительных наноструктур").
Блок коммутации реализует транспозицию входных операндов по правилу:
$$\max(x_i^s,x_j^s) = x^{s}_j\land B^{s}\lor x_i^s \land\overline{B}^{s};\,\,\,\, \min(x_i^s,x_j^s) = x^{s}_j\land \ovaerline{B}^{s}\lor x_i^s \land{B}^{s}.$$Таким образом:
Для получения официальных документов о завершении программы дополнительного профессионального образования (удостоверения о повышении квалификации, дипломов о профессиональной переподготовке и MBA) необходимо предоставить:
Внимание! Вы можете не заказывать доставку бумажной версии официального документы, а скачать его в электронном виде и распечатать самостоятельно. Информация о выданном документе в течение 1 месяца загружается в Федеральную информационную систему «Федеральный реестр сведений о документах об образовании и (или) о квалификации, документах об обучении» - ФИС ФРДО.
Доступ на новый сайт осуществляется с использованием адреса электронной почты, который был указан вами при регистрации на "старом". Мы постарались перенести все ваши данные с прежнего ресурса, однако не исключена вероятность потери части информации.
При возникновении проблемы со входом, воспользуйтесь функцией сброса пароля
Если вы обнаружите несоответствия, пожалуйста, сообщите нам.