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

Главная  → История отечественной вычислительной техники  → Проблемы управления электрофизическими установками как предпосылка создания оригинальных ЭВМ

Проблемы управления электрофизическими установками как предпосылка создания оригинальных ЭВМ

Институт ядерной физики имени Г.И. Будкера СО РАН в настоящее время является крупнейшим институтом РАН. Возможно, в прежние времена были и другие крупные институты Академии, но реализуемые Институтом проекты всегда отличались глобальными масштабами, и большинство таких проектов имеет почтенную историю.

Предложенные основателем Института академиком Г.И. Будкером физические принципы, – встречные пучки, электронное охлаждение, открытые плазменные системы и ряд других – реализованы «в железе» на многих установках ИЯФ еще в в прошлом столетии, и многие из них продолжают активно развиваться и в настоящее время. Это установки со встречными пучками – электрофизические комплексы ВЭП-1, ВЭПП-2, НАП, ВЭПП-2М (ХХ век), ВЭПП-3, ВЭПП-4, ВЭПП-2К, современные детекторы КМД-3, СНД, КЕДР, плазменные установки ГОЛ-3, Амбал-М и многие другие крупномасштабные установки уже нынешней эпохи. Эти высокотехнологичные, сложные современные комплексы уже в принципе не могут работать без компьютерной поддержки, хотя понятно, что их прототипы начинались при минимальном интегрировании компьютинга в повседневный обиход.

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

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

Спектр стандартных подходов можно разделить на несколько, по крайней мере на три принципиально важных группы.

Во-первых, это унификация и стандартизация «железа» и связанные с этой сферой решения: система передачи данных, ассортимент оконечной аппаратуры, используемые протоколы нижнего уровня взаимодействия компонентов компьютерной системы. При этом необходимо уточнить (и дальнейшее изложение будет следовать этому тезису), что в этом отношении целесообразно выделение в самостоятельную подсистему – подсистему управления установкой, в сопоставлении ее с подсистемами сбора данных, их анализа, обработки, архиви- рования и т.д., при обеспечении должного взаимодействия между подсистемами управления и регистрации.

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

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

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

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

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

Так, за время существования накопителя ВЭПП-3 с конца 60-х годов по настоящее время родились и успели умереть целые классы вычислительных машин, относящихся к mainframe, мини, супермини, появилось и сменилось несколько поколений персональных компьютеров и рабочих станций, были разработаны концепции модульного, структурного, визуального программирования, открытых стандартов, получили широкое распространение высокоэффективные локальные сети, на порядки возросла функциональная плотность электронных компонентов.

Одной из первых СУ, последовательно реализовавшая по меньшей мере некоторые из перечисленных принципов, базировалась на ЭВМ Одра-1304 производства ПНР (МЭРА-ЭЛЬВРО). Это была машина, построенная на принципах архитектуры ICL-1900 английской компьютерной компании International Computers Ltd. В базовой комплектации машина была оснащена памятью объемом 32 К 24-разрядных слов, из которых около 8 К занимались резидентным супервизором. Эта ЭВМ была доступна в Институте в хорошей для тех времен комплектации, включающей центральный процессор, перфораторы, считыватели перфолент, магнитофоны, накопители с прямым доступом (магнитные барабаны), операторскую консоль, а впоследствии и операторские буквенно-цифровые дисплеи. В комплект поставки также входило базовое программное обеспечение, включающее, помимо супервизора, развитую систему компиляции, интегрирующую целый спектр языков – язык ассемблера, несколько диалектов Фортрана, Алгол-60 и другую экзотику.

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

Также были разработаны и подключены по последовательной системе связи периферийные устройства: буквенно-цифровые табло, устройство-манипулятор «Ручка» – прообраз компьютерной мыши, панели загрузки программ «Меню», буквенно-цифровые дисплеи операторов и т.д. Для интеграции специфических протоколов взаимодействия периферийных устройств с ОС управляющей машины потребовалось введение незначительных (в сравнении с общим объемом супервизора) модификаций (что, однако, потребовало досконального изучения внутренних механизмов работы супервизора с каналами и с периферией).

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

