Архитектура вычислительных систем

Автор работы: Пользователь скрыл имя, 03 Июня 2013 в 12:23, контрольная работа

Описание работы

Транспьютеры. Связной список процессов.

1. Предлагается детально изложить наиболее важные вопросы (архитектура, основные компоненты, функционирование) конкретной системы.
2. Составление модели вычислительной системы заданной структуры.

Содержание работы

1. Введение.
2. Понятие транспьютера и канала связи.
3. Объединение транспьютеров в группы.
4. Архитектура транспьютера.
5. Вычислительные системы с массовой параллельной обработкой.
6. Связной список процессов.
7. Заключение
8. Список используемых источников.
9. Приложение 1 модель вычислительной системы на базе транспьютеров Т-800

Файлы: 1 файл

контрольная_работа_.doc

— 237.50 Кб (Скачать файл)

Центральный процессор

32-разрядный центральный процессор  транспьютера работает на тактовой частоте до 30 МГц, формируемой из опорной внешней тактовой частоты 5 МГц внутренней схемой умножения. Внутренняя структура центрального процессора показана на рис. 77.

Аппаратный планировщик (диспетчер) центрального процессора организует одновременное (в режиме разделения времени) выполнение нескольких процессов. Каждому процессу в момент его создания в адресном пространстве транспьютера выделяется выровненная по границе слова рабочая область памяти и устанавливается приоритет. В транспьютере реализована двухуровневая схема приоритетов: 0 - высокий приоритет процесса, 1 - низкий приоритет. Объединение адреса рабочей области и приоритета образует дескриптор процесса.

Центральный процессор содержит два  регистра-таймера, для низко- и высокоприоритетных процессов. Высокоприоритетный регистр  инкриминируется каждую 1 мкс, низкоприоритетный - каждые 64 мкс.

 

Структура транспьютера Т800

 

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

Регистры общего назначения А, В, С, образуют регистровый стек ss память с дисциплиной доступа FIFO. АЛУ  выполняет логические и арифметические операции над операндами, содержащимися в регистровом стеке. Операнды помещаются в стек через его вершину - регистр А. При загрузке данных в А его содержимое переносится в В, содержимое В в С, а содержимое последнего теряется. Результаты операций также формируются в регистре А, при этом содержимое регистра С "выталкивается" в регистр В и становится неопределенным.

Система команд транспьютера

Все команды транспьютера однобайтовые и выполняются за один такт процессора. Структура команды показана на рис. 76. Старшие 4 разряда -код команды, младшие 4 разряда используются для формирования операнда команды или кода команды в регистре операнда - О.

Операции, реализуемые командами  транспьютера, подразделяются на первичные  и вторичные. 13 наиболее употребительных первичных операций, такие, например, как сложение с константой со значением в диапазоне 0 -15, безусловный переход, загрузка (запись) слова и т.п. Еще 3 команды (мнемокоды pfix, nfix, opr) используются для реализации вторичных операций. Код вторичной операции формируется командами pfix, nfix и opr в регистре О, а операнды содержатся в регистрах.

Выполнение команд

Команды выбираются из памяти транспьютера и помещаются в буфер команд центрального процессора. За один такт выбирается 2 команды в Т-414 и 4 команды в Т-800.

Выполнение большинства команд осуществляется в три этапа:

1. Операнд команды помещается  в младшие 4 разряда регистра  операнда- О;

2. Выполняется операция, задаваемая  кодом команды. Содержимое регистра  О интерпретируется как операнд.

3. Очищается регистр операнда - О.

Исключение составляют команды pfix, nfix и орr.

Команда pfix на этапе 2 осуществляет сдвиг  содержимого О на 4 разряда влево и не очищает регистр О на этапе 3. Команда nfix выполняется так же, как и pfix, но перед сдвигом О помещает туда арифметическое дополнение его содержимого.

Поскольку после выполнения команд pfix и nfix содержимое О не очищается, последовательность команд pfix и nfix позволяет формировать в регистре О операнды с разрядностью до 32. Требуемая последовательность команд минимальной длины формируется компилятором.

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

Использование сопроцессора

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

Модуль операций с плавающей точкой, как показано на рис. 77, состоит из двух блоков: блока мантиссы и блока порядка со своим набором регистров (два регистровых стека). Все команды с плавающей точкой подразделяются на два класса: полностью самостоятельные команды, никак не влияющие на состояние центрального процессора, и команды, пересылающие результаты выполнения операции в центральный процессор.

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

Распределение памяти транспьютера

Транспьютер может адресовать до 232 байт (4 Гбайт). Особенностью транспьютера является начало адресов в области  отрицательных значений. Младший адрес в дополнительном коде соответствует значению (80000000…).

