C.mmp - C.mmp

Блок памяти C.mmp с тремя видимыми стойками, включая переднюю панель поперечного переключателя.

В C.mmp был ранним несколько инструкций, несколько данных (MIMD ) мультипроцессор система разработана в Университет Карнеги Меллон (CMU) автор: Уильям Вульф (1971). Обозначение C.mmp произошло от обозначения PMS Гордон Белл и Аллен Ньюэлл,[1] где центральное процессорное устройство (CPU) был обозначен как C, вариант отмечен точечным обозначением, и mmp постоять за Мульти-мини-процессор. По состоянию на 2020 год, машина выставлена ​​на выставке CMU, в Wean Hall, на девятом этаже.

Структура

Шестнадцать Корпорация цифрового оборудования PDP-11 миникомпьютеры использовались в качестве элементов обработки, названных в системе вычислительными модулями (CM). Каждый CM имел локальную память 8K и локальный набор периферийный устройств. Одна из проблем заключалась в том, что устройство было доступно только через его уникальный подключенный процессор, поэтому ввод, вывод (I / O) система (разработанная Рой Левиен ) скрыл возможность подключения устройств и направил запросы процессору хостинга. Если процессор вышел из строя, подключенные к нему устройства Юнибус стал недоступен, что стало проблемой для общей надежности системы. Процессор 0 ( ботинок процессор) были подключены дисководы.

Каждый из вычислительных модулей разделял эти пути связи:

  • Межпроцессорная шина - используется для распределения общесистемной синхронизации, прерываний и сообщений управления процессами между CM
  • А 16x16 поперечный переключатель - используется для подключения 16 CM с одной стороны и 16 банков Общая память с другой. Если бы все 16 процессоров обращались к разным банкам памяти, все обращения к памяти были бы одновременными. Если два или более процессора пытались получить доступ к одному и тому же банку памяти, одному из них будет предоставлен доступ в одном цикле, а об остатке будет согласовываться в последующих циклах памяти.

Поскольку PDP-11 имел логический адресное пространство Для 16-битного размера была добавлена ​​еще одна единица трансляции адресов, чтобы расширить адресное пространство до 25 бит для общего пространства памяти. В Юнибус архитектура предоставила 18 бит Физический адрес, а два старших бита использовались для выбора одного из четырех регистров перемещения, которые выбирали банк памяти. Правильное управление этими регистрами было одной из проблем программирования Операционная система (ОПЕРАЦИОННЫЕ СИСТЕМЫ) ядро.

Использована оригинальная конструкция C.mmp магнитная память, но в течение срока службы более высокая динамика производительности оперативная память (RAM) стала доступной, и система была обновлена.

Оригинальные процессоры были PDP-11/20.[2] процессоры, но в финальной системе использовалось только пять из них; остальные 11 были PDP-11/40[3] процессоры, которые были модифицированы за счет наличия дополнительного записываемого пространства микрокода. Все модификации этих машин были спроектированы и построены на КМУ.

Большинство модификаций 11/20 были пользовательскими изменениями в проволочный объединительная плата, но поскольку PDP-11/40 был реализован в микрокод, отдельный прок-мод Плата была спроектирована так, чтобы перехватывать определенные инструкции и реализовывать требования защищенной операционной системы. Например, для целостности операционной системы было необходимо, чтобы регистр указателя стека никогда не был лишним. На 20 ноября это было сделано путем отсечения ведущего до младшего бита регистра стека. На 11/40 любой доступ к стеку был перехвачен платой proc-mod и вызвал незаконный доступ к данным. ловушка если младший бит был 1.

Операционная система

В Операционная система (ОС) была названа Гидра. Это было способность -основан, объектно-ориентированный, многопользовательский, а микроядро. Системные ресурсы были представлены как объекты и защищены с помощью возможностей.

ОС и большинство программное обеспечение было написано в язык программирования БЛАЖЕНСТВО -11, что требовало кросс-компиляция на PDP-10. ОС использовала очень мало язык ассемблера.

Среди языков программирования, доступных в системе, был АЛГОЛ 68 вариант с расширениями, поддерживающими параллельные вычисления, чтобы эффективно использовать C.mmp. АЛГОЛ компилятор работает на Hydra OS.

Надежность

Поскольку общая надежность системы зависела от работы всех 16 процессоров, возникали серьезные проблемы с общей надежностью оборудования. Если среднее время наработки на отказ (MTBF) одного процессора составляло 24 часа, тогда общая надежность системы составляла 16/24 часа, или около 40 минут. В целом система обычно работала от двух до шести часов.[4] Многие из этих сбоев были вызваны сбоями синхронизации во многих пользовательских схемах, добавленных к процессорам. Были приложены большие усилия для повышения надежности оборудования, и когда процессор заметно выходил из строя, он был разбит на разделы и запускал диагностику в течение нескольких часов. Когда он прошел первый набор диагностик, он был снова разделен на Процессор ввода / вывода и не запускал код приложения (но теперь были доступны его периферийные устройства); он продолжил диагностику. Если они проходили через несколько часов, он восстанавливался как полноправный член набора процессоров. Точно так же, если блок памяти (одна страница) был обнаружен как неисправный, он был удален из пула доступных страниц, и до тех пор, пока не будет получено иное уведомление, ОС проигнорирует эту страницу. Таким образом, ОС стала ранним примером отказоустойчивой система, способная решать неизбежно возникающие аппаратные проблемы.

Рекомендации

  1. ^ Белл, К. Гордон (1981). Компьютерные структуры: чтения и примеры. Макгроу-Хилл. ISBN  978-0070043572. OCLC  633760282.
  2. ^ "PDP-11/20 - Вики по истории компьютеров". Gunkies.org. Получено 2020-07-31.
  3. ^ "PDP-11/40 - Вики по истории компьютеров". Gunkies.org. Получено 2020-07-31.
  4. ^ "Слабосвязанные мультипроцессоры". www.edwardbosworth.com. Получено 2018-09-11.