stringtranslate.com

Транспьютер

транспьютерный чип T414
Базовая платформа IMSB008 с установленными модулями IMSB419 и IMSB404

Транспьютер — это серия пионерских микропроцессоров 1980-х годов, предназначенных для параллельных вычислений . Для поддержки этого каждый транспьютер имел собственную интегрированную память и последовательные каналы связи для обмена данными с другими транспьютерами. Они были разработаны и произведены Inmos , полупроводниковой компанией , базирующейся в Бристоле , Великобритания . [1]

В течение некоторого времени в конце 1980-х годов многие [2] считали транспьютер следующим великим проектом для будущего вычислений. Хотя транспьютер не оправдал этих ожиданий, архитектура транспьютера оказала большое влияние на возникновение новых идей в архитектуре компьютеров , некоторые из которых возродились в различных формах в современных системах. [3]

Фон

В начале 1980-х годов обычные центральные процессоры (ЦП) достигли предела производительности. До этого времени производственные трудности ограничивали количество схем, которые могли поместиться на чипе. Дальнейшие усовершенствования в процессе изготовления в значительной степени сняли это ограничение. В течение десятилетия чипы могли содержать больше схем, чем проектировщики знали, как использовать. Традиционные конструкции компьютеров со сложным набором команд (CISC) достигли плато производительности, и было неясно, можно ли это преодолеть. [4]

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

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

Первые проекты транспьютеров были созданы ученым-компьютерщиком Дэвидом Мэем и консультантом по телекоммуникациям Робертом Милном. В 1990 году Мэй получил почетную степень доктора наук от Университета Саутгемптона , а в 1991 году был избран членом Королевского общества и награжден медалью Паттерсона Института физики в 1992 году. Тони Фьюдж, тогда ведущий инженер в Inmos, был награжден Премией дизайнеров принца Филиппа в 1987 году за свою работу над транспьютером T414. [5]

Дизайн

Транспьютер был первым микропроцессором общего назначения, разработанным специально для использования в параллельных вычислительных системах. Целью было создание семейства чипов, различающихся по мощности и стоимости, которые можно было бы соединить вместе, чтобы сформировать полноценный параллельный компьютер. Название, образованное от « транзистор » и «компьютер » , [6] было выбрано для обозначения роли, которую будут играть отдельные транспьютеры: некоторые из них будут использоваться в качестве основных строительных блоков в более крупной интегрированной системе, так же как транзисторы использовались в более ранних разработках.

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

Транспьютер имел большой объем встроенной памяти, что делало его по сути процессором в памяти . Даже один транспьютер имел бы все схемы, необходимые для работы сам по себе, функция, более часто ассоциируемая с микроконтроллерами . Целью было позволить транспьютерам соединяться вместе как можно проще, без необходимости в сложной шине или материнской плате . Необходимо было обеспечить питание и простой тактовый сигнал , но больше ничего: оперативное запоминающее устройство (ОЗУ), контроллер ОЗУ, поддержка шины и даже операционная система реального времени (RTOS) были встроены. Таким образом, последний из транспьютеров был одиночным многоразовым микроядром (RMC) на тогдашнем формирующемся рынке SoC .

Архитектура

Первоначальный транспьютер использовал очень простую и довольно необычную архитектуру для достижения высокой производительности на небольшой площади. Он использовал микрокод в качестве основного метода управления путем передачи данных, но в отличие от других конструкций того времени, для выполнения многих инструкций требовался всего один цикл. Коды операций инструкций использовались в качестве точек входа в постоянное запоминающее устройство (ПЗУ) микрокода, а выходные данные из ПЗУ подавались непосредственно на путь данных. Для многоцикловых инструкций, пока путь данных выполнял первый цикл, микрокод декодировал четыре возможных варианта для второго цикла. Решение о том, какой из этих вариантов будет фактически использоваться, можно было принять ближе к концу первого цикла. Это позволяло выполнять очень быструю работу, сохраняя при этом общую архитектуру. [7]

