Скачиваний:
21
Добавлен:
03.06.2014
Размер:
2.62 Mб
Скачать

Векторные процессоры и Cray-2

Выполнил ст. гр. 9307 Джабаров Р.Р.

Векторный процессор

2

Векторный процессор — это процессор, в котором операндами некоторых команд могут выступать упорядоченные массивы данных — векторы. Отличается от скалярных процессоров, которые могут работать только с одним операндом в единицу времени.

Иллюстрация скалярной обработки

3

Простой пример попарного сложения двух наборов по 10 чисел. При "обычном" программировании используется цикл, который берёт пары чисел последовательно, и складывает их:

Повторить цикл 10 раз

прочитать следующую инструкцию и декодировать

получить первое слагаемое

получить второе слагаемое

сложить

сохранить результат

конец цикла

Иллюстрация векторной обработки

4

прочитать следующую инструкцию и декодировать

получить 10 первых слагаемых

получить 10 вторых слагаемых

сложить

сохранить результат

Таким образом, математические операции выполняются гораздо быстрее, основным ограничивающим фактором становится время, необходимое для извлечения данных из памяти.

Размещение в памяти матрицы 4x4

5

• Размещение в памяти по строкам

 

k

k+1

k+2

k+3 k+4 k+5

k+6

k+7

k+8

 

k+9 k+10k+11 k+12 k+13 k+14 k+15

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

а11

а12

а13

а14

а21

а22

 

а23

 

а24

а21

 

а22

а23

а24

а31

а32

а33

а34

 

Перемещение по строке

 

 

 

 

 

Перемещение по столбцам

(шаг по индексу =1)

 

 

 

 

 

(шаг по индексу =4)

• Размещение в памяти по столбцам

k k+1 k+2 k+3 k+4 k+5 k+6 k+7 k+8 k+9 k+10k+11 k+12 k+13 k+14 k+15

а11

а21

а31

а41

а12

а22

а32

а42

а13

а23

а33

а43

а14

а24

а34

а44

Перемещение по строке

 

 

Перемещение по столбцам

(шаг по индексу =4)

 

 

(шаг по индексу =1)

Векторный процессор (векторно-параллельная обработка)

6

Векторно-параллельный процессор. Используется n операционных блоков

Память

 

C=A+B

a0

+

 

a1

 

A=(a0, a1,…an-1)

 

 

an-1

 

B=(b0, b1, … bn-1)

+

Операнды – массивы

b

 

b01

 

данных

bn-1

 

Векторно-параллельные системы

 

+

– несколько Floating point EU.

c0

 

Векторно-конвейерные – один

c1

 

Floating point EU.

Cn-1

 

 

Векторный процессор (векторно- конвейерная обработка)

7

Используется один конвейерный блок для выполнения операций с плавающей запятой

Память

t

 

 

Память

t+1

 

 

 

Память

t+2

 

a0

 

 

a0

 

 

 

a0

 

 

 

 

 

 

 

 

 

 

a1

 

 

 

a1

 

 

 

 

a1

 

 

 

 

 

 

 

 

 

 

 

 

a2

 

 

an-1

+

a ,b

0

an-1

 

+

a1,b1

an-1

+

a3b3

b0

 

0

b0

 

 

a ,b

 

b0

 

a ,b

 

 

 

 

 

 

 

b

 

 

 

 

b

 

 

0

0

b

 

2 2

 

1

 

 

 

1

 

 

 

 

b12

 

a1,b1

bn-1

 

 

 

bn-1

 

 

 

 

bn-1

c0

 

 

 

 

 

 

 

 

 

 

 

 

 

c0

 

 

 

c0

 

 

 

 

c0

 

 

c1

 

 

 

c1

 

 

 

 

c1

 

 

Cn-1

 

 

 

Cn-1

 

 

 

 

Cn-1

 

 

Параллельная обработка несколькими

конвейерными устройствами

8

а41

b41

a42

b42

a43

b43

a44

b44

а31

b31

a32

b32

a33

b33

a34

b34

а21

b21

a22

b22

a23

b23

a24

b24

а11

b11

a12

b12

a13

b13

a14

 

b14

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

+

+

+

+

c0

c1

c2

c3

Это наиболее распространенные системы

Векторная обработка память-память

9

Элементы векторов поочередно вызываются из памяти и срaзу направляются на EU. Результаты, появляющиеся на выходе, сразу же заносятся в память.

Vector register

Base Increment

+

v0

v1

v3

 

v7

a0

 

a1

 

a2

 

 

 

 

 

 

 

 

 

 

 

a7

b0

 

b1

 

b2

 

 

 

 

 

 

 

 

 

 

 

b7

c0

c1

c2

c7

Address

Memory with interleaving

Векторная обработка регистр-регистр

10

Операнды снaчала загружаются из памяти в векторные регистры (v- registers). V-register – группа скалярных регистров, объединенных в очередь типа FIFO. Хранит 500 – 100 FP-чисел (часто 64).

Операция выполняется над векторами, находящимися в v-регистрах. Результат заносится в v-регистр.

Преимущества векторных процессоров типа “память-память” – возможность обработки длинных векторов.

Недостаток – интервал между инициализацией команды и появлением первого результата на выходе EU (время запуска).

Время работы T= s + N s – время запуска,

- константа, зависящая от команды (1/2, 1, 2) N – длина вектора

В современных системах доминирует обработка “регистр - регистр”.