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

Очень скоро стало ясно, что без включения в состав УИП интеллектуального устройства работу по интеграции нескольких автономных пультов выполнить не удастся. В результате в 1978 году перед коллективами разработчиков аппаратуры и системного программного обеспечения ИТМиВТ, возглавлявшимися Валерием Назаровичем Лаутом и Дмитрием Борисовичем Подшиваловым, а также директором института и главным конструктором МВК «Эльбрус-1» и «Эльбрус-2» Всеволодом Сергеевичем Бурцевым [1] была поставлена задача разработать и создать интеллектуальный универсальный инженерный пульт МВК, построенный на новых для того времени принципах.

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

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

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

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

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

В результате группа остановила свой выбор на системе команд, близкой к системе PDP-11, которую, однако, необходимо было существенно модифицировать для работы с одноразрядными объектами.

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

Архитектура сервисного процессора УИП

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

Разработчики аппаратуры УИП понимали, что перед ними, как и перед всеми разработчиками МВК «Эльбрус», стоят следующие цели [3]:

  • увеличение времени наработки на отказ отдельных устройств УИП и системы в целом;
  • создание отказоустойчивого оборудования с аппаратурной избыточностью;
  • включение в состав вычислительных систем средств аппаратного и программного контроля, тестирования и самодиагностики;
  • построение многопроцессорных (многомодульных) комплексов с возможностью гибкого, оперативного изменения конфигурации вычислительной системы в случае возникновения отказа в одном из модулей;
  • сокращение времени восстановления (ремонта) отказавших устройств за счет внедрения современных методов технического обслуживания.

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

Описание изобретения к авторскому свидетельству

Прежде всего разработчики, взяв за образец PDP-11, приняли решение отбросить догматы о совместимости и необходимости точного копирования — заимствования ПО в проекте не предполагалось. Как следствие, была существенно модифицирована система команд, в частности, исключены команды умножения и деления, реализация которых заметно увеличивала аппаратные издержки. Команды были разные по размеру, от одного до трех двухбайтовых слов. Было реализовано только семь полноценных двухадресных команд: MOV — пересылка; ADD — арифметическое сложение; SUB — арифметическое вычитание; CMP — арифметическое сравнение; BIT — проверка разрядов по маске; BIS — установка разрядов в 1 по маске; BIC — установка разрядов в 0 по маске. Некоторые команды также были реализованы в полноадресном виде, но имели только один операнд, например: CLR — обнуление; INC — арифметическое увеличение на 1; DEC — арифметическое уменьшение на 1;

ASL — арифметический сдвиг на один разряд влево; ASR — арифметический сдвиг на один разряд вправо; JMP — переход (установка счетчика команд) и др.

Как для двухадресных, так и для одноадресных команд структура адреса в команде была одинаковой — на адрес отводилось шесть разрядов, три из них использовались для указания типа адресации, а оставшиеся предназначались для хранения номера используемого регистра, которых в аппаратуре УИП было восемь. Регистры с номерами 6 и 7 могли использоваться как обычные регистры общего назначения, но аппаратура использовала их для своих специальных функций. Все регистры, как общего назначения, так и специальные, имели свое отображение в оперативной памяти.

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

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

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

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

Устройство обмена УИП

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

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

По предложению Александра Евгеньевича Ширая было принято решение, при котором: устройство обмена содержало 16 одинаковых каналов с прямым доступом к памяти; каждый канал обеспечивал управление контроллером, к которому можно подключать не менее шестнадцати внешних устройств; была предусмотрена защита памяти от переполнения буферов обмена. Каждый канал имел три регистра управления и выделенный вектор прерывания.