Тактовая частота 20 МГц была довольно высокой для той эпохи, и проектировщики были очень обеспокоены практичностью распределения такого быстрого тактового сигнала на плате. Использовался более медленный внешний тактовый сигнал 5 МГц, и он умножался до необходимой внутренней частоты с помощью фазовой автоподстройки частоты (ФАПЧ). Внутренние тактовые сигналы фактически имели четыре неперекрывающиеся фазы , и проектировщики могли свободно использовать любую их комбинацию, какую хотели, поэтому можно было утверждать, что транспьютер фактически работал на частоте 80 МГц. Динамическая логика использовалась во многих частях конструкции для уменьшения площади и увеличения скорости. К сожалению, эти методы трудно сочетать с автоматическим тестированием сканирования генерации тестовых шаблонов , поэтому они вышли из моды для более поздних конструкций.

Прентис-Холл опубликовал книгу [8] об общих принципах работы транспьютера.

Ссылки

Базовая конструкция транспьютера включала последовательные каналы, известные как "os-link" [9] [10] , которые позволяли ему взаимодействовать с четырьмя другими транспьютерами, каждый на скорости 5, 10 или 20 Мбит/с, что было очень быстро для 1980-х годов. Любое количество транспьютеров можно было соединить вместе с помощью каналов (которые могли простираться на десятки метров), чтобы сформировать одну вычислительную ферму . Гипотетическая настольная машина могла бы иметь два транспьютера "низкого уровня", обрабатывающих задачи ввода-вывода (I/O) на некоторых из своих последовательных линий (подключенных к соответствующему оборудованию), в то время как они взаимодействовали с одним из своих более крупных собратьев, выступая в качестве ЦП на другом.

Существовали ограничения на размер системы, которую можно было построить таким образом. Поскольку каждый транспьютер был связан с другим в фиксированной схеме точка-точка, отправка сообщений на более удаленный транспьютер требовала, чтобы сообщения передавались каждым чипом в линии. Это приводило к задержке с каждым «прыжком» по каналу, что приводило к большим задержкам в больших сетях. Для решения этой проблемы Inmos также предоставил коммутатор с нулевой задержкой, который соединял до 32 транспьютеров (или коммутаторов) в еще более крупные сети.

Загрузка

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

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

Система также включала «специальные» длины кода 0 и 1, которые были зарезервированы для PEEK и POKE . Это позволяло проверять и изменять ОЗУ в незагруженном транспьютере. После peek, за которым следовал адрес памяти, или poke с адресом и одним словом данных, транспьютер возвращался к ожиданию загрузки. Этот механизм обычно использовался для отладки.

Планировщик

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

Набор инструкций

Чтобы включить все эти функции в один чип, основная логика транспьютера была проще, чем у большинства ЦП. Хотя некоторые называли его компьютером с сокращенным набором команд (RISC) из-за его довольно разреженной природы, и потому что это было тогда желаемым маркетинговым словом , он был сильно микрокодирован , имел ограниченный набор регистров и сложные инструкции «память-память», все из которых прочно помещали его в лагерь CISC . В отличие от RISC-ЦП с большим количеством регистров загрузки/хранения , транспьютер имел только три регистра данных, которые вели себя как стек. Кроме того, указатель рабочей области указывал на обычный стек памяти, легко доступный через инструкции Load Localи Store Local. Это позволяло очень быстро переключать контекст , просто изменяя указатель рабочей области на память, используемую другим процессом (метод, используемый в ряде современных разработок, таких как TMS9900 ). Содержимое стека трех регистров не сохранялось после определенных инструкций, таких как Jump, когда транспьютер мог выполнить переключение контекста.

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

16 «основных» однооперандных инструкций были следующими:

Все эти инструкции принимают константу, представляющую смещение или арифметическую константу. Если эта константа была меньше 16, все эти инструкции кодировались в один байт.

Первые 16 «вторичных» инструкций с нулевым операндом (использующих первичную инструкцию OPR) были:

Разработка

Пустая материнская плата B008
Выбор ТРАМВАЕВ

