Транспьютеры

Автор работы: Пользователь скрыл имя, 05 Августа 2015 в 15:39, доклад

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

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

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

1. Введение в транспьютеры
2. Общие сведения об архитектуре транспьютера
2.1 Транспьютеры IMS Т414 и IMS Т800
2.2 Адресация транспьютеров IMS Т414 и IMS Т800
3. Особенности интерфейсов транспьютеров
4. Применение транспьютеров
Литература

Файлы: 1 файл

транспьютеры (библиофонд).rtf

— 2.89 Мб (Скачать файл)

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

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

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

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

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

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

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

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

 

2.2 Адресация транспьютеров IMS Т414 и IMS Т800

 

Адресация осуществляется с помощью указателей. Указатель, или ссылка, - это одно слово, идентифицирующее байт памяти. Указатель делится на две части: адрес слова и селектор байта. Селектор байта занимает младшие биты слова, адрес слова - старшие. Число бит, необходимых для представления селектора байта, зависит от длины слова (например, 1 бит для 16-разрядной машины, 2 бита - для 24 - и 32-разрядных машин, 4 бита - для 80-разрядных машин). Указатель считается знаковым значением (от наибольшего отрицательного числа до наибольшего положительного числа, включая 0). Такой подход позволяет по отношению к указателям применять стандартные функции сравнения точно так же, как они используются при сравнении числовых значений. Конечно, если количество байт в слове является степенью двух, тогда поле адресов является непрерывным и последовательным, и над указателями могут производиться обычные арифметические действия.

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

Для представления этих и некоторых других значений служат следующие символические имена:

MostNeg - наибольшее отрицательное значение (старший бит равен единице, остальные - нули);

MostPos - наибольшее положительное значение (старший бит равен нулю, остальные - единицы);

NotProcess. p ( - MostNeg) - зарезервированы для механизма работы планировщика.

Кроме того, при работе планировщика процессов, а также при работе с таймером используются другие отрицательные значения, производные от MostNeg. Формат команды транспьютера показан на рисунке 2.2 Длина каждой команды равна одному байту; байт делится на две части: четыре старших бита представляют собой код функции, четыре младших бита - значение данных. Такой формат позволяет представить 16 функций с диапазоном данных от 0 до 15 для каждой из них; 13 функций выделены для кодирования наиболее важных операций, включая переходы, вызовы и команды, используемые для доступа к переменным.

 

Рисунок 2.2 - Формат команды транспьютера

 

Для увеличения длины операнда любой команды вводятся две функции:

- pfix - префикс;

- nfix - отрицательный префикс.

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

Команда с префиксом pfix загружает четыре бита данных в регистр операндов, а затем сдвигает его на четыре разряда влево. Команда с nfix действует таким же образом, как и с pfix, за исключением того, что она дополняет регистр перед сдвигом. Следовательно, для расширения операнда перед ним может быть помещена последовательность из одной или более префиксных команд. Операнды в диапазоне от - 256 до 255 могут быть представлены с помощью одной префиксной команды.

Префиксные команды имеют важные свойства:

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

) позволяют представлять операнды в форме, независимой от длины слова процессора.

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

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

 

3. Особенности интерфейсов транспьютеров

 

Наиболее просто осуществляется соединение транспьютеров друг с другом. Для этого линк одного из транспьютеров подсоединяется к линку другого. К одному линку одновременно можно подсоединить только один транспьютер. Таким образом, к транспьютерам Т212, Т414 или Т800, имеющим по четыре линка, можно подключить до четырех транспьютеров. Каждый линк включает два канала, физически два провода: один канал - в одну сторону, другой - в другую (рисунок 3.1, а). Один линк может одновременно обслужить до двух пар оккамовских процессов (рисунок 3.1, б). При соединении линков происходит соединение линкового интерфейса одного транспьютера с линковым интерфейсом другого. При обмене сообщениями каналы работают в режиме прямого доступа в память каждого из соединенных транспьютеров, а процессоры транспьютеров в это время имеют возможность параллельно выполнять другие операции.

 

Рисунок 3.1 - Взаимодействие линков

 

Линки обеспечивают физическое прямое соединение на расстояние до 300 мм, т.е. в пределах одной или двух печатных плат, соединенных с помощью разъемов задней панели.

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

 

Рисунок 3.2 - Соединение линков

 

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

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

 

