2. Классификация систолических структур
Анализ различных типов систолических структур и тенденций их развития позволяет классифицировать эти структуры по нескольким признакам.
По степени гибкости систолические структуры могут быть сгруппированы на:
специализированные;
алгоритмически ориентированные;
программируемые.
Специализированные структуры ориентированы на выполнение определен-ного алгоритма. Эта ориентация отражается не только в конкретной геометрии сис-толической структуры, статичности связей между ПЭ и числе ПЭ, но и в выборе типа операции, выполняемой всеми ПЭ. Примерами являются структуры, ориенти-рованные на рекурсивную фильтрацию, быстрое преобразование Фурье для за-данного количества точек, конкретные матричные преобразования.
Алгоритмически ориентированные структуры обладают возможностью про-граммирования либо конфигурации связей в систолической матрице, либо самих ПЭ. Возможность программирования позволяет выполнять на таких структурах некоторое множество алгоритмов, сводимых к однотипным операциям над век-торами, матрицами и другими числовыми множествами.
В программируемых систолических структурах имеется возможность про-граммирования как самих ПЭ, так и конфигурации связей между ними. При этом ПЭ могут обладать локальной памятью программ, и хотя все они имеют одну и ту же организацию, в один и тот же момент времени допускается выполнение различных операций из некоторого набора. Команды или управляющие слова, хранящиеся в памяти программ таких ПЭ, могут изменять и направление пере- дачи операндов.
По разрядности процессорных элементов систолические структуры делятся на:
одноразрядные;
многоразрядные.
В одноразрядных матрицах ПЭ в каждый момент времени выполняет опе-рацию над одним двоичным разрядом; а в многоразрядных – над словами фик-сированной длины.
По характеру локально-пространственных связей систолические структуры бывают:
одномерные;
двумерные;
трехмерные.
Выбор структуры зависит от вида обрабатываемой информации. Одномер- ные схемы применяются при обработке векторов, двумерные – матриц, трехмер- ные – множеств иного типа.
3. Топология систолических структур
В настоящее время разработаны систолические матрицы с различной геометрией связей: линейные, квадратные, гексагональные, трехмерные и др. Перечисленные конфигурации систолических матриц приведены на рис. 9.4.

Рис. 9.4. Конфигурация систолических матриц: а – линейная; б – прямоугольная; в – гексагональная; г – трехмерная
Каждая конфигурация матрицы наиболее приспособлена для выполнения определенных функций: линейная матрица оптимальна для реализации фильтров в реальном масштабе времени; гексагональная – для выполнения операций об-ращения матриц, а также действий над матрицами специального вида (Теплица-Генкеля); трехмерная – для нахождения решений нелинейных дифференциаль- ных уравнений в частных производных или для обработки сигналов антенной решетки. Наиболее универсальными и распространенными являются матрицы с линейной структурой.
Для решения сложных задач конфигурация систолической структуры мо- жет представлять собой набор отдельных матриц, сложную сеть взаимосвязанных матриц либо обрабатывающую поверхность. Под обрабатывающей поверхностью понимается бесконечная прямоугольная сетка ПЭ, где каждый ПЭ соединяется со своими четырьмя соседями (или большим числом ПЭ). Одним из наиболее под-ходящих элементов для реализации обрабатывающей поверхности является мат-рица простых ПЭ или транспьютеров.
Матрицы ПЭ обычно реализуются на основе сверхбольших интегральных схем. Возникающие при этом ограничения привели к тому, что наиболее распро-страненными стали матрицы с одним, двумя и тремя трактами данных и с оди-наковым либо противоположным направлением передачи, обозначаемые как ULA, BLA и TLA соответственно.
ULA (Unidirectional Linear Array) – это однонаправленный линейный про- цессорный массив, где потоки данных перемещаются в одном направлении. ПЭ в массиве могут быть связаны одним, двумя или тремя трактами.
П
ри
реализации алгоритма векторного
произведения матриц один из пото- ков
данных перемещается вправо, в то время
как второй резидентно расположен в
массиве (рис. 9.5). Используемый ПЭ
представляет собой модифицированный
IPS-элемент, поскольку имеется только
один тракт данных, а элементы второго
потока хранятся в ПЭ массива.
Рис. 9.5. Поток данных при векторном перемножении матриц в ULA (n = 4)
BLA (Bidirectional Linear Array) – это двунаправленный линейный процес- сорный массив, в котором два потока данных движутся навстречу друг другу. BLA, где один из потоков является выходным, называется регулярным.
Р
еализация
алгоритма векторного произведения
матриц с применениемBLA
показана на рис. 9.6. В версии ULA процессоры
используются более эффектив- но,
поскольку в них элементы потока следуют
в каждом такте, а не через такт, как
в BLA.
Рис. 9.6. Поток данных при векторном перемножении матриц в BLA (n = 4)
TLA (Three-path communication Linear Array) – линейный процессорный мас-сив с тремя коммуникационными трактами, в котором по разным направлениям перемещаются три потока данных. На рис. 9.7 показан пример фильтра ARMA, предложенного Кунгом и построенного по схеме TLA.

Рис. 9.7. Поток данных в TLA фильтра ARMA (n = 3)
Возможны несколько вариантов такого фильтра в зависимости от числа вы-ходных потоков данных и от значений, хранящихся в памяти (в примере фигури-рует один выходной поток). Процессорные элементы выполняют две операции IPS и называются сдвоенными IPS-элементами. Две версии таких ПЭ представлены на рис. 9.8. ПЭ могут использовать как хранимые в памяти значения (рис. 9.8, а, б), так и внешние данные (рис. 9.8, в, г).

Рис. 9.8. Сдвоенные IPS-элементы: а-б – с хранимыми в памяти двумя значениями; в-г – с внешними данными
TLA часто называют сдвоенным конвейером, поскольку он может быть раз-делен на два линейных конвейера типа BLA. Соответственно, TLA можно полу- чить объединением двух BLA с одним общим потоком данных.
Представленные реализации алгоритма векторного произведения матриц вы-полняют эту операцию за одно и то же время, но в случае ULA в вычислениях участвуют вдвое меньше процессорных элементов. С другой стороны, ULA ис-пользует хранимые в памяти данные, на чтение и запись которых нужно какое-то время. В свою очередь, в схеме BLA требуется дополнительное время на опера- ции ввода/вывода.
