Русский | English   поискrss RSS-лента

Главная  → Документы и публикации  → Материалы конференций  → Материалы Международной конференции Sorucom-2017  → Сервисный процессор МВК Эльбрус-1 и Эльбрус-2

Сервисный процессор МВК Эльбрус-1 и Эльбрус-2

Введение

В 1970-х годах в ИТМ и ВТ им. С. А. Лебедева АН СССР разворачивались работы по реализации Технического задания (ТЗ) на многопроцессорные вычислительные комплексы (МВК) Эльбрус-1 и Эльбрус-2. Как часть общей работы коллективом разработчиков сразу нескольких подразделений института создавались различные устройства – центральные процессоры (ЦП), процессоры ввода-вывода (ПВВ), процессоры передачи данных (ППД). Для этих сложнейших устройств требовалось создавать и инженерные пульты, с помощью которых операторы (в качестве которых выступали инженеры-наладчики) могли управлять работой процессоров и получать информацию об их состоянии. Однако в ТЗ на МВК Эльбрус была сформулирована задача создания универсального инженерного пульта (УИП), который мог бы концентрировать в себе возможности работы сразу с несколькими различными устройствами МВК. Очень скоро стало понятно, что без включения в состав УИП некоторого интеллектуального устройства, работу по интеграции автономных пультов выполнить не удастся.

В результате в 1978 году перед коллективами разработчиков аппаратуры и системного программного обеспечения ИТМ и ВТ, возглавлявшимися д.т.н. В. Н. Лаутом и д.ф.-м.н. Д. Б. Подшиваловым, директором института членом-корреспондентом АН СССР и главным конструктором МВК Эльбрус-1 и Эльбрус-2 В. С. Бурцевым была поставлена задача разработать и реализовать на практике интеллектуальный универсальный инженерный пульт МВК, построенный на новых для того времени принципах. В то время разработка и самих вычислительных машин, и инженерных пультов для них была в самом разгаре, однако, эти пульты были для того времени традиционными, то есть представляли собой наборы большого количества небольших неоновых лампочек, загоравшихся, если представляемый ими разряд внутренних регистров или триггеров имел единичное значение. С помощью размещенных на этих пультах органов управления (кнопок, переключателей и тумблеров) инженеры имели возможность передавать на присоединенные устройства МВК управляющие воздействия (рис. 1).

Традиционный пульт ЦП МВК Эльбрус-2

Рис. 1. Традиционный пульт ЦП МВК Эльбрус-2.

Задача, сформулированная главным конструктором, заключалась в том, чтобы в стандартном конструктиве МВК Эльбрус создать небольшую однопроцессорную ЭВМ, обеспечив ей доступ к той же информации, что передается традиционным пультам различных процессоров МВК, то есть пультам центральных процессоров, процессоров передачи данных и процессоров ввода-вывода. Выбранный универсальный подход дал название новой ЭВМ, она получила имя «Универсальный инженерный пульт МВК Эльбрус» – УИП. Одновременно главным конструктором было указано, что новый цифровой пульт должен работать совместно с включаемой в состав МВК аппаратурой контроля технического состояния комплекса (АКТС) и уметь контролировать состояние всех других аппаратных компонентов МВК, в частности, различных видов устройств оперативной памяти – коммутаторов памяти (ЭКМ) и отдельных хранящих модулей (УП4К).

Работа началась с определения общего облика новой вычислительной машины. У коллектива был уже опыт разработки больших машин – 32- и 64-разрядных, но в этот раз было понятно, что такая большая машина просто не поместится в отведенное для нее конструктивное пространство. Предполагалось, что разрабатываемый сервисный процессор должен разместиться в одном шкафу с АКТС, просто доступ к нему должен обеспечиваться с другой стороны шкафа, в котором размещались две поворотные рамы – с одной стороны для АКТС, с другой стороны для УИП. На таком пространстве с учетом возможностей имевшейся в то время элементной базы можно было попробовать реализовать только 16-разрядную машину с относительно небольшой оперативной памятью. Впрочем, все были уверены, что этой разрядности вполне хватит для решения всех поставленных задач.

