Процессор гетерогенных элементов
Эта статья нуждается в дополнительных цитатах для проверки . ( сентябрь 2014 г. ) |
Процессор гетерогенных элементов ( HEP ) был представлен компанией Denelcor, Inc. в 1982 году. Архитектором HEP был Бертон Смит . Машина была разработана для решения задач гидродинамики для Лаборатории баллистических исследований . [1] Система HEP, как следует из названия, собиралась из множества разнородных компонентов — процессоров , модулей памяти данных и модулей ввода-вывода. Компоненты были соединены через коммутируемую сеть .
Одиночный процессор, называемый PEM, в системе HEP (можно было подключить до шестнадцати PEM) был довольно нетрадиционным; до пятидесяти процессов через «очередь слов состояния программы (PSW)» на аппаратном уровне можно было одновременно поддерживать . Самая большая из когда-либо поставленных систем имела 4 PEM. Восьмиэтапный конвейер инструкций позволял выполнять инструкции из восьми различных процессов одновременно. Фактически в любой момент времени в конвейере могла присутствовать только одна инструкция из данного процесса. Следовательно, полная производительность процессора в 10 MIPS может быть достигнута только тогда, когда активны восемь или более процессов; ни один процесс не может достичь производительности выше 1,25 MIPS. Этот тип многопоточной обработки классифицирует HEP как бочковый процессор . Аппаратная реализация HEP PEM представляла собой логику с эмиттерной связью .
Процессы были классифицированы как на уровне пользователя или на уровне супервизора. Процессы уровня пользователя могли создавать процессы уровня супервизора, которые использовались для управления процессами уровня пользователя и выполнения ввода-вывода. Процессы одного класса требовалось сгруппировать в одну из семи задач пользователя и семи задач супервизора.
Каждый процессор, помимо очереди PSW и конвейера команд, содержал память инструкций, 2048 64-битных регистров общего назначения и 4096 регистров констант. Регистры констант отличались тем, что только процессы-супервизоры могли изменять их содержимое. Сами процессоры не содержали памяти для данных; вместо этого модули памяти данных могут быть отдельно подключены к коммутируемой сети.
Память HEP состояла из полностью отдельной памяти инструкций (до 128 МБ) и памяти данных (до 1 ГБ). Пользователи видели 64-битные слова, но на самом деле слова памяти данных были 72-битными, а дополнительные биты использовались для состояния (см. следующий абзац), четности, тегирования и других целей.
HEP реализовал тип взаимного исключения , при котором все регистры и ячейки памяти данных ассоциировали «пустое» и «полное» состояния. Чтение из местоположения устанавливает состояние «пусто», а запись в него устанавливает состояние «полное». Программист может позволить процессам останавливаться после попытки чтения из пустого места или записи в полное место, обеспечивая соблюдение критических разделов.
Коммутируемая сеть между элементами во многом напоминала современную компьютерную сеть. В сети были наборы узлов, каждый из которых имел по три канала. Когда пакет прибыл на узел, он сверился с таблицей маршрутизации и попытался переслать пакет ближе к месту назначения. Если узел перегружен, все входящие пакеты передаются без маршрутизации. У пакетов, обработанных таким образом, повысился уровень приоритета; когда несколько пакетов соперничают за один узел, пакет с более высоким уровнем приоритета будет маршрутизироваться раньше, чем пакеты с более низким уровнем приоритета.
Другим компонентом коммутируемой сети была система sO с собственной памятью и множеством отдельных шин DEC UNIBUS, подключенных к дискам и другим периферийным устройствам. В системе также была возможность сохранять полные/пустые биты, которые обычно не видны напрямую. Было показано, что первоначальная производительность системы ввода-вывода была крайне недостаточной из-за высокой задержки при запуске операций ввода-вывода. Рон Натали (из BRL) и Бертон Смит спроектировали новую систему из запчастей на салфетках в местном стейк-хаусе и в течение следующей недели ввели ее в эксплуатацию.
Основным языком прикладного программирования HEP был уникальный вариант Фортрана . Со временем были добавлены C , Pascal и SISAL . В синтаксисе переменных данных, использующих полностью-пустые биты, перед их именем добавляется символ $. Таким образом, «A» будет называть локальную переменную, но $A будет блокирующей полностью-пустой переменной. Таким образом, была возможна взаимоблокировка приложения. Проблематично, что отказ от '$' может привести к непреднамеренной числовой неточности.
Первой операционной системой HEP была HEPOS. Майк Муусс участвовал в портировании Unix для Лаборатории баллистических исследований. HEPOS не была Unix-подобной операционной системой.
Хотя было известно, что HEP имеет низкую экономическую эффективность, он привлек внимание из-за нескольких революционных на тот момент особенностей. HEP имел производительность CDC 7600 компьютера класса эпохи Cray-1 . Системы HEP были приобретены Лабораторией баллистических исследований (четыре системы PEM) в Лос-Аламосе , Аргоннской национальной лабораторией (один PEM), Агентством национальной безопасности и немецкой компанией Messerschmitt (три системы PEMS). Denelcor также поставила университету две системы PEM. Джорджии в обмен на предоставление ими помощи в области программного обеспечения (система также была предложена Мэрилендскому университету). [2] Мессершмитт был единственным клиентом, который использовал HEP для «реальных» приложений; другие клиенты использовали его для экспериментов с параллельными алгоритмами. Система BRL использовалась для подготовки фильма с использованием программного обеспечения BRL-CAD в качестве единственного реального приложения.Были начаты более быстрые и крупные проекты ТЭЦ-2 и ТЭЦ-3, но так и не были завершены. Архитектурная концепция позже будет воплощена под кодовым названием Horizon.
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ «История вычислений в BRL» .
- ^ Падуя, Дэвид (2011). Энциклопедия параллельных вычислений, том 4 . Нью-Йорк, штат Нью-Йорк : Springer Verlag.