Русский English
IV международная конференция
«РАЗВИТИЕ ВЫЧИСЛИТЕЛЬНОЙ ТЕХНИКИ В РОССИИ И СТРАНАХ БЫВШЕГО СССР: ИСТОРИЯ И ПЕРСПЕКТИВЫ»
Россия, Москва, Зеленоград, 3–5 октября 2017 года
Программа пребывания Регистрация на конференцию Представление докладов
Программное обеспечение сервисного процессора МВК Эльбрус-1 и Эльбрус-2

Программное обеспечение сервисного процессора МВК Эльбрус-1 и Эльбрус-2

Введение

Работа над системным программным обеспечением универсального инженерного пульта (УИП) МВК Эльбрус-1 и Эльбрус-2 [1-6], выполнявшаяся в рамках общего Технического задания на МВК Эльбрус, началась сразу же после утверждения системы команд процессора УИП, а некоторые детали этой системы команд уточнялись уже в процессе написания некоторых составных частей имитационного комплекса (ИК) УИП.

Системное программное обеспечение (рис. 1) УИП состояло из нескольких подсистем и создавалось поэтапно. На первом этапе разрабатывался имитационный комплекс УИП, состоявший из программы-монитора, интерпретатора центрального процессора УИП, макроассемблера, программ автокода и редактора связей. Созданный имитационный комплекс работал на БЭСМ-6 и использовался для разработки и отладки первой очереди административной системы (АДСИ) специализированной операционной системы рабочих программ СРП «Пульт».

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

Структура программного обеспечения УИП МВК Эльбрус

Рис. 1. Структура программного обеспечения УИП МВК Эльбрус.

Имитационный комплекс УИП МВК Эльбрус

Имитационный комплекс создавался на БЭСМ-6, как на инструментальной машине, и первоначально ИК УИП состоял всего из одной программы – интерпретатора системы команд процессора УИП, над которым работал А.П. Черняев. Его товарищ С.В. Нестеров одновременно вел работу по написанию прототипа рабочих программ УИП. Этот прототип начал программироваться непосредственно в кодах, что создавало значительные трудности и требовало огромного количества времени для исправления ошибок программирования. Глядя на мучения своих коллег, Л.Е. Карпов, используя реализованный им в дипломной работе универсальный макропроцессор Stage2 [7-8], построил макроассемблер УИП (названный автокодом УИП), существенно облегчивший процесс программирования и определивший облик автокодов УИП (по-существу, языков ассемблера), которые были разработаны впоследствии для ИК УИП Е. С. Кусиковым и Ю. А. Французовым [9], а после них и А. Е. Шираем в его работе над системой программирования ТМ ДИНАЛ. На рис. 2 в качестве примера приведена программа, написанная на автокоде УИП и предназначенная для формирования шестнадцатеричной цифры по информации, полученной от устройства МВК, причём некоторые разряды для этой цифры передаются в прямом коде, а некоторые инвертированы.

Пример записи программы на автокоде УИП

Рис. 2. Пример записи программы на автокоде УИП.

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

Тестовый монитор ДИНАЛ и резидентное программное обеспечение УИП

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

Однако некоторую подготовительную работу, совершенно необходимую для создания резидентного программного обеспечения УИП, было намечено провести самыми первыми решениями. Речь идет о программе разметки дисков, которую написал разработчик аппаратуры и программного обеспечения А.Е. Ширай. Прежде всего, было необходимо выбрать оптимальный размер сектора, которым сразу определялось количество секторов на одной дискете, размер межсекторного пространства, совокупный полезный объём информации, размещаемый на одной дискете. В результате был выбран максимально возможный размер сектора – 4 Кб, что позволяло иметь на дискете 77 секторов, а всего 308 Кб полезной информации. Другие варианты разметки приводили к росту количества и суммарного размера межсекторных промежутков, и, следовательно, к снижению полезной ёмкости дискет. Эта работа А.Е. Ширая была одной из первых (если не самой первой) программой разметки гибких магнитных дисков в нашей стране.

В то время пока шло изготовление макетного образца УИП, на ИК УИП было отчасти реализовано программное обеспечение, имевшее три основные функции:

  1. Создание и редактирование наборов командных строк, которые именовались архивами.
  2. Интерпретация команд работы с памятью.
  3. Интерпретация команд управления выполнением программ.

