logo search
Зимняя сессия 2014 / Вычислительные системы / Курс лекций по ар-реКомп

2.2. Вычислительные системы класса simd

SIMD-системы были первыми вычислительными системами, состоящими из большого числа процессоров, и среди первых систем, на которых была достигнута производи­тельность порядка GFLOPS (миллиард операций с плавающей запятой в секунду).

Как отмечалось ранее, к классу SIMD относятся вычислительные системы, где множество элементов данных подвергается параллельной, но однотипной обработке. В SIMD-системах имеется одно устройство управления, обеспечива­ющее последовательное выполнение команд программы. На ста­дии выполнения общая команда транслируется множеству процессоров (в простейшем случае — АЛУ), каждый из которых обрабатывает свои данные.

В настоящее время принято считать, что класс SIMD составляют векторные (векторно-конвейерные), матричные, систолические, вычислительные системы с командными словами сверхбольшой длины.

2.2.1. Векторные и векторно-конвейерные вычислительные системы.

Хотя производительность ВС общего назначения неуклонно возрастает, по-прежнему остаются задачи, требующие существенно большей вычислительной мощности. К таким, прежде всего, следует отнести задачи моделирования реальных процессов и объектов, для которых характерна обработка больших регулярных массивов чисел в форме с плавающей запятой. Указанные массивы представляются матрицами и векторами, а алгоритмы их обработки описываются в терминах матричных операций. Как известно, основные матричные операции сводятся к однотипным действиям над парами элементов исходных матриц, которые чаще всего можно производить параллельно.

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

Под вектором понимается одномерный массив однотипных данных (обычно в форме с плавающей точкой), регулярным образом расположенный в памяти вычислительной системы.

Если обработке подвергаются многомерные массивы, их также рассматривают как векторы.

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

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

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

конвейерное АЛУ;

массив АЛУ;

массив процессорных элементов (матричная ВС).

Понятие векторного процессора имеет отношение к первым двум подходам, которые представлены на рис. 1.4.

а) б)

Рис. 1.4. Варианты векторной обработки: а – конвейерное АЛУ; б – массив АЛУ

В варианте с конвейерным АЛУ предполагается, что операции над числами достаточно сложны и поддаются разбиению на отдельные фазы.

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

В варианте с массивом АЛУ одновременные операции над элементами векторов проводятся с помощью нескольких параллельно используемых АЛУ.