Руководители аппаратного и программного отделов создали совместную группу для выработки общей структуры процессора УИП и определения его системы команд. От аппаратчиков в группу вошел сам В. Н. Лаут и один из его инженеров В. М. Фельдман, который должен был впоследствии руководить разработкой аппаратуры. От программистов первичной разработкой были заняты Д. Б. Подшивалов, Л. Е. Карпов, С. В. Нестеров и А. П. Черняев. Каждый из шести участников группы готовил собственные предложения по системе команд новой ЭВМ. Сравнение результатов проводилось по тому, насколько экономно в той или иной системе можно было выразить внутренний цикл основной задачи, которую предстояло решать универсальному интеллектуальному инженерному пульту – извлечению нескольких несмежных разрядов из входного шлейфа информации от ЦП МВК и формированию его внешнего цифрового представления на экране УИП. Несмежность разрядов была указана в условии не случайно. Например, последовательность некоторых разрядов нулевого слова стека ЦП МВК в этом шлейфе (в МВК Эльбрус-1 он состоял из 2072 разрядов) поступала в УИП на позициях 777, 785, 336. 344, 128 и далее в таком же хаотичном порядке.

Было понятно, что при работе с памятью необходимо обеспечить адресацию с точностью до отдельного разряда. У коллектива ИТМ и ВТ АН СССР уже был опыт разработки ЭВМ с такой точностью адресации, поэтому все соревновавшиеся между собой участники разработки предлагали свои варианты системы команд с учетом таких возможностей. На окончательном обсуждении было решено, что самую красивую систему команд предложил В. Н. Лаут. Однако коллективным решением она была отвергнута, так как выигрывая у всех при программировании внутреннего цикла, она явно проигрывала в тех фрагментах программ, которые предполагали реализацию относительно универсальной схемы обработки информации. В результате группа остановила свой выбор на системе команд, близкой к системе PDP-11 [1], которую, однако, необходимо было существенно модифицировать для работы с одноразрядными объектами.

На проектируемой ЭВМ предстояло создать программную систему наладки и ремонта всех устройств, составляющих МВК Эльбрус-1 и Эльбрус-2 [2-3].

Архитектура сервисного процессора УИП МВК Эльбрус

Кроме уже понятных требований к методам управления оперативной памятью разработчики аппаратуры сервисного процессора УИП МВК Эльбрус основной своей задачей видели обеспечение высокой надежности разрабатываемой ЭВМ. Действительно, эта машина разрабатывалась для проведения технического обслуживания, наладки и ремонта компонентов аппаратуры МВК Эльбрус сразу двух модификаций. Эффективность подобных мероприятий серьезным образом влияет на общее время доступности контролируемого оборудования для его пользователей. Быстрая, надежная, достоверная проверка оборудования, малое время ремонта оборудования прямо влияют на общее время простоя МВК, как и на время его работы в условиях неполных конфигураций. Разработчики аппаратуры УИП понимали, что перед ними, как и перед всеми разработчиками МВК Эльбрус стоят следующие цели [4]:

Сервисный процессор УИП [4-8] должен был прямо способствовать повышению коэффициента готовности вычислительной системы путем уменьшения времени восстановления отказавшего устройства. Его особенностью, отличавшей его от подобных сервисных процессоров, разработанных к тому времени для разных ЭВМ, была необходимость функционирования в составе многопроцессорных комплексов. От самого УИП требовалось добиться достижения всех целей, стоящих перед сервисным процессором, самыми минимальными средствами, используя минимально возможный аппаратный центральный процессор УИП, относительно небольшую оперативную память (64К 16-разрядных слов) для хранения собственных программ и данных, минимум собственных внешних устройств.

Прежде всего, разработчики, взяв за образец PDP-11, приняли решение отбросить догматы о совместимости и необходимости точно копировать этот образец в своей работе, ведь никакого заимствования программного обеспечения в проекте не предполагалось. Была существенно модифицирована система команд, в частности, исключены команды умножения и деления, реализация которых заметно увеличила бы аппаратные издержки. Команды были разные по размеру, от 1-го до 3-х двухбайтовых слов, и всего реализованы были только 7 полноценных двухадресных команд:

Некоторое количество команд также были реализованы в полноадресном виде, но имели только один операнд, например:

Как для двухадресных, так и для одноадресных команд структура адреса в команде была одинаковой, на адрес отводилось 6 разрядов, три из них использовались для указания типа адресации, а оставшиеся три предназначались для хранения номера используемого регистра, которых в аппаратуре УИП было реализовано 8 (с номерами от 0 до 7). Регистры с номерами 6 и 7 могли использоваться как самые обычные регистры общего назначения, но аппаратура использовала их для своих специальных функций: регистр R7 выполнял функции счетчика команд (именно по его содержимому на каждом шаге работы центрального процессора УИП выбиралась очередная команда), а регистр R6 играл роль указателя системного стека (при возникновении прерывания адрес, хранящийся на регистре R6, использовался для записи связующей информации – адреса возврата из прерывания и регистра состояния процессора).

