Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
компьютерные_технологии.doc
Скачиваний:
36
Добавлен:
22.11.2019
Размер:
1.13 Mб
Скачать

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

3.1. Векторные команды и матричная вычислительная система

В екторные команды задают операции над элементами одного или нескольких векторов. Исполнение векторной команды включает в матричной системе чтение из памяти элементов векторов, распределение их по массиву матричных процессоров, выполнение заданной операции и занесение результатов в память. Структурная схема матричной системы показана на рис.3.1. Матричные процессоры МП однотипны и выполняют общую для всех команду над различными элементами векторов. Управляет ими параллельное устройство управления. В такой системе для выполнения обычных скалярных команд (команд над одиночными данными) и подготовки векторных команд используется скалярный процессор - обычный производительный микропроцессор класса ОКОД. При использовании N матричных процессоров такая система в идеальном случае имеет производительность в N раз выше скалярного процессора. Существует ряд факторов, снижающих реальную производительность таких вычислителей:

‑ при некратности числа элементов векторов числу матричных процессоров происходит простой незанятых процессоров либо разбиение длинного вектора на короткие с их последовательным вычислением;

‑ если вычислительный алгоритм содержит скалярные команды, не перекрывающиеся с векторными, происходит простой всего массива матричных элементов;

‑ при считывании векторов из параллельных сегментов памяти возникают ситуации, когда два элемента вектора содержатся в одном и том же сегменте; тогда вектор можно считать только за два обращения к памяти;

‑ ограниченные возможности коммутационной сети.

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

d=f*r+(1-f), где f – доля скалярных операций в алгоритме, r – отношение максимальной пропускной способности матричной системы в векторном режиме работы к пропускной способности скалярного МП системы.

3.2. Конвейеризация вычислений и организация векторных вычислителей класса окмд

Конвейеризация - это совмещенность различных действий по вычислению базовых функций за счет разбиения их на подфункции. Аппаратные средства для вычисления подфункций образуют ступени конвейера. Дискретные данные перемещаются от ступени к ступени конвейера по сигналам синхроимпульсов, при этом на каждой ступени операция по вычислению подфункции выполняется за один такт синхроимпульсов. Если такой конвейер имеет N ступеней и весь заполнен данными, то новые данные поступают на выход конвейера каждый такт, т.е. в N раз быстрее вычисляется такая функция при непрерывном поступлении данных по сравнению с ее последовательным вычислением без разбиения на подфункции. Устройство памяти между ступенями конвейера для хранения данных предыдущей ступени называется фиксатором ступени, конвейерным регистром или платформой ступени. Если такой конвейер перестраивает свои подфункции для вычисления новой функции по командам извне, он называется векторным процессором.

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

CT1

D1

D2

D3

D4

D5

CT2

-

D1

D2

D3

D4

CT3

-

-

D1

D2

D3

CT4

-

-

-

D1

D2

t1

t2

t3

t4

t5

Пусть функция работы векторного процессора разбита на четыре подфункции, образуя четыре ступени конвейера СТ1-СТ4. Рассмотрим пять тактов работы конвейера t1-t5, во время которых на конвейер поступают данные D1-D5. На четвертом такте работы такой конвейер полностью заполнится информацией, данные на его выход начнут поступать в четыре раза быстрее ‑ за каждый такт ti.

Следует четко различать понятия "параллелизм вычислений" и "конвейеризация". Для матричных параллельных вычислителей оптимальная длина обрабатываемых векторов совпадает с числом матричных параллельных процессоров N. Более длинные вектора необходимо разбивать на более короткие, пропорциональные числу N, и рассчитывать их уже последовательно во времени. Для векторных вычислителей, чем длиннее обрабатываемые вектора, тем лучше, так как меньше вспомогательных операций, приостанавливающих работу конвейера, что обеспечивает прохождение через него непрерывного потока данных и оптимальную его загрузку.