Рисунок 3.3 - Передача байтов по каналу линка

 

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

Сообщение по линку не зависит от фазы сигнала таймера, передача сообщения может быть организовано между транспьютером и с независимыми, но аналогичными по параметрам таймерами. Как уже отмечалось, транспьютеры Т800 и Т414 обеспечивают скорость передачи данных по линку 10 Мбит/с, дополнительно можно использовать скорость 5 Мбит/с или 20 Мбит/с. При обмене данными на большие расстояния с использованием волоконно-оптического кабеля скорость обмена падает до 5 Мбит/с.

Для подключения транспьютера через линки к другим устройствам с параллельным обменом данными фирма Inmos выпустила два специальных адаптера.

Адаптер IMS С012 позволяет подключить линк транспьютера к системной магистрали микропроцессора через 8-разрядный двунаправленный интерфейс. Имеется возможность также использовать две линии прерывания (рисунок 3.4, б).

 

Рисунок 3.4 - Адаптеры

 

Другой адаптер IMS C011 может работать в двух режимах. В режиме 1 он обеспечивает преобразование последовательных сигналов одного транспьютерного линка в два независимых байтовых сигнала, входной и выходной, с обменом в режиме квитирования (рисунок 3.4, а). Подобный преобразователь может быть использован для связи с интерфейсом типа Centronics или в качестве порта пользователя. В режиме 2 он выполняет функции адаптера IMS C012.

IMS C011 выпускается в пластмассовом или керамическом корпусе размером 37x14 мм с 28 штырьковыми выводами, IMS С012 - в пластмассовом корпусе размером 31x6,5 мм с 24 выводами.

Интерфейс внешней памяти транспьютера (EMI) используется для подключения элементов внешней оперативной памяти (для 32-разрядных транспьютеров Т414 и Т800 емкостью до 4 Гбайт), а также периферийных устройств. В последнем случае имеется возможность обеспечить прерывание транспьютера, если какое - то из подсоединенных периферийных устройств потребует обслуживания.

Кроме рассмотренных выше способов организации интерфейса, фирма Inmos предлагает осуществить прямое подсоединение к транспьютерному элементу внешних устройств с помощью специальных схем, встроенных в транспьютерный кристалл. Примером подобного подхода может служить периферийный 16-разрядный процессор IMS М212, где в рамках одного транспьютерного кристалла вместе с процессором, внутренней памятью (ПЗУ емкостью 4 Кбайт и ОЗУ емкостью 2 Кбайт) и двумя линками реализован специальный дисковый контроллер с двумя 8-разрядными портами для управления стандартным винчестерским накопителем на жестком диске или накопителями на гибких магнитных дисках.

Для управления накопителями могут использоваться как постоянные программы, записанные в ПЗУ, так и программы пользователя, загружаемые в ОЗУ.

 

4. Применение транспьютеров

 

Производство транспьютеров в 1987 г. составило несколько десятков тысяч штук в год. В 1988 г. оно поднялось до 100 тыс. штук и продолжало увеличиваться. По данным фирмы Inmos в 1989 г. выпускалось около 250 видов систем и изделий, использующих транспьютеры, дополнительно в разных странах велись исследования по более чем 1200 техническим проектам, относящимся к разным сферам применения транспьютерных элементов.

Прежде всего транспьютер может быть использован как достаточно мощный центральный микропроцессор. Оценка быстродействия процессора или компьютера - достаточно сложная проблема, быстродействие зависит от того класса задач, которые решаются на данном компьютере. Для сравнения по быстродействию часто используются наборы типовых задач, которые получили название "бенчмарки". Одним из примеров широко распространенных бенчмарок является оценка Whetstone. Эта оценка была предложена сотрудниками английской национальной физической лаборатории в начале 60-х годов. Для оценки использовался набор коротких программ, первоначально написанных на языке Алгол 60 и связанных с типовыми научными расчетами. Идея состояла в том, чтобы ученый для сравнения быстродействия компьютеров имел индикатор, который показал бы, как успешно компьютеры справляются с достаточно широким спектром интересующих его задач. Среди этих программ имеется ряд программ с операциями над числами с плавающей точкой, векторами и тригонометрическими выражениями. При вычислении оценки определяется время выполнения на данном компьютере каждой из программ набора, и итоговая оценка представляет собой взвешенную сумму этих времен.

Информация о работе Транспьютеры