Структурно (конструктивно) вся оперативная  память подразделяется на внутрикристальную  и внешнюю. Объем внутрикристальной  памяти составляет 4 (2) Кбайт (в зависимости от модели транспьютера). Архитектурно (с точки зрения программиста) вся память транспьютера, как внешняя, так и внутрикристальная, равнодоступна и имеет единую адресацию. Внутрикристальной памяти соответствуют младшие адреса, а внешней памяти - старшие.

Поскольку внутрикристальная память имеет меньшее время доступа (один такт процессора), в нее обычно помещаются программистом часто используемые данные и подпрограммы. Пример распределения памяти показан на рис 76.

Несколько слов в младших адресах  памяти используется для специальных целей: для слов состояния аппаратных каналов - линков, блока Event, регистров таймера, в качестве рабочих областей памяти диспетчера.

Диспетчеризация процессов

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

Для выполняемого процесса регистр I содержит адрес следующей команды, регистр W содержит его дескриптор.

Для организации очереди процессов  на выполнение (очередь активных процессов) в диспетчере используются пары регистров FptrO, BptrO, Fptrl, Bptrl, указывающие на начало и конец очереди высоко- и низкоприоритетных процессов соответственно. В качестве элементов очередей используются рабочие области процессов, содержащие помимо данных процесса, управляющую информацию, требующуюся для сохранения и восстановления состояния процессов на этапе диспетчеризации (в том числе ссылку на рабочую область следующего процесса в очереди).

Низкоприоритетные процессы выполняются  в течение не более чем 32 периодов низкоприоритетного таймера, после чего процесс (если он еще способен к выполнению) помешается в конец очереди активных низкоприоритетных процессов, а диспетчер планирует выполнение следующего процесса. Сначала просматривается очередь высокоприоритетных процессов, затем - низкоприоритетных.

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

Ввод-вывод

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

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

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

Обмен по линкам осуществляется аналогично, с той разницей, что ССК имеют  фиксированные адреса в памяти 80000000 - 8000001C,g, и в процессе обмена данные не пересылаются между областями памяти, а передаются по линии связи в стартстопном режиме с квитированием байтов.

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

Передача данных по линку

Все семейства транспьютеров Т-2 (Т-212, Т-222, Т-225), Т-4 (Т-414, Т-400, Т-425), Т-8 (Т-800, Т-801. Т-805) используют один и тот же протокол передачи данных по линкам. Взаимодействие между транспьютерами осуществляется посредством обмена сообщениями, состоящими из последовательности байтов. Данные передаются по одному проводу из пары проводов. По другому проводу пары передаются подтверждения приема каждого байта.

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

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

При инициации  передачи первого байта сообщения  существует задержка на настройку каналов прямого доступа в передающем и приемном транспьютерах, что обусловливает разную скорость при передаче коротких (от единиц до нескольких десятков байтов) и длинных (несколько тысяч байтов) сообщений. В первом случае скорость составляет 2-4 Мбит/с, во втором - максимально возможную 10-20 Мбит/с, в зависимости от настройки передающего и принимающего транспьютеров.

Передача  по линку асинхронна, приемный транспьютер  не чувствителен к фазе принимаемых  сигналов. Единственное, что требуется - точный кварцевый генератор 5 МГц для задания тактовых сигналов транспьютеров.

Блок режимов  работы линков позволяет задавать скорость передачи по линкам транспьютера (5, 10, 20 Мбит/с), причем для нулевого линка скорость устанавливается независимо от остальных. Установка осуществляется подачей соответствующих уровней на входы LinkSpecial, LinkOSpecial, Linkl23Special.

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

Ожидание сигнала от блока событий

Блок событий (Event) выполняет преобразование внешних логических уровней на входе блока в байтовое сообщение со значением 0 или 1, передаваемое по внутреннему каналу. Поэтому программно блок Event воспринимается как специальный канал, отличием которого от обычного канала является то, что из этого канала можно только "читать". ССК для блока Event имеет фиксированный адрес 80000020 Ожидать ввода из канала Event может одновременно только один процесс в транспьютере.

Обычно Event используется для регистрации внешних  прерывании в транспьютерной системе. Сигнал прерывания подается на вход транспьютера EventReq. Подтверждение приема сигнала прерывания (чтение из канала Event) выдается в виде уровня 1 по линии EventAck.

Ожидание сигнала от таймера

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

Все процессы, ожидающие наступления некоторого момента времени (истечения временного интервала) помещаются в очередь  к таймеру, соответствующему их приоритету. Очередь процессов отсортирована в порядке наступления ожидаемого момента времени и организована с помощью ссылок между служебными словами в рабочей области процессов. Адрес первого процесса в очереди соответствующего приоритета содержится в служебных словах транспьютера (TPtrLocO, TPtrLocI), в младших адресах памяти. При достижении ожидаемого момента времени диспетчеру передается дескриптор соответствующего процесса для его перевода в конец очереди активных процессов.

Информация о работе Архитектура вычислительных систем