- •Глава I
- •06Ласти применения эвм
- •1.6,1. СуперЭвм
- •Глава 2
- •8 Разрядов
- •11110001 11111001 11110001 11110111 А число — 6.285 запишется в память в виде слова из 6 байт:
- •Глава 3
- •Глава 4
- •Лечит узап j
- •Сверхоперативная или местная память
- •4.2. Адресная, ассоциативная и стековая организации памяти
- •Буфер входа-выхода
- •Усилители считывания-записи
- •Глава 5
- •Проклей
- •Идентификатор адреса (s байт)
- •Сектор на дискете
- •Глава 6
- •Управляющий блок автомат)
- •Глава 7
- •В цпршВляющай блок у б
- •Сумматор частичных произведений Регистр множимого
- •О vМножимое перед началом Выполнения умножения
- •Слой элементов и
- •Глава 9
- •Двойное слада па адреса о 32 бит
- •Слобо по адресу z в бит
- •Заслать в стек ад РеЗ
- •Загрузить аз стана в Pa V
- •Номер регист
- •Непосредственный операнд 1а
- •15Ю кГго 51
- •Оповещающий сив нал „Состояние
- •Блок ревастрод
- •Ветвление в макропроерамме по уело дую Акк*0
- •Макрокоманды управления последовательностью выборка микрокоманд
- •Окно процедуры
- •Регистры параметров (а) Регистры глобальных переменных |
- •1 Нуль м Знак-
- •Запоминание состояния процессора (программы)
- •Общий сигнал прерывания
- •Код приоритетного запроса
- •Маска ввоОагвывода
- •Прерывающая
- •01 23*56789 Время
- •I участка I
- •Запись льта мп
- •I Прием операндов на регистры 1
- •Умножение чисел с фиксированной точкой
- •Сложонив чисел с плавающей точкой
- •Глава 10
- •Вызов команды и модификация счетчика команд
- •Процедура тандемных пересылок
- •Однобайтная
- •16 Разрядов
- •Передача д стек а восстановление содержимого регистров
- •Команды досстаяовяения из стеки содержимого регистров
- •Блок сегментных регистров
- •Первый байт команды Второй ffaSm команды (постбайт адресации)
- •Сегментные селекторы
- •Регистры задачи и регистры дескрипторнои таблицы
- •Блок управления и контроля оп
- •Справочник страниц
- •Физическая память
- •16 Мбайт
- •Расширенная память
- •1 Мбайт
- •С каналом ес эвм
- •Связь с другой эвм
- •I Манипулятор % I Графа- I I типа „Мышь” I I построитель I
- •Глава 11
- •Интерфейс основной намята
- •Общее оборудование мультиплексного канала
- •Глава 12
- •Определения четности переносод
- •Глава 13
- •Ill:Выполнснис программы а Выполнение про ерам мы в
- •Пакеты заданий и Входные наборы данных
- •Выходные очереди разных классов в зу на дисках
- •I требует ‘'ода
- •Пользователь обдумывает | ответ системе I (новый запрос)
- •Блок управления памятью
- •Схемы совпадения
- •Шифратор номера отделения
- •Входной коммутатор
- •Коммутации
- •Сегментная таблица п-й программы
- •Векторные, средства
- •К периферийным устройством
- •К периферийным устройствам
- •Глава 15
- •Устройства Ввода- вывода
- •Процессор 2
- •Процессор 3
- •8 Векторных регистров (по 6* слова в каждом)
- •Готовности операндов
- •Глава 16
- •Комплекс абонентского пункта
- •16.2.. Классификация вычислительных сетей
- •1 Элемент
- •Время распрост- ранена*
- •Задержка сета лри коммутации пакетов[
- •Абонентская система
- •Данные пользователя
- •Сеансовый
- •Транспортный
- •Сетевой
- •Интерфейс высоког о уровня
- •Аппаратура передачи данных
- •Установление связи
- •Данные пользователя 00Длина поля и слови я обслуживания
- •Идентификатор протокола
- •7» Бшдта) Данные пользователя б вызове
- •Поток бит
- •Новый пакет (кадр)
- •Станция 1 ведет передачу
- •Передатчик Коаксиальный кйбель
- •Глава 15. Принципы организации многопроцессорных и многомашинных вычислительных систем (комплексов) и суперЭвм 489
- •1S в 7 о Слада па адресу ь
8 Векторных регистров (по 6* слова в каждом)
Сложение
целых чисел (3)
Логические
операции (Z)
Сдвиг
(*)
Т
Сложение
с ПТ (б)
I’?
«§<§
onр
8
скалярных б^г-разрядных регистров
Умножение
с ПТ(7)
Вычисление
аврит-
ной
величины (№)
Сложение
целых чисел (3)
Счетчик
числа нулей заполненности (3 или 4)
Умножение
целых чисел (6)
Сложение
целых чисел (3)
Логические
операции (1)
Сдвиг
(Z
илиЗ)
Регистр
длины вектора
Регистр
векторной маски
8
адресных Z*-разрядных
регистров
I!
II
г*
1
«I
Биюеры
команд
СчК
Блок
управляющих сигналов
цессор имеет командные и аппаратурные средства для операции обоих типов. При этом приняты специальные меры по уменьшению времени выполнения скалярных операций, чтобы последние существенно не снижали общую производительность системы. В системе реализованы конвейер команд и многочисленные конвейеры для различных арифметических и логических операцийпри скалярной и векторной обработках 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].
Концепция ВС с управлением потоком данных
Существуют трудности, связанные с решением проблемы автоматизации параллельного программирования, необходимой для обеспечения эффективного использования для широкого круга задач матричных (параллельных) ВС, т. е. систем типа ОКМД.
Конвейерные и конвейерно-векторные ВС наибольший эффект дают при реализации специализированных систем с фиксированными алгоритмами, при которых достижима оптимальная для решаемой задачи структура конвейера. В ВС универсального назначения состав позиций конвейера оказывается далеко не оптимальным для каждой данной задачи, к тому же возникают потери времени на коммутацию позиций конвейера под текущую команду.
В таких условиях актуальными являются исследования новых путей построения высокопроизводительных ВС, одними из которых являются ВС с управлением потоком данных (операндов), или, другими словами, потоковые ВС.
В системах с управлением потоками данных предполагается наличие большого числа специализированных операционных блоков для определенных видов операций (сложения, умножения и т. п., отдельных для разных типов данных). Данные снабжаются указателями типа данных (тегами), на основании которых по мере гоговности данных (операндов) к обработке (а не в порядке последовательности команд в программе) они загружаются в соответствующие свободные операционные блоки. При достаточном количестве операционных блоков может быть достигнут высокий уровень распараллеливания вычислительного процесса (близкий к «потенциальному параллелизму» программы). К тому же в самих операционных блоках может быть применена конвейерная обработка. Таким образом, создаются условия для реализации высокой производительности системы.
Во всех ранее рассмотренных машинах и вычислительных системах порядок выполнения операций над данными при решении задачи строго детерминирован, он однозначно определяется последовательностью команд программы.
Принципиальное отличие потоковых машин состоит в том, что команды выполняются не в порядке следования команд в тексте программы, а по мере готовности их операндов. Как только будут вычислены операнды команды, она может захватывать свободное операционное устройство и выполнять предпи-
Рис. 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 показан граф потока данных, управляющих решением рассматриваемой задачи. Большими кружками обозначены операционные устройства, а. маленькими — метки готовности данных. В начальном состоянии процесса готовы все входные данные. Вершины графа активизируются в произволь-