Чтобы обеспечить простое средство прототипирования, построения и настройки многотранспьютерных систем, Inmos представила стандарт TRAM (TRAnsputer Module) в 1987 году. TRAM по сути был дочерней платой- строительным блоком , включающей транспьютер и, опционально, внешнюю память и/или периферийные устройства, с простыми стандартизированными разъемами, обеспечивающими питание, транспьютерные связи, тактовые и системные сигналы. Были определены различные размеры TRAM, от базового размера 1 TRAM (3,66 дюйма на 1,05 дюйма) до размера 8 (3,66 дюйма на 8,75 дюйма). Inmos выпустила ряд материнских плат TRAM для различных хост-шин, таких как Industry Standard Architecture (ISA), MicroChannel или VMEbus . Соединения TRAM работают на скорости 10 Мбит/с или 20 Мбит/с. [11]

Программное обеспечение

Транспьютеры были предназначены для программирования с использованием языка программирования occam , основанного на исчислении процессов взаимодействия последовательных процессов (CSP) . [12] Транспьютер был создан специально для работы с Occam , в отличие от современных конструкций CISC, которые были созданы для работы с такими языками, как Pascal или C. Occam поддерживал параллелизм и канальную межпроцессорную или межпроцессорную связь как фундаментальную часть языка. Благодаря параллелизму и коммуникациям, встроенным в чип, и языку, взаимодействующему с ним напрямую, написание кода для таких вещей, как контроллеры устройств, стало тривиальностью; даже самый простой код мог следить за последовательными портами для ввода-вывода и автоматически засыпал, когда не было данных.

Первоначальная среда разработки Occam для транспьютера была Inmos D700 Transputer Development System (TDS). Это была неортодоксальная интегрированная среда разработки, включающая редактор, компилятор, компоновщик и (посмертный) отладчик. TDS было приложением транспьютера, написанным на Occam. Текстовый редактор TDS был примечателен тем, что он был сворачивающимся редактором , позволяющим скрывать и открывать блоки кода, чтобы сделать структуру кода более очевидной. К сожалению, сочетание незнакомого языка программирования и столь же незнакомой среды разработки не сделало ничего для ранней популярности транспьютера. Позже Inmos выпустит более традиционные кросс-компиляторы Occam, Occam 2 Toolsets .

Реализации более распространенных языков программирования, таких как C, FORTRAN , Ada , Forth и Pascal, также были позже выпущены как Inmos, так и сторонними поставщиками. Они обычно включали расширения языка или библиотеки, предоставляющие, менее элегантным способом, параллелизм в стиле Оккама и канальную связь.

Отсутствие поддержки виртуальной памяти транспьютером препятствовало портированию основных вариантов операционной системы Unix , хотя порты Unix-подобных операционных систем (таких как Minix и Idris от Whitesmiths ) были созданы. Продвинутая Unix-подобная распределенная операционная система Helios также была разработана специально для многотранспьютерных систем компанией Perihelion Software .

Реализации

Первые транспьютеры были анонсированы в 1983 году и выпущены в 1984 году.

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

Все транспьютеры работали от внешнего тактового сигнала частотой 5 МГц; он умножался для обеспечения тактовой частоты процессора.

Транспьютер не имел блока управления памятью (MMU) или системы виртуальной памяти .

Варианты транспьютерных процессоров (за исключением отмененного T9000) можно разделить на три группы: 16-битная серия T2 , 32-битная серия T4 и 32-битная серия T8 с поддержкой 64-битных чисел с плавающей точкой IEEE 754 .

T2: 16-бит

Inmos T225 матрица

Прототипом 16-битного транспьютера был S43 , в котором отсутствовали планировщик и DMA-управляемая передача блоков по ссылкам. На момент запуска T212 и M212 (последний с контроллером диска на плате) были 16-битными предложениями. T212 был доступен с тактовой частотой процессора 17,5 и 20 МГц. T212 был заменен T222 , с расширенной с 2 ​​КБ до 4 КБ оперативной памятью на кристалле, и, позднее, T225 . Это добавило поддержку отладки- точек останова (путем расширения инструкции "Дж 0") плюс некоторые дополнительные инструкции из набора инструкций T800. Оба процессора T222 и T225 работали на частоте 20 МГц.

