Систолические архитектуры.

Систолическая архитектура вычислительного устройства является решением, агрессивно эксплуатирующим параллелизм "конвейерного" типа. Несмотря на принципиальную дороговизну решения (применение специализированных аппаратных решений), систолы являются одним из самых эффективных методов решения специализированных задач, так как часто обеспечивают на конкретной задаче быстродействие, недостижимое для большинства микропроцессорных архитектур. Значительное удешевление программируемых логических матриц сводит на нет экономическую составляющую вопроса применения и пробуждает интерес исследователей к применению систол в сложных вычислительных задачах.

Систолические системы являются очень специализированными вычислителями и производятся в основном под конкретную задачу. Фактически, задача построения систолического вычислителя сводится к постороению аппаратного конвейера, имеющего достаточно большое время получения результата (т.е. большое количество ступеней) но при этом сравнительно маленькое время между последовательной выдачей результатов, так как значительное количество промежуточных значений обрабатывается на разных ступенях конвейера.

Если провести параллель в физиологии, то систолы больше всего напоминают систему сосудов и сердце, которое постоянно посылает кровь во все артерии, сосуды и капилляры тела.

Зачем использовать систолические структуры?

Что скрывается под термином "Систолическая архитектура"

Базовые принципы постороения систолических архитектур

  1. Систола представляет собой сеть связанных вычислительных ячеек, обычно простых;
  2. Каждая ячейка содержит в себе буферный входной регистр, защёлкивающий данные и вычислитель, оперирующий с содержимым этого регистра. Выход вычислителя может подаваться на входы других ячеек;
  3. Операции в систоле производятся по типу конвейерной обработки;
  4. Вычисления в систоле регулируются с помощью общего тактового сигнала;
  5. Результатом правильного построения систолы должна быть простая, регулярная разводка с простой топологией связей;
  6. Современные систолические решения основаны на парадигмах ОКМД/МКМД, являются репрограмируемыми и реконфигурируемыми.

Приведём схему типичной систолы:

Рис. 1. Систола, дающая на выходе скалярное произведение массивов чисел.

Структура систолы имеет ряд недостатков:

Общая тактовая частота должна быть такой, чтобы за время одного такта успевали полностью отработать все вычислители, на данном рисунке умножитель явно отрабатывает за в несколько раз большее время, чем сумматор. На выходе сумматора изменение суммы из-за очередной поданной пары значений производится через 2 такта. При конвейеризации устройства умножителя, обычно представляя его как сумматоры, длина конвейера удлиняется (до 9-33 тактов), но частота следования тактового сигнала может быть повышена на порядок. Съём результата производится с выходов сумматора, естественно предусматривается сигнал для его обнуления перед загрузкой очередных массивов данных.

Рассмотрим крайне показательный пример систолы: умножение матриц.

Для примера рассмотрим умножение матриц 3 на 3:

Рис. 2. Умножение матриц 3 на 3.

Обычно сквозная система связей не реализуется, поэтому результаты снимаются с выходов ячеек-умножителей с верхнего левого угла до нижнего правого угла (одновременно получаемые результаты показаны толстыми наклонными линиями, соединяющими ячейки).

Некоторые замечания по разработке систол

Процесс разработки ситолической структуры выглядит примерно так:

  1. Разрабытывается алгоритм;
  2. проектируется архитектура - поиск параллелизма (особенно конвейерного в алгоритме);
  3. производится проекция алгоритмы на цифровые вычислительные схемы по следующему принципу:
  4. Отладка и доказательство правильности фнуционирования схемы.

Дальнейшее изучение систолических архитектур рекомендовано с помощью специализированной литературы, например Фрумкин "Систолические вычисления".