Доклад: Траспьютеры

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

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

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

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

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

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

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

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 и связанных с типовыми научными расчетами. Идея состояла в том, чтобы ученый для сравнения быстродействия компьютеров имел индикатор, который показал бы, как успешно компьютеры справляются с достаточно широким спектром интересующих его задач. Среди этих программ имеется ряд программ с операциями над числами с плавающей точкой, векторами и тригонометрическими выражениями. При вычислении оценки определяется время выполнения на данном компьютере каждой из программ набора, и итоговая оценка представляет собой взвешенную сумму этих времен.

Одновременно фирма Inmos на базе IMS В004 начала поставлять специальную инструментальную систему TDS (транспьютерную систему разработки), которая позволяла разрабатывать и отлаживать транспьютерные программы, используя при этом доступ к программным и аппаратным ресурсам персонального компьютера. В систему входили: компилятор языка Оккам, компоновщик программ, отладчик, редактор, библиотека подпрограмм для работы с плавающей арифметикой и т.д.

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

Основное преимущество транспьютерных элементов однако состоит не в индивидуальном их применении в качестве отдельных процессоров, а в построении на их основе многопроцессорных сетевых архитектур. Имея несколько транспьютеров, можно соединять их в транспьютерные сети различной архитектуры (рисунок 4.1).

Рисунок 4.1 - Транспьютерные сети

Учитывая это обстоятельство, фирма Inmos начала выпускать двойные европлаты с несколькими транспьютерами. Наибольшее распространение получила плата IMS В003 с четырьмя транспьютерами Т414 или Т800 и 256 Кбайт локальной оперативной памяти на каждый транспьютер. Эта плата позволяла иметь уже небольшую транспьютерную сеть. Использование нескольких таких плат давало возможность расширять сеть. Для этих целей фирма выпустила конструктив с блоком питания и охлаждением, вмещающий 10 плат, т.е.40 транспьютеров. Получение различных структур сетей осуществлялось вручную с помощью специальных кабельных перемычек, соединяющих платы. Можно было увеличить размеры сети, подключая дополнительные конструктивы с транспьютерными платами, В системе ITEM 400 используется 40 транспьютеров T414-20, обеспечивающих общее быстродействие до 400 Мипс, а в системе ITEM 4000 - сорок транспьютеров Т800-20 с общим быстродействием 60 Мфлопс. В качестве системы разработки и терминала для ITEM используется персональный компьютер фирмы IBM с платой В004. Отладка и компиляция программы на языке Оккам производится на этом компьютере, а затем откомпилированная программа по кабелю со скоростью 10 Мбит/с загружается в систему ITEM и там обрабатывается в параллельном режиме на сети транспьютеров. Результаты расчетов перекачиваются в персональный компьютер для представления пользователю.

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

Среди этих фирм большого успеха добилась американская фирма Mikroway Inc., которая в 1987 г. выпустила сначала плату для PC AT (XT) с одним транспьютером и 2 Мбайтами оперативной памяти (Monoputer - Монопьютер), а затем с четырьмя транспьютерами и 1 или 2 Мбайтами оперативной памяти на транспьютер (Quadputer - Квадпьютер).

Выше отмечалась необходимость в ряде задач изменять структуру многопроцессорной сети. Для автоматической реализации такого требования фирма Inmos разработала специальный координатный коммутатор С004 с 32 входами и 32 выходами, позволяющий с помощью программного управления переключать в любом порядке 32 своих входа и выхода, обеспечивая скорость передачи данных 20 Мбит/с. Коммутатор реализован в виде интегральной схемы в керамическом корпусе размером 27х27мм с 84 выводами. Одна схема позволяет производить изменение структуры сети, содержащей до 8 транспьютеров. Для сетей с большим числом процессорных элементов на основе С004 строятся специальные каскадные схемы коммутаторов.

Источник: https://www.bibliofond.ru/detail.aspx?id=725280