T4: 32-битный

Inmos T425 матрица

Выпущенный в октябре 1985 года, T414 использовал эквивалент 900 000 транзисторов и был изготовлен с размером элемента 1,5 микрометра . Это была 32-битная конструкция, способная обрабатывать 32-битные блоки данных и адресовать до 4 ГБ основной памяти. [13] Первоначально первым 32-битным вариантом должен был быть T424 , но трудности производства привели к тому, что он был переработан в T414 с 2 КБ встроенной оперативной памяти вместо предполагаемых 4 КБ. T414 был доступен в вариантах 15 и 20 МГц. Позднее ОЗУ было восстановлено до 4 КБ в T425 (в вариантах 20, 25 и 30 МГц), который также добавилДж 0Поддержка точек останова и дополнительных инструкций T800. T400 , выпущенный в сентябре 1989 года, был недорогим производным от T425 с частотой 20 МГц, 2 КБ и двумя вместо четырех ссылок, предназначенным для рынка встраиваемых систем .

T8: с плавающей точкой

Inmos T805 матрица

Транспьютер второго поколения T800 , представленный в 1987 году, имел расширенный набор инструкций. Самым важным дополнением был 64-битный блок с плавающей точкой (FPU) и три дополнительных регистра для плавающей точки, реализующих стандарт плавающей точки IEEE 754-1985 . Он также имел 4 КБ встроенной оперативной памяти и был доступен в версиях 20 или 25 МГц. Поддержка точек останова была добавлена ​​в более поздних T801 и T805 , первый из которых имел отдельные шины адреса и данных для повышения производительности. T805 также был позже доступен как часть 30 МГц.

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

Компания Inmos также производила различные вспомогательные микросхемы для процессоров транспьютерных вычислений, такие как 32-канальный коммутатор связи C004 и «адаптеры связи» C011 и C012 , которые позволяли подключать каналы связи транспьютерных вычислений к 8-битной шине данных.

Т400

Частью первоначальной стратегии Inmos было сделать процессоры настолько маленькими и дешевыми, чтобы их можно было объединить с другой логикой в ​​одном устройстве. Хотя система на кристалле (SoC), как их обычно называют, сейчас распространена повсеместно, эта концепция была почти неслыханной в начале 1980-х годов. Два проекта были начаты примерно в 1983 году: M212 и TV-toy . M212 был основан на стандартном ядре T212 с добавлением контроллера диска для стандартов ST 506 и ST 412 Shugart. TV-toy должен был стать основой для игровой консоли и был совместным проектом Inmos и Sinclair Research .

Связи в транспьютере T212 и T414/T424 имели аппаратные DMA-движки, чтобы передачи могли происходить параллельно с выполнением других процессов. Вариант конструкции, названный T400, не путать с более поздним транспьютером с тем же названием, был разработан, где ЦП обрабатывал эти передачи. Это значительно уменьшило размер устройства, поскольку 4 звена были примерно того же размера, что и весь ЦП. T400 предназначался для использования в качестве ядра в том, что тогда называлось системами на кремниевых (SOS) устройствах, теперь называемых и более известных как система на кристалле (SoC). Именно эта конструкция должна была стать частью TV-toy. Проект был отменен в 1985 году.

Т100

Хотя предыдущие проекты SoC имели лишь ограниченный успех (M212 продавался некоторое время), многие проектировщики все еще твердо верили в эту концепцию, и в 1987 году был начат новый проект T100, который объединил 8-битную версию транспьютерного ЦП с настраиваемой логикой на основе конечных автоматов. Набор инструкций транспьютера основан на 8-битных инструкциях и может легко использоваться с любым размером слова, кратным 8 битам. Целевым рынком для T100 должны были стать контроллеры шин, такие как Futurebus, и обновление для стандартных адаптеров связи (C011 и т. д.). Проект был остановлен, когда был запущен T840 (позже ставший основой T9000).

