Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Б М.docx
Скачиваний:
148
Добавлен:
09.06.2015
Размер:
2.63 Mб
Скачать

8 Векторных регистров (по 6* слова в каждом)

Сложение целых чисел (3)

Логические операции (Z)

Сдвиг (*)

Т

Сложение с ПТ (б)

I’?

р

«§<§

on

8 скалярных б^г-разрядных регистров

Умножение с ПТ(7)

Вычисление аврит- ной величины (№)

Сложение целых чисел (3)

Счетчик числа нулей заполнен­ности (3 или 4)

Умножение целых чисел (6)

Сложение целых чисел (3)

Логические операции (1)

Сдвиг (Z илиЗ)

Регистр длины вектора

Регистр векторной маски

8 адресных Z*-разрядных регистров

I!

II

г* 1

«I

Биюеры

команд

СчК

Блок управ­ляющих сигналов

Рис. 15.17. Структура конвейерно­векторной суперЭВМ (CRAY-1)

цессор имеет командные и аппаратурные средства для операции обоих типов. При этом приняты специальные меры по уменьше­нию времени выполнения скалярных операций, чтобы последние существенно не снижали общую производительность системы. В системе реализованы конвейер команд и многочисленные кон­вейеры для различных арифметических и логических операцийпри скалярной и векторной обработках 64-разрядных слов с пла­вающей точкой (порядок— 15, мантисса — 49 разрядов), 64- или 24-разрядных слов с фиксированной точкой, 22-разрядныхадресов.

Эти операции выполняются 12 конвейеризованным^ функци­ональными устройствами, которые могут работать параллельно во времени, выполняя различные операции. При этом возможно образование последовательных соединений конвейеров, в том числе так называемое зацепление векторных операций, при кото-

t рых получаемые в ходе выполнения векторной команды резуль- г: таты через регистры (без использования памяти) передаются для использования следующей векторной командой [16, 31]. .Конвейеры имеют немного рабочих позиций (количество указа­но в скобках на рисунке), с тем чтобы уменьшить потери про­изводительности, связанные с периодом «разгона» конвейера. Такт работы конвейера 12,5 не.

Для поддержки конвейерной и векторной обработки необхо­димыбыстрые регистровые средства, освобождающие от необхо- ' димрстиобращения к памяти при выполнении векторных опера­ций и обеспечивающие высокий темп загрузки конвейеров и ин­формационные связи между ними.

Процессор CRAY содержит быстрые регистры (время обра­щения 6 не): 8 векторных К-регистров, каждый из которых может хранить 64 64-разрядных слова; 8 24-разрядных адресных регистров; 8 скалярных 64-разрядных S-регистров.

' Управляющее устройство помимо традиционных для УУ бло­ков содержит четыре буфера команд (на 64 командных слова каждый) и специальные регистры: регистр длины вектора и ре­гистр векторной маски. Регистр длины вектора фиксирует длину обрабатываемого вектора S (всегда S^64). Содержащий 64 разряда регистр векторной маски значением своего L-го раз­ряда определяет, из какого из участвующих в операции регист­ров /-й элемент выдается в регистр результата. По-другому использует регистр векторной маски команда проверки элемен­тов вектора, которая устанавливает разряды вектора маски в 1, <если соответствующие элементы вектора удовлетворяют задан­ному условию. Результат этой команды может эффективно ис­пользоваться другими командами при обработке данных.

V Команды имеют формат 16 или 32 разряда. 16-разрядные Команды основных, в том числе векторных операций имеют ^разрядное поле кода операции и три 3-разрядных поля для номеров регистров операндов и результата. В 32-разрядной Команде под адрес основной памяти или непосредственный опе­ранд отведено 22 разряда.

' В памяти системы, имеющей емкость от 1 до 4 Мелов (слово 64 разряда-(-9 контрольных), применено 16-кратное чередова­ние адресов, за счет чего цикл обращения составляет всего 80 не.

В однопроцессорной ВС CRAY-1 достигнута производитель- “Ость около 80—130 Мфлоп/с. Для рассмотрения выбрана эта 0i^Ha из первых конвейерно-векторных суперЭВМ из-за ее срав- "^ельной простоты и наглядности в отношении особенностей *4>ганизации комбинаций конвейерной и векторной обработок Данных. В более новых и более мощных моделях фирмы CRAY

используются от 2 до 8 процессоров, и производительность со­ставляет от 1000 до 2500 Мфлоп/с [64].

  1. Концепция ВС с управлением потоком данных

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

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

В таких условиях актуальными являются исследования но­вых путей построения высокопроизводительных ВС, одними из которых являются ВС с управлением потоком данных (опе­рандов), или, другими словами, потоковые ВС.

В системах с управлением потоками данных предполагается наличие большого числа специализированных операционных блоков для определенных видов операций (сложения, умноже­ния и т. п., отдельных для разных типов данных). Данные снаб­жаются указателями типа данных (тегами), на основании кото­рых по мере гоговности данных (операндов) к обработке (а не в порядке последовательности команд в программе) они за­гружаются в соответствующие свободные операционные блоки. При достаточном количестве операционных блоков может быть достигнут высокий уровень распараллеливания вычислительного процесса (близкий к «потенциальному параллелизму» програм­мы). К тому же в самих операционных блоках может быть при­менена конвейерная обработка. Таким образом, создаются усло­вия для реализации высокой производительности системы.

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

Принципиальное отличие потоковых машин состоит в том, что команды выполняются не в порядке следования команд в тексте программы, а по мере готовности их операндов. Как только будут вычислены операнды команды, она может захваты­вать свободное операционное устройство и выполнять предпи-

Рис. 15.18. К примеру решения задачи на ВС с управлением по­током данных (граф потока опе­рандов)

санную ей операцию. В этом случае последовательность, в которой выполняются коман­ды, уже не является детерми­нированной.

Следуя [55], рассмотрим в качестве примера вычисле­ние на потоковой ВС корней квадратного уравнения

ах2-Ьх-\-с = 0 (при Ь2 4ас>0);

- х\ 2 = Ф ± Л^2 “ 4ас)/2а.

Полагаем, что на вход си­стемы поступают группы дан- . ных а,, 6,, Ci и по ним вычис­ляются корни уравнения. Ре­шение может быть получено с помощью операционных устройств, выполняющих опе­рации сложения, вычитания, умножения, возведения в степень, деления и извлечения квадратного корня.

Процесс решения можно представить следующей последова­тельностью операций:

/(0:Л1:=2*а;

/С1:В1:=6^^2 (возведение в степень);

Я2:С:=4*с;

ЯЗ:С1:=С*а;

/C4:D: =В\ —С1;

/C5:D1: =SQRT (D) (извлечение квадратного корня);

K6:B2:=b + D\\

К7 :ВЗ: =b — D\\

КЪ:Х\:=В2/А\\

КЪ:Х2:=ВЪ/А\.

На рис. 15.18 показан граф потока данных, управляющих решением рассматриваемой задачи. Большими кружками обоз­начены операционные устройства, а. маленькими — метки го­товности данных. В начальном состоянии процесса готовы все входные данные. Вершины графа активизируются в произволь-