Понятие векторного процессора
Типичное приложение для быстрой переработки больших объемов цифровых данных содержит множество повторяющихся операций вида:
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;
