Смекни!
smekni.com

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

Национальный Технический Университет Украины

“Киевский политехнический институт”

РЕФЕРАТ ПО КУРСУ ВПКС

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

Выполнил: студент группы ЗКСМ-62 Марийко И.И. № зач.кн.: КВ-6210 Принял: ЗайцевВ.Г.

Киев – 2008


Транспьютер (англ. transputer) — элемент построения многопроцессорных систем, выполненный на одном кристалле большой интегральной схемы, продукт английской компании INMOS Ltd. (ныне - подразделение SGS-Thomson Microelectronics).

Термин транспьютер происходит от слов Transistor и Computer. Такой генезис должен, по мнению разработчиков, подчеркивать возможность построения сложных вычислительных комплексов на базе транспьютеров, где их роль уподоблялась бы роли транзисторов, выступающих основным элементом при проектировании электронных схем. Другая интерпретация: trans-put-er - тот, кто передаёт, указывает на присутствие встроенных скоростных устройств ввода/вывода для обмена с соседними процессорами.

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

Язык программирования Occam был разработан компанией INMOS на основе теории Хоара (англ. C.A.R.Hoare) о взаимодействии процессов. Occam является алголо-подобным языком высокого уровня; при этом язык оптимизирован с точки зрения эффективности его трансляции в систему команд транспьютера. Первоначально INMOS даже предлагала воспринимать Occam в качестве транспьютерного ассемблера, но позже выпустила пакет низкоуровневых средств для разработчиков компиляторов, а так же включила в Occam предписание GUY, позволяющее вставлять код на уровне процессора.

Транспьютеры успешно использовались в различных областях — от встроенных систем до суперЭВМ. В настоящее время транспьютеры не производятся, будучи вытесненными похожими разработками конкурентов, особенно Texas Instrument (TMS320) и Intel (80860). Принято считать, что концепция транспьютеров оказала заметное влияние на развитие микропроцессорной техники 80/90-х годов. Так, термин линк (link) - физический канал связи между параллельно работающими процессорами - пришёл из транспьютеров, а протокол транспьютерного линка стал стандартом IEEE.


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

Название этого элемента получено от сочетания слов «транзистор» и «компьютер».

Каждый такой элемент объединяет в одной микросхеме:

· обрабатывающий элемент

· систему связи

· память

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

Транспьютер – это дитя технологии СБИС. Одним из важных свойств этой технологии является то, что время обмена между модулями больше, чем время обмена между компонентами одного модуля.

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

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

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

Внутренняя архитектура транспьютера

Транспьютер (например, IMST 414) состоит из блока памяти, процессора и системы связи, соединенных 32-рарядной шиной. К этой шине также подключен интерфейс с внешней памятью. На рисунке показана схема соединений основных блоков транспьютеров IMS T 800 и IMS T 414.

ЦП транспьютера содержит 3 регистра А, В и С для работы с целыми числами и адресами, которые формируют аппаратный стек. При записи в стек содержимое регистра В записывается в С, А – в В, и лишь после этого в регистр А заносится новое значение.

При чтении из стека извлекается значение регистра А, после чего содержимое В записывается в А, а содержимое С – в В. Процессор с плавающей точкой (ППТ) содержит трехрегистровый стек для хранения промежуточных результатов при работе с числами с ПТ (вычислительный стек). Это регистры AF, BF и CF. Работа с этим стеком аналогична предыдущему.

Адреса значений переменных с ПТ формируются в стеке ЦП и эти значения передаются между адресуемыми ячейками памяти с стеком ППТ под управлением ЦП. Так как стек ЦП используется только для хранения адресов переменных с ПТ, разрядность ЦП не зависит от разрядности ППТ. Поэтому один и тот же ППТ может использоваться как в IMS T 800, так и с IMS T 212 у которых разрядность ЦП различна.

Планировщик транспьютера поддерживает 2 уровня приоритетов. Это позволяет уменьшить время на прерывание.

Последовательная обработка

Центральный процессор содержит 6 регистров, которые используются при выполнении последовательного процесса. Этими регистрами являются:

· указатель на рабочее поле, который указывает на область памяти, где хранятся локальные переменные;

· счетчик команд

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

Регистры транспьютера

Регистры А, В, и С формируют вычислительный стек и являются источником и приемником для большинства арифметических и логических операций.

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

Инструкции

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

Каждая инструкция занимает 1 байт, разделенный на 2 четырехбитных поля.

Непосредственные функции

Имеется 16 функций, у которых значение операнда находится в пределах 0 – 15. 13 из них используются для представления наиболее важных функций, выполняемых любым компьютером. Сюда входят:

load constant add constant load local point
load local store local
load non-local store non-local call
jump conditional jump

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

Для увеличения длины операндов инструкций используются еще два кода функций. Это prefix и negative prefix.

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

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

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

Косвенные функции

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

Сюда входят арифметические, логические операции и операции сравнения, такие как:

add

esclusive or

greater than

Операции, встречающиеся реже, выполняются с использованием одной префиксной операции.

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

Эффективность кодирования

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

Поддержка параллелизма