Все регистры, как общего назначения, так и специальные, имели свое отображение в оперативной памяти (табл. 1).

Адрес оперативной памяти

Назначение

Пояснение

0x0000 0 Нулевое значение
0x0001-0x0007   Тумблерные регистры пульта УИП
0x0008-0x000D R0-R5 Первые пять регистров общего назначения
0x000E R6 (SP) Шестой регистр общего назначения (регистр стека)
0x000F R7 (PC) Седьмой регистр (регистр счетчика команд)
0x0010-0x0017 RS0-RS7 Восемь теневых регистров адреса
0x0020-0x002F РАН0-РАН15 Регистры адресов начала обмена с каналом 0-15
0x0030-0x003F РАК0-РАК15 Регистры адресов конца обмена с каналом 0-15
0x0040-0x004F РУК0-РУК15 Регистры управления обменом с каналом 0-15
0x0050 PS Регистр состояния процессора УИП
0x0051 TIME Регистр счетчика времени
0x0052 CTRT  
0x0080-0x00BF ВПЕ Вектора экстракодов (по два слова на экстракод)
0x00C0-0x00DF ВПК Вектора прерываний от каналов 0-15
0x00F8-0x00F9 ВПТ Вектор прерывания по таймеру
0x00FC-0x00FD ВПБТ Вектор прерывания по биту T (TRAP)
0x0100   Адрес программы инициализации АДСИ
0x0104-0x0123   Адреса глобальных программ и данных АДСИ
0x0124-0x27FF   Программы и локальные данные АДСИ
0x2800-0xBFFF   Программы и данные СРП ПУЛЬТ

Таблица 1. Распределение оперативной памяти в УИП

Использование содержимого регистра, номер которого фигурировал в адресной части команды, зависело от вида указанной для него адресации. Для разных видов адресации в качестве исполнительного адреса использовалось:

Команды перехода с возвратом (JSR) и конца цикла (SOB) были полутораадресными: их первым операндом мог быть только номер регистра общего назначения (от 0 до 7). Команда возврата из подпрограммы (RTS) в качестве своего единственного операнда могла иметь только регистр общего назначения, а команда возврата из прерывания (RTI) была безадресной.

Для организации локальных условных переходов в систему команд был вставлен полный набор команд, с помощью которых можно было строить переходы по любой комбинации значений разрядов NZVC регистра состояния процессора (PS). Эти разряды устанавливались в 0 или в 1 многими командами и предназначались для хранения признаков результата:

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

Важнейшим изменением, внесённым в архитектуру и систему команд ЦП УИП по сравнению с системой PDP-11, стала возможность работы не только с двухбайтовыми словами и отдельными байтами, как это часто делается в других вычислительных машинах, но также с тетрадами (группами по 4 разряда) и отдельными разрядами.

В состав регистров ЦП УИП были введены 8 теневых адресных регистров, которые предназначались для хранения базовых адресов. Все полноадресные команды (как двухадресные, так и одноадресные) получили возможность работать в модифицированном режиме адресации, для чего в коде операций всех таких команд выделялся 1 разряд. Таким образом, код операции двухадресной команды становился 4-разрядным, а код операции одноадресной команды занимал 10 разрядов, из которых 4 старших разряда могли содержать только нулевой код или код, равный 8, для варианта формирования модифицированного исполнительного адреса. Предполагалось, что обычный регистр при работе с модифицированным адресом должен содержать смещение относительно базового адреса из теневого регистра с тем же номером. Смещение занимало младшие 14 разрядов в регистре, в то время, как два старших разряда отводились для хранения размера адресуемого элемента:

Формирование исполнительного адреса для всех видов адресации, кроме самого простого, который предполагал использование значения непосредственно из регистра общего назначения, происходило путем косого сложения содержимого теневого регистра и индекса с выдвижением уточняющих разрядов индекса (0, одного, двух или четырех) вправо. В зависимости от вида адресации индексирующее значение бралось из обычного регистра или из памяти, что позволяло строить и использовать таблицы индексирующих значений.

Устройство обмена УИП МВК Эльбрус