Несколько лет (с 72-го по 75-й) функциональность такой системы расценивалась, как вполне адекватная для управления целым множеством установок (НАП, ВЭПП-3 и др.), но впоследствии, по мере роста требований к системе с точки зрения объемов информационных обменов, ужесточения на время реакции системы на внешние события, повышения требований к системе переключения контекста управляющей программы (переключиться с работы с установкой НАП на установку ВЭПП-3, что реализовывалось в рамках упомянутой управляющей сборки и могло составлять сотни миллисекунд) возникла необходимость пересмотра общей архитектуры системы.

Дополнительным аргументом к пересмотру архитектуры системы послужило расширение парка компьютеров с единственной ЭВМ Одра-1304 до нескольких более современных по тем временам ЭВМ Одра-1325 (машины 3-го поколения, реализованные на ИС средней степени интеграции и с заметно более высокой производительностью). Доступность этих ЭВМ позволила, с одной стороны, обеспечить многие экспериментальные установки ИЯФ «персональными» управляющими машинами (установки ПСП, ГОЛ, магнитные измерения и др.), и, с другой, обеспечить особо крупные установки (комплекс ВЭПП-4) целым кластером управляющих ЭВМ.

В конце 70-х годов при расширении систем СУ УНК стали появляться трудности, связанные с увеличени- ем количества точек контроля и управления на установках и, как следствие, увеличением потока данных обмена с ЭВМ. Обеспечение работы СУ в реальном времени проводилось по двум направлениям:

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

В качестве варианта интеграции прикладной управляющей системы с супервизором был предложен более низкоуровневый (и, вследствие этого, более эффективный в отношении времени реакции на внешние события) механизм, базировавшейся на функциональности так называемых «trusted programs». Этот механизм был недостаточно полно описан в имеющейся системной документации, и его применение потребовало дополнительного исследования алгоритмов его реализации в рабочих супервизорах.

К началу 1976 г. все эти проработки были завершены, что привело в появлению концепции 2-го поколения управляющих программ в системе «Одра-1300», которая получила название «системная архитектура VGJP». Успешность применения систем с этой архитектурой подтверждается ее распространенностью (к 1985 г. в Институте насчитывалось порядка полутора десятков как автономных систем, так и членов кластера ВЭПП-4). В этой архитектуре рабочие программы могли создаваться в кросс-системе программирования (для этого было необходимо получить доступ к традиционной системе подготовки программ, оттранслировать необходимые программы, перенести «бинарники» на управляющие машины). Типичным циклом в этой системе было резервирование необходимого времени на хост-системе, продуктивное его использование, получение необходимых бинарников на внешних носителях, перенос их на целевые машины и обнаружение того, что допущена глупая ошибка при переходе от версии к версии. Иногда удавалось исправить такие ошибки «на лету», но чаще оказывалось необходимым откладывать итерацию на следующий цикл.

Параллельно развивавшаяся система подготовки программ для архитектуры VGJP (система компиляции, язык TRAN) была запущена к лету 1977 г. Она обеспечивала возможность редактирования исходных текстов рабочих программ, трансляцию и сохранение как «исходников», так и «бинарников» непосредственно на рабочем месте оператора установки. Процесс трансляции был весьма эффективен, и сопоставим с системой, например, Turbo-Pascal – трансляция программы в несколько тысяч строк занимала всего 10-20 секунд. Эти результаты были несопоставимы с возможностями системы кросс-компиляции, вследствие чего большинство пользова- телей этой кросс-системы мигрировали на локальные ресурсы управляющих компьютеров, что существенно улучшило эффективность подготовки и отладки управляющих программ и дополнительно расширило контингент «практических» программистов. Опыт показал, что в этой системе подготовки кадров в стиле «обучение вприглядку» было достаточно рабочего дня, проведенного за терминалом, чтобы студент (аспирант, стажер, т.е. сотрудник без предварительного опыта программирования) начинал активно участвовать в разработке/отладке рабочих программ комплекса.

В этом поколении ОС были полностью реализованы перечисленные выше требования к операционной системе, системе компиляции и реализации комплекса системных библиотек. Более того, поскольку количество абонентов распределенной системы стало значительным, возник (и был успешно впоследствии решен) вопрос об интегрировании всех абонентов в единую систему в рамках концепции «центральной машины».

