Смекни!
smekni.com

По курсу впкс «Ввод-вывод в транспьютере. Передача данных по линку» (стр. 2 из 4)

Имеется микропрограммный планировщик, позволяющий параллельно выполнять любое число процессов в режиме разделения времени процессора. Это позволяет обходиться без ядра операционной системы. Но, процессор не имеет средств для динамического выделения памяти. Это отнесено на счет компилятора.

Параллельный процесс может находиться в состояниях:

Активное – выполняется

– находится в очереди ожидания на выполнение.

Пассивное – готов к вводу

– готов к выводу

– ожидает, пока не наступит указанное время.

Планировщик устроен так, что пассивные процессы не занимают процессорное время. Активные процессы находятся в списке. Это связный список рабочих областей процессов, реализованный с использованием двух регистров. Первый указывает на первый процесс из списка, другой – на последний процесс.

На рисунке процесс S выполняется, а процессы P, Q и R активны и ожидают выполнения.

Процесс выполняется до тех пор, пока не перейдет в режим ожидания ввода, вывода или таймера.

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

В процессе реализованы специальные операции, поддерживающие процесс:

start process

stop process

Связь

Связь между процессами осуществляется с помощью каналов.

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

Канал между двумя процессами, которые выполняются на одном транспьютере, реализуется с помощью одного слова в памяти.

Канал между процессами разных транспьютеров реализуется с помощью двухточечных линий связи.

Предусмотрены операции для поддержки обмена сообщениями, важнейшими из которых являются:

Input message

Output message

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

Связь осуществляется, когда и вводящий и выводящий процессы готовы к обмену.

Процесс, первым инициирующий обмен, должен ждать готовности второго.

Линии связи

Связь между транспьютерами устанавливается путем соединения интерфейса связи одного транспьютера двумя однонаправленными сигнальными проводами, по которым данные передаются последовательно.

Сообщения передаются как последовательность байтов, причем на каждый переданный байт должно прийти подтверждение до посылки следующего байта.

Два провода передачи соответствуют реализации двух каналов в языке Оккам, по одному в каждом направлении.

Таймер

Часы срабатывают каждую микросекунду. С помощью инструкции read timer можно прочитать текущее значение процессорного таймера.

При выполнении инструкции timer input выполнение процесса приостанавливается до тех пор, пока не наступит указанное время.

Альтернативное выполнение

Процесс может переходить в режим ожидания ввода из любого канала или до наступления указанного времени. Для этого имеются специальные инструкции, которые соответствуют альтернативным инструкциям языка Оккам.

Инструкции с плавающей точкой

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

Есть две группы таких инструкций. Одна для чисел с одинарной точностью, другая – двойной.

Адрес операнда с плавающей точкой формируется в стеке ЦП, затем операнд загружается в стек ППТ из адресуемой ячейки памяти. В стеке с плавающей точкой операнды маркируют в зависимости от того, являются ли они числами одинарной или двойной точности. Транспьютер IMS T414 на уровне микрокода поддерживает работу с 32-х разрядными числами с плавающей точкой и обеспечивает время выполнения операций с одинарной точностью около 10 мс. В транспьютере IMS T800 время существенно меньше:

одинарная точность

двойная точность

сложение

350 нс

350 нс

вычитание

350 нс

350 нс

умножение

550 нс

1000 нс

деление

850 нс

1000 нс

Классическим примером МРР-систем является архитектура масштабируемой параллельной вычислительной системы PARSYTEC, на примере одной из модификаций продукции фирмы Gcel-64, построенной на транспьютерах Т-805. GCel 1/64 является мощным компьютером типа MIMD (Multiple Instractions Multiple Data) и представляет собой фактически сеть высокопроизводительных микропроцессоров (транспьютеров), каждый из которых имеет собственную память. Между процессорами можно производить обмены "память-память" с достаточно высокой скоростью. GCel 1/64 -- это конструктивно один куб. Предусмотрено наращивание мощности системы за счет увеличения числа таких кубов. Максимальное число кубов в системе 256, что эквивалентно 16384 рабочим транспьютерам.