TPCORE

TPCORE — это реализация транспьютера, включая os-links, которая работает в программируемой пользователем вентильной матрице (FPGA). [9] [14]

Т9000

Компьютерный чип со снятой крышкой, на котором виден кремниевый кристалл, установленный под углом
Транспьютер T9000 со снятой крышкой, демонстрирующей кремниевый кристалл

Inmos улучшил производительность транспьютеров серии T8, представив T9000 (кодовое название H1 во время разработки). T9000 разделял большинство функций с T800, но перенес несколько частей дизайна в аппаратное обеспечение и добавил несколько функций для поддержки суперскаляра . В отличие от более ранних моделей, T9000 имел настоящий высокоскоростной кэш объемом 16 КБ (использующий случайную замену) вместо ОЗУ, но также позволял использовать его в качестве памяти и включал функциональность, подобную MMU, для обработки всего этого (называвшуюся PMI ). Для большей скорости T9000 кэшировал верхние 32 ячейки стека вместо трех, как в более ранних версиях.

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

T9000 использовал пятиступенчатый конвейер для еще большей скорости. Интересным дополнением был группировщик [15] , который собирал инструкции из кэша и группировал их в более крупные пакеты до 8 байт для более быстрой подачи на конвейер. Затем группы завершались за один цикл, как если бы они были отдельными большими инструкциями, работающими на более быстром процессоре.

Система связи была модернизирована до нового режима 100 МГц, но в отличие от предыдущих систем, связи больше не были совместимы вниз. Этот новый пакетный протокол связи был назван DS-Link [ 16] и позже лег в основу стандарта последовательного соединения IEEE 1355. T9000 также добавил аппаратное обеспечение маршрутизации связи, называемое VCP (Virtual Channel Processor), которое изменило связи с точки зрения «точка-точка» на настоящую сеть, что позволило создавать любое количество виртуальных каналов на связях. Это означало, что программам больше не нужно было знать о физической компоновке соединений. Также был разработан ряд микросхем поддержки DS-Link, включая 32-канальный коммутатор C104 и адаптер связи C101 .

Длительные задержки в разработке T9000 привели к тому, что более быстрые конструкции загрузки/хранения уже превосходили его к моменту выпуска. Он постоянно не мог достичь своей собственной цели по производительности — превзойти T800 в десять раз. Когда проект был окончательно отменен, он все еще достигал лишь около 36 MIPS на частоте 50 МГц. Задержки производства породили шутку о том, что лучшей архитектурой хоста для T9000 был проектор.

Это было слишком много для Inmos, у которой не было необходимого финансирования для продолжения разработки. К этому времени компания была продана SGS-Thomson (теперь STMicroelectronics ), чьей целью был рынок встраиваемых систем, и в конечном итоге проект T9000 был заброшен. Однако позже был произведен полностью переработанный 32-битный транспьютер, предназначенный для встраиваемых приложений, серия ST20 , с использованием некоторых технологий, разработанных для T9000. Ядро ST20 было включено в чипсеты для телеприставок и приложений глобальной системы позиционирования (GPS).

СТ20

Хотя ST20 не был строго транспьютером, на него сильное влияние оказали T4 и T9, и он лег в основу T450, который, возможно, был последним из транспьютеров. Миссия ST20 заключалась в том, чтобы стать повторно используемым ядром на тогдашнем формирующемся рынке SoC. Первоначальное название ST20 было Reusable Micro Core (RMC). Архитектура была основана на оригинальной архитектуре T4 с микрокодом, управляемым путем передачи данных. Однако это была полная переработка с использованием VHDL в качестве языка проектирования и с оптимизированным (и переписанным) компилятором микрокода. Проект был задуман еще в 1990 году, когда стало ясно, что T9 будет слишком большим для многих приложений. Фактическая работа по проектированию началась в середине 1992 года. Было сделано несколько пробных проектов, начиная от очень простого ЦП в стиле RISC со сложными инструкциями, реализованными в программном обеспечении с помощью ловушек, до довольно сложной суперскалярной конструкции, схожей по концепции с алгоритмом Томасуло . Окончательный дизайн выглядел очень похожим на оригинальное ядро ​​T4, хотя для повышения производительности были добавлены некоторые простые группировки инструкций и кэш рабочей области .

