C.mmp

C.mmp системой с была первой несколькими инструкциями и несколькими данными ( MIMD ), многопроцессорной разработанной в Университете Карнеги-Меллона (CMU) Уильямом Вульфом (1971). Обозначение C.mmp произошло от обозначения PMS Гордона Белла и Аллена Ньюэлла . [1] где центральный процессор (ЦП) обозначался как C , вариант обозначался точечной записью, а mmp обозначал Multi-Mini-Processor . По состоянию на 2020 год [update], машина выставлена в CMU, в Wean Hall, на девятом этаже.
Структура [ править ]
шестнадцать миникомпьютеров Digital Equipment Corporation PDP-11 В качестве элементов обработки, называемых вычислительными модулями (CM), в системе использовались . Каждый КМ имел локальную память объемом 8К и локальный набор периферийных устройств. Одна из проблем заключалась в том, что устройство было доступно только через уникальный подключенный процессор, поэтому система ввода-вывода (разработанная Роем Левином) скрывала возможность подключения устройств и направляла запросы на хост-процессор. Если процессор выходил из строя, устройства, подключенные к его Unibus, становились недоступными, что становилось проблемой общей надежности системы. К процессору 0 ( загрузочному процессору ) были подключены дисководы.
Каждый из вычислительных модулей разделял следующие пути связи:
- Межпроцессорная шина - используется для распределения общесистемных сообщений о синхронизации, прерываниях и управлении процессом между CM.
- 16x16 Перекрестный переключатель – используется для подключения 16 CM с одной стороны и 16 банков общей памяти с другой. Если бы все 16 процессоров обращались к разным банкам памяти, все обращения к памяти были бы одновременными. Если бы два или более процессора пытались получить доступ к одному и тому же банку памяти, одному из них был бы предоставлен доступ в одном цикле, а остальные были бы согласованы в последующих циклах памяти.
Поскольку PDP-11 имел 16-битное логическое адресное пространство , был добавлен еще один блок трансляции адресов, чтобы расширить адресное пространство до 25 бит для пространства общей памяти. Архитектура Unibus предусматривала 18 бит физического адреса , а два старших бита использовались для выбора одного из четырех регистров перемещения, которые выбирали банк памяти. Правильное управление этими регистрами было одной из проблем программирования операционной системы (ОС) ядра .
В исходной конструкции C.mmp использовалась память на магнитных сердечниках , но со временем стала доступна более производительная динамическая память с произвольным доступом (RAM), и система была модернизирована.
Исходными процессорами были процессоры PDP-11/20, но в окончательной системе использовались только пять из них; Остальные 11 были процессорами PDP-11/40, которые были модифицированы за счет дополнительного записываемого пространства микрокода. [ нужна ссылка ] Все модификации этих машин были спроектированы и построены в КМУ.
Большинство модификаций 11/20 представляли собой специальные изменения в проводной объединительной плате , но поскольку PDP-11/40 был реализован в микрокоде , была разработана отдельная плата proc-mod , которая перехватывала определенные инструкции и реализовывала требования защищенной операционной системы. Например, для целостности операционной системы было необходимо, чтобы регистр указателя стека никогда не был нечетным. 20 ноября это было сделано путем обрезки вывода к младшему биту стекового регистра. 40 ноября любой доступ к стеку перехватывался платой proc-mod и генерировал ловушку незаконного доступа к данным , если младший бит был равен 1.
Операционная система [ править ]
Операционная система (ОС) получила название Hydra . Это была возможностях , основанная на объектно-ориентированная , многопользовательская и микроядерная система . Системные ресурсы были представлены в виде объектов и защищены с помощью возможностей.
ОС и большая часть прикладного программного обеспечения были написаны на языке программирования BLISS -11, который требовал кросс-компиляции на PDP-10 . ОС использовала очень мало языка ассемблера .
Среди языков программирования, доступных в системе, был вариант ALGOL 68 , который включал расширения, поддерживающие параллельные вычисления , позволяющие эффективно использовать C.mmp. ALGOL Компилятор работал в операционной системе Hydra.
Надежность [ править ]
Поскольку общая надежность системы зависела от работы всех 16 процессоров, возникли серьезные проблемы с общей надежностью оборудования. Если среднее время наработки на отказ (MTBF) одного процессора составляло 24 часа, то общая надежность системы составляла 16/24 часа, или около 40 минут. В целом система обычно работала от двух до шести часов. [2] Многие из этих сбоев были вызваны сбоями синхронизации во многих специальных схемах, добавленных в процессоры. Большие усилия были затрачены на повышение надежности оборудования, и когда процессор заметно выходил из строя, его выделяли и проводили диагностику в течение нескольких часов. Когда он прошел первый набор диагностики, он снова был разделен как процессор ввода-вывода и не запускал код приложения (но его периферийные устройства теперь были доступны); он продолжал проводить диагностику. Если он проходил их еще через несколько часов, он восстанавливался в качестве полноправного члена набора процессоров. Аналогично, если блок памяти (одна страница) был обнаружен как неисправный, он удалялся из пула доступных страниц, и до тех пор, пока не будет получено иное уведомление, ОС будет игнорировать эту страницу. Таким образом, ОС стала ранним примером отказоустойчивой системы, способной справляться с неизбежно возникающими аппаратными проблемами.
Ссылки [ править ]
- ^ Белл, К. Гордон (1981). Компьютерные структуры: чтения и примеры . МакГроу-Хилл. ISBN 978-0070043572 . OCLC 633760282 .
- ^ «Слабосвязанные мультипроцессоры» . www.edwardbosworth.com . Проверено 11 сентября 2018 г.
- Вульф, Вашингтон ; Белл, CG (1972). C.mmp: Мультимини-процессор (PDF) (Отчет). Университет Карнеги-Меллон (CMU).
- Белл, КГ ; Бродли, В.; Вульф, Вашингтон; Ньюэлл, А .; Пирсон, К. (1971). C.mmp: Мультиминипроцессорный компьютер CMU: требования и обзор первоначального проекта (PDF) (отчет). Университет Карнеги-Меллон (CMU).
- Вульф, Вм. А.; Харбисон, SP III (2000). «Отражение в пуле процессоров: отчет об опыте работы с C.mmp/Hydra» . Чтения по компьютерной архитектуре . Профессиональное издательство Персидского залива. стр. 561–573. ISBN 9781558605398 .
- Вульф, Вм. А.; Харбисон, Сэмюэл П. III; Левин, Рой (1 января 1981 г.). HYDRA/C.mmp: экспериментальная компьютерная система . МакГроу-Хилл. ISBN 978-0070721203 . )