Понятие векторного процессора

 

Типичное приложение для быстрой переработки больших объемов цифровых данных содержит множество повторяющихся операций вида:

for (i = 0; i < n; i++) a[i] = b[i] + c[i], где a, b и с – это векторы (массивы чисел), обычно с плавающей точкой.

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

Вышеприведенный фрагмент кода для векторного процессора условно можно записать так:

V_LOAD V_R1, a; V_LOAD V_R2, b; V_ADD V_R1, V_R2, V_R3

Векторный процессор может быть реализован в двух вариантах: как дополнительный блок к универсальной ВС или как основа самостоятельной ВС.

Архитектура средств векторной обработки представлена тремя группами:

1) конвейерное АЛУ (рис. а);

2) массив АЛУ (рис. б);

3) массив процессорных элементов.


 

Последний вариант представляет собой многопроцессорную систему, известную как матричная ВС, ее не относят к классу векторных процессоров.

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

1) сравнение порядков;

2) сдвиг мантиссы меньшего из чисел;

3) сложение мантисс;

Каждый этап реализуется с помощью отдельной ступени конвейерного АЛУ. Очередной элемент вектора подается на вход конвейера, как только освобождается первая ступень:


Если используется массив конвейерных АЛУ, то такая ВС называется векторно-конвейерной.

Структура векторного процессора:

 

 


Регистр длины вектора содержит количество элементов обрабатываемого вектора. (Этот регистр определяет, сколько элементов фактически содержит обрабатываемый в данный момент вектор, то есть сколько индивидуальных операций с элементами нужно сделать).

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

Регистр маски содержит маску для «сокрытия» элементов вектора, не участвующих в данный момент в операциях.

Векторные регистры представляют собой набор скалярных регистров, объединенных в очередь типа FIFO, способную хранить 50-100 чисел с плавающей запятой.

 

 

Обработка всех n компонентов векторов-операндов задается одной векторной командой. АЛУ процессора может быть реализовано в виде единого конвейерного устройства, способного выполнять все предусмотренные операции. Более распространенный вариант – АЛУ состоит из отдельных блоков (например: сложения, умножения, вычисления обратной величины и т.д.). Каждый такой блок также конвейеризирован.

В состав векторной ВС обычно включают и скалярный процессор, что позволяет параллельно выполнять векторные и скалярные команды.

При объединении нескольких векторно-конвейерных процессоров получают параллельно-векторный процессор (PVP).

Несколько таких процессоров (1-16) работают одновременно с общей памятью (аналогично SMP) в рамках многопроцессорных конфигураций. Несколько узлов могут быть объединены с помощью коммутатора (аналогично MPP). Системы PVP-архитектуры могут являться машинами общего назначения (general purpose systems). Однако, поскольку векторные процессоры весьма дорого стоят, эти машины не могут быть общедоступными.

Примеры векторных ВС: первый векторно-конвейерный – Cray-1 (1976), CRAY EL, J90, T90, SV, Х; серия NEC SX 4-9 (10-планировалось на 13-14 гг.), серия Fujitsu VPP.

 

 








Дата добавления: 2016-01-29; просмотров: 1885;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2026 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.005 сек.