Принятие

Компьютер на базе транспьютера (слева)

Хотя транспьютер был простым, но мощным по сравнению со многими современными разработками, он так и не приблизился к достижению своей цели — универсального использования в роли как ЦП, так и микроконтроллера. На рынке микроконтроллеров доминировали 8-битные машины, где стоимость была самым серьезным соображением. Здесь даже T2 были слишком мощными и дорогими для большинства пользователей.

В области настольных компьютеров и рабочих станций транспьютер был довольно быстрым (работая со скоростью около 10 миллионов инструкций в секунду (MIPS) на частоте 20 МГц). Это была превосходная производительность для начала 1980-х годов, но к тому времени, когда T800 был оснащен блоком с плавающей точкой (FPU), другие RISC-проекты превзошли его. Это можно было бы в значительной степени смягчить, если бы машины использовали несколько транспьютеров, как и планировалось, но T800 стоили около 400 долларов за штуку при выпуске, что означало плохое соотношение цены и производительности. Было разработано несколько систем рабочих станций на основе транспьютеров; наиболее заметной, вероятно, была Atari Transputer Workstation .

Транспьютер был более успешным в области массивных параллельных вычислений, где несколько поставщиков производили системы на основе транспьютеров в конце 1980-х годов. К ним относятся Meiko Scientific (основанная бывшими сотрудниками Inmos), Floating Point Systems , Parsytec , [17] и Parsys. Несколько британских академических учреждений основали исследовательскую деятельность в области применения параллельных систем на основе транспьютеров, включая Bristol Transputer Centre Бристольского политехнического института и Edinburgh Concurrent Supercomputer Project Эдинбургского университета . Кроме того, системы сбора данных и запуска второго уровня эксперимента по физике высоких энергий ZEUS для коллайдера Hadron Elektron Ring Anlage (HERA) в DESY были основаны на сети из более чем 300 синхронно тактируемых транспьютеров, разделенных на несколько подсистем. Они управляли как считыванием специальной электроники детектора, так и запускали алгоритмы реконструкции для выбора физических событий.

Параллельные возможности обработки транспьютера были введены в коммерческое использование для обработки изображений крупнейшей в мире типографской компанией RR Donnelley & Sons в начале 1990-х годов. Возможность быстро преобразовывать цифровые изображения при подготовке к печати дала фирме значительное преимущество перед конкурентами. Эту разработку возглавил Майкл Бенгтсон в технологическом центре RR Donnelley. Через несколько лет возможности обработки даже настольных компьютеров положили конец необходимости в специализированных многопроцессорных системах для фирмы. [ необходима цитата ]

Немецкая компания Jäger Messtechnik использовала транспьютеры для своих ранних продуктов ADwin для сбора и управления данными в реальном времени . [18]

Французская компания построила суперкомпьютер Archipel Volvox с 144 транспьютерами T800 и T400. Он управлялся Silicon Graphics Indigo2 под управлением UNIX и специальной картой, которая подключалась к объединительным платам Volvox.

Транспьютеры также нашли применение в анализаторах протоколов, таких как Siemens/Tektronix K1103, и в военных приложениях, где архитектура массива подходила для таких приложений, как радары, а последовательные каналы связи (которые были высокоскоростными в 1980-х годах) хорошо зарекомендовали себя для экономии средств и веса в подсистемах связи.

Транспьютер также появился в продуктах, связанных с виртуальной реальностью, таких как система ProVision 100, созданная компанией Division Limited из Бристоля, включающая комбинацию процессоров Intel i860 , 80486/33 и Toshiba HSP, вместе с транспьютерами T805 или T425, реализующими механизм рендеринга , к которому затем можно было получить доступ как к серверу с помощью ПК , Sun SPARCstation или систем VAX . [19] [20]

