Транспьютер
Эта статья нуждается в дополнительных цитатах для проверки . ( февраль 2008 г. ) |
Эта статья написана как личное размышление, личное эссе или аргументативное эссе , в котором излагаются личные чувства редактора Википедии или представлен оригинальный аргумент по определенной теме. ( декабрь 2023 г. ) |
Транспьютер 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 . Это позволило проверить и изменить оперативную память в незагруженном транспьютере. После просмотра, за которым следовал адрес памяти, или ввода адреса и одного слова данных, транспьютер возвращался к ожиданию начальной загрузки. Этот механизм обычно использовался для отладки.
Планировщик [ править ]
Добавлена схема планирования трафика по ссылкам. Процессы, ожидающие связи, автоматически приостанавливались, пока сетевая схема завершала чтение или запись. Это время обработки будет выделено другим процессам, работающим на транспьютере. Он включал два уровня приоритета для улучшения работы в реальном времени и многопроцессорности . Одна и та же логическая система использовалась для связи между программами, работающими на одном транспьютере, реализованными в виде виртуальных сетевых каналов в памяти. Таким образом, программы, запрашивающие какой-либо ввод или вывод, автоматически приостанавливались на время завершения операции — задача, которая обычно требует, чтобы операционная система выполняла функции арбитра аппаратного обеспечения. Операционным системам на транспьютере не нужно было выполнять планирование; Можно считать, что внутри чипа находится операционная система.
Набор инструкций [ править ]
Чтобы объединить все эти функции в одном чипе, основная логика транспьютера была проще, чем у большинства процессоров. Хотя некоторые называли его компьютером с сокращенным набором команд (RISC) из-за его довольно редкой природы и поскольку в то время это было желанным маркетинговым модным словечком , он был тщательно закодирован микрокодом , имел ограниченный набор регистров и сложные инструкции между памятью. из которых он прочно входит в лагерь CISC . регистров В отличие от процессоров RISC с тяжелой загрузкой/сохранением , транспьютер имел только три регистра данных, которые вели себя как стек. Кроме того, указатель рабочей области указывал на обычный стек памяти, к которому легко получить доступ с помощью инструкций. Load Local
и Store Local
. Это позволяло очень быстро переключать контекст, просто меняя указатель рабочей области на память, используемую другим процессом (метод, используемый во многих современных разработках, таких как TMS9900 ). Содержимое стека трех регистров не сохранялось после определенных инструкций, таких как Jump, когда транспьютер мог выполнить переключение контекста.
Набор инструкций транспьютера состоял из 8-битных инструкций, собранных из кода операции и операндов полубайтов . Верхний команд полубайт содержал 16 возможных первичных кодов инструкций, что делало его одним из очень немногих коммерческих компьютеров с минимальным набором . Младший полубайт содержал один непосредственный константный операнд, обычно используемый в качестве смещения относительно указателя рабочей области (стека памяти). Две префиксные инструкции позволяли создавать константы большего размера путем добавления их младших полубайтов к операндам следующих инструкций. Дальнейшие инструкции поддерживались через код инструкции Operate ( Opr
), который декодировал постоянный операнд как расширенный опкод с нулевым операндом, обеспечивая практически бесконечное и простое расширение набора команд по мере появления новых реализаций транспьютера.
16 «основных» инструкций с одним операндом были:
Мнемоника | Описание |
---|---|
Дж | Перейти – добавить непосредственный операнд к указателю инструкции. |
ЛДЛП | Загрузить локальный указатель — загрузить указатель относительно рабочей области в верхнюю часть стека регистров. |
ПФИКС | Префикс – общий способ увеличения младшего полубайта следующей основной инструкции. |
ЛДНЛ | Загрузить нелокально — загрузить смещение значения от адреса в верхней части стека. |
НРС | Загрузить константу – загрузить константный операнд в верхнюю часть стека регистров. |
ЛДНЛП | Загрузить нелокальный указатель — адрес загрузки, смещение от вершины стека |
НФИКС | Отрицательный префикс – общий способ отрицания (и, возможно, увеличения) младшего полубайта. |
ЛПНП | Загрузить локально – смещение значения загрузки из рабочей области. |
АЦП | Добавить константу – добавить константный операнд в начало стека регистров. |
ВЫЗОВ | Вызов подпрограммы – нажатие указателя инструкции и переход |
СиДжей | Условный переход – в зависимости от значения наверху стека регистров |
AJW | Настроить рабочее пространство – добавить операнд к указателю рабочего пространства. |
эквалайзер | Равно константе – проверка, равна ли вершина стека регистров константному операнду. |
СТЛ | Хранить локально – хранить с постоянным смещением от рабочей области. |
СТНЛ | Хранить нелокально – хранить по адресу, смещенному от вершины стека. |
ОПР | Operate – общий способ расширения набора команд. |
Все эти инструкции принимают константу, представляющую смещение или арифметическую константу. Если эта константа была меньше 16, все эти инструкции кодировались одним байтом.
Первые 16 «вторичных» инструкций с нулевым операндом (с использованием основной инструкции OPR) были:
Мнемоника | Описание |
---|---|
РЕВ. | Реверс — поменять местами два верхних элемента стека регистров. |
ФУНТ | Загрузить байт |
БСУБ | Индекс байта |
ЕНДП | Завершить процесс |
РАЗНИЦА | Разница |
ДОБАВЛЯТЬ | Добавлять |
GCALL | Общий вызов — поменять местами вершину стека и указатель инструкции. |
В | Ввод – получить сообщение |
ПРОД | Продукт |
ГТ | Больше чем – единственная инструкция сравнения |
ВСУБ | Индекс слова |
ВНЕ | Выход – отправить сообщение |
СУБ | Вычесть |
СТАРТП | Начать процесс |
ВЫХОДНОЙ БАЙТ | Выходной байт – отправить однобайтовое сообщение |
АУТВОРД | Выходное слово – отправить сообщение из одного слова |
Развитие [ править ]
Чтобы обеспечить простые средства прототипирования, построения и настройки систем с несколькими транспьютерами, Inmos в 1987 году представила стандарт TRAM (TRAnsputer Module). TRAM по сути представлял собой дочернюю плату строительного блока , содержащую транспьютер и, опционально, внешнюю память и / или периферийные устройства. , с простыми стандартизированными разъемами, обеспечивающими питание, транспьютерные каналы, тактовые и системные сигналы. Были определены различные размеры TRAM: от базового размера 1 (3,66 на 1,05 дюйма) до размера 8 (3,66 на 8,75 дюйма). Inmos выпустила ряд материнских плат TRAM для различных хост-шин, таких как отраслевая стандартная архитектура (ISA), MicroChannel или VMEbus . Каналы TRAM работают со скоростью 10 Мбит/с или 20 Мбит/с. [11]
Программное обеспечение [ править ]
Транспьютеры предназначались для программирования с использованием языка программирования occam , основанного на взаимодействующих последовательных процессов (CSP) исчислении процессов . [12] Транспьютер был создан специально для работы с Occam , а не современные конструкции CISC были созданы для работы с такими языками, Паскаль или C. как Оккам поддерживал параллелизм и межпроцессное или межпроцессорное взаимодействие на основе каналов как фундаментальную часть языка. Благодаря параллелизму и средствам связи, встроенным в чип, а также языку, напрямую взаимодействующему с ним, написание кода для таких вещей, как контроллеры устройств, стало тривиальностью; даже самый простой код мог отслеживать последовательные порты на предмет ввода-вывода и автоматически переходить в режим сна при отсутствии данных.
Первоначальной средой разработки транспьютера Occam была система разработки транспьютеров Inmos D700 (TDS). Это была нестандартная интегрированная среда разработки, включающая редактор, компилятор, компоновщик и (посмертный) отладчик. TDS представлял собой транспьютерное приложение, написанное на языке Оккама. Текстовый редактор 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-битный [ править ]
Прототипом 16-битного транспьютера был S43 , в котором отсутствовал планировщик и блочная передача по каналам, управляемая DMA. На момент запуска T212 и M212 (последний со встроенным контроллером диска) были 16-битными. T212 был доступен с тактовой частотой процессора 17,5 и 20 МГц. На смену T212 пришел T222 с объемом встроенной оперативной памяти, увеличенным с 2 КБ до 4 КБ, а затем и T225 . Это добавило поддержку точек останова отладки (путем расширения инструкции " Дж 0 ") плюс несколько дополнительных инструкций из набора команд T800. И T222, и T225 работали на частоте 20 МГц.
T4: 32-битный [ править ]
Выпущенный в октябре 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: с плавающей запятой [ править ]
второго поколения Транспьютер 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 году были начаты два проекта: М212 и ТВ-игрушка . M212 был основан на стандартном ядре T212 с добавлением контроллера диска для стандартов ST 506 и ST 412 Shugart. ТВ-игрушка должна была стать основой игровой консоли и являлась совместным проектом компаний Inmos и Sinclair Research .
Каналы транспьютеров T212 и T414/T424 имели аппаратные механизмы DMA, поэтому передача могла происходить параллельно с выполнением других процессов. Вариант конструкции, получивший название T400 (не путать с более поздним транспьютером с таким же названием), был разработан, в котором эти передачи обрабатывались центральным процессором. Это значительно уменьшило размер устройства, поскольку 4-канальные механизмы имели примерно такой же размер, как и весь ЦП. T400 предназначался для использования в качестве ядра в устройствах, которые тогда назывались системами на кремнии (SOS), а теперь называются и более известны как система на кристалле (SoC). Именно эта конструкция должна была стать частью ТВ-игрушки. Проект был отменен в 1985 году.
Т100 [ править ]
Хотя предыдущие проекты SoC имели лишь ограниченный успех (некоторое время M212 продавался), многие дизайнеры все еще твердо верили в эту концепцию, и в 1987 году был запущен новый проект T100, который сочетал в себе 8-битную версию транспьютера. ЦП с настраиваемой логикой на основе конечных автоматов. Набор инструкций транспьютера основан на 8-битных инструкциях и может легко использоваться с любым размером слова, кратным 8 битам. Целевым рынком для T100 должны были стать контроллеры шины, такие как Futurebus, а также модернизация стандартных адаптеров связи (C011 и т. д.). Проект был остановлен, когда был запущен T840 (позже ставший основой T9000).
- Inmos T212, ПРЕДВАРИТЕЛЬНЫЙ
- Inmos T222, ПРЕДВАРИТЕЛЬНЫЙ
- STMicroelectronics IMST225 (Inmos T225)
- Инмос Т400
- Инмос Т414
- Инмос Т425
- Inmos T800, ПРЕДВАРИТЕЛЬНЫЙ
- STMicroelectronics IMST805 (Inmos T805)
TPCORE [ править ]
TPCORE — это реализация транспьютера, включая os-links, который работает в программируемой вентильной матрице (FPGA). [9] [14]
Т9000 [ править ]
Inmos улучшила производительность транспьютеров серии T8, выпустив T9000 (под кодовым названием H1 во время разработки). T9000 разделял большинство функций с T800, но некоторые части конструкции были перенесены в аппаратное обеспечение и добавлено несколько функций для суперскалярности поддержки . В отличие от более ранних моделей, T9000 имел настоящий высокоскоростной кэш объемом 16 КБ (с использованием случайной замены) вместо ОЗУ, но также позволял использовать его в качестве памяти и включал в себя функциональность, подобную MMU, для обработки всего этого (называемую PMI ). . Для большей скорости T9000 кэшировал 32 верхних места стека вместо трех, как в более ранних версиях.
В T9000 использовался пятиступенчатый конвейер для еще большей скорости. Интересным дополнением стал морской окунь. [15] который будет собирать инструкции из кеша и группировать их в более крупные пакеты размером до 8 байт, чтобы ускорить подачу в конвейер. Затем группы выполнялись за один цикл, как если бы это были отдельные более крупные инструкции, работающие на более быстром процессоре.
Система каналов была модернизирована до нового режима 100 МГц, но, в отличие от предыдущих систем, каналы больше не были совместимы с предыдущими версиями. Этот новый пакетный протокол связи получил название DS-Link . [16] и позже лег в основу стандарта последовательного соединения IEEE 1355 . В T9000 также было добавлено оборудование маршрутизации каналов, называемое VCP (процессор виртуальных каналов), которое превратило каналы из двухточечных в настоящую сеть, позволяя создавать любое количество виртуальных каналов на каналах . Это означало, что программам больше не нужно было знать о физическом расположении соединений. Также был разработан ряд микросхем поддержки DS-Link, в том числе 32-позиционный перекрестный переключатель C104 и адаптер канала C101 .
Длительные задержки в разработке T9000 означали, что конструкции с более быстрой загрузкой/сохранением уже превосходили его по производительности к моменту его выпуска. Ему постоянно не удавалось достичь своей собственной цели по производительности — превзойти T800 в десять раз. Когда проект был окончательно отменен, он все еще достигал лишь около 36 MIPS на частоте 50 МГц. Задержки производства породили шутку о том, что лучшей хост-архитектурой для T9000 является оверхед-проектор.
Это было слишком много для Inmos, у которой не было финансирования, необходимого для продолжения разработки. К этому времени компания была продана компании SGS-Thomson (ныне STMicroelectronics ), специализирующейся на рынке встраиваемых систем, и в конечном итоге от проекта T9000 отказались. Однако позже был произведен полностью переработанный 32-битный транспьютер серии ST20 , предназначенный для встраиваемых приложений, с использованием некоторых технологий, разработанных для T9000. Ядро ST20 было включено в наборы микросхем для телеприставок и глобальной системы позиционирования приложений (GPS).
ST20 [ править ]
Хотя ST20 и не был строго транспьютером, он находился под сильным влиянием T4 и T9 и лег в основу T450, который, возможно, был последним из транспьютеров. Миссия ST20 заключалась в том, чтобы стать многоразовым ядром на развивающемся тогда рынке SoC. Первоначальное название ST20 было Reusable Micro Core (RMC). Архитектура была основана на исходной архитектуре T4 с каналом передачи данных, управляемым микрокодом. Однако это была полная переработка с использованием VHDL в качестве языка проектирования и оптимизированным (и переписанным) компилятором микрокода. Проект был задуман еще в 1990 году, когда стало понятно, что T9 будет слишком большим для многих приложений. Фактические проектные работы начались в середине 1992 года. Было выполнено несколько пробных проектов, начиная от очень простого ЦП в стиле RISC со сложными инструкциями, реализованными в программном обеспечении посредством ловушек, до довольно сложной суперскалярной конструкции, по своей концепции схожей с алгоритмом Томасуло . Окончательный дизайн был очень похож на исходное ядро T4, хотя имелась простая группировка команд и Кэш рабочей области был добавлен для повышения производительности.
Принятие [ править ]
Хотя транспьютер был простым, но мощным по сравнению со многими современными конструкциями, он так и не приблизился к достижению своей цели — универсальному использованию как в роли процессора, так и в роли микроконтроллера. На рынке микроконтроллеров доминировали 8-битные машины, где стоимость была наиболее важным фактором. Здесь даже Т2 были слишком мощными и дорогими для большинства пользователей.
В области компьютерных настольных компьютеров и рабочих станций транспьютер был довольно быстрым (выполнял около 10 миллионов инструкций в секунду (MIPS) на частоте 20 МГц). Это была отличная производительность для начала 1980-х годов, но к тому времени, когда T800, оснащенный модулем с плавающей запятой (FPU), поступил в продажу, другие разработки RISC превзошли его. Это можно было бы в значительной степени смягчить, если бы машины использовали несколько транспьютеров, как планировалось, но T800 на момент появления стоил около 400 долларов каждый, что означало плохое соотношение цены и производительности. Было разработано несколько систем рабочих станций на базе транспьютеров; наиболее примечательным из них, вероятно, является рабочая станция Atari Transputer .
Транспьютер оказался более успешным в области массовых параллельных вычислений, где в конце 1980-х годов несколько поставщиков выпустили системы на базе транспьютеров. В их число входили Meiko Scientific (основанная бывшими сотрудниками Inmos), Floating Point Systems , Parsytec , [17] и Парсис. Несколько британских академических учреждений начали исследовательскую деятельность в области применения параллельных систем на базе транспьютеров, в том числе Бристольский транспьютерный центр Бристольского политехнического института и проект Эдинбургского университета Эдинбургский параллельный суперкомпьютерный . Кроме того, системы сбора данных и триггеры второго уровня эксперимента ZEUS по физике высоких энергий для коллайдера Hadron Elektron Ring Anlage (HERA) в DESY были основаны на сети из более чем 300 синхронно тактируемых транспьютеров, разделенных на несколько подсистем. Они контролировали как считывание показаний специальной электроники детектора, так и запуск алгоритмов реконструкции для выбора физических событий.
Возможности параллельной обработки транспьютера были использованы в коммерческих целях для обработки изображений крупнейшей в мире полиграфической компанией RR Donnelley & Sons в начале 1990-х годов. Возможность быстро преобразовывать цифровые изображения при подготовке к печати дала фирме значительное преимущество перед конкурентами. Эту разработку возглавил Майкл Бенгтсон в Технологическом центре Р. Р. Доннелли. Через несколько лет вычислительные возможности даже настольных компьютеров устранили для фирмы необходимость в специализированных многопроцессорных системах. [ нужна ссылка ]
Немецкая компания 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]
Наследие [ править ]
Этот раздел написан как личное размышление, личное эссе или аргументативное эссе , в котором излагаются личные чувства редактора Википедии или представлены оригинальные аргументы по определенной теме. ( февраль 2019 г. ) |
Растущий внутренний параллелизм стал одной из движущих сил усовершенствований традиционных конструкций ЦП. Вместо явного параллелизма на уровне потоков (который используется в транспьютере) конструкции ЦП использовали неявный параллелизм на уровне инструкций, проверяя последовательности кода на наличие зависимостей данных и выдавая несколько независимых инструкций различным исполнительным модулям. Это называется суперскалярной обработкой. Суперскалярные процессоры подходят для оптимизации выполнения последовательно создаваемых фрагментов кода. Комбинация суперскалярной обработки и спекулятивного выполнения обеспечила ощутимый прирост производительности существующих фрагментов кода, которые в основном были написаны на Паскале, Фортране, C и C++. Учитывая эти существенные и регулярные улучшения производительности существующего кода, не было особого стимула переписывать программное обеспечение на языках или стилях кодирования, которые обеспечивают больший параллелизм на уровне задач.
Тем не менее, модель взаимодействия параллельных процессоров все еще можно найти в кластерных вычислительных системах, которые доминируют в конструкции суперкомпьютеров 21 века. В отличие от транспьютерной архитектуры, процессоры в этих системах обычно используют суперскалярные процессоры с доступом к значительным объемам памяти и дискового хранилища, работающие под управлением обычных операционных систем и сетевых интерфейсов. Из-за более сложных узлов архитектура программного обеспечения, используемая для координации параллелизма в таких системах, обычно гораздо более тяжелая, чем в транспьютерной архитектуре.
Фундаментальный мотив создания транспьютеров сохраняется, но на протяжении более 20 лет он был замаскирован постоянным удвоением количества транзисторов. Неизбежно, разработчики микропроцессоров, наконец, исчерпали возможности использования больших физических ресурсов, почти в то же время, когда масштабирование технологий начало достигать своих пределов. Потребление энергии и, следовательно, необходимость рассеивания тепла делают дальнейшее тактовой частоты увеличение невозможным. Эти факторы привели отрасль к решениям, по сути мало отличающимся от предложенных Inmos.
Некоторые из самых мощных суперкомпьютеров в мире, основанные на разработках Колумбийского университета и построенные под названием IBM Blue Gene , являются реальным воплощением мечты о транспьютере. Это обширные сборки идентичных, относительно низкопроизводительных SoC.
Последние тенденции также пытались решить дилемму транзисторов способами, которые были бы слишком футуристическими даже для Inmos. Помимо добавления компонентов в кристалл ЦП и размещения нескольких кристаллов в одной системе, современные процессоры все чаще размещают несколько ядер в одном кристалле. Разработчики транспьютеров изо всех сил пытались уместить хотя бы одно ядро в транзисторный бюджет. Сегодня проектировщики, работающие над увеличением плотности транзисторов в 1000 раз, обычно могут размещать их в больших количествах. Одна из последних коммерческих разработок появилась у фирмы XMOS , которая разработала семейство встраиваемых многоядерных многопоточных процессоров, которые сильно резонируют с транспьютером и Inmos. Появляется новый класс многоядерных/многоядерных процессоров, использующих подход сети на кристалле (NoC), например процессор Cell , архитектура Adapteva Epiphany, Tilera и т. д.
Транспьютер и Inmos помогли превратить Бристоль (Великобритания) в центр микроэлектронного дизайна и инноваций.
См. также [ править ]
- Адаптева
- Дэвид Мэй (ученый-компьютерщик)
- Легкость (язык программирования)
- ИЭЭЭ 1355
- Инмос
- iWarp
- Вычислительная поверхность Meiko
Ссылки [ править ]
- ^ Аллен Кент , Джеймс Г. Уильямс (ред.) (1998) «Энциклопедия компьютерных наук и технологий», ISBN 0-8247-2292-2 , «Семейство транспьютерных продуктов» , Хамид Р. Арабния.
- ^ Привет, Энтони Дж.Г. (1 января 1990 г.). «Суперкомпьютеры с транспьютерами — прошлое, настоящее и будущее». Материалы 4-й международной конференции по суперкомпьютерам-ICS'90 . Нью-Йорк, штат Нью-Йорк, США: ACM. стр. 479–489. дои : 10.1145/77726.255192 . ISBN 0897913698 . S2CID 8612995 .
- ^ Стокер и Уайт, А. . (2000). Мехатронное кинокопирование с использованием транспьютерного управления. Мехатроника (Оксфорд), 10 (7), 773–807. https://doi.org/10.1016/S0957-4158(99)00043-4
- ^ Фуллер, Сэмюэл Х. и Миллетт, Линетт И., редакторы (2011). Будущее вычислительной мощности , CSTB, National Academic Press, стр. 84. ISBN 978-0-309-15951-7 Получено 2 ноября 2016 г.
- ^ «Приз дизайнеров принца Филиппа» . Совет дизайнеров . Проверено 1 декабря 2019 г.
- ^ Бэррон, Янн М. (1978). Д. Аспиналл (ред.). «Транспьютер» . Микропроцессор и его применение: продвинутый курс . Издательство Кембриджского университета : 343. ISBN. 0-521-22241-9 . Проверено 18 мая 2009 г.
- ^ Стейкем, Патрик Х. Архитектура аппаратного и программного обеспечения транспьютера, 2011, PRB Publishing, ASIN B004OYTS1K
- ^ Справочное руководство по транспьютеру (PDF) . Прентис-Холл . 1988. ISBN 0-13-929001-Х . Архивировано (PDF) из оригинала 9 октября 2022 г.
- ↑ Перейти обратно: Перейти обратно: а б Кадзуто Танака; Такеши Ямакава; Кадзуто Мацуи; «Проектирование и производительность сети маршрутизаторов SpaceWire с использованием CSP» .п. 2.
- ^ «Высокопроизводительные вычисления и сети: Международная конференция и выставка, Амстердам, Нидерланды, 21-23 апреля 1998 г., материалы» .Британская Колумбия О'Нил; Дж. Коулсон; К.Л. Вонг; Р. Хочкисс; Дж. Х. Нг; С. Кларк; и П.Д. Томас.«Интерфейсное устройство для поддержки распределенной параллельной системы для микропроцессора StrongARM».п. 1031.
- ^ «Техническое примечание Inmos 29: Двухканальные транспьютерные модули (TRAM)» . Транспутер.нет. 04 июля 2008 г. Проверено 12 октября 2013 г.
- ^ Боргер и Дурданович И. (1996). Корректность компиляции Оккама в транспьютерный код. Компьютерный журнал, 39 (1), 52–92. https://doi.org/10.1093/comjnl/39.1.52
- ^ Эннинг, Ник; Хебдич, Дэвид (20 марта 1986 г.). «Новый чип демонстрирует свои возможности» . Новый учёный . стр. 43–46 . Проверено 22 июня 2022 г.
- ^ «Коммуникационные архитектуры процессов 2004» .п. 361.Макото Танака; Наоя Фукучи; Ютака Ооки; и Чикара Фукунага.«Проектирование транспьютерного ядра и его реализация в FPGA».2004.
- ^ Патент на процессор Inmos T9000, «Патент США 5742783» ,
- ^ Патент Inmos DS Link, «Патент США на коммуникационный интерфейс 5341371»
- ^ Харальд В. Вабниг (20–22 сентября 1993 г.). Виртуальные каналы для безблокировочной связи в транспьютерных сетях . 1993 Всемирный транспьютерный конгресс. Ахен, Германия. п. 1047. ИСБН 9789051991406 .
- ^ «Быстрая система автоматизации реального времени ADwin» (PDF) . Архивировано из оригинала (PDF) 25 апреля 2012 г. Проверено 16 ноября 2011 г.
- ^ Эдмундс, Ник (июль 1993 г.). «Когда сталкиваются два мира». Мир персональных компьютеров .
- ^ Бангай, Шон (июль 1993 г.). Параллельная реализация системы виртуальной реальности на транспьютерной архитектуре (PDF) . Университет Родоса. Архивировано (PDF) из оригинала 9 октября 2022 г. Проверено 6 мая 2012 г.
- ^ «Платформа Мириады» . Проверено 22 августа 2011 г.
- ^ Дэвид Шемуил. «Проектирование космических систем» (PDF) . Архивировано из оригинала (PDF) 21 марта 2012 г. Проверено 22 августа 2011 г.
- ^ Т.Л. Фриман и М.К. Бэйн, « Асинхронные полиномиальные алгоритмы поиска нуля ». Параллельные вычисления 17, стр. 673-681. (1991)
- ^ Космический корабль HETE-2
Внешние ссылки [ править ]
• СУПЕРУЗЕЛ — проект ЕС Esprit-1085 (1985–1988 гг.) [1]
- Транспьютер: часто задаваемые вопросы
- Домашняя страница транспьютера Рама Минакшисундарама
- WoTUG Группа, применяющая принципы транспьютеров (например, последовательных процессов связи (CSP)) в других средах.
- Эмулятор транспьютера . Он эмулирует один транспьютер T414 (т. е. без FPU и инструкций по перезаписи) и предоставляет службы файлового и терминального ввода-вывода, которые обычно предоставляются хост-компьютерной системой.
- Эмулятор транспьютера на базе ПК . Это порт оригинального эмулятора транспьютера T414 (называемого jserver) для ПК, написанного Джулианом Хайфилдом в середине-конце 1990-х годов.
- Транспьютеры могут быть интересными.
- Виртуальная машина Transpreter. Архивировано 3 марта 2017 г. на Wayback Machine . Портативная среда выполнения для occam-pi и других языков, основанная на транспьютерном байт-коде.
- Компилятор occam Kent Retargettable. – Компилятор occam-pi.
- Transputer.net. – Документы и многое другое о транспьютере.
- Выпускники Inmos Справочник бывших сотрудников Inmos, а также фотографии и общая информация. Поддерживается Кеном Хеддингсом.
- Лауреаты Премии дизайнеров принца Филиппа с 1959 по 2009 год, веб-сайт Совета по дизайну
- Внутренние системы космического корабля HETE-2