В таком качестве использовалась выделенная ЭВМ, к которой через мультиплексор были подключены периферийные машины-абоненты. Центральная машина располагала подключениями подсистем хранения данных (накопители на магнитных лентах в количестве 12 шт., накопители на магнитных дисках (8 Мбайт на накопитель) в количестве 16 шт.), другими подключениями в создаваемую сеть информационного обмена ИЯФ.

Забегая вперед следует отметить, что именно эта система доступа к подсистемам хранения (точнее, к сохраненным копиям данных) обеспечила периферийным управляющим системам установок перспективу выживания после катастрофы 1985 г.

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

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

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

Разработка интеллектуального крейт-контроллера «Одренок», программно совместимого с ЭВМ «Одра», ликвидировала трудности расширения СУ. «Одрята» были хорошо приспособлены для работы в режиме реального времени. «Одренок» был реализован в КАМАК-модуле шириной 2М на схемах большой и средней степени интеграции, включая процессорные секции К1804ВС1 (аналог серии AMD2900).

В семействе Одра-1300 последовательно проводится принцип виртуальной машины. Так, каждая пользовательская программа работает в собственном виртуальном адресном пространстве, а уровни операционной системы (ОС) и пользователя различаются аппаратно. В исходной системе команд пользователя отсутствуют низкоуровневые операции ввода-вывода: вместо них применяются высокоуровневые команды обмена, исполнение которых влечет вызов соответствующих примитивов ОС (экстракоды ввода-вывода). Благодаря этому обстоятельству удалось достаточно просто, переписав машинно-зависимое ядро ОС, реализовать сетевую операционную систему, обеспечивающую возможность работы любых программ, ранее работавших в ЭВМ Одра.

Однако в системе команд «Одренка» допускается использование низкоуровневых команд ввода-вывода – сканирование и маскирование регистра LAM, выполнение как одиночных, так и групповых КАМАК-циклов. Этим обеспечивается чрезвычайно высокая производительность приложений в крейтах с уникальным оборудованием, не поддерживаемым супервизором.

В «Одренке» реализована полная система команд пользовательского уровня. Состав привилегированных команд, которые обычно сильно зависят от структуры подсистемы ввода-вывода, в «Одренке» значительно отличается от операционных систем и процессоров серии Одра-1300. Одна из основных целей создания рассматриваемого контроллера – повышение эффективности взаимодействия с аппаратурой КАМАК. Для этого исходная система команд расширена (за счет использования «резервных кодов команд») введением операций для работы с магистралью КАМАК.

Еще в начале 80-х годов, в начале массового производства «Одренка», была обеспечена техническая возможность расширения объема ППЗУ микропрограмм до 2К слов, позволяющая производить замену микропрограммы во всех произведенных «Одрятах» по мере ее совершенствования. Модернизация микропрограммы была проведена по следующим направлениям:

  1. Микропрограммно реализована полная система команд архитектуры ICL-1900, включающая некоторые команды с плавающей запятой, исполнявшиеся ранее вызовом соответствующих примитивов ОС, что сократило время их выполнения в 10–100 раз. Реализация полной системы команд значительно повысила производительность Одренка на счетных задачах, улучшила время реакции операционной системы за счет выполнения трудоемких операций на микропрограммном уровне, уменьшила объем памяти, занимаемый операционной системой.
  2. По результатам анализа профилей частот использования команд в задачах управления были выявлены команды, вносящие существенный вклад в общее время выполнения программы. Время исполнения таких команд было минимизировано, что потребовало дополнительно всего около 60 строк микропрограммного ПЗУ и позволило ускорить выполнение команд на 25% для LDX, ADX, STO (загрузка регистра-аккумулятора, сложение, сохранение в памяти), на 15% для NGX, SBX, на 35% для LDCH и DCH (символьные операции).
  3. Дополнительно введен ряд инструкций, исполняемых по префиксации командой SMO (supplementary modifier). Однократным применением такой инструкции можно подвергнуть элементарной обработке массив целых чисел: произвести операцию с константой (команды «вектор» – «скаляр»), с другим массивом (команды «вектор» – «вектор»), найти сумму элементов массива, min, max. Также методом префиксации по SMO введены команды работы с восьмиразрядным байтом, позволившие увеличить эффективность взаимодействия с оборудованием, имеющим байтовый интерфейс.
  4. Для расширения возможностей взаимодействия с магистралью КАМАК создан механизм микропрограммной обработки LAM запросов, т.е., по существу, реализовано ядро ОС реального времени на уровне микрокода. При использовании этого механизма появляется возможность быстрой (масштаба микросекунд) активизации или остановки процессов в зависимости от появления ожидаемых LAM или состояния других процессов.
  5. Разработана новая версия «Одренка» с расширенной до 256К слов оперативной памятью и ускоренным на 30% механизмом доступа в память.