Первоначальной целью создания тестового монитора ДИНАЛ была автоматизация процессов наладки процессора УИП и контроллера АЦД. Фактически планировалось организовать автоматизированный пульт самого УИП. Большая часть возможностей ТМ ДИНАЛ связана с его использованием в качестве такого пульта наладки контроллеров и драйверов внешних устройств, выполнение работ с дискетами. Эту свою работу ДИНАЛ выполнял весьма эффективно. С помощью ТМ ДИНАЛ удалось создать архив полезных тестовых операций, которые было нужно повторять раз от раза при ремонте или проведении профилактических работ.

ДИНАЛ позволял использовать относительно простые команды – разные виды команд записи и чтения, создания последовательностей команд, их запоминания в архиве. Кроме того, была организована возможность создания тестовых программ в виде связанных операторов, содержащих взаимные ссылки.

Обычная последовательность действий включала в себя создание первичной тестовой цепочки

Программное обеспечение МВК Эльбрус

Предназначалась для выполнения таких действий: запуск канала n с предварительным заполнением буфера с адресами 3000-3100 константой A55A и выводом результата работы канала на экран, запоминание операторов в архиве под номерами 1 и 2, ожидание конца обмена в течение 2000 мкс.

На АЦД типов VT-340 и VDT 52100 текстовое редактирование было удобнее производить в режиме «off-line», а затем и использовать клавишу SEND, но, если не бояться ошибок ввода, можно было работать в режиме «on-line».

Если результат прогона теста оказывался неудовлетворительным, можно было зациклить прогон и использовать осциллограф. В таком случае оператор 1 можно было видоизменить, выполнив команду <ВЗА 1>, затем вставить в начало команду <ЗПВ 3:> и в конец – команду <ВЫП 3>. Таким образом создавался новый оператор. Из цикла можно было выйти, либо задавая количество его повторений, либо вводом новой команды.

После отладки драйвера диска в ДИНАЛ были добавлены команды чтения и записи на диск, где в фиксированной области хранился архив. Например, команда <СЧД 5 3000 3FFF> означала требование загрузить информацию с двух дорожек диска, начиная с пятой дорожки, в ячейки с адресами 3000-3FFF (4К слов по 2 байта).

Развитие ТМ ДИНАЛ привело к включению в его состав отладчика, основной функцией которого была установка точек останова. Тем самым удалось завершить имитацию аппаратного пульта УИП, на котором также имелась возможность устанавливать адрес команды останова с помощью специальных тумблеров.

Широкое использование таких возможностей началось при написании резидентной операционной системы (ОС УИП). ТМ ДИНАЛ позволял считывать в буфер первое слово команды по заданному адресу, записывать его в ячейку памяти, подставлять в программу команду экстракода, в вектор прерывания которого записывался адрес подпрограммы сохранения регистров в заданный системный буфер (не совпадающий со стеком отлаживаемой программы). Одновременно на регистры процессора УИП устанавливался новый указатель стека, указатели на буфера в памяти ТМ ДИНАЛ, после чего средствами ТМ ДИНАЛ можно было просматривать содержимое памяти и регистров, задавать новую точку останова. По команде возврата восстанавливался код программы, на единицу уменьшался сохранённый в стеке программы счётчик команд, восстанавливались регистры, и выполнялась команда возврата из прерывания (RTI).

ТМ ДИНАЛ оперировал только физическими ресурсами, адресами физической памяти, номерами дорожек диска, однако, хотя сам архив загружался в определённую, заранее известную область памяти, номера строк архива были логическими.

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

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

Редактирование строки осуществлялось путём её вызова на экран командой ВЗА N (чтение из архива N), например, «ВЗА 5», и, соответственно «ЗПА 5» (или запись в архив с другим номером). Команда «ВЗВ 5» означала «взять дорожку 5 и выполнить». А командой «ВЫП» с параметрами, можно было задать адрес области, где лежат переменные цикла, начало, шаг, конечное значение. Командой «ЖД N» задавалось время ожидания. Эти команды часто использовались в циклах с обменами.

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

Сначала А. Е. Шираем непосредственно в машинных кодах в среде ДИНАЛ был написан текстовый редактор. После этого началась работа по компилятору, встроенному в редактор. Работа над компилятором велась по принцам раскрутки, а это приводило к тому, что этап за этапом компилятор, компилируя сам себя, обретал всё более завершённый вид. Синтаксис команд был заимствован из макроассемблера УИП, но без его изменений всё же не обошлось. Основным отличием стало внедрение блочной структуры, которая избавляла программиста от придумывания огромного числа имён меток, которые возникали в ассемблере на ИК УИП при каждом условном переходе. Эта особенность не отразилась на рабочем программном обеспечении, создававшемся поначалу ИК УИП – совместимость была полностью соблюдена.

Параллельно с работой над резидентным ассемблером А. Мозговитов создавал дизассемблер, после чего удалось получить новый текст ДИНАЛа, убрать заплатки, расширить функционал. На резидентном ассемблере В. Мартышовым был написан тест системы команд УИП, который был использован при заводских и государственных испытаниях.

Описанный далее комплекс рабочих программ СРП «Пульт» [10] также был перенесён на УИП, скомпилирован на резидентном ассемблере, сохранён на дискетах. Для него с помощью ТМ ДИНАЛ была создана программная документация, от которой сохранился документ под название «Текст программы».

В перерывах между заводскими и государственными испытаниями и после госиспытаний, разработчиками резидентного программного обеспечения УИП была создана полноценная резидентная операционная система, по функциональному уровню близкая к операционной системе MS DOS, с поддержкой файловой системы, параллельных обменов, с возможностью исполнения командных файлов (для этого был создан элементарный язык управления заданиями) и управлением запуском задач. Система поддерживала динамическое распределение памяти, управляла размещением в оперативной памяти УИП исполняемых программ, не содержащих явных привязок к физическим адресам памяти, имела единый файловый интерфейс, включая типовые внешние устройства (АЦПУ, мониторы, собственно файлы различного типа на дискетах). К сожалению работа по УИП была свёрнута и это достижение не нашло практического применения.

Системное программное обеспечение УИП

Административная система (АДСИ) УИП МВК представляла собой набор некоторого количества системных программ, реализовывавших важные вспомогательные функции, необходимые для функционирования системы, обеспечивающей взаимодействие различных аппаратных устройств в реальном времени. Фактически АДСИ являлась частью системы рабочих программ «Пульт», но представляла собой отдельный программный модуль, транслируемый и загружаемый в память УИП независимо от других программ. Разработка АДСИ УИП велась под руководством С. Л. Подгорновой и А. М. Берёзко, отдельные программы писались группой молодых программистов, особенно большой вклад внесли Ю. Давыдов, А. Жукова, С. Попов, А. Шунаев. Программы обмена с внешними устройствами УИП, устройствами из состава МВК Эльбрус, также вошедшие в состав АДСИ, были написаны Л. Карповым. Огромную работу по написанию программ связи с процессорами передачи данных и с памятью МВК Эльбрус провёл прикомандированный к группе разработчиков аппаратуры УИП В. Мартышов.

Программы, входившие в состав АДСИ, предназначались для поддержки псевдопараллельной работы независимых процессов, организации каналов передачи данных между процессами, выполнения отдельных вспомогательных функций. Доступ к программам и информационным таблицам АДСИ осуществлялся по-разному. Некоторые программы были доступны посредством вектора адресов, размещенного по согласованному фиксированному адресу (0x0104), другие вызывались командами экстракодов через вектор экстракодов (0x0080-0x00BF).

Всего было реализовано около 60 подпрограммы, 32 наиболее часто используемых из которых вызывались через экстракоды. К таким важнейшим системным программам были, например, отнесены:

  • 00 – создать процесс;
  • 02 – запустить процесс;
  • 03 – приостановить активный процесс и запустить процесс из очереди;
  • 07 – соединить процесс с каналом связи;
  • 11 – получить элемент данных через канал связи между процессами;
  • 14 – выдать элемент данных в канал связи между процессами;
  • 19 – ждать прерывания от канала;
  • 28 – остановить канал и выдать прерывание.

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

Система рабочих программ «Пульт» УИП

