Программный комплекс ПА-6 предназначен: для анализа и параметрической оптимизации технических объектов, описываемых системами ОДУ. Основными элементами математического обеспечения
Рис. 5.5. Общая схема функционирования программного комплекса ПА-6:
Гвх — входной транслятор; К— компилятор; PC — редактор связей; РП — рабочая программа
анализа в ПА-6 являются методы узловых потенциалов, комбинированный неявно — явный интегрирования ОДУ. Ньютона, Гаусса. На основе этих методов в комплексе реализованы современные диакоптические алгоритмы анализа (латентного подхода, раздельного итерирования, «временного» анализа), позволяющие эффективно моделировать объекты большой размерности, содержащие сотни и тысячи фазовых переменных. Использование этих методов требует разбиения (декомпозиции) анализируемых объектов на фрагменты. В ПА-6 такое разбиение должен осуществлять пользователь по функциональному признаку. Кроме того, предусмотрена возможность совместного анализа объектов с непрерывными и дискретными моделями.
Комплекс ПА-6 построен по принципу компиляции объектных модулей на машинном языке и ориентирован на использование в рамках операционных систем ЕС ЭВМ.
Рассмотрим принципы функционирования комплекса ПА-6 в пакетном режиме.
Общая схема функционирования комплекса ПА-6.Комплекс ПА-6 представляет собой средство синтеза рабочих программ, реализующих конкретные маршруты проектирования, задаваемые пользователем средствами входных или промежуточного языков. Общая схема функционирования ПА-6 представлена на рис. 5.5. Первым в работу вступает один из входных трансляторов Тт, осуществляющих перевод описания технического объекта и задания на его проектирование с входного языка конкретной предметной области 1 в универсальный промежуточный язык 2. Кроме того, входные трансляторы могут организовывать работу с библиотеками параметров, стандартных фрагментов и макромоделей отдельных предметных областей, осуществлять связь с локальными и обшей БД САПР. В качестве ГВх может использоваться программа, восстанавливающая эквивалентную схему объекта по результатам его конструкторского проектирования (например, программа, восстанавливающая принципиальную электрическую схему интегральных микросхем по описанию их топологии).
Комплекс ПА-6 допускает работу пользователя непосредственно с промежуточного языка. Обработка описания на промежуточном языке 2 производится компилятором К, представляющим собой языковую подсистему ПА-6, снабженную собственным монитором. В результате его работы во внешней памяти ЭВМ создается врёменная библиотека 3 объектных
Рис. 5.6. Схема функционирования компилятора программного комплекса ПА-6:
А — анализатор, Г — генератор; Кр — конструктор, ВБД — внутренняя база данных, Гос— транслятор m состава ОС
модулей, содержащая подпрограммы и управляющие блоки, необходимые для расчета объекта. Далее работает редактор связей PC из состава используемой ОС, который компонует загрузочный модуль рабочей программы РП (обрабатывающей подсистемы ПА-6) из модулей двух типов: сгенерированных компилятором и библи01ечны\, постоянно хранящихся в библиотеках 4 комплекса Полученная таким образом рабочая программа загружается в ОП, с этого момента и начинается собственно расчет проектируемого объекта.
Для реализации данной последовательности выполнения программных компонентов в комплексе ПА-6 предусмотрено два способа.
Способ 1. Он предусматривает использование возможностей ОС для перехода от шага к шагу обработки подобно тому, как это принято для процедур трансляции — редактирования — выполнения программ, записанных на стандартных языках программирования.
Способ 2. Этот способ связан с использованием специального монитора, осуществляющего динамический вызов компонентов комплекса ПА-6 в необходимой последовательности.
Способ 1 обеспечивает меньшие затраты ОП, поскольку дает возможность выделить каждому шагу обработки область памяти строго необходимого объема Однако способ 2 более гибок (его использование для организации диалогового режима работы комплекса ПА-6 описано ниже).
Компилятор (языковая подсистема) комплекса ПА-6.Схема функционирования компилятора дана на рис. 5 6. Собственно компилятор комплекса ПА-6 составляют анализатор А, генератор Г и конструктор Кр, управляемые монитором.
Анализатор А считывает входной файл 2, содержащий предложения промежуточного языка, и обеспечивает лексический и синтаксический анализ описания объекта и задания на расчет. Он
выдает в выходной набор данных 6 дубликат входного описания, диагностические сообщения и по желанию пользователя справочную информацию. Структурированный характер промежуточного языка (см. § 5.3) позволяет для обработки каждой его конструкции использовать отдельный модуль или группу модулей. Это способствует снижению требований к объему ОП, занимаемой анализатором, так как появляется возможность создания оверлейных структур.
Результатом работы анализатора А будет набор таблиц, списков, массивов, составляющих внутреннюю базу данных ВБД компилятора, располагаемую в ОП. Основные элементы этой БД — упакованное описание структуры проектируемого объекта, таблицы паспортов подпрограмм моделей элементов, подпрограмм расчета выходных параметров и т.п. Операторы языка описания задания преобразуются анализатором в псевдокоманды, содержащие метку и код команды, режимные параметры, имя подпрограммы, реализующей необходимые для выполнения данной команды методы, параметры подпрограммы. Последовательность псевдокоманд описывает программу вычислений, которые должны быть выполнены рабочей программой. Память ЭВМ под внутреннюю БД выделяется только динамически, что определяет ее рациональное использование. При недостатке ОП некоторые наиболее крупные массивы выгружаются во внешнюю память ЭВМ. Во внутренней БД широко используется аппарат перекрестных ссылок между логически связанными элементами данных, что значительно повышает быстродействие компилятора за счет минимизации времени доступа к обрабатываемым данным. Анализатор пополняет внутреннюю БД информацией, считанной из паспортов библиотечных подпрограмм. Эта информация необходима для лексического и синтаксического контроля входного описания. Паспорта сгруппированы в каталоги библиотечных подпрограмм и хранятся во внешней памяти 7 ЭВМ.
Промежуточный язык комплекса ПА-6 допускает описание произвольных функциональных зависимостей пользователя (например, новых моделей элементов) на алгоритмических языках высокого уровня непосредственно во входном файле компилятора 2. Такие фрагменты текста распознаются анализатором и переписываются им в специальный набор данных 8. По окончании работы анализатора монитор осуществляет динамический вызов необходимых системных трансляторов Гос. Полученные в результате их работы объектные модули помещаются во временную библиотеку 3.
В задачу генератора Г входит генерация объектных модулей процедур рабочей программы РП: обращения к моделям элементов проектируемого объекта, расчета матрицы Якоби и вектора невязок, прямого и обратного ходов алгоритма Гаусса, расчета данных для печати и др. Непосредственно генерации предшествует оптимальная перенумерация переменных математической модели объекта. Генерация объектных модулей производится в соответствии с делением проектируемого объекта на фрагменты. Такой подход необходим для реализации диакоптических методов анализа и способствует снижению требований к ОП, занимаемой компилятором, так как возникает возможность последовательной обработки фрагментов объекта с сохранением во внутренней БД только необходимого минимума информации о них.
Все управляющие блоки и массивы, необходимые рабочей программе, генерируются в виде заполненных или пустых поименованных программных секций необходимой длины. Этим обеспечивается полное использование ОП
(а следовательно, и ее экономия) рабочей программой при статическом ее распределении. Для обеспечения доступа к произвольным элементам данных рабочей программы, необходимого, например, при интерактивном режиме работы, генератор строит специальный блок указателей, содержащий символические имена и ссылки для всех массивов рабочей программы. Последовательность псевдокоманд, описывающих задание на расчет объекта, преобразуется генератором в табличный вид и оформляется в виде объектного модуля. Информацией о размерах созданных модулей генератор пополняет внутреннюю БД, а сами объектные модули помещает во временную библиотеку 3.
Генератор — самый сложный блок компилятора. От качества сгенерированных им объектных программ в значительной степени зависит эффективность всего программного комплекса, поэтому в генераторе проводится оптимизация генерируемого кода.
Конструктор комплекса ПА-6 планирует состав и структуру загрузочного модуля рабочей программы РП, используя для этого возможности управляющих предложений и механизм автовызова редактора связей ОС ЕС. Источниками подпрограмм, из которых компонуется рабочая программа, являются временная библиотека объектных модулей 3 и постоянные библиотеки 4 (подпрограмм моделей элементов; подпрограмм методов интегрирования, многовариантного анализа и параметрической оптимизации; подпрограмм внешних воздействий на проектируемый объект; подпрограмм расчета выходных параметров по результатам моделирования; управляющих и сервисных подпрограмм и т. п.).
Используя информацию из внутренней БД, конструктор Кр с помощью управляющих предложений добавляет к монитору рабочей программы только те подпрограммы из перечисленных выше библиотек, которые необходимы в данном конкретном маршруте проектирования.
Применяемые в комплексе ПА-6 диакоптические методы позволяют варьировать объемом ОП, требуемым под рабочую программу РП, допуская взаимное перекрытие массивов и подпрограмм различных фрагментов анализируемого объекта. При этом целесообразно перекрывать только подпрограммы — тогда обмен с внешней памятью будет односторонним. Такой подход и реализован в конструкторе комплекса ПА-6, который по определенным правилам сочетания модулей и известным их объемам с учетом размера доступной рабочей программе памяти планирует, если это необходимо, загрузочный модуль оверлейной структуры. При самых жестких требованиях к объему рабочей программы ее оверлейная структура может иметь до четырех точек перекрытия. Структура рабочей программы оптимизируется с целью минимизации количества обращений к внешней памяти ЭВМ. Сгенерированный конструктором набор управляющих предложений помещается в специальный раздел временной библиотеки 3 объектных модулей.
Работой компилятора управляет монитор, который осуществляет вызов в необходимые моменты анализатора, генератора и конструктора, располагаемых в отдельных оверлейных сегментах, фиксирует время их выполнения, организует единообразный доступ к внутренней БД и наборам данных на внешних носителях, обрабатывает режимные параметры (опции) компилятора. Опции позволяют управлять форматом вывода, задавать объем ОП, доступной рабочей программе, выводить в удобной форме информацию из внутренней БД, распечатывать структуру матрицы
Рис. 5.7.
Якоби, таблицы перенумерации и т.п. Вслед за компилятором начинает работать редактор связей ОС ЕС, который считывает набор управляющих предложений, сгенерированный конструктором во временной библиотеке 3, и создает загрузочный модуль заданной структуры из заданных объектных модулей, расположенных во временной 3 и постоянных А библиотеках. Этот модуль помещается в ОП, после чего ему передается управление, т. е. начинается собственно- расчет объекта.
Рабочая программа (обрабатывающая подсистема) комплекса ПА-6. Выполнение рабочей программы происходит под управлением монитора, в функции которого входят интерпретация псевдокоманд, отражающих операторы промежуточного языка описания задания, передача управления на диспетчеры, контролирующие вычисления по той или иной псевдокоманде, анализ кодов возврата, организация циклов псевдокоманд, ведение службы времени, установка контрольных точек и т. п.
Модульная структура рабочей программы комплекса ПА-6 совпадает со структурой базового математического обеспечения, представленной на рис. 5.2. Однако в комплексе ПА-6 группы модулей «параметрическая оптимизация» ОПТ, «многовариантный анализ» МВА, «одновариантный анализ» ОБА являются равноуровневыми и располагаются в отдельных перекрываемых сегментах оверлейной структуры рабочей программы. Связь между ними по управлению и информации осуществляемся через монитор рабочей программы, как это показано на рис. 5.7. Поэтому подпрограммы, составляющие эти группы, должны быть повторновходимыми, это несколько усложняет их программирование, но зато кроме значительной экономии ОП даст возможность организации вложенных циклов операторов языка описания задания промежуточного языка комплекса ПА-0.
Диалоговый режим работы комплекса ПА-6. Этот режим в комплексе ПА-6 реализуется специальным интерактивным монитором, осуществляющим динамический вызов в ОП необходимого входного транслятора компилятора, редактора связей ОС ЕС и сгенерированной рабочей программы.
В настоящее время существуют две диалоговые версии программного комплекса; одна из них предназначена для работы в режиме разделения времени (TSO) стандартных операционных систем ЕС ЭВМ, а другая — в рамках оригинальной диалоговой системы C.IE, разработанной в МВТУ им. Н. Э. Баумана. Обе версии допускают работу с комплексом ПА-6 одновременно нескольких пользователей.
В зависимости от характера требуемых от монитора действий команды диалогового режима разбиты на две группы. Первая группа команд используется для «общения» пользователя с рабочей программой на этапе ее выполнения (команды прерывания и запуска рабочей программы, индикации и модификации различных переменных математической модели объекта, управления выдачей результатов, изменения последовательности выполнения псевдокоманд и т. п.). Вторую группу составляют команды корректировки структуры проектируемого объекта. Для выполнения таких команд диалоговый монитор должен выполнить всю цепочку динамических вызовов «входной транслятор — компилятор комплекса ПА-6 — редактор связей — рабочая программа», на что требуется определенное машинное время, обусловливающее задержку реакции комплекса ПА-6 на команду пользователя.