В таблице приведены результаты времени выполнения известного оценочного теста – поиска простых чисел методом решета Эратосфена (целочисленные операции).

ТЕСТ РЕШЕТО ЭРАТОСФЕНА – ПОИСК ПРОСТЫХ ЧИСЕЛ В ДИАПАЗОНЕ: 1-8191 ДЛЯ N=10 ТЕКСТ ИЗ: J. AND G.GILBREAT «ERATOSTHENES REVISED: ONE MORE TROUGH THE SIEVE». BYTE MAG. VOL.8 N0.1 P.283, JAN.1983.

ЭВМВРЕМЯ(С)ЯЗЫКПРИМЕЧАНИЕ
ЕС-1061 1.77 F-4  
VAX-11/780 2.3 F-77  
БЭСМ-6 2.6 F-4  
0DREN0K-256K 2.8 TRAN 15 МГЦ.
VAX-750 2.9    
ЭЛЕКТРОНИКА-79 3.3 F-4 (КЭШ)
0DREN0K-256K 4.2 TRAN 10 МГЦ.
ОДРА-1305 8.5 TRAN  
ОДРЕНОК-64К 8.5 TRAN 10 МГЦ.
Э-КА-60 (М2) 24.6 F-4  
IBM/XT 4.7 MHZ 40. F-77  
Э-КА-60 (Ml) 88 F-4  

Особенности архитектуры микроЭвм:

Связь «Одренка» с ЭВМ верхнего уровня или файловой машиной сети осуществляется с помощью отдельного интерфейсного КАМАК-модуля, реализующего прямой доступ к памяти и регистрам контроллера и содержащего средства для дистанционной диагностики и отладки. Это модуль У0605, представляющий собой периферийное устройство иерархической системы связи, и разработанный впоследствии модуль К0631, обеспечивающий подключение по Ethernet.

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

Кроме того, были разработаны:

Большинство из перечисленных средств широко использовалось разработчиками радиоэлектронного оборудования Института.

Кроме модуля, обеспечивающего связь с хост-ЭВМ, также были разработаны системные КАМАК-модули:

Это позволяло использовать «Одренок» в качестве автономной микроЭВМ – рабочей станции.

Естественно, для «Одренка» была разработана самостоятельная операционная система, в максимальной степени совместимая с существующей системой и учитывающая специфику архитектуры.

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

В настоящее время с СУ ВЭПП-3/4 используется 12 «Одрят», объединенных в локальный Ethernet-сегмент. В этот же сегмент включены IBM PC, заменившие устаревшие буквенно-цифровые дисплеи, цветные растровые дисплеи и другое операторское оборудование. В сегменте находится также PC-сервер, выполняющий роль файлового и message-сервера «Одрят». Также к этому сегменту посредством Ethernet-CAN шлюза подключаются современные измерительные и исполнительные устройства, имеющие «на борту» интеллект, позволяющий использовать высокоуровневые протоколы.

Более чем сорокалетний опыт разработки и использования СУ большими электрофизическими установками Института подтверждает, что принимавшиеся на ранних этапах решения по развитию СУ, включая столь радикальные, как разработку собственных микрокомпьютеров, были абсолютно оправданы. Дальнейшее развитие СУ предполагается проводить путем наращивания интеллектуальной мощности исполнительных и измерительных устройств с использованием более мощных процессоров (ARM, DSP), с применением стандартных сетевых протоколов и последовательных интерфейсов (Ethernet, CAN), создания удобной среды разработки, написания и отладки программ работы с установкой – не исключая при этом возможности применения высокоуровневых компонентов СУ, – век-то нынче уже 21-й.

Об авторах: Институт ядерной физики имени Г.И.Будкера СО РАН
Материалы международной конференции SORUCOM 2011 (12–16 сентября 2011 года)
Статья помещена в музей 08.11.2011 с разрешения авторов

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