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

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

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

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

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

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

T0
T1
T2
T3
б
B0
B1
B2
A0
A1
A2
Координатный переключатель
в
а
T0
T1
T2
T3
T4
T5
T6
T7
T8


Структурные схемы соединений в транспьютерной системе

Язык программирования Оккам (англ. Occam) — это процедурный язык параллельного программирования высокого уровня, разработанный в начале 1980-х годов группой учёных из Оксфорда под руководством Дэвида Мэя (англ. David May) по заданию английской компании INMOS Ltd. в рамках работ по созданию транспьютеров. Назван в честь английского философа XIV века Уильма Оккамского, а его сентенция, известная как бритва Оккама, является девизом проекта.

Между языком Оккам и транспьютерами существует непосредственная связь: INMOS-транспьютеры спроектированы так, чтобы объекты и конструкции Occam’а реализовывались в их системе команд наилучшим образом. Фактически, транспьютер является «кремниевой реализацией» языка Оккам. Долгое время INMOS утверждала, что транспьютерам не требуется система программирования типа «ассемблер», так как её вполне заменяет Occam.

Тем не менее, Оккам является типичным языком высокого уровня, синтаксически похожим на Паскаль или Си. В основе языка лежит так называемая CSP (англ.)-концепция (концепция взаимодействующих последовательных процессов), разработанная Ч. Хоаром. В сущности, CSP — это формализм для описания соответствующей вычислительной модели, достаточно выразительный, чтобы на нём можно было записывать и доказывать теоремы, и достаточно мощный и однозначный, чтобы являться языком программирования (известно несколько реализаций). Согласно CSP, сначала вводится множество элементарных событий (алфавит), затем из них конструируются процессы, причём, из только что описанных процессов можно строить новые. Процессы, протекающие параллельно, обмениваются информацией, используя безбуферный обмен информацией типа «рандеву» между парой (и только парой) процессов посредством специального объекта — канала. При взаимодействии тот участник обмена, который обратился к каналу первым, ожидает готовности партнёра (точки рандеву); при наступлении последней инициируется обмен. Использование общей для нескольких параллельных процессов памяти в CSP не допускается.

Канал 0
Канал 2
Канал 1
Канал 3
Центральный процессор
Блок внутренней памяти


Рисунок 2.2.2 – Структурная схема внутренней организации транспьютерного элемента


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: