- •29. Вычислительные системы класса simd
- •Векторные и векторно-конвейерные вычислительные системы
- •Понятие вектора и размещение данных в памяти
- •Понятие векторного процессора
- •Структура векторного процессора
- •Ускорение вычислений
- •Матричные вычислительные системы
- •Массив процессоров
- •Структура процессорного элемента
- •Подключение и отключение процессорных элементов
- •Сети взаимосвязей процессорных элементов
- •Ассоциативные вычислительные системы
- •Вычислительные системы с систолической структурой
- •Классификация систолических структур
- •Топология систолических структур
- •Пример вычислений с помощью систолического процессора
- •Вычислительные системы с командными словами сверхбольшой длины (vliw)
Пример вычислений с помощью систолического процессора
Организацию
вычислительного процесса в систолических
массивах различной конфигурации
с использованием ПЭ, функциональная
схема которого показана на
рис. 29.19, удобнее всего пояснить на
примере умножения матрицы
на
вектор
Х={х1,х2,...,хn}.

Рис.29.19. Функциональная схема процессорного элемента систолической матрицы
Элементы вектора произведения Y = {у1,у 2,..., у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, то есть у1=а11+х1 |
|
3 |
y1 a12 x2 |
|
y2 a21 x1 |
|
Элемент а12 поступил в ПЭ1, а21 — в ПЭ3, у1= а11* х1+а12*х2, у2=а21*х1 |
|
4 |
|
y2 a22 x2 |
|
y3 a31 x1 |
Элемент у1 вышел из ПЭ1, у1= а21* х1+а22*х2, у3=а31*х1 |
|
5 |
y2 a23 x3 |
|
y3 a32 x2 |
|
у2= а21* х1+а22*х2 +а23*х3 у3=а31*х1+а32*х2 |
|
6 |
|
y3 a33 x3 |
|
y4 a42 x2 |
Элемент у2 вышел из ПЭ1, у4 = а42 * х2, уз = а31*х1 + а32*х2 +а33*х3 |
Заметим,
что при такой организации вычислительного
процесса для каждого ПЭ
такты выполнения операции чередуются
с тактами простоя. Таким образом, в
каждый момент времени активны только
процессорных элементов, следовательно,
каждый выходной результат формируется
за два такта. Для вычисления
всех п
элементов
выходного вектора Y
необходимо 2п
+ р + q
- 1
тактов.