Эскизный проект МВК Эльбрус не содержал конкретной концепции сервисного процессора. Само название устройства – «Универсальный инженерный пульт» – свидетельствует о том, что изначально предполагалось просто создать аппаратное средство, объединяющее каналы наладочной информации процессоров различного типа в одном устройстве. Именно поэтому работа над УИП была поручена отделу В. Н. Лаута, в котором перед этим был разработан стенд УПИП (Устройство памяти инженерного пульта), использовавшийся при автономной наладке процессоров МВК. Инженеры наладчики использовали УПИП для размещения в нём коротких тестовых программ, но стенд содержал и несколько ячеек памяти для данных.

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

По предложению А. Е. Ширая было принято и реализовано решение, при котором:

  1. устройство обмена содержало 16 одинаковых каналов с прямым доступом к памяти;
  2. каждый канал обеспечивал управление контроллером, к которому можно подключать не менее шестнадцати внешних устройств;
  3. была предусмотрена зашита памяти от переполнения буферов обмена.

Каждый канал имел 3 регистра управления и выделенный вектор прерывания. Два регистра описывали буфер обмена – регистры адреса начала (РАН) и адреса конца (РАК) буфера. Значение, хранящееся в регистре РАН в процессе обмена после завершения обмена одним словом УИП, увеличивалось на 1, указывая на очередную ячейку буфера. Совпадение значений регистров РАН и РАК при записи последнего слова в память приводило к выработке запроса на прерывание ЦП и сигнала завершения обмена, поступающего в контроллер, присоединённый к каналу. Третий регистр (РУК) предназначался для выдачи управляющих сигналов каналу и его устройствам. Этот регистр содержал следующие поля:

  1. код операции («Пуск») и признак занятости устройства (4 разряда);
  2. номер устройства в канале (4 разряда);
  3. приоритет прерывания от канала (3 разряда);
  4. маску прерывания (1 разряд);
  5. код состояния/ошибки (4 разряда), специфичный для каждого типа устройств.

Контроллеры типовых устройств передавали управляющую информацию еще и в пакетах данных.

Пропускная способность интерфейса канала в точности соответствовала пропускной способности памяти УИП. При этом для экономии оборудования были использованы четырёхбитные линии передачи команд и данных. Приоритет по обменам задавался в аппаратуре. Более медленные устройства (например, клавиатура) имели более высокий приоритет, чем быстрые каналы, которые могли подолгу занимать память системы.

Такая организация устройства обмена позволила существенно упростить наладку контроллеров и создание драйверов устройств. Для запуска обмена в цикле (для первичной отладки разработчики не использовали ничего сложнее осциллографа), достаточно было обновить информацию в регистре РАН, записать команду в регистр РУК и дождаться сброса бита занятости устройства. Такую программу было несложно ввести в память непосредственно в машинных кодах, что и делалось при наладке первых контроллеров – ФСМ (ввод перфоленты), параллельного порта АЦД VT-340, а затем и контроллера канала дисковода абонентского пульта – АП 5070. Как только отладка этих каналов была завершена, УИП превратился в «персональную» мини ЭВМ. Такое преображение весьма обрадовало разработчиков и дало им возможность перенести ранее разработанный А. Е. Шираем на имитационном комплексе УИП на БЭСМ-6 тестовый монитор (ТМ) ДИНАЛ (диалог наладчика), позволявший создавать, сохранять и выполнять программы, предназначенные для отладки устройств, драйверов, загрузки и выполнения других программ, тестов, рабочих программ.

Лишь после этого началась работа по наладке контроллеров для специализированных устройств МВК, а также разработка резидентного системного программного обеспечения УИП. Были реализованы контроллеры:

  1. ФСМ (FS-1500) (Чехословакия)
  2. Текстовый терминал – Videoton VT-340, затем VDT 52100 (Венгрия)
  3. Канал абонентского пульта. (блок гибких 7-дюймовых дисков – АП-5070, магнитофон АП).
  4. Стандартный канал ЕС ЭВМ (пишущая машинка Consul (Польша), АЦПУ ЕС-7032, ЕС-7036, ЕС-7040), к стандартному каналу можно было подключить и стойку дисков, доступных из МВК, что увязывало систему в единый комплекс;
  5. Абонент ЕС ЭВМ – стандартный канал УИП (связь с АКТС), стандартный канал ПВВ;
  6. Контроллер дисплеев ЕС-7920 (до 16 устройств).
  7. ЦП МВК – 10 каналов индикации;
  8. ЦП МВК – 10 каналов управления (пуск, останов, установка режимов работы);
  9. ПВВ МВК – 4 канала индикации/управления;
  10. ППД МВК – 16 каналов индикации/управления.

