Содержание к диссертации
ВВЕДЕНИЕ
ГЛАВА 1. МОДЕЛИРОВАНИЕ ВЫЧИСЛИТЕЛЬНЫХ СИСТЕМ И КРОСС-
РАЗРАБОТКА ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ 13
1.1. Иерархия уровней моделирования 13
Кремниевый уровень 15
Схемный уровень 15
Уровень логических элементов 15
Регистровый уровень 16
Уровень интегральных схем 16
Архитектурный уровень 17
Системный уровень 18
1.2. Обзор языков моделирования и описания аппаратуры 21
Система ЛМ 21
Язык AHDL 22
Язык ABEL 24
Система Triad 26
Язык DDL 28
Система МОДИС 29
Язык Verilog HDL ЗО
Системы, основанные на языке VHDL 31
1.3. Классификация систем эмуляции 36
Эмуляторы микропроцессоров 36
Эмуляторы микропроцессорных комплектов 37
Эмуляторы вычислительных систем 37
1.4. Обзор систем эмуляции 38
Кросс-система разработки и отладки ПО КСИ-1 38
Комплексы кросс-средств для однокристальной микро-ЭВМ К1816ВЕ48 и для микропроцессоров серии К1810ВМ86 39
Отладчики-эмуляторы PDS-51, PDS-196 и PDS-PIC 39
Внутрисхемный эмулятор АСЕ-52С 40
Имитационная среда моделирования ЕХАМ-РС 41
Средства разработки и отладки ПО промышленных контроллеров HI-WAVE 41
Набор инструментальных средств SingleStep Solution 42
Система VMWare 43
1.4. Выводы и постановка задач исследования 44
ГЛАВА 2. МОДЕЛЬ ВЫЧИСЛИТЕЛЬНЫХ СИСТЕМ 46
Компоненты модели вычислительных систем 46
Устройства 48
Интерфейс устройства 50
Ресурсы устройства 51
Поведение устройства 51
2.3. Коммуникации 52
Шины 54
Сигналы 55
Динамика функционирования модели 56
Коммутаторы 59
Итоговая модель вычислительных систем 71
Выводы 73
ГЛАВА 3. ЯЗЫК МОДЕЛИРОВАНИЯ ВЫЧИСЛИТЕЛЬНЫХ СИСТЕМ DSDL 74
Организация системы моделирования 74
Определение требований, предъявляемых к языку моделирования 77
3.2. Основные концепции построения языка моделирования 82
Структура и синтаксис языка 83
Объекты, используемые в языке 84
Представление данных 84
3.3. Спецификация языка 85
Алфавит и словарь языка 85
Описание устройств 86
3.3.3 Структурирование программ устройств 98
Описание коммутаторов 99
Описание архитектуры 101
Использование внешних встраиваемых модулей для моделирования работы периферийных устройств 103
Доказательство полноты средств языка 106
Полнота модели для описания вычислительных систем 117
Сравнение разработанного языка с другими языками моделирования 119
Выводы 122
ГЛАВА 4. ПРИМЕНЕНИЕ РАЗРАБОТАННЫХ МОДЕЛЕЙ ПРИ МОДЕЛИРОВАНИИ
И ПРОЕКТИРОВАНИИ ВЫЧИСЛИТЕЛЬНЫХ СИСТЕМ 124
Моделирование реконфигурируемых вычислительных систем 124
Моделирование вычислительных систем со сбоями и отказами 130
Переход от моделей архитектурного уровня к моделям нижних уровней 131
Выводы 135
ГЛАВА 5. РЕАЛИЗАЦИЯ ЭМУЛЯТОРА ВЫЧИСЛИТЕЛЬНЫХ СИСТЕМ НА
РАЗЛИЧНЫХ АРХИТЕКТУРАХ 136
Оценивание эффективности эмуляции 136
Реализация эмулятора на однопроцессорной ЭВМ 143
Организация системы эмуляции на основе интерпретатора 144
Организация системы эмуляции на основе компилятора 145
Организация вычислительного процесса для реализации параллельного взаимодействия компонентов ; 146
Организация функционирования программ устройств с помощью параллельных процессов 148
Организация функционирования программ устройств с помощью многопоточности 153
Организация функционирования программ устройств с помощью сопрограмм 154
Реализация эмулятора на многопроцессорной ЭВМ 158
Универсальный программно-аппаратный эмулятор 158
Архитектура универсального программно-аппаратного эмулятора 159
Проецирование архитектуры моделируемой ВС 161
Оценка временных характеристик универсального эмулятора 165
Реализация эмулятора с помощью компьютерной сети 168
Выводы 169
ГЛАВА 6. ПРОГРАММНЫЙ КОМПЛЕКС ЭМУЛЯЦИИ ВЫЧИСЛИТЕЛЬНЫХ
СИСТЕМ 171
6.1. Структура программного комплекса 171
6.1.1. Графический редактор архитектур 172
Компилятор языка моделирования 173
Подсистема моделирования 174
Метаассемблер 175
Система визуализации 176
Интегрированная среда эмуляции 176
Процесе эмуляции ВС 177
Алгоритм эмуляции ВС 179
Автоматическая генерация структуры программы устройств 182
Реализация программного комплекса 184
Выводы 186
ГЛАВА 7. ПРИМЕРЫ ПРИМЕНЕНИЯ МОДЕЛИ И ЯЗЫКА ДЛЯ ЭМУЛЯЦИИ
ВЫЧИСЛИТЕЛЬНЫХ СИСТЕМ 187
Эмуляция систем на основе микропроцессора DP32 187
Эмуляция однокристальной ЭВМ серии МК51 191
Выводы 193
ЗАКЛЮЧЕНИЕ 194
ПУБЛИКАЦИИ ПО ТЕМЕ ДИССЕРТАЦИИ 196
ЛИТЕРА ТУРА 198
ПРИЛОЖЕНИЕ 1. ГРАММАТИКА ЯЗЫКА DSDL 205
ПРИЛОЖЕНИЕ 2. ШАБЛОН ПРОГРАММЫ, СГЕНЕРИРОВАННЫЙ ПО
СПЕЦИФИКАЦИИ МИКРОПРОЦЕССОРА КР580 215
ПРИЛОЖЕНИЕ 3. СООТВЕТСТВИЕ ЯЗЫКОВЫХ КОНСТРУКЦИЙ DSDL И VHDL219
ПРИЛОЖЕНИЕ 4. ОПИСАНИЕ ВС НА ОСНОВЕ МИКРОПРОЦЕССОРА DP32 226
ПРИЛОЖЕНИЕ 5. ОПИСАНИЕ ВС НА ОСНОВЕ МК51 232
ПРИЛОЖЕНИЕ 6. ДОКУМЕНТЫ, ПОДТВЕРЖДАЮЩИЕ ВНЕДРЕНИЕ
РЕЗУЛЬ ТА ТОВ ДИССЕРТАЦИОННОЙ РАБОТЫ 247
Введение к работе
Актуальность темы. Современные темпы распространения вычислительной техники практически во всех сферах человеческой деятельности и проникновение компьютеров в большинство областей жизни предопределяют необходимость автоматизации исследования и построения новых вычислительных архитектур. Общее уменьшение времени эксплуатации аппаратных средств и программного обеспечения - их «моральное устаревание» и, как следствие, повсеместное сокращение сроков их проектирования, требует создания таких подходов, которые позволили бы осуществлять проектирование новых вычислительных систем в минимальные сроки.
Один из подходов к уменьшению времени проектирования вычислительных систем заключается в разработке базового программного обеспечения одновременно с разработкой аппаратуры или даже раньше ее появления [10]. Таким образом, например, осуществляется разработка новых операционных систем для проектируемых микропроцессоров и портирование существующих.
Основным способом разработки программного обеспечения в условиях отсутствия функционирующей аппаратуры является использование отладочных программных моделей. С помощью специальных программных средств -эмуляторов, кросс-трансляторов и кросс-отладчиков [6-12, 24, 26, 27, 29, 31, 35,36, 65, 69, 74, 75] - осуществляется имитация выполнения программ целевой вычислительной системы. Такие кросс-средства выпускаются всеми фирмами, производящими микропроцессоры, микроконтроллеры, сигнальные процессоры и транспьютеры. Особенностью этих штатных средств разработки является их жесткая ориентация на конкретный микропроцессор или класс микропроцессоров.
Использование штатных средств эмуляции, поставляемых различными фирмами-разработчиками, при разработке и отладке программного обеспечения ВС, вынуждает производить существенные капиталовложения. Каждый новый
используемый в проекте микропроцессор или микроконтроллер увеличивает финансовые затраты за счет приобретения дополнительных кросс-средств разработки на 5-10 тысяч долларов, в то время как стоимость применяемой аппаратуры может быть на один-два порядка ниже. При этом каждый используемый инструмент имеет свой набор поддерживаемых функций, свои отладочные возможности и свой интерфейс, то есть отсутствует унификация применяемых средств разработки.
Второе ограничение использования различных штатных кросс-средств разработки проявляется в задаче проектирования и отладки программного обеспечения для вычислительных систем нестандартной архитектуры. Штатные кросс-средства позволяют разрабатывать и отлаживать программное обеспечение для отдельных стандартных компонентов вычислительных систем. Задача же комплексной разработки и отладки программного обеспечения, обеспечения корректного функционирования и взаимодействия программных компонентов, распределенных по узлам вычислительной системы нестандартной архитектуры, не покрывается штатными средствами.
Не менее важной является задача изучения и исследования архитектуры и функционирования различных устройств и систем. В таких случаях необходимо иметь универсальные программные средства, позволяющие исследовать поведение различных аппаратных устройств и оценивать архитектуры вычислительных систем.
Таким образом, актуальность решаемых в диссертационной работе задач определяется необходимостью создания новых универсальных методов представления вычислительных систем и новых подходов к комплексной разработке и отладке распределенного программного обеспечения с применением эффективных средств эмуляции.
Предметом исследования диссертации являются модели вычислительных систем (ВС), позволяющие адекватно представлять реально существующие или проектируемые системы с точки зрения возможности выполнения с их помощью
отдельных команд и целых программ исследуемых систем; языковые описания вычислительных устройств и систем; методы эмуляции ВС; методы повышения эффективности эмуляции, основанные на структуре вычислительного процесса имитации и организации архитектур инструментальных ЭВМ.
Цель диссертационной работы состоит в исследовании и построении моделей, языковых описаний и эффективных методов эмуляции вычислительных систем, предназначенных для разработки универсальных программных и программно-аппаратных эмуляторов вычислительных систем, а также в
практической реализации разработанных концепций. г
Задачи диссертационной работы. Для достижения поставленной цели решаются следующие основные задачи:
Разработка концепций построения структурно-поведенческих моделей ВС.
Разработка языка моделирования ВС.
Разработка методов автоматической генерации структур имитационных программ.
Построение методов определения эффективности систем эмуляции, реализуемых на различных архитектурах.
Анализ и выбор эффективных способов реализации систем эмуляции.
Построение на основе разработанных теоретических положений программного комплекса эмуляции ВС.
Научные результаты их новизна. В ходе работы над диссертацией сформулированы и обоснованы следующие результаты:
1. Разработана модель ВС, описывающая структуру ВС и динамику функционирования компонентов, которая в отличие от существующих автоматически формирует отображение параллельного функционирования системы в многопотоковый вычислительный процесс.
Разработан язык моделирования ВС DSDL, позволяющий компактно представлять ВС за счет наличия конструкций, отражающих основные свойства базовых устройств ВС, и доказана его полнота.
Предложен новый метод синхронизации взаимодействия компонентов модели ВС, предусматривающий структурирование поведенческих программ устройств на основе явной простановки меток тактирования в теле программы.
Разработана методика оценки коэффициента моделирования, путем формального преобразования графа вычислительного процесса эмуляции с учетом специфики архитектуры инструментальной системы. По результатам анализа коэффициента моделирования показана эффективность способа организации вычислительного процесса на однопроцессорной ЭВМ, основанного на использовании сопрограмм.
Предложена архитектура универсального программно-аппаратного эмулятора ВС, позволяющая сократить временные затраты на моделирование независимо от количества устройств целевой ВС за счет организации массового распараллеливания процесса эмуляции.
Значимость результатов для практики. В ходе работы над диссертацией получены следующие практические результаты:
Совокупность моделей ВС и языковых описаний обеспечивает высокую эффективность моделирования, выражающуюся в сокращении объема описаний исследуемой ВС и времени моделирования.
Спроектирован и реализован открытый программный комплекс эмуляции ВС, позволяющий осуществлять эффективную эмуляцию функционирования ВС различного состава и архитектуры.
Разработан метод автоматической генерации структуры поведенческих программ, существенно упрощающий процесс создания языковых описаний устройств.
Открытая архитектура программного комплекса и доказательство возможности автоматической трансляции моделей языка DSDL в описания на языке VHDL предоставляют возможность использования программного комплекса как в составе мощных САПР, основанных на языке VHDL, так и в совокупности с существующими кросс-средствами разработки программного обеспечения.
Разработанные модели ВС, язык моделирования и программный комплекс эмуляции могут использоваться для изучения системы команд микропроцессоров и микроконтроллеров и архитектур ВС.
Реализация результатов. Разработанные методы моделирования ВС и программный комплекс эмуляции используются в процессе проектирования аппаратных и программных средств ЦНИИ «МорФизПрибор».
Материалы диссертационной работы используются в учебном процессе кафедры автоматики и вычислительной техники СПбГТУ.
Основные положения, выносимые на защиту.
Модель вычислительных систем, обеспечивающая компактное и эффективное представление вычислительных устройств и систем.
Язык моделирования вычислительных систем, позволяющий компактно описывать как архитектуру ВС, так и структуру, и поведение ее компонентов.
Метод синхронизации взаимодействия компонентов модели, основанный на структурировании поведенческих описаний компонентов.
Методика оценки эффективности организации вычислительного процесса эмуляции и архитектуры инструментальной системы, основанная на анализе графа вычислительного процесса.
Архитектура универсального программно-аппаратного эмулятора, обеспечивающая массовое распараллеливание вычислительного процесса эмуляции.
Публикации. По теме диссертации опубликовано 10 печатных работ.
Структура диссертационной работы.
Диссертация состоит из введения, семи глав, заключения, списка литературы и приложений.
В первой главе диссертации классифицируются уровни представления вычислительных систем. Рассматриваются различные существующие системы и языки моделирования, осуществляется их сравнительный анализ по ряду характеристик. Приводится классификация эмуляторов. Осуществляется обзор существующих эмуляторов, показываются области применения и ограничения стандартных эмуляторов и систем моделирования. На основе проведенного анализа ставятся задачи диссертационной работы.
Во второй главе проводится анализ задачи, вырабатываются требования к универсальным эмуляторам. Формируется структура модели вычислительных систем. Специфицируются компоненты модели, определяется их структурное и поведенческое описание. Определяется динамика взаимодействия компонентов и рассматривается комплексное функционирование модели.
В третьей главе определяются требования к языку моделирования, описывающему вычислительные системы на архитектурном уровне. Производится спецификация языка моделирования вычислительных систем, дается формальное и неформальное описание лексики, синтаксиса и семантики разработанного языка. Реализуется метод синхронизации компонентов модели, основанный на структурировании поведенческих описаний устройств. Описываются средства интеграции языка моделирования с внешними библиотеками для построения моделей периферийных устройств. Приводится доказательство полноты средств языка для представления любых дискретных вычислительных систем. Производится анализ и сопоставление средств разработанного подхода с альтернативными языками и моделями вычислительных систем. Показывается большая компактность разработанных моделей и программ на языке моделирования по сравнению с аналогами.
В четвертой главе рассматривается представление различных типов вычислительных систем с помощью разработанных концепций. Показывается
место разработанных подходов при нисходящем проектировании средств вычислительной техники. Приводится процедура автоматической генерации созданных описаний в модели низших уровней.
В пятой главе вводится методика оценивания эффективности вычислительного процесса эмуляции и архитектуры инструментальной ЭВМ. Производится анализ способов реализации систем моделирования на различных архитектурах инструментальных ЭВМ. Рассматриваются реализации эмулятора на одно- и многопроцессорных инструментальных ЭВМ. Разрабатывается архитектура эффективного универсального программно-аппаратного эмулятора ВС. Доказывается невозможность применения компьютерных сетей для эмуляции работы ВС.
В шестой главе описывается разработанный программный комплекс эмуляции вычислительных систем, специфицируются функции его компонентов и связи между ними. Обосновывается структура программного комплекса, описывается технологический цикл создания модели ВС и прогона ее на программном эмуляторе. Описывается алгоритм имитации работы вычислительных систем на каждом такте. Формируется процедура автоматического построения структур моделирующих программ.
В седьмой главе рассматриваются примеры эмуляции реальных микропроцессоров и ВС с помощью разработанного языка и программного комплекса эмуляции ВС. Производится сравнение построенных моделей с моделями, полученными при использовании других средств моделирования и проектирования.
В приложениях приведены грамматика языка моделирования DSDL, таблица соответствий основных конструкций языков DSDL и VHDL, шаблон автоматически сгенерированной программы микропроцессора КР580, примеры программ описания вычислительных устройств и систем и документы, подтверждающие внедрение результатов исследования.