Информатика в техническом университете / Информатика в техническом университете. Архитектура вычислительных систем
.pdf8.4. Параллельная обработка и коммуникации транспьютеров
Например, рассмотрим выполнение следующего фрагмента Оккам
-программы:
[20] [20] REAL64 a: SEQ
b:=a[i][.l]+c * d
B этом фрагменте выборка a[i][ j] включaeт в себя вычисление смещения этого фрагмента относительно базы массива A — A.link. Перед зarpyз-
кoй a[i][ j] выполняются следующие команды:
load local |
i |
— загрузка i в стек процессора |
prefix |
# 1 |
— загрузка 20 в стек процессора |
load constant |
#4 |
|
product |
|
— умножение i на 20 |
load local |
] |
— загрузка ] в стек процессора |
add |
|
— сложение j и i * 20 |
load local |
A.link |
— загрузка A.link в стек процессора |
word subscript double |
— формирование адреса a[i][ j] |
|
B данном случае команда product вьиoлняeтся за восемь циклов. Приведенный фрагмент программы выполняется за 18 циклов. Следующая команда — floating load non-local double — загружает a[i][ j] в стек coпpoцeccopa. Поскольку при выпoлнeнии умножения 64-разрядных слов c плa-
вaющeй занятой требуется 21 цикл, никакой задержки из-за вычисления aдpeca элемента массива не происходит.
8.4. Параллельная обработка и коммуникации транспьютеров
8.4.1. Обработка параллельных процессов
B языке Оккам параллельные процессы создаются динамически и взаи-
модействyют между собой через каналы. Параллельные процессы могут вы-
полняться как на одном транспьютере, так и на различных процессорах в
мyльтитpанспьютерной системе. Архитектура транспьютера предусматривает
эффективные средства для поддержки обоих видов параллельной обработки. Рассмотрим обработку параллельны процессов на одном транспьютере.
Транспьютер может одновременно обрабатывать любое число параллельных процессов. Он имеет специальный планировщик, который выполня-
ет распределение времени между процессами . в любой момент времени па-
активные процессы (выпол-рaллельныепроцессыделятсянадвакласса
401
8. Транспьютерные вычислительн, ые системы
няются или готовы к выполнению) и пассивны процессы (ожидают ввода- вывода или определенного времени).
Активные процессы, ожидающие выполнения, помещаются в планировочный список. Последний является списком рабочих областей этих активных процессов в памяти и задается значени ами двух регистров, один из которых указывает на первый процесс в списю;, a другой на последний. Состояние процесса, готового к выполнению, с^ охраняется в его рабочей области. Состояние определяется двумя словами -- текущим значением указателя инструкций и указателем рабочей области следующего процесса в планировочном списке. На рис. 8.9 изображена обработка параллельных активных процессов, причем процесс S выполняется, a процессы P, Q и R ожидают выполнения в планировочном списке.
Команда тpанспьютера создает новый активный процесс, добавляя его в конец планировочного списка. ] 1еред выполнением этой ко-
манды в А-peгиcтp вычислительного стена дол; ясен быть загружен указатель
инструкций этого процесса, a в B-peгиcтp ув азатель его рабочей области.
Команда start process позволяет новому параллельному процессу выполняться вместе c другими процессами, которые транспьютер обрабатывает в
данное время.
Команда end process завершает текущий процесс, убирая его из пла-
нировочного списка. B языке Окнам конструкция PAR может закончиться
только тогда, когда завершатся все ее компонен ты параллельные процессы. Каждая команда start process увеличивает их число , a end process
уменьшает. B транспьютере предусмотрен специальный механизм учета числа незавершившихся компонентов данной параллельной конструкции
(необходимо учитывать как активные, так и неа.ктивные процессы).
При обработке параллельных процессов на самом деле присутствует
Регистры |
ЛокальныЕ - |
Команды |
Начало |
переменны e |
|
|
|
|
Конец |
P |
|
A |
Q |
|
|
|
|
в |
R |
|
C |
|
|
W, рабочая область |
S |
|
|
|
|
I, следующая команда |
|
|
O, операнд |
|
|
Рис. 8.9. Обработка параллельных ак гивных процессов
402
8.4. Параллельная обработка и коммуникации транспьютеров
не один, a два планировочных списка список высокого приоритета и спи-
сок низкого приоритета. Процессы c низким приоритетом могут выполнять-
ся только тогда, когда список высокого приоритета пуст. Процессы c высоким приоритетом обычно вводятся для обеспечения отклика системы на них
в реальном времени. Если список высокого приоритета пуст и процесс c вы-
соким приоритетом становится активным, он прерывает выполнение текущего процесса (c низким приоритетом) в конце текущей команды или в ее промежуточной точке. Состояние прерываемого процесса сохраняется в фиксированной области памяти. Для осуществления подобного прерывания требуется в среднем 1 мкс, в наихудшем случае 3,7 мкс. Напомним, что сопроцессор транспьютера iМ Т800 имеет два вычислительных стека, которые используются для процессов c разными приоритетами. Наличие двух стеков устраняет необходимость копирования состояния сопроцессора в памяти, что существенно уменьшает время прерывания, a следовательно, и время отклика системы. Если готовы к выполнению несколько процессов c высоким приоритетом, они помещаются в очередь в списке высокого приоритета. Для ускорения отклика системы необходимо, чтобы процессы c высоким приоритетом были как можно короче.
Текущий активный процесс низкого приоритета выполняется до тех
пор, пока не произойдет одно из следующих событий: 1) данный процесс завершится (командой end process); 2) он станет неактивным; 3) появится
готовый к выполнению процесс c высоким приоритетом; 4) время выполнения процесса превысит определенную величину период синхронизации.
B последнем случае начинает выполняться следующий процесс из планировочного списка, a текущий процесс помещается в конец этого списка. Ис-
пользование такого механизма гарантирует, что ни один активный процесс не будет ожидать выполнения неограниченно долго. Один процесс низкого приоритета может непрерывно задать процессор в среднем не более 750 мкс. Описанное переключение процессов можетпроизойти только после выполнения команд jump (переход) и end 1оор (конец цикла), когда вычислительные стеки процессора и сопроцессора не содержат полезной информации и количество сохраняемой информации минимально.
По отношению к процессам c высоким приоритетом подобный механизм переключения c использованием периодов синхронизации не применяется, поэтому они не должны выполняться неограниченно долго.
Весь механизм выполнения параллельны процессов на одном транспьютере спроектирован так, чтобы минимизировать накладяьие расходы. B параллельных программах большинство процессов находится в состоянии ожидания коммуникаций, и поэтому они не включены в планировочиый список. Количество регистров очень небольшое, что позволяет ми шiмизировать объем сохраняемой информации при прекращен вьшолнения процесса.
403
8. Транспьютерные вычислительные системы
8.4.2. Коммуникации
Коммуникации между параллельными процессами осуществляются через каналы. Канал между двумя процессами, выполняющимися на одном тpанспьютере, задается одним словом в памяти , a обмен информацией осуществляется посредством пересылок между раб очими областями этих процессов в памяти транспьютера. Канал между процессами, которые выполняются на разных тpанспьютерах, реализуется шпаратно в виде двухточечнои линии связи между этими тpанспьютерами.
Система команд транспьютера имеет ря, i инструкций, которые поддерживают пересылку сообщений между параллельными процессами. Наиболее важными являются input message (ввод с ообщения) и output message (вывод сообщения). Есть также команды output word (вывод слова) и output byte (вывод байта), которые можно считать частными случаями команды output message.
Команды input message и output message используют адрес канала для определения, является ли он внутренним или внешним. Несмотря на принципиальные различия в реализации внутренних и внешних каналов, все команды для коммуникаций одинаковые. Это позволяет осуществлять компиляцию процедур безотносительно к способу реализации каналов, a следовательно, и к конфигурации ВС.
B языке Оккам коммуникации происходят только тогда, когда и принимающий, и передающий процессы готовы к обмену данными. Поэтому процесс, который первым достиг готовности, 4,олжен ожидать, когда и второй процесс также будет готов к обмену инфор^ ^iацией.
Команды ввода или вывода сообщений реализуются следующим образом. B вычислительный стек процессора загружаются указатель начала сообщения, адрес канала и количество байтов в сообщении, a затем выполняется команда input message или output message.
8.4.3. Пересылка данных по внутреннему каналу
Внутренний канал реализуется одним сл звом в памяти транспьютера. Во время инициaлизации в канал записывается специальное значение empty
(незанято).Значениеemptyвыбранотак,чтоононеможетотождествляться
ни c одним процессом (c указателем его рабо чей области). Перед началом передачи данных между процессами через вну среннии канал команды пересылки проверяют содержимое канала.
Проиллюстрируем порядок работы внутреннего канала на следующем примере. Пусть процесс P готов к выводу данных в незанятый канал C (рис. 8.10, a). Вычислительный стек процессора содержит указатель на пересылаемые данные, адрес канала C и количество пересылаемых байтов.
404
8.4. Параллельная обработка и коммуникации транспьютеров
Вьшолняпощийся |
|
Рабочая область |
|
|
процесс P |
|
процесса P |
|
|
A: Число байтов |
Канал C |
Следующая команда |
Канал C |
|
B: Канал |
^ empty |
Указатель |
P |
|
C: Указатель |
|
|
|
|
a |
|
|
б |
|
Рабочая область |
|
Выполнвпоцийся |
|
|
процесса P |
Канал C |
|
процесс Q |
|
Следующая команда |
P |
A: |
Число байтов |
|
Указатель |
|
B: |
Канал |
|
|
|
C: |
Указатель |
|
в
Рис. 8.10. Передача данных по внутреннему каналу:
a — процесс P готов к выводу данных; б — процесс P ожидает ввода данных другим процессом; в — обмен данными между процессами P и Q
Во время выполнения команды output message в канал C записывается указатель рабочей области процесса P, a указатель на пересылаемые данные сохраняется в рабочей области P. Процесс P прерывает свое выполнение и становится неактивным, ожидая ввода данных другим процессом (рис. 8.10, б). Процессор начинает выполнение следующего процесса из планировочного списка.
Канал C и процесс P остаются в этом состоянии до того момента, когда второй процесс Q выполнит команду input message для этого канала (рис. 8.10, в). После чего пересылаемые данные копируются в памяти, процесс P становится активным и добавляется в конец планировочного списка, a в канал С снова записывается значение empty. Механизм организации обменов не зависит от того, какой процесс (передающий или принимаюций) первым достиг готовности.
8.4.4. Пересылка данных no внешнему каналу
Команда пересылки данных по внешнему каналу направляет aвтoнoмнoмy канальному интepфeйcy задание на передачу сообщения и пpиocтaнaвливaeт выполнение процесса. После окончания передачи сообщения кaнaль-
405
8. Транспьютерные вычислительные системы
ный интерфейс помещает этот процесс в планировочный список. При пере-
., даче данных по внутреннему каналу процесс, который последним достиг
готовности к обмену, остается активным. Во время обменов по внешнему каналу оба процесса становятся неактивными. Это позволяет тpанспьютеру продолжать обработку других процессов во вр1 пмя пересылки данных через более медленные внешние автономные каналы.
Каждый канальный интерфейс используем г три своих регистра, в которые загружаются указатель на рабочую область процесса, указатель на пересылаемые данные и количество пересылаемых байтов.
8.4.5. Каналы межгранспьютрной связи
Физический канал связи (Link) между двумя транспьютерами реализует два Оккам-канaла (Channels), по одному в каждом направлении. Канал
связи между транспьютерами создается путем соединения их канальных интерфейсов двумя однонаправленными сигналы иыми проводниками. Каждый из проводников предназначен для передачи дан ых и управляющих сигналов.
Для пересылки данных используется простой протокол, который обеспечивает передачу произвольной последовательности байтов. Протокол связи универсальный, он не зависит от разряде мости транспьютера. Последнее позволяет соединять друг c другом транспь: ютеры разных типов.
Сообщения передаются в виде отдельны к пакетов (см. рис. 8.3), каждый из которых содержит 1 байт данных. Слеовательно, наличие буфера в 1 байт в транспьютере является достаточным для исключения временншiх потерь при межтpанспьютерных пересылках. После отправления пакета данных транспьютер ожидает получения пакета подтверждения от принимающего транспьютера. Пакет подтверждения показывает, что процессполyчатель готов принять этот байт и что канал принимающего транспьютера может начать прием следующего байта.
Протокол передачи пакета данных позво пяет отсылать пакет подтверждения, как только транспьютер идентифици: повал начало пакета данных. Подтверждение может быть получено передающим транспьютером еще до завершения передачи всего пакета данных, г поэтому пересылка данных может быть непрерывной, т. e. без пауз между пакетами.
Каналы могут передавать данные c часто гой 5, 10 и 20 Мбит/c, причем частоту можно задавать для каждого канала в отдельности. Передача данных производится синхронно; для синхронизации используются внутренние тактовые импульсы, которые вырабатываются на основе внешних тактовых
сигналов (использующих частоту 5 МГц).
в транспьютере IMS Т414 не реализоваi:о описанное временное перекрытие при передаче пакетов данных и пакетов; подтверждения.
406
8.5.Архитектура транспьютера IMS Т9000
8.5.Архитектура транспьютера IMS Т9000
Модель транспьютера IMS Т9000 характеризуется развитой архитектypой, сочетающей в себе достоинства архитектур транспьютеров семейств Т200, Т400, Т800 и высокопроизводительны микропроцессоров. Транспьютер IMS Т9000 ориентирован на реализацию операций и c фиксированной, и c плавающей запятой соответственно над 32- и 64-разрядными числами. При
тактовой частоте 50 МГц пиковое быстpодействие транспьютера ГМ8 Т9000 оценивается значениями: 200 M1PS и 25 MFLOPS; скорость передачи ин-
формации по линку составляет 100 Мбит/c. Количество транзисторов в кристaлле ГМ5 Т9000 равно 3,2 млн, a число выводов c корпуса 208. Кристaлл транспьютера ГМ5 Т9000 основывается на усовершенствованной
KMОП-технологии (СМОS technology, комплементарная металл-окисел-
полyпроводник технология). Программное обеспечение данного транспьютера совместимо c предшествующими генерациями для транспьютеров семейств Т200, Т400 и Т800. B 1999 г. был налажен выпуск транспьютеров IMS Т9000 c тактовой частотой 25 МГц.
Системы команд IMS Т9000 и транспьютеров семейств Т200, Т400 и Т800 полностью совместимы. Увеличение производительности в транспью-
тере IMS Т9000 по сравнению c ГМ5 Т805 достигнуто и за счет совершенст-
вования технологии, и главное новых архитектурных решении.
8.5.1. Tpaнcпьютep IMS T9000
Tpaнcпьютep IMS T9000 имеет cyпepcкaляpнyю RISC-apxитeктypy, в
нем достигнут баланс между вычислительными и кoммyникaциoнными воз архитектуры транспьютера как микропромoжнocтями.Cyпepcкaляpнocть
цессора означает, что его аппаратура обеспечивает загрузку параллельно
работающих функциональных устройств при использовании традиционных последовательных программ (команды не содержат никаких указаний на
параллельную обработку внутри процессора).
B состав транспьютера IMS T9000 входят (рис. 8.11): пpoцeccopный конвейер (Processor Pipeline), кэш-пaмять команд и данных (Instruction and
Data Cache), программируемый интepфeйc внешней памяти (Programmable Memory Interface), четыре рабочих линка (Links 0-3), схемы обработки внешних запросов (Events 0-3), процессор виpтyaльныx каналов (Virtual Channel Processor), системный блок (System Services), тaймepы (Timers), два управляющих линка (Control Links, Clink 0 и Clink 1) и 32-разрядная внyтpeнняя шина (Common Bus).
Про цессорный конвейер включает в себя 32-разрядный процессор для выполнения операций над целыми чиc-(ALU—Arithmetic-LogicalUnit)
407
8. Транспьютерные вычислительн ые системы
Процессорный конвейер |
|||
|
Адресный |
|
Co: троцессор |
Кэш-память |
генератор 1 |
|
|
|
|
||
рабочей |
|
|
|
области |
Адресный |
|
Процессор |
|
генератор 2 |
|
|
|
|
|
|
Системный блок C |
> C |
|
IIроцессор |
) |
вi ^ртуальных |
||
|
|
|
каналов |
Таймеры |
|
I |
Линк 0 |
Кэш-память |
C |
Линк 1 |
|
команд |
|
|
Линк 2 |
и данных |
|
|
|
|
|
|
Линк з |
|
|
|
Схемы 0-з |
|
|
|
збработки |
|
|
|
внег iних запросов |
|
|
|
Yi равляющий |
|
|
|
линк 0 |
|
|
|
Уi iравляющий |
Программируемый |
|
|
линк 1 |
интерфейс |
|
внешней памяти |
C |
|
Рис. 8.11. Функциональная структура траНспьютера IMS Т9000
лами, 64-разрядный сопроцессор (FPU Float: ng Point Unit) для реализации
операции над числами c плавающей занято и, два адресных генератора
(Address Generators), кэш-память рабочей области (Workspace Cache), управ-
ляющее устpойство выборки и группировки команд и буфер команд. Кэшпамять рабочей области обеспечивает быстрь:й доступ к локaльным переменным, она, по сути, выполняет роль блока регистров общего назначения. Допускается параллельная работа процессора v - сопроцессора.
Одной из архитектурных особенностей процессорного конвейера является аппаратурная группировка команд, п овышающая загрузку парал- лельнонкциониу рующих устройств. Максимальное число одновременно выполняемых команд в группе равно 8. Группировка команд осуществляется управляющим устройством выборки и группировки команд и буфером
408
8.5. Архитектура транспьютера IMS Т9000
команд. Увеличение быстродействия в ГМ Т9000 достигнуто также и за счет сокращения числа тактов, необходимых для выполнения ряда арифметических и логических операций (по некоторым операциям получено 10-кратное сокращение по сравнению c числом тактов IMS Т805).
Кэш-память команд и данных имеет емкость 16 К байт. Эта память рассчитана на работу в одном из трех режимов:
•как быстродействующее внутреннее ОЗУ при решении небольших задач (в этом случае внешняя память может быть не использована);
•как единая кэш-память для обеспечения быстрого доступа к наиболее часто используемым данным или фрагментам программы;
•как два блока емкостью по 8 К байт: ОЗУ и кэш-память.
Программируемый интерфейс внешней памяти обеспечивает воз-
., можность подключения к транспьютеру внешней памяти различных видов и
емкости. Данный интерфейс позволяет работать транспьютеру c 8-, 16-, 32- и 64-разрядной статической и 32- и 64-разрядной динамической памятью. При этом вся внешняя память может быть разделена на четыре области c различными параметрами.
Процессор виртуальных канaлов позволяет мультиплексировать липки,
т. e. организовать так называемые виртуальные канаты. Это дает возможность использовать один и тот же липк одновременно несколькими процессами. Следовательно, дани аппаратурньй механизм дает возможность ввести столько программных каналов, сколько их требуется для решения задачи.
Таким образом, процессор виртуальных каналов позволяет выполнять
по одному физическому пинкy обмен сообщениями между произвольным
числом пар процессов, протекающих в различны х транспьютерах. Каждое
сообщение, передаваемое от процесса-отправителя к процессу-получателю, делится процессором на пакеты. Пакет содержит 32 байта данных (последний
пакет может быть размером от 1 до 32 байт), заголовок и признак конца пакета (a в последнем признак конца сообщения). При получении пакета процессор виртуальных каналов принимающего транспьютера передает под-
тверждение в виде «пустого» пакета (содержащего только заголовок и признак конца пакета). Маршрутизация пакетов и их сборка в сообщение
осуществляются процессорaми виртуальньих каналов на основе информации, содержащейся в заголовках пакетов. Следовательно, обмен данными между процессами выглядит так же, как и для транспьютеров предшествующих поколений, что способствует преемственности программного обеспечен я.
Механизм маршрyтизации сообщений в межтpанспьютерной сети делает неразличимыми обмены информацией в пределах как одного транспьютера, так и мультитранспьютерной системы. Последнее существенно упрощает разработку параллельных программ для мультитpанспьютерных
систем и повышает их эффективность (так как удается избежать усложне-
409
8. Транспьютерные вычислительные системы
нии в текстах программ, т. e. дополнительных расходов на описание процессов маршрутизации сообщений).
Пинки транспьютера IMS Т9000 рассчитаны на передачу данных по
каждому из них со скоростью 100 Мбит/с. Следовательно, пропускная способность линков при обмене информацией между транспьютерами в дуплексном режиме оценивается величиной 8 x 100 Мбит/с.
Управляющие линки позволяют создать eдиную систему управления транспьютерами. Эти линки предназначены дл: { инициализации и управления работой тpанспьютеров. Они обеспечивая от двунаправленный обмен информацией между транспьютерами.
8.5.2. Коммутатор IMS С104 |
|
Программируемый коммутатор или марш рутизатор IMS C 104 |
эле- |
мент, позволяющий формировать мультитранспь: отерные системы со сложной
структурой. Он дает возможность реализовать механизм пакeтной коммyтации
сообщений и организовать информационное взаи модействие между транспьютерами. Композиция из коммутатора IMS С 104 и транспьютера IMS Т9000 увеличиваeт число физических линков y последнего элемента.
Элемент IMS С 104 полнодоступный коммутатор размером 32 x 32, допускающий соединение любого из своих л нков c любым другим. Задержка при любом переключении коммутатора не превышает 700 нс. Следовательно, коммутатор IMS C 104 способен осуществить передачу пакетов сообщения c любого из своих 32 входов на любой из 32 выходов (в соответствии c их заголовками). При передаче пакетов коммутатор обеспечивает пропускную способность 640 Мбайт/с.
Пример двумерной мультитранспьютерной системы на базе транс-
пьютеров IMS Т9000 и коммутаторов IMS С 104 представлен на рис. 8.12.
8.5.3. Язык Оккам 3
Язык Оккам 3 (Оссат 3) версия язып:а Оккам; она ориентирована на применение в системах, использующих транспьютеры IMS Т9000 и коммутаторы С 104.
При использовании этого языка нет необходимости устанавливать соответствие между программными и физическими каналами в системе. Отпадает также необходимость в предварительно: vt размещении процессов по отдельным тpанспьютерам, эту работу выполнзэ ет компилятор.
Язык Оккам 3 обеспечивает независимо ять параллельной программы от структуры (топологии) мультитранспьютерной вычислительной системы (программу можно переносить c одной системы на другую без существенных изменений).
410
