Содержание к диссертации
Введение
ГЛАВА 1. Эмулирование бортовых вычислительных машин с открытой системой команд 11
1.1. Структура бортовых вычислительных систем 11
1.2. Системы эмуляции бортовых вычислительных машин 12
1.3. Обзор систем эмуляции бортовых вычислительных машин 12
1.4. Способы организации системы программной эмуляции 17
1.4.1. Способ организации системы эмуляции на основе интерпретатора 17
1.4.2. Способ организации системы эмуляции на основе компилятора 19
1.4.3. Способ организации системы эмуляции транелирующе-компилирующего типа 20
1.5. Выводы 21
1.6. Постановка задач исследования 21
ГЛАВА 2. Разработка метода трансляции на промежуточный язык с учетом эмуляции систем ввода-вывода, диспетчеризации и аппарата синхронизации и методики программной эмуляции семейства БЦВМ ОСК 24
2.1. Определение возможности программной эмуляции 24
2.2. Метод трансляции на промежуточный язык с учетом эмуляции систем ввода-вывода, диспетчеризации и аппарата синхронизации 26
2.2.1. Способы формирования адресной трассы 28
2.2.1.1. Способ формирования адресной трассы при последовательном анализе памяти операторов 28
2.2.1.2. Способ формирования адресной трассы по функциональным задачам 30
2.2.2. Способы распознавания операторов ОСК 36
2.2.2.1. Способ распознавания оператора по коду операции 37
2.2.2.2. Способ распознавания оператора по функциональному представлению 40
2.2.3. Способы представления оператора на промежуточном языке 42
2.2.4. Особенности трансляции вычислительных операторов ОСК 49
2.2.5. Схемы программной эмуляции системы ввода-вывода и аппарата синхронизации 57
2.2.6. Схемы программной эмуляции системы диспетчеризации 60
2.3. Методика программной эмуляции семейства БЦВМ ОСК 69
2.4. Модель оценки времени транслирования программного обеспечения семейства БЦВМ ОСК с учетом появления нового оператора 69
2.5. Выводы 73
ГЛАВА 3. Разработка средств программной эмуляции семейства БЦВМ ОСК 74
3.1. Основные концепции построения языка описания операторов для представления эмулируемой системы команд 74
3.1.1. Структурам синтаксис языка 74
3.1.2. Алфавит и словарь языка 75
3.1.3. Объекты, используемые в языке 83
3.1.4. Представление данных 85
3.1.5. Операторы языка 86
3.1.6. Грамматика языка описания операторов 93
3.2. Доказательство полноты средств языка 98
3.3. Выводы 100
ГЛАВА 4. Программный комплекс эмуляции семейства БЦВМ ОСК 101
4.1. Структура программного комплекса 101
4.1.1. Конструктор представления системы команд 102
4.1.2. Модуль инициализации 104
4.1.3. Модуль имитации 104
4.1.4. Модуль трансляции 105
4.1.5. Модуль визуализации результатов 106
4.2. Процесс и алгоритм эмуляции 107
4.3. Реализация программного комплекса 116
4.4. Оценка эффективности работы программного комплекса 118
4.4.1. Оценка времени программной эмуляции конкретных оттранслированных
функциональных задач 118
4.4.2, Оценка точности вычислений на примере конкретных оттранслированных
функциональных задач 121
4.5. Выводы 123
Заключение 124
Литература 126
Приложение 1 133
Приложение 2 148
Приложение 3 151
- Структура бортовых вычислительных систем
- Определение возможности программной эмуляции
- Основные концепции построения языка описания операторов для представления эмулируемой системы команд
- Структура программного комплекса
Введение к работе
Актуальность темы.
С разработкой новейших устройств управления летательных аппаратов, работающих на новой элементной базе, появилась потребность в модернизации вычислительных систем, обеспечивающих управление подобными устройствами. Вычислительные системы летательных аппаратов состоят из одного и более вычислительного модуля. Переход на новую элементную базу обеспечивает улучшение технических и эксплуатационных характеристик вычислительного модуля, в частности, увеличения быстродействия, точности и надежности вычислений, уменьшения весовых и габаритных характеристик. Модернизация предполагает замену вычислительного модуля, которая может быть реализована либо разработкой новой бортовой цифровой вычислительной машины (БЦВМ), либо разработкой образа программного обеспечения заменяемой БЦВМ для использования на целевой БЦВМ с улучшенными характеристиками.
Разработка новой БЦВМ включает в себя разработку нового программного и аппаратного обеспечения, которая требует отладки функционального программного обеспечения и проведения испытаний разработанной бортовой машины на борту летательного аппарата.
Разработка образа программного обеспечения заменяемой БЦВМ для использования на целевой БЦВМ с улучшенными характеристиками может быть решена с помощью системы программной эмуляции. Образ программного обеспечения должен полностью повторить алгоритмы функционирования задач заменяемой БЦВМ, в том числе по временным и точностным характеристикам.
При разработке системы эмуляции БЦВМ существует необходимость в проведении отладки только комплекса программного эмулирования, исключая при этом процесс отладки полученного функционального обеспечения на борту летательного аппарата. Приведенный способ дает очевидную экономию во времени и как следствие экономию в стоимости испытаний.
Решение проблемы модернизации вычислительных модулей с помощью разработки системы программной эмуляции актуально и в случае, когда вычислительные системы на борту летательного аппарата состоят из нескольких вычислительных модулей, что не редкость на сегодняшний день. В связи с универсальностью системы эмуляции данный подход ведет к упрощению организации бортовых вычислительных систем. С другой стороны появляется возможность расширения набора функциональных задач за счет использования целевой БЦВМ с увеличенными вычислительными мощностями.
В качестве заменяемого вычислительного модуля в работе рассматривается семейство БЦВМ с открытой системой команд (БЦВМ ОСК). Системы команд указанного семейства БЦВМ определяется базовым набором операторов, который может быть изменен введением на микропрограммном уровне нового оператора, что является особенностью открытой системы команд. Поэтому система эмуляции должна быть ориентирована не только на базовую системы команд, но и учитывать появление нового оператора.
Таким образом, необходимость создания метода и средств эмуляции семейства БЦВМ ОСК определяет актуальность решаемых в диссертационной работе задач.
Цель диссертационной работы состоит в исследовании и разработке метода, методики и языковых описаний для программной эмуляции семейства БЦВМ ОСК, а также в практической реализации программного комплекса эмуляции семейства БЦВМ ОСК на основе разработанной методики.
Задачи диссертационной работы. Для достижения поставленной цели решаются следующие основные задачи:
Анализ и определение системы программной эмуляции БЦВМ ОСК;
Разработка метода трансляции на промежуточный язык с учетом эмуляции систем ввода-вывода, диспетчеризации и аппарата синхронизации;
Разработка методики программной эмуляции;
Разработка модели оценки времени транслирования программного обеспечения семейства БЦВМ ОСК;
Разработка и реализация языка описания ОСК;
Разработка и реализация программного комплекса эмуляции семейства БЦВМ ОСК,
Научные результаты и их новизна. В диссертационной работе получены и обоснованы следующие результаты:
Предложен метод трансляции на промежуточный язык ОТК с учетом программной эмуляции систем ввода-вывода, диспетчеризации и аппарата синхронизации, в основе которого разработаны способы формирования адресной трассы по функциональным задачам и распознавания оператора по функциональному представлению.
Разработана методика организации программной эмуляции семейства БЦВМ ОСК.
Разработана модель оценки времени транслирования программного обеспечения семейства БЦВМ ОСК.
Разработан язык описания операторов.
Практическая значимость результатов работы. В диссертационной работе получены следующие практические результаты: разработанный язык описания операторов обеспечивает компактное функциональное представление операторов ОСК, в том числе и нового оператора; спроектирован и реализован программный комплекс, позволяющий осуществлять эффективную эмуляцию программного обеспечения семейства БЦВМ ОСК; разработанная модель оценки времени трансляции, метод трансляции на промежуточный язык, язык описания операторов и программный комплекс эмуляции могут быть использованы для изучения системы команд семейства БЦВМ ОСК.
Основные положения, выносимые на защиту.
Метод трансляции на промежуточный язык программного обеспечения семейства БЦВМ ОСК с учетом эмуляции систем ввода-вывода, диспетчеризации и аппарата синхронизации;
Методика программной эмуляции семейства БЦВМ ОСК;
Модель оценки времени транслирования программного обеспечения семейства БЦВМ ОСК;
Язык описания операторов, позволяющий компактно описывать их структуру и функции поведения.
Внедрение результатов работ.
Основные практические и теоретические результаты диссертационной работы, а именно: программный комплекс эмуляции семейства БЦВМ ОСК, реализованный на основе разработанной методики и средств эмуляции, внедрены на предприятии ОАО НИИ Приборостроения им. В.В.Тихомирова при реализации системы «Ш-101» на базе БЦВМ с языком программирования C++, что подтверждается соответствующим актом.
Апробация работы.
Результаты диссертационной работы докладывались и обсуждались на научно-технических конференциях: научно-технической конференции «Научная сессия МИФИ-2002» (Москва, 2002); па научных семинарах каф. 304 "Вычислительные машины и системы", МАИ (Москва, 2002-2006).
Публикации.
По материалам диссертации опубликовано 15 работ.
Структура диссертационной работы.
Во введении обосновывается актуальность темы диссертационной работы, определяются цель и основные рассматриваемые вопросы, описываются новизна, практическая значимость и реализация результатов работы.
В первой главе рассмотрены системы эмуляции вычислительных машин на основе аппаратно-программных эмуляторов и программных эмуляторов. В работе рассматриваются системы программной эмуляции по причине меньшей стоимости и простоты реализации и эксплуатации по сравнению с системами эмуляции на основе аппаратно-программных эмуляторов.
Дан обзор существующих систем программной эмуляции и языков, на основе которых они выполнены, и сделаны выводы о том, что существующие системы программной эмуляции не позволяют эффективно эмулировать БЦВМ ОСК.
Рассмотрены системы программной эмуляции на основе интерпретатора, на основе компилятора и транслирующе-компилирующего типа. Приведено обоснование использования последней системы программной эмуляции для эмуляции семейства БЦВМ ОСК, которая использует в своей реализации транслятор на промежуточный язык с последующим применением компилятора. При этом достигается высокая скорость работы на целевой БЦВМ, что влияет на эффективность системы эмуляции. В качестве промежуточного языка предложено использовать традиционные индустриальные языки, что значительно упрощает организацию системы эмуляции, которая сводится к решению вопросов трансляции на промежуточный индустриальный язык.
Во второй главе предложен метод трансляции на промежуточный язык с учетом эмуляции системы ввода-вывода, диспетчеризации и аппарата синхронизации. В рамках предложенного метода определены и исследованы способы формирования адресной трассы. Рассмотрены способы распознавания оператора ОСК, такие как: способ распознавания по коду операции и способ распознавания по функциональному представлению оператора. Данные способы исследованы по критерию эффективности при учете появления нового оператора. Предложены способы представления операторов на промежуточном языке, проведена их оценка по критерию занимаемой памяти результирующим кодом.
Разработана методика программной эмуляции семейства БЦВМ ОСК.
Предложена модель оценки времени транслирования программного обеспечения семейства БЦВМ ОСК с учетом появления нового оператора.
В третьей главе показана актуальность разработки языка описания операторов ОСК. На основе архитектур семейства БЦВМ ОСК, а также функций поведения операторов определены требования, предъявляемые к разрабатываемому языку описания операторов. Разработаны структура и синтаксис языка, алфавит и словарь языка, объекты, используемые в языке. Представлены операторы языка, средства обращения к памяти, описано представление данных и формальные параметры операторов. Реализована организация арифметических, логических операций, комментариев и обращения к функциям. Приведено доказательство полноты средств языка.
В четвертой главе представлен разработанный программный комплекс эмуляции семейства БЦВМ ОСК. Дана структура программного комплекса, описан процесс и алгоритм программной эмуляции на промежуточный язык высокого уровня C++. Приведена реализация компонентов программного комплекса.
Получена оценка времени трансляции программного обеспечения БЦВМ ОСК и точности вычислений на примере программной эмуляции функциональных задач программного обеспечения БЦВМ ОСК типа БЦВМ ЦІ 00-02 и ЦІ 00-03 под целевую БЦВМ Багет-54.
Структура бортовых вычислительных систем
Вычислительные системы на борту летательного аппарата состоят из нескольких вычислительных модулей, что не редкость на сегодняшний день (рис. 1.1). В связи с универсальностью системы эмуляции данный подход ведет к упрощению организации бортовых вычислительных систем, С другой стороны появляется возможность расширения набора функциональных задач за счет использования целевой БЦВМ с увеличенными вычислительными мощностями.
В качестве заменяемого вычислительного модуля в работе рассматривается семейство БЦВМ с открытой системой команд (БЦВМ ОСК), Системы команд указанного семейства БЦВМ определяется базовым набором операторов, который может быть изменен введением на микропрограммном уровне нового оператора, что является особенностью открытой системы команд. Поэтому система эмуляции должна быть ориентирована на эмуляцию не только базовой системы команд, но и на эмуляцию с учетом появления нового оператора.
Таким образом, необходимость создания метода и средств эмуляции семейства БЦВМ ОСК определяет актуальность решаемых в диссертационной работе задач.
Рассмотрим системы эмуляции вычислительных машин.
Эмуляторы бортовых вычислительных машин [2, 4, 5] предназначены для моделирования устройств вычислительной техники более сложной архитектуры. Это эмуляторы конкретных БЦВМ [13, 33, 35] или универсальные эмуляторы [36, 49, 57] для моделирования семейства БЦВМ. Такие эмуляторы используют для имитации другую БЦВМ и применяются как правило в целях модернизации программного обеспечения БЦВМ предшествующего поколения, т.е. для эксплуатации программного обеспечения на БЦВМ с отличной от имеющейся архитектурой, либо для отладки программного обеспечения на инструментальной ЭВМ. По способу реализации такие эмуляторы делятся на аппаратно-программные эмуляторы и программные эмуляторы (рис. 1.2.). Аппаратно-программные эмуляторы предполагают использование аппаратной реализации для согласовапия работы внешних устройств с новой аппаратной частью вкупе с программной реализацией. Программные эмуляторы используют чисто программную модель вычислительной машины с моделированием ее аппаратуры.
Программные эмуляторы дешевле и проще в своей реализации и эксплуатации, чем аппаратно-программные. Построению именно таких систем эмуляции и посвящена данная диссертационная работа.
Рассмотрим и проанализируем существующие системы программной эмуляции и языки, на основе которых они организованы.
Определение возможности программной эмуляции
Для определения возможности программной эмуляции БЦВМ ОСК для выполнения на целевой БЦВМ необходимо провести сравнительный анализ эмулируемой и целевой БЦВМ по следующим характеристикам:
1. форматы чисел (целые, с плавающей точкой, с точкой перед старшим разрядом);
2. разрядность БЦВМ;
3. объемы постоянной и оперативной памяти;
4. быстродействие;
5. система ввода-вывода;
6. система прерываний;
7. способов синхронизации и диспетчеризации.
При несовпадении используемых на эмулируемой и целевой БЦВМ форматов чисел необходимо провести определение возможности организации вычислений с помощью имеющихся в целевой БЦВМ числовых форматов. Например, если эмулируемая БЦВМ выполняет операции над числами дробной арифметики, а целевая БЦВМ может оперировать только целыми числами или числами с плавающей точкой, то необходимо провести исследования по возможности организации вычислений с помощью целых чисел, либо чисел с плавающей точкой и определить накладные расходы.
На втором шаге предлагается сравнить разрядности БЦВМ. Разрядность целевой БЦВМ должен превосходить разрядности эмулируемой БЦВМ, иначе при вычислениях будет уменьшаться точность, что не удовлетворяет условиям организации процесса эмуляции.
На третьем шаге необходимо сравнить объемы оперативной и постоянной памяти эмулируемой и целевой БЦВМ. Объем памяти целевой БЦВМ должен превосходить объем эмулируемой БЦВМ, т.к. на целевой БЦВМ кроме эмулируемого программного обеспечения могут выполняться другие новые задачи.
На четвертом шаге сравнивается быстродействие работы эмулируемой и целевой БЦВМ. Целевая БЦВМ должна иметь большее быстродействие по сравнению с эмулируемой.
На пятом шаге предлагается сравнить системы ввода-вывода, а именно: способы ввода-вывода, количество линий каналов ввода-вывода, частоту передачи данных. Способами ввода-вывода являются последовательный и параллельный ввод-вывод. При несоответствии протоколов ввода-вывода должна быть решена задача эмуляции ввода-вывода одного вида с помощью другого. При недостатке линий каналов на целевой БЦВМ для эмуляции процесса ввода-вывода необходимо решить задачу эмуляции ввода-вывода с использованием меньшего количества каналов. Решение поставленной задачи приведено в последующем разделе данной главы. Таюке необходимо достичь одинаковой частоты передачи данных.
На шестом шаге необходимо сравнить системы прерываний, а именно: виды прерываний и глубину прерываний. На данном этапе возникает задача организации того вида прерывания, которого нет на целевой БЦВМ. Таюке проблема появляется при нехватке глубины прерываний на целевой БЦВМ для эмулирования системы прерываний эмулируемой БЦВМ.
На последнем этапе требуется проанализировать организацию системы синхронизации и диспетчеризации на эмулируемой и целевой БЦВМ. Процесс выполнения задач на целевой БЦВМ должен выполняться по времени столько же, сколько на эмулируемой БЦВМ.
Этапы процесса определения возможности программной эмуляции семейства БЦВМ ОСК для выполнения на целевой БЦВМ представлен на рис. 2.1.
После определения возможности программного эмулирования БЦВМ на целевой БЦВМ необходимо определить систему программной эмуляции. В данном случае на эффективность системы эмуляции будет влиять минимальное время исполнения программ на целевой БЦВМ и оптимальное распределения памяти под оттранслированное ПО. Так как эффективность системы эмуляции является одним из ключевых параметров, то в дальнейшем будем рассматривать только системы эмуляции траиелирующе-компилирующего типа. Как было показано в главе 1, эти системы используют в своей реализации трансляцию на промежуточный язык, организация которой будет рассмотрена в следующем подразделе.
Основные концепции построения языка описания операторов для представления эмулируемой системы команд
Так как большинство операторов эмулируемой системы команд имеют сложную структуру, т.е. для описания алгоритма сложного оператора используется несколько команд языка высокого уровня в виде программы, то для изображения сложного оператора необходимо использовать алгоритмические конструкции какого-либо языка программирования. За базовый язык программирования был взят язык С.
Создание описания оператора на исходном языке можно рассматривать как создание шаблона, декларирующего последовательность действий, производимых при выполнении оператора. Состав и порядок выполнения этих действий не зависит от значений параметров оператора. Поэтому вместо фактических параметров при описании оператора используют формальные параметры.
Генерация задачи на исходном языке заключается в составлении текста программы из описаний операторов, составляющих задачу. При этом формальные параметры в процессе трансляции заменятся фактическими параметрами.
Для сравнения функций, содержащих п входных переменных, вводится понятие / -эквивалентности.
-Эквивалентность отношение эквивалентности на множестве функций, определяемое следующими правилами:
1) терминальные элементы (константы и переменные) эквивалентны, если они совпадают;
2) функции fifx1;,... 1,,) и // ,,.,, , где x j,... 1, и x/,...,xf - входные параметры функций /; и /2 соответственно, эквивалентны, если fs и /2 совпадают. Данное отношение определяет тождественно равные функции и используется при сопоставлении с образцом.
Сопоставление (:) записывается следующим образом;
Е: L = 3 подстановка S переменных в І, такая, что E L.
Сопоставление с образцом в формальном описании языка описания операторов и проектирование подвыражений производится на строках линейным образом.
При разборе строки происходит выделение всех подвыражений (токеиов) [39, 56]. Получающиеся образцы таковы, что отождествление всегда может быть произведено не более чем одним способом, так как образец не содержит структур, аналогичных свободным переменным. Удлинение подвыражений может происходить за счет введения -эквивалентности. Сложность алгоритма зависит от длины объектной строки.
Таким образом, язык описания операторов позволяет эффективно представлять и обрабатывать функции представления операторов системы команд с учетом ее изменения.
В диссертационной работе было произведено моделирование языка описания операторов средствами ЯВУ C++, что дает возможность интегрировать данный язык с индустриальными языками программирования.
Структура программного комплекса
Программный комплекс - интегрированный пакет, имеющий удобные средства, позволяющие производить эмуляцию работы семейства БЦВМ ОСК.
Программный комплекс проектировался для функционирования на однопроцессорной инструментальной ЭВМ.
Программный комплекс состоит из:
1) Конструктор представления системы команд;
2) Модуль инициализации;
3) Модуль имитации;
4) Модуль трансляции;
5) Модуль визуализации результатов.
Структура программного комплекса и логические связи между компонентами представлены на рис. 4.1.
Инициализационными данными для программного эмулятора являются двоичные файлы машинных команд, которые загружаются в соответствующие запоминающие устройства непосредственно перед началом процесса эмуляции.
Задание форматов операторов в виде машинных команд неудобно для пользователя. Гораздо более эффективно разрабатывать программу с использованием мнемонических средств. Проблемой является наличие множества различных процессоров с различными системами команд, для каждого из которых необходимы свои мнемонические наборы. Решением проблемы может быть либо создание для каждого используемого процессора уникального мнемокода, либо применение универсального языка представления для задания синтаксиса и спецификации оператора.
В состав программного комплекса включен язык описания операторов, позволяющий описывать системы команд семейства БЦВМ ОСК, разработанный автором данной работы.
Таким образом, конструктор представления системы команд предназначен для задания пользователем эмулируемой системы команд семейства БЦВМ ОСК. Задание формата оператора эмулируемой системы команд осуществляется в текстовой форме с использованием специализированного языка описания, представленного в Главе 3 данной работы. Конструктор позволяет описывать:
1) операнды оператора, необходимые для выполнения определенных действий;
2) непосредственное действие, производимое оператором;
3) регистры;
4) массивы;
5) память и обращение к памяти;
6) разрядность передаваемых данных.
Конструктор представления системы команд представляет собой средство для представления базовой системы команд с учетом появления нового оператора на языке описания операторов, на входе которого формат операторов эмулируемой системы команд, а на выходе - мнемоническое описание операторов эмулируемой системы команд.
Формируемая конструктором база данных, содержащая мнемоническое описание форматов операторов эмулируемой системы команд, используется транслятором. Транслятор по коду оператора, считываемого из файла эмулируемого ПО, выбирает его мнемоническое описание, разбирает по определенным правилам и транслирует на ЯВУ C++. В случае отсутствия необходимого оператора в базе данных с мнемоническим описанием транслятор выдает запрос для ввода мнемонического кода представления необходимого оператора пользователем в базу данных. При этом процесс трансляции приостанавливается и продолжает свою работу после модификации базы данных.
После создания пользователем базы данных мнемонического представления форматов операторов эмулируемой системы команд конструктор осуществляет генерацию файла описания форматов операторов на специализированном языке описания, который в дальнейшем будет использован транслятором для создания модели эмулируемого ПО на ЯВУ C++ и дальнейшей компиляции в объектный модуль.