logo search
Архитектура ВС (Карцева А

Пример вычислений с помощью систолического процессора

Организацию вычислительного процесса в систолических массивах различной конфигурации с использованием ПЭ, функциональная схема которого показана на рис. 29.19, удобнее всего пояснить на примере умножения матрицы на вектор Х={х12,...,хn}.

Рис.29.19. Функциональная схема процессорного элемента систолической матрицы

Элементы вектора произведения Y = {у12,..., уn} могут быть получены перио­дически повторяющимися операциями

где kномер шага вычислений.

Пусть имеется матрица А размером пхп с шириной полосы ненулевых элемен­тов р + q- 1= 4. Схема умножения вектора на матрицу в этом случае представле­на на рис. 29. 20.

Рис.29.20. Схема умножения вектора на матрицу

Определенная выше последовательность операций для вычисления компонен­тов вектора Y может быть получена за счет конвейерного прохождения хi и yi, через р + q - 1 последовательно соединенных ПЭ (рис. 29.21)

Рис.29.21. Организация вычисления в линейной систолической структуре

Компоненты yi(i = 1,..., п) вектора Y, имеющие в начальный момент нулевое значение, поступают на вход массива и продвигаются через ПЭ справа налево, в то время как компоненты вектора X движутся слева направо. Элементы матрицы в порядке, указанном на рисунке, вводятся в ПЭ сверху вниз. Промежуточные ре­зультаты уi(k) накапливаются по мере продвижения от одного ПЭ к другому.

В табл. 29.1 показаны первые 6 шагов алгоритма умножения для рассматривае­мой структуры.

Таблица 29.1. Последовательность умножения матрицы на вектор в систолической ВС

Шаг

Состояние

Комментарий

ПЭ1

ПЭ2

ПЭ3

ПЭ4

0

y1

Элемент y1 поступил в ПЭ4

поступил в ПЭ4

1

x1

y1

Элемент x1 поступил в ПЭ1, элемент yi движется влево

2

y1

a11

x1

y2

Элемент а11 поступил в ПЭ2,

у1= у1+ а11*х1, то есть у111+х1

3

y1

a12

x2

y2

a21

x1

Элемент а12 поступил в ПЭ1, а21 — в ПЭ3,

у1= а11* х112*х2, у221*х1

4

y2

a22

x2

y3

a31

x1

Элемент у1 вышел из ПЭ1,

у1= а21* х122*х2, у331*х1

5

y2

a23

x3

y3

a32

x2

у2= а21* х122*х2 23*х3

у331*х132*х2

6

y3

a33

x3

y4

a42

x2

Элемент у2 вышел из ПЭ1,

у4 = а42 * х2,

уз = а31*х1 + а32*х2 33*х3

Заметим, что при такой организации вычислительного процесса для каждого ПЭ такты выполнения операции чередуются с тактами простоя. Таким образом, в каждый момент времени активны только процессорных элементов, сле­довательно, каждый выходной результат формируется за два такта. Для вычисле­ния всех п элементов выходного вектора Y необходимо 2п + р + q - 1 тактов.