Национальный исследовательский ядерный университет «МИФИ»
Опубликован: 03.03.2010 | Доступ: свободный | Студентов: 5335 / 1307 | Оценка: 4.35 / 3.96 | Длительность: 24:14:00
ISBN: 978-5-9963-0267-3
Специальности: Разработчик аппаратуры
Лекция 13:

Многопроцессорные и многомашинные вычислительные системы

< Лекция 12 || Лекция 13: 123 || Лекция 14 >

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

Для построения многопроцессорных систем могут быть использованы специально разработанные процессоры, называемые транспьютерами. Они были созданы в середине 1980-х годов фирмой INMOS Ltd (ныне - подразделение STMicroelecTRoniCS).

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

Транспьютер включает в себя средства для выполнения вычислений (ЦП, АЛУ с плавающей точкой, внутрикристальную память) и 4 канала для связи (линка) с другими транспьютерами и/или другими устройствами. Каждый линк представляет собой 2 однонаправленных последовательных канала передачи информации. Встроенный интерфейс позволяет подключать внешнюю память емкостью до 4 Гбайт (рис. 13.5).

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

Рис. 13.5. Структура транспьютера

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

Структуры многопроцессорных систем на базе транспьютеров

Рис. 13.6. Структуры многопроцессорных систем на базе транспьютеров

Организация транспьютеров и многопроцессорных систем на их основе базируется на языке Occam, специально разработанном в начале 1980-х годов группой ученых из Оксфорда под руководством Дэвида Мэя по заданию компании INMOS в рамках работ по созданию транспьютеров. Отметим основные характеристики этого языка с точки зрения его применения для программирования транспьютерных систем:

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

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

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

Помимо интересных возможностей, связанных с построением мультипроцессорных систем без привлечения дополнительного оборудования, в транспьютерах были реализованы идеи, направленные на повышение их вычислительной мощности. Среди них хотелось бы отметить то, что блок регистров транспьютера организован в виде стека. Это привело к использованию преимущественно безадресной системы команд, что обеспечило даже более высокую производительность, чем RISC-архитектура. Второй момент, который следует выделить, - это одновременное исполнение группы, в которую входило до 8 команд, что обеспечивало полную загрузку устройств процессора. И все это было реализовано в конце 1980-х годов, задолго до появления EPIC и Itanium.

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

  • производительность: 200 MIPS, 25 MFLOPS (на 64-разрядном процессоре с плавающей точкой);
  • емкость внутрикристальной памяти: 16 Кбайт;
  • скорость обмена по линку: 100 Мбит/с.

В середине 1990-х, в эпоху расцвета микропроцессоров этого семейства, фирма INMOS помимо собственно транспьютеров поставляла широкий набор трэмов (TRem - TRansputer Extension Module) - устройств ввода-вывода с линком в качестве интерфейса. В частности, поставлялись трэмы, позволявшие подключить к транспьютеру через линк адаптеры Ethernet или SCSI. В целях увеличения числа физических связей был разработан программируемый коммутатор, осуществляющий передачу сообщения с любого из 32 входов на любой из 32 выходов.

Транспьютеры успешно использовались в различных областях от встроенных систем до суперЭВМ. Однако технология транспьютеров серьезного развития не получила, так как начиная с Pentium Pro в универсальные микропроцессоры введена возможность соединения процессоров в микропроцессорную систему, что обесценило главное преимущество транспьютеров - возможность построения многопроцессорных систем без дополнительных аппаратных затрат. В настоящее время транспьютеры не производятся, они вытеснены похожими разработками конкурентов, особенно Texas INsTRuments (TMS320) и Intel (80860).

Краткие итоги. В лекции представлена классификация Флинна систем многопроцессорной обработки данных, основанная на понятии потока, а также классификация многопроцессорных и многомашинных вычислительных систем на основе степени разделения вычислительных ресурсов системы. Рассмотрены структура и особенности работы SMP-, NUMA-, MPP-систем, а также кластеров. Описан специальный класс микропроцессоров - транспьютеры, созданный для построения мультипроцессорных систем.

< Лекция 12 || Лекция 13: 123 || Лекция 14 >
Владислав Салангин
Владислав Салангин

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

Михаил Королёв
Михаил Королёв