GCel работает в связке с внешней или управляющей машиной (frontend computer). GCel 1/64 не является узлом сети ЛВС ВЦ РАН. Выход на GCel c любого компьютера локальной сети осуществляется через внешнюю машину, которая, будучи узлом сети, обеспечивает такую возможность. Внешней машиной в нашем случае является ЭВМ SPARCStation 2 фирмы SUN. Она обеспечивает интерфейс с пользователем GCel, функции загрузки процессорных узлов GCel и управления им, слежения за работой GCel (monitoring), реализует доступ к файловой системе. Системное программное обеспечение называется PARIX (PARallelunIX).

Рассмотрим возможности GCel и PARIX более подробно.

GCel 1/64 -- наименьшая аппаратная конструкция, которая может существовать самостоятельно. Будем для краткости называть ее Giga Cube (GC). GC имеет собственный конструктив, в котором размещается основное оборудование, а также система жизнеобеспечения и снабжения электропитанием.

GC состоит из 4-х кластеров. Кластер -- это своеобразный атомарный конструктивный блок. Каждый кластер содержит 17 процессорных узлов. Из них 16 основных рабочих и один дополнительный для повышения надежности системы, вступающий в работу в случае отказа любого из основных рабочих узлов. Процессорные узлы размещаются на специальной плате (processorboard). Кластер состоит из 2-х таких плат с процессорными узлами.

Каждый GC имеет еще один процессорный узел, управляющий. Если система имеет больше одного GC, то все управляющие узлы связываются между собой, образуя управляющую сеть. Назначение управляющих узлов GC: конфигурирование, начальная установка (reset), слежение за работой системы (мониторинг) и т.д. Таким образом, на GC имеется 69 процессорных узлов.

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

В качестве процессора процессорного узла используется транспьютер Т805 фирмы INMOS, который является разновидностью RISC процессора. Это однокристальная интегральная схема с собственной памятью в 4 Кбайта (помимо главной -- объемом 4 Мбайт). Т805 имеет основной 32 разрядный процессор и процессор плавающей арифметики, работающий с 64 разрядными числами. Возможна прямая адресация к памяти объемом до 4Gбайт. Главная память транспьютерного узла 4 Мбайта. Подобно другим RISC архитектурам Т805 имеет специфическую систему команд. Код команды имеет либо 4 бита, либо находится в специальном регистре. Операнды и результат операции размещается в стеке из 3-х регистров. Команды не содержат обращения к памяти, кроме 2-х операций (записи и чтения из памяти). Транспьютер имеет специальные средства для поддержания мультипрограммирования на одном транспьютере (управление очередями, таймеры, приоритеты для процессов). Развернутой системы прерываний транспьютеры не имеют, но имеются средства реакции на некоторые внешние события -- т.н. SYSTEM SERVICES -- для приведения системы в исходное состояние (reset), проведения начальной загрузки транспьютера, получения информации об ошибках. Специальных средств защиты и управления памятью Т805 не имеет, что в некотором смысле оправдано, поскольку принятая на транспьютерах идеология параллельных вычислений предполагает, что параллелизм достигается в основном работой на нескольких транспьютерах. Многозадачность возможна, но она реализуется таким образом, что на одном транспьютере не могут работать процессы, принадлежащие разным задачам.

На одном транспьютере работают в мультипрограммном режиме только процессы пользователя (основной и подчиненные в виде т.н. (thread)) и служебные процессы их обслуживающие. Защита обеспечивается программным образом за счет жесткого распределения памяти при начальной загрузке программы. Следствием этого является то, что обычный пользователь не программирует в кодах транспьютера и на ассемблере. Важная часть работы Т805 -- это организация обменов "память-память" между транспьютерами. Каждый транспьютер имеет 4 специальных канала -- линка для такого обмена. Каждый линк имеет 2 подканала -- для ввода и для вывода. На каждом транспьютере информация в линк (или из линка) передается через специальный линковый интерфейс. Максимальная скорость обмена по линку 20 Мбит/сек (2.35 Мбайт/сек). Для реализации логического уровня связи между транспьютерами используется специальное программно настраиваемое устройство -- канальный переключатель С004 (INMOS C004 LINK CROSSBAR SWITCH).