Myriade , европейская миниатюрная спутниковая платформа, разработанная Astrium Satellites и CNES и используемая такими спутниками, как Picard , основана на T805, выдающем около 4 MIPS, и, как планируется, будет находиться в производстве примерно до 2015 года. [21] [22]

Асинхронная работа коммуникаций и вычислений позволила разработать асинхронные алгоритмы, такие как алгоритм Бэйна «Асинхронный полиномиальный нулевой поиск». [23] Область асинхронных алгоритмов и асинхронная реализация текущих алгоритмов, вероятно, сыграют ключевую роль в переходе к экзафлопсным вычислениям .

Космический аппарат High Energy Transient Explorer 2 (HETE-2) использовал 4 транспьютера T805 и 8 процессоров DSP56001, обеспечивая производительность около 100 миллионов инструкций в секунду (MIPS). [24]

Наследие

Растущий внутренний параллелизм был одной из движущих сил улучшений в традиционных конструкциях ЦП. Вместо явного параллелизма на уровне потоков (как используется в транспьютере) конструкции ЦП использовали неявный параллелизм на уровне инструкций, проверяя последовательности кода на предмет зависимостей данных и выдавая несколько независимых инструкций различным исполнительным устройствам. Это называется суперскалярной обработкой. Суперскалярные процессоры подходят для оптимизации выполнения последовательно построенных фрагментов кода. Сочетание суперскалярной обработки и спекулятивного выполнения обеспечило ощутимый рост производительности существующих фрагментов кода, которые в основном были написаны на языках Pascal, Fortran, C и C++. Учитывая эти существенные и регулярные улучшения производительности существующего кода, было мало стимулов переписывать программное обеспечение на языках или в стилях кодирования, которые раскрывают больше параллелизма на уровне задач.

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

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

Некоторые из самых мощных суперкомпьютеров в мире, основанные на проектах Колумбийского университета и построенные как IBM Blue Gene , являются реальными воплощениями мечты о транспьютерах. Они представляют собой огромные сборки идентичных, относительно низкопроизводительных SoC.

Недавние тенденции также пытались решить дилемму транзистора способами, которые были бы слишком футуристическими даже для Inmos. Помимо добавления компонентов к кристаллу ЦП и размещения нескольких кристаллов в одной системе, современные процессоры все чаще размещают несколько ядер в одном кристалле. Разработчики транспьютеров изо всех сил пытались втиснуть хотя бы одно ядро ​​в свой бюджет транзисторов. Сегодня разработчики, работающие с 1000-кратным увеличением плотности транзисторов, теперь обычно могут разместить много. Одна из последних коммерческих разработок появилась от фирмы XMOS , которая разработала семейство встраиваемых многоядерных многопоточных процессоров, которые сильно резонируют с транспьютером и Inmos. Существует новый класс многоядерных/многоядерных процессоров, использующих подход сети на кристалле (NoC), таких как процессор Cell , архитектура Adapteva Epiphany, Tilera и т. д.

Транспьютер и Inmos помогли превратить Бристоль (Великобритания) в центр микроэлектронного проектирования и инноваций.

Смотрите также