Разработкой и отладкой первых контроллеров занимались В. М. Фельдман и А. Е. Ширай, которым поначалу помогали сотрудники Загорского электро-механического завода (ЗЭМЗ), где изготавливался Эльбрус. При этом вся тяжесть наладки УИП легла на плечи всё тех же основных разработчиков УИП МВК Эльбрус.

Заключение

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

УИП как мини-ЭВМ создавался с большим трудом. В СССР было недостаточно налажено производство периферии для малых машин: гибких дисков, накопителей на магнитной ленте и прочего. Имевшиеся периферийные устройства работали ненадёжно.

Базовая идея, которую развивали разработчики УИП, заключалась в том, что сверхнадежный сервисный процессор не внесет существенную добавку в наработку на отказ всего МВК, но значительно сократит время восстановления. Однако МВК Эльбрус не проектировался под использование сервисного процессора, поэтому эффективность использования УИП ставилась многими под сомнение. Был взят интерфейс традиционного инженерного пульта и сериализован для ввода в УИП, в то время, как на самом деле надо было дорабатывать внутреннюю архитектуру МВК Эльбрус.

Проделанная работа во многом была пионерской для ИТМ и ВТ АН СССР. Её сутью была разработка ЭВМ класса мини, сопровождавшаяся освоением технологии сервисного процессора, которая только-только появилась на Западе. Еще не было интерфейсов типа JTAG (работа над спецификацией началась в конце 1970-х годов, а появилась она в 1985 году, когда работа по разработке УИП была завершена), не было 16-ти разрядных микропроцессоров (работа над Intel 8086 также началась в 1976 году). Лишь намного позднее появилась возможность использовать микропроцессорные наборы отечественного производства.

Группа разработчиков аппаратуры и программного обеспечения отлично справилась с поставленной перед ними задачей. Был разработан полный комплект технической документации, в соответствии с которой Загорский электро-механический завод изготовил мелкую серию экземпляров УИП. Один из них был установлен в ИТМ и ВТ АН СССР и использовался для разработки программного обеспечения, а также для проведения опытных работ по наладке и ремонту первого образца МВК Эльбрус-1.

Литература

  1. http://bitsavers.informatik.uni-stuttgart.de/pdf/dec/pdp11/

  2. Л. Е. Карпов, Программная система – Универсальный инженерный пульт МВК «Эльбрус», М., ИТМ и ВТ АН СССР, препринт № 13, 24 с., 1984.

  3. Л. Е. Карпов, А. Е. Ширай, Программное обеспечение сервисного процессора МВК Эльбрус-1 и Эльбрус-2. В этом издании.

  4. В. М. Фельдман, Структура, алгоритмы работы и пути использования сервисного процессора для технического обслуживания многопроцессорного вычислительного комплекса. Автореферат диссертации на соискание ученой степени кандидата технических наук, М., ИТМ и ВТ АН СССР, 22 с., 1987.

  5. А. Н. Болдов, Л. Х. Ротастикова, В. М. Фельдман, А. Е. Ширай, Универсальный инженерный пульт МВК «Эльбрус», М., ИТМ и ВТ АН СССР, препринт № 1, 17 с., 1982.

  6. В. М. Фельдман, Аппаратно-программная система технического обслуживания многопроцессорного вычислительного комплекса, в кн: Тез. конф. молодых специалистов и членов НТОРЭС им. А. С. Попова, М., ИТМ и ВТ АН СССР, 1983.

  7. В. М. Фельдман, Особенности включения сервисного процессора в многопроцессорный вычислительный комплекс, в кн: Тез. конф. молодых специалистов и членов НТОРЭС им. А. С. Попова, М., ИТМ и ВТ АН СССР, 1985.

  8. В. Н. Лаут, В. М. Фельдман, А. Е. Ширай, Устройство для обработки информации. Авторское свидетельство № 993262 СССР, МКИ G 06 F 9/36, по заявлению от 11 сентября 1981 г., опубликовано 01.02.1983 г., бюллетень № 4, http://www.findpatent.ru/patent/99/993262.html

Об авторе: д.т.н.
Институт системного программирования РАН
Московский государственный университет имени М. В. Ломоносова,
д.т.н.
ПАО Институт электронных управляющих машин им. И.С. Брука
Московский физико-технический институт (технический университет)
-
АО МЦСТ
Материалы международной конференции Sorucom 2017
Помещена в музей с разрешения авторов 2 Апреля 2018

Проект Эдуарда Пройдакова
© Совет Виртуального компьютерного музея, 1997 — 2018