Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

khor32

.pdf
Скачиваний:
26
Добавлен:
29.02.2016
Размер:
8.16 Mб
Скачать

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

8.6. Анализ транспьютерных технологий

Т9000

Рис. 8.12. Фрагмент двумерной транспьютерной системы

Для тpaнcпьютepa IMS T9000 имеется набор средств для разработки и oтлaдки программ (который почти аналогичен соответствующему набору

для транспьютеров семейства T800).

8.б. Анализ транспьютерных технологий

Понятие «транспьютерные технологии» охватывает не только мп-псро- электронные технологии в производстве ЭМ транспьютеров, но и архитектypные и функциональные решения по формирова шо систем как коллективов транспьютеров, a также методы организация параллельны вычисленийи про-

гр вания. Транспьютерные технологии широко внедрялись в 1980-x и 1990-x годах. Популярность таких технологий объяснялась тем, что транспью-

тeр в то время был единственным систел ным элементом, которых был способен реализовать как коммуяикационные, так и вычислительные функция .

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

Достижением организаций, занимавшихся созданием и развитием средств транспьютерных технологии, следует признать то, что они уже в 1990-x годах вплотную подошли к рубежу, начиная c которого суперВС могли бы быть реализованы на большемасштабных полупроводниковых

пластинах (в виде system-on-Chip).

Опыт создания транспьютерных ВС c массовым параллелизмом без-

условно будет востребован в XXI столетии.

9. HAДEЖHOCTЬ ВЫЧИСЛИТЕЛЬНЫХ СИСТЕМ

Понять архитектуру ВС, оценить их функциональный потенциал невозможно без анализа эффективности. Специф ;'ка современных ВС не позволяет решить проблемы их эффективности ,гутем прямой трансформации методов существующей теории эффектив, части систем и ЭВМ. B ходе исследований по проблемам эффективности потребовалось:

a) ввести показатели качества функционирования ВС, которые устанавливали бы взаимосвязь между производительностью, надежностью, живучестью и технико-экономической эффективно тью; б) создать нетрудоемкий и адекватный математический аппарат для

V V

расчета этих показателен; провести численный анализ качества функционирования ВС; в) разработать технологию экспресс-анализа эффективности функционирования ВС.

B данной главе изyчается надежность (Reliability) распределенных ВС. Под

надежностью ВС будем понимать свойство с 'стемы сохранять заданный уровень производительности путем программного настройки ее структуры и прогрaммной организации функционального взаимс действия между ее ресурсами.

9.1. Производительность вычислительных систем

Содержание гл. 4-8 (a также [5, 6]) убеждает в том, что coвpeмeнными высокопроизводительными средствами обработки информации являются

распределенные BC (Distributed Computer Systms), системы c массовым пapaллeлизмoм (Massively Parallel Processing Systems). Число фyнкциoнaльнo-

кoнcтpyктивныx элементов обработки информации (ЭМ или процессоров) в таких BC уже сейчас составляет пopядкa 106. Это обстоятельство дaeт ocнo- вaниe специалистам в области анализа эффективности (производительности, надежности, живучести и тexникo-экoнoмичe ^кoй эффективности) средств

обработки информации называть распределен ные BC бoльшeмacштaбными (Large-Scalable Computer Systems).

Полнота воплощения принципов модели коллектива вычиcлитeлeй

определяет архитектурную гибкость BC. Oтмe чaлocь, что современные рас-

412

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]