Разработанная в ИТМ и ВТ Л. Е. Карповым система рабочих программ (СРП) «Пульт» [10] предназначалась для реализации основной функциональности рабочего места оператора инженерного пульта, то есть инженера-наладчика, выполнявшего диагностику, ремонт и наладку устройств, составляющих МВК Эльбрус. Аппаратура УИП позволяла одновременно иметь до 4-х независимых рабочих мест, каждое из которых могло оборудоваться несколькими алфавитно-цифровыми дисплеями (от одного до четырех на рабочее место), общего для всех алфавитно-цифрового печатающего устройства (электрическая пишущая машинка или быстрое печатающее устройство – АЦПУ), а в качестве внешнего хранилища информации инженеры в своей работе могли использовать до 4-х накопителей на гибких магнитных дисках (с 7-дюймовыми съёмными дискетами ёмкостью около 300 Кб) и магнитофон для сменных магнитных лент.

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

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

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

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

Состояние стека и внутренних регистров ЦП Эльбрус-1

Рис. 3. Состояние стека и внутренних регистров ЦП Эльбрус-1, показанное с помощью шаблона имитации традиционного пульта

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

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

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

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

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

Работа операторов СРП «Пульт» была связана с исследованием состояния устройств МВК, отображаемом на экранах АЦД по заранее составленным шаблонам. Велась эта работа вводом директив с параметрами (параметром мог быть, например, номер устройства МВК: «1ЦП») или нажатием функциональных клавиш (клавиатура использовавшихся АЦД ЕС 7065 допускала до 32 таких клавиш). Шаблоны, включённые в систему, хранились в архиве на магнитном диске, и подкачивались в оперативную память при необходимости. На каждую копию управляющего процесса в оперативной памяти УИП МВК в оперативной памяти могли одновременно находиться несколько шаблонов: один для показа на управляющем экране, еще 3 для просмотра состояний устройств МВК на вспомогательных экранах соответствующего рабочего места.

Диагностические сообщения фонового процесса контроля технического состояния устройств МВК Эльбрус

Рис. 4. Диагностические сообщения фонового процесса контроля технического состояния устройств МВК Эльбрус

Всего к моменту проведения Государственных испытаний УИП и СРП «Пульт» было создано шесть шаблонов для показа состояния и управления ЦП Эльбрус-1, 1 шаблон для ППД, 4 шаблона для ПВВ, 2 шаблона для показа содержимого памяти МВК, 3 шаблона для АКТС (рис. 5 и рис. 6) и два шаблона для демонстрации состава и конфигурации МВК.

Техническое состояние устройства ЦП Эльбрус-1, показанное с помощью запроса к АКТС

Рис. 5. Техническое состояние устройства ЦП Эльбрус-1, показанное с помощью запроса к АКТС

Техническое состояние устройства ПВВ Эльбрус, показанное с помощью запроса к АКТС

Рис. 6. Техническое состояние устройства ПВВ Эльбрус, показанное с помощью запроса к АКТС

Шаблоны представляли собой последовательности описания точек экрана (24 строки по 80 символов на каждой) с указанием экранных координат точки, номера формирующей высвечиваемый символ программы и параметров, передаваемых этой программе, вид и число которых зависели от метода формирования символьного значения по указанным координатам. Всего было написано 36 программ формирования символов, среди которых были, в частности, такие:

  •  01 – построение четверичной цифры по двум разрядным дескрипторам;
  • 02 – построение восьмеричной цифры по трём разрядным дескрипторам;
  • 09 – передача шестнадцатеричной цифры с экрана на управляющие регистры устройства по четырём разрядным дескрипторам;
  • 12 – построение символьной строки по заданной таблице и дескрипторам;
  • 26 – построение 64-разрядного шестнадцатеричного числа по дескрипторам;

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

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

Состояние стека ЦП Эльбрус-1 в виде цепочек битов

Рис. 7. Состояние стека ЦП Эльбрус-1 в виде цепочек битов

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

Заключение

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

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

Литература

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

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

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

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

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

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

  7. William M. Waite, Implementing Software for Non-Numeric Applications, Prentice-Hall, Englewood Cliffs, NJ, 1973.

  8. Л.Е. Карпов, Реализация мобильной программной системы, в кн: Тез. конф. молодых учёных и специалистов, М., ИТМ и ВТ АН СССР, 1976.

  9. А.М. Березко, Е.С. Кусиков, Д.Б. Подшивалов, Ю.А. Французов, Построение и реализация Автокода для модульного программирования, в кн.: Тез. Всес. конф. по методам трансляции, Н., 1981.

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

Об авторе: д.т.н.
Институт системного программирования РАН
Московский государственный университет имени М. В. Ломоносова,
-
АО МЦСТ
Материалы международной конференции Sorucom 2017
авторов 07.04.2018