Контроллеры типовых устройств передавали управляющую информацию еще и в пакетах данных. Пропускная способность интерфейса канала в точности соответствовала пропускной способности памяти УИП. При этом для экономии оборудования были использованы четырехбитные линии передачи команд и данных, а приоритет по обменам задавался в аппаратуре — более медленные устройства (например, клавиатура) имели более высокий приоритет, чем быстрые каналы, которые могли подолгу занимать память. Такая организация обмена позволила существенно упростить наладку контроллеров и создание драйверов устройств. Для запуска обмена в цикле (для первичной отладки в то время разработчики не использовали ничего сложнее обычного осциллографа) достаточно было обновить информацию в регистре, записать команду в другой регистр и дождаться сброса бита занятости устройства. Такую программу несложно было ввести в память непосредственно в машинных кодах, что и делалось при наладке первых контроллеров — ФСМ (ввод перфоленты), параллельного порта дисплея VT-340, а затем и контроллера канала дисковода абонентского пульта — АП 5070. Как только отладка этих каналов была завершена, УИП фактически превратился в первую «персональную» мини-ЭВМ. Такое преображение весьма обрадовало разработчиков и дало им возможность перенести ранее разработанный Шираем на имитационном комплексе УИП на БЭСМ-6 тестовый монитор ДИНАЛ (ДИалог НАЛадчика), позволявший создавать, сохранять и выполнять программы, предназначенные для отладки устройств, драйверов, загрузки и выполнения других программ и тестов. Лишь после этого началась работа по наладке контроллеров для специализированных устройств МВК, а также разработка резидентного системного программного обеспечения УИП. Так, были реализованы контроллеры: ФСМ (FS-1500) (Чехословакия), текстовый терминал — Videoton VT-340 и VDT 52100 (Венгрия), канал абонентского пульта (блок гибких 7-дюймовых дисков — АП-5070, магнитофон АП); стандартный канал ЕС ЭВМ (пишущая машинка Consul (Польша), АЦПУ (ЕС-7032, ЕС-7036, ЕС-7040). К стандартному каналу можно было подключить и стойку дисков, доступных из МВК, что увязывало систему в единый комплекс.

Разработкой и отладкой первых контроллеров занимались Фельдман и Ширай, которым поначалу помогали сотрудники Загорского электромеханического завода (ЗЭМЗ), где изготавливался МВК «Эльбрус».

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

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

***

Проделанная работа над УИП во многом была пионерской для ИТМиВТ АН СССР, став примером первой в мире разработки ЭВМ класса «мини», сопровождавшейся освоением технологии сервисного процессора, которая отсутствовала тогда на Западе. Еще не было рабочей группы JTAG (Joint Test Action Group), предложившей стандарт IEEE 1149 на специализированный аппаратный интерфейс, в котором была воплощена предложенная разработчиками УИП идея внедрения в компоненты цифрового устройства средств, обеспечивающих унифицированный подход к решению задач тестирования связей между схемами, после того как они были смонтированы, и наблюдения за работой аппаратных компонентов без вмешательства в их работу, либо непосредственное управление ими. Работа над спецификацией IEEE 1149.1 — ставшей, в частности, основой систем типа Board Management Controller (BMC) — началась только в конце 1970-х годов, а стандарт появился в 1985 году, намного позже завершения работ по УИП, когда на рынке еще вообще не было 16-разрядных микропроцессоров (работа над Intel 8086 началась лишь в 1976 году).

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

Литература

1. Всеволод Бурцев. К истории создания советской вычислительной техники // Открытые системы.СУБД. — 2012. — № 1. — С. 56–59. URL: https://www.osp.ru/os/2012/01/13012930 (дата обращения: 21.06.2024).

2. Вера Карпова, Леонид Карпов. СуперЭВМ — от задач к машине // Открытые системы.СУБД. — 10 — № 4. — С. 58–62. URL: https://www.osp.ru/os/2010/04/13002418 (дата обращения: 21.06.2024).

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

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

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

Леонид Карпов (mak@ispras.ru) — ИCП им. В. П. Иванникова РАН, МГУ им. М. В. Ломоносова; Владимир Фельдман (Vladimir.M.Feldman@mcst.ru) — ИНЭУМ им. И. С. Брука, Московский физико-технический институт; Александр Ширай (aesheerai@gmail.com) — МЦСТ, (Москва). Статья подготовлена на основе выступления авторов на Четвертой Международной конференции «Развитие вычислительной техники в России и странах бывшего СССР: история и перспективы», 3–5 октября 2017 года, Зеленоград.

DOI: 10.51793/OS.2024.32.53.004