Ссылки

  1. ^ Аллен Кент , Джеймс Г. Уильямс (ред.) (1998) «Энциклопедия компьютерной науки и технологий», ISBN  0-8247-2292-2 , «Семейство продуктов Transputer», Хамид Р. Арабния.
  2. ^ Эй, Энтони Дж. Г. (1990-01-01). "Суперкомпьютерные вычисления с транспьютерами — прошлое, настоящее и будущее". Труды 4-й международной конференции по суперкомпьютерам — ICS '90 . Нью-Йорк, США: ACM. стр. 479–489. doi :10.1145/77726.255192. ISBN 0897913698. S2CID  8612995.
  3. ^ Стокер, и Уайт, А. . (2000). Мехатронное копирование кинопленки с использованием транспьютерного управления. Мехатроника (Оксфорд), 10(7), 773–807. https://doi.org/10.1016/S0957-4158(99)00043-4
  4. ^ Fuller, Samuel H. & Millett, Lynette I., Editors (2011). Будущее производительности вычислений , CSTB, National Academic Press, стр. 84. ISBN 978-0-309-15951-7 Получено 2 ноября 2016 г. 
  5. ^ "Премия дизайнеров принца Филиппа". Совет по дизайну . Получено 01.12.2019 .
  6. ^ Barron, Iann M. (1978). D. Aspinall (ред.). "Транспьютер". Микропроцессор и его применение: продвинутый курс . Cambridge University Press : 343. ISBN 0-521-22241-9. Получено 18.05.2009 .
  7. ^ Стэкем, Патрик Х. Архитектура аппаратного и программного обеспечения транспьютера, 2011, PRB Publishing, ASIN B004OYTS1K
  8. ^ Transputer Reference Manual (PDF) . Prentice-Hall . 1988. ISBN 0-13-929001-X. Архивировано (PDF) из оригинала 2022-10-09.
  9. ^ аб Кадзуто Танака; Сатоши Иванами; Такеши Ямакава; Чикара Фукунага; Кадзуто Мацуи; Такаси Ёсида. «Проектирование и производительность сети маршрутизаторов SpaceWire с использованием CSP». п. 2.
  10. ^ "Высокопроизводительные вычисления и сети: Международная конференция и выставка, Амстердам, Нидерланды, 21-23 апреля 1998 г. Труды". BC O'Neill; G Coulson; KL Wong; R Hotchkiss; JH Ng; S Clark; и PD Thomas. "Устройство интерфейса для поддержки распределенной параллельной системы для микропроцессора StrongARM". стр. 1031.
  11. ^ "Техническое примечание Inmos 29: Двухрядные транспьютерные модули (TRAM)". Transputer.net. 2008-07-04 . Получено 2013-10-12 .
  12. ^ Боргер, и Дурданович, И. (1996). Корректность компиляции Оккама в транспьютерный код. Computer Journal, 39(1), 52–92. https://doi.org/10.1093/comjnl/39.1.52
  13. ^ Эннинг, Ник; Хебдич, Дэвид (1986-03-20). «Новый чип демонстрирует свои возможности». New Scientist . С. 43–46 . Получено 22 июня 2022 г.
  14. ^ "Архитектура коммуникационных процессов 2004". стр. 361. Макото Танака; Наоя Фукучи; Ютака Ооки; и Чикара Фукунага. "Проектирование ядра транспьютера и его реализация в ПЛИС". 2004.
  15. ^ Патент на процессор Inmos T9000, "Патент США 5742783",
  16. ^ Патент Inmos DS Link, «Патент США на интерфейс связи 5341371»
  17. ^ Харальд В. Вабниг (20–22 сентября 1993 г.). Виртуальные каналы для бесконфликтной связи в транспьютерных сетях. Всемирный транспьютерный конгресс 1993 г. Аахен, Германия. стр. 1047. ISBN 9789051991406.
  18. ^ "ADwin Fast Real-Time Automation System" (PDF) . Архивировано из оригинала (PDF) 2012-04-25 . Получено 2011-11-16 .
  19. ^ Эдмундс, Ник (июль 1993 г.). «Когда сталкиваются два мира». Мир персональных компьютеров .
  20. ^ Бангай, Шон (июль 1993 г.). Параллельная реализация системы виртуальной реальности на транспьютерной архитектуре (PDF) . Университет Родса. Архивировано (PDF) из оригинала 2022-10-09 . Получено 2012-05-06 .
  21. ^ "Платформа Myriade" . Получено 2011-08-22 .
  22. ^ Дэвид Шемуил. "Проектирование космических систем" (PDF) . Архивировано из оригинала (PDF) 2012-03-21 . Получено 2011-08-22 .
  23. ^ TL Freeman и MK Bane, " Асинхронные полиномиальные алгоритмы поиска нуля ". Parallel Computing 17, стр. 673-681. (1991)
  24. ^ Космический аппарат HETE-2

Внешние ссылки

• СУПЕРУЗЕЛ - Проект ЕС Esprit-1085 (1985-1988) [1]