Электронная библиотека диссертаций и авторефератов России
dslib.net
Библиотека диссертаций
Навигация
Каталог диссертаций России
Англоязычные диссертации
Диссертации бесплатно
Предстоящие защиты
Рецензии на автореферат
Отчисления авторам
Мой кабинет
Заказы: забрать, оплатить
Мой личный счет
Мой профиль
Мой авторский профиль
Подписки на рассылки



расширенный поиск

Автоматизация проектирования симуляторов микропроцессоров и микроконтроллеров Негода Дмитрий Викторович

Автоматизация проектирования симуляторов микропроцессоров и микроконтроллеров
<
Автоматизация проектирования симуляторов микропроцессоров и микроконтроллеров Автоматизация проектирования симуляторов микропроцессоров и микроконтроллеров Автоматизация проектирования симуляторов микропроцессоров и микроконтроллеров Автоматизация проектирования симуляторов микропроцессоров и микроконтроллеров Автоматизация проектирования симуляторов микропроцессоров и микроконтроллеров Автоматизация проектирования симуляторов микропроцессоров и микроконтроллеров Автоматизация проектирования симуляторов микропроцессоров и микроконтроллеров Автоматизация проектирования симуляторов микропроцессоров и микроконтроллеров Автоматизация проектирования симуляторов микропроцессоров и микроконтроллеров Автоматизация проектирования симуляторов микропроцессоров и микроконтроллеров
>

Диссертация - 480 руб., доставка 10 минут, круглосуточно, без выходных и праздников

Автореферат - бесплатно, доставка 10 минут, круглосуточно, без выходных и праздников

Негода Дмитрий Викторович. Автоматизация проектирования симуляторов микропроцессоров и микроконтроллеров : Дис. ... канд. техн. наук : 05.13.12 Ульяновск, 2005 157 с. РГБ ОД, 61:06-5/289

Содержание к диссертации

Введение

1. Анализ технологий проектирования симуляторов 10

1.1. Модели микропроцессоров 10

1.2. Классификаций симуляторов 13

1.3. Базовые технологии проектирования симуляторов 22

1.4. Оптимизация симуляторов по быстродействию 24

1.5. Выводы по первой главе 26

2. Исследование методов оптимизации симуляторов по быстродействию .28

2.1. Методы анализа и трансформации программ 28

2.1 1. Алгебра языков программирования 31

2.1.2. Синтаксис и семантика языка While++ 36

2.1.3.Реляционная хоаровская логика 43

2.2. Таблично-алгоритмическая оптимизация 55

2.2.1-Функциональная модель 55

2.2.2. Эксперимент 58

2.2.3.Решение в общем случае 60

2.2.4. Частичная реализация ветвей симулятора 62

2.2.5. Поразрядная двоичная арифметика 64

2.2.6, Решение систем уравнений и неравенств в поразрядной двоичной арифметике 70

2.2.7, Эквивалентность выражений 76

2.2.8, Процедура таблично-алгоритмической оптимизации 81

2.3. Отложенное вычисление флагов 89

2.3. 1 Функциональная модель 90

2.3.2. Эксперимент 91

2.3.3. Автоматизация оптимизируюхцего преобразования 94

2.4, Выводы по второй главе 96

3. Автоматизация тестирования симуляторов 98

3.1. Автоматизация тестирования программ 98

3.2. Существующие методы тестирования симуляторов 101

33. Метод тестирования симуляторов на основе генерации тестов и использования прототипа 103

3.4. Выводы по третьей главе 111

4. Автоматизация проектирования симуляторов микроконтроллеров и интеграция моделей микропроцессорных устройств в систему 113

4.1.. Структура МПС 115

4.2. Взаимодействие компонентов МПС 116

4.3. Маршрутизатор сообщений 118

4.4. Планирование и дельта-задержка 123

4.5. Дизассемблер 126

4.6. Визуальная среда симуляции МПС 130

4.7. Симулятор микропроцессора І8086. Создание новых симуляторов и моделей 133

4.8. Выводы по четвертой главе 135

Заключение 436

Список используемых сокращений

Введение к работе

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

Адекватность симуляторов обеспечивается процессом тестирования исходной спецификации или исходного симулятора. По мнению В,В,Липаева процесс тестирования программ занимает до 30-40% суммарных трудозатрат на их разработку. В этой связи особо актуальной является автоматизация верификации спецификаций.

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

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

Исследования должны охватывать достаточно представительный круг вопросов.

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

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

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

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

5
Область исследования - автоматизация проектирования микропроцес-

сорных систем.

Объект исследования - симуляторы микропроцессоров и микроконтроллеров.

Предмет исследования диссертапии — методы и средства автоматизации проектирования симуляторов микропроцессоров и микроконтроллеров.

Целью диссертационной работы является разработка методов и средств автоматизации проектироваиияхимуляторов, обладающих высоким быстродействием.

Задачи диссертационной работы. Для достижения этой цели необходимо решить следующие основные задачи:

1. Исследование формальных моделей МП и МК3 методов и средств построения и тестирования их симуляторов, анализ технологий автоматической генерации.

L 2. Разработка и исследование методов оптимизирующих преобразований,

нацеленных на повышение быстродействие симуляторов.

  1. Разработка и исследование методов автоматической генерации тестов машинных команд.

  2. Проведение объектно-ориентированного анализа задачи интеграции симуляторов МП и МК в САПР МПС, разработка архитектурного каркаса САПР МПС, центральным компонентами которого являются программ-

ные модели средств микропроцессорной техники.

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

Научная новизна проведенных исследований заключается в следующем:

L Предложенные в работе расширения языка While позволяют моделировать свойства таких широко распространенных языков как Си и Java, Тем самым создается более конструктивная основа для осуществления оптимизирующих преобразований программных моделей МП и МК.

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

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

  3. Разработанный метод таблично-алгоритмической оптимизации позволяет повышать производительность симулятора практически без затрат времени разработчика (на 40% в проведенных экспериментах).

  4. Разработанный метод оптимизации «отложенное вычисление флагов» позволяет повышать производительность симулятора практически без затрат времени разработчика (на 4-18% в проведенных экспериментах).

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

7 цессорах, либо заведомо правильных симуляторах. Благодаря этому трудозатраты на тестирование симуляторов сокращаются примерно в 3-4 раза.

Практическая ценность. Практическую ценность представляют следующие результаты осуществления разрабатываемых и развиваемых в дш> сертации методов и средств: а) симулятор микропроцессора Т8086, б) архитектурный каркас САПР МПС, в) экспериментальная программа выполнения оптимизирующих преобразований г) программа анализа потока данных в программе.

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

Внедрение результатов. Результаты внедрены в учебный процесс Ул-ГТУ и в ООО «Креативная разработка».

Основные положения, выносимые на защиту:

  1. Абстрактный язык программирования While++, включающий операции общеизвестного языка While, операции с побочным эффектом (такие как -1-+, += и т.п.), вызовы функций и процедур, неструктурные операторы (return и многоуровневый break), адресную арифметику и массивы; формальная спецификация синтаксиса и денотационной семантики этого языка. Предложенный язык обладает достаточной строгостью для того, чтобы использоваться в формальных методах анализа и преобразования программ, с одной стороны, и достаточной полнотой для моделирования реальных языков программирования, с другой.

  1. Расширение реляционной хоаровской логики, используемой для спецификации и доказательства корректности анализа и преобразований императивных программ, на случай языка Whilc++.

3. Поразрядная двоичная арифметика, позволяющая анализировать поток
данных в логике принятия решений в разборе машинных инструкций и
получать оценки вида х and a = h, где and - поразрядное И, а и Ъ -

константы. Логика позволяет получать: а) оценки результата выполнения операций из оценок операндов (прямой DFA); б) уточненные оценки операндов на основе исходных оценок операндов и оценки результата операции (обратный DFA). Правила этой логики позволяют получать локальные решения систем уравнений к неравенств, используемых при анализе алгоритмов декодирования машинной инструкции.

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

5. Оптимизирующее преобразование, основанное на отложенном вычисле
нии флагов целевой архитектуры.

6, Метод тестирования симуляторов, который заключается в; а) автоматиче
ской генерации самотестирутощейся программы из исходного кода разра
батываемого симулятора согласно некоторой метрике покрытия, б) прого
не самотестирутощихся программ на реальном физическом микропроцес
соре или на заведомо корректном симуляторе и анализе не прошедших
тестовых проверок.

Структура диссертационной работы.

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

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

9
^ Во второй главе предлагаются и исследуются методы оптимизации си-

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

В третьей главе предлагается и исследуется метод тестирования симуля-
'< торов, отличающийся от известных тем, что использует исходный код симу-

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

В четвертой главе проводятся экспериментальные исследования, направленные на создание средств интеграции симуляторов в САПР МПС. Ife

лагаются результаты разработки архитектурного каркаса и его применение V

для создания экспериментальной САПР МПС на базе МП 18086.

Автор выражает благодарность своему научному руководителю, д/г.н., профессору, заведующему кафедрой ВТ УлГТУ Соснину П.И., а также группе исследователей лаборатории АОС и участникам постоянно действующего городского семинара «Встроенные системы и коммуникации», где автор неоднократно докладывал результаты своих исследований.

Базовые технологии проектирования симуляторов

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

В процессе прямого программирования присутствует преимущественно только формирование программной модели и не учитываются какие-либо критериальные параметры. В тюісенєріїо-аиалитичєском проектировании для оценки критериальных параметров активно используются формальные модели. Оценки получаются одним из трех способов [5]: аналитический, имитационное моделирование, создание оценочных прототипов. При создании оценочных прототипов строится некоторая совокупность ветвей создаваемой программной модели Существует три епосооа осуществления такой декомпозмци нерация симулмтора ш спецификаций (Ж н архитектуры и і шг донов а использование универсальных ст-шуляторов (например, V симуляторов), на вход которым подается поведенческая спецификация архитектуры.

В объектио-ориентированиых решениях (например, [11]) декомпозиция достигается путем введения отдельной иерархии классов «Архитектура» и обеспечение независимости инструментальной части разработки от конкретной используемой архитектуры с помощью шаблона проектирования «Мост» [3]. Повторное использование компонентов, разработанных в других объектно-ориентированных оболочках, осуществляется с использованием «Адаптеров». Недостатком объектно-ориентированного подхода является невысокая производительность получаемых симуляторов.

При автоматической генерации симуляторов архитектурно-зависимая часть представлена в отдельном файле на специализированном языке спецификации СК и архитектуры. Существует большое количество языков спецификации архитектуры, которые используются для генерации симуляторов: ISDL [40], [78]; EXPRESSION [51], [41]; SLED/SSL [ЗО], [23], [15]; DSDL [4]; Sim-nML [64], LISA [47], SimGen [53], [54]. Недостатком этого подхода является использование дополнительных лингвистических средств, отсутствие сред разработки спецификаций на вышеперечисленных языках и сложность разработки и отладки шаблонов генерации симуляторов.

Быстродействие симулятора является наиболее важной после точности характеристикой. Можно выделить несколько ситуаций, когда быстродействие симулятора становится главным фактором его конкурентоспособности на рынке средств автоматизации проектирования МПС. Во-первых, потребность выполнять моделирование довольно большого отрезка времени функционирования МПС за очень короткое время, что обычно связано с жесткими ограничениями на время проектирования в условиях, когда для получения достаточно качественных проектных решений приходится выполнять большое число модельных экспериментов. Во-вторых, если требования к точности моделирования соответствуют уровню cycle-accurate simulation, то скорость симуляции может быть меньше скорости выполнения на реальной аппаратуре от 1000 до 10000 раз (по оценкам [56]}. Третья ситуация связана с высокой сложностью моделируемых процессов, например, сигнальной обработки.

Существует несколько метрик, на основе которых анализируется производительность симуляторов. Самыми распространенными являются а) время прогона известных приложений, используемое, например, в [56], б) время выполнения некоторой оценочной процедуры или отдельных команд [5]. В качестве оценочных процедур выбирают, например, алгоритм вычисления чисел Фибоначчи ([22], [79], [54]), факториала [79], алгоритма быстрой сортировки qsort и сортировка пузырьком ([79], [19], [77]), перемножение матриц [19], нахождение квадратного корня и шифрование методом blowfish [69]. В этом случае обычно указывают характеристики инструментальной платформы, на которой производилось тестирование, версию компилятора и уровень оптимизации, указанный при компиляции оценочной процедуры (например, ключ -03 в gcc/icc). Недостатком этой характеристики является зависимость от платформы и компилятора, а также от оценочной функции. Как следствие, показания, опубликованные в различных источниках, не могут использоваться для сравнения симуляторов.

Другой метрикой является так называемое замедление (slowdown), выражаемое безразмерным коэффициентом, который говорит, во сколько раз симуляция замедляет выполнение программ, если симулятор запущен на симулируемой платформе [57]. Это более универсальная метрика, но она применима только к случаю, когда целевая платформа является нестрогим подмножеством инструментальной.

Алгебра языков программирования

Многие работы по анализу и преобразованию программ грактуют состояние программы как конечное множество неременных и их значений. Такая трактовка, несомненно, облегчает ход рассуждений, однако неприменима к реальным языкам программирования, в которых возможно выделение памяти (в том числе стековой) и создание указателя на переменную (называемого также псевдонимом - alias). Среди множества работ по семантике языков программирования вообще и но работе с псевдонимами в частности наиболее адекватным с точки зрения автора подходом является тот, что использован в так называемой развивающейся алгебре (evolving algebra, или abstract state machines, ASM [38],[18],[49]). В ней состояние является статической алгеброй, переходы состояния заключаются в переопределении интерпретаций функций и описываются специальными операциями. Аппарат ASM в настоящее время широко применяется для алгебраической спецификации языков программирования. Существует множество публикаций на эту тему, например, [39]. [84], [87]. В этих и других работах ASM описывает операционную small-slep семантику языка программирования, а в работе [36] ASM сравниваются с натуральной (natural) семантикой программ.

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

Приведем краткое формальное описание этого аппарата (из [38]). Статическая алгебра (или состояние) S со словарем S - это непустое множество Z, или суперуниверсум, плюс интерпретации всех имен из Е, S также обозначается Fun{S). Z включает элементы true, false н undef которые являются также нульарными именами S. Отношения - это функции с областью значе ний {true.false}, сорта — это унарные отношения. S состоит из двух взаимо исключающих частей; статических и динамических функций 2 = И иЕ .

Носителем состояния S называется его проекция на Ss и обозначается S , Адресом (location) над носителем S называется пара l — {fk,x)Loc — Tld xZ\ где fkT d - Парный символ и \х =/с. Обновлением (update) состояния S называется пара а (I,у), іде / - это адрес в носителе \S\ и yG\S\.

Основными операциями ASM являются применение множества обное-лений и импорт элемента. Чтобы применить множество обновлений /? к состоянию 5, нужно переопределить соответствующие функции при отдельных значениях аргумента: 5" - B(S) & \f((f,x),y) Є /?, g Є S, F Є Z . 7, если g /Az=x —MlS + - 4 ТЛ" к(ЮГ J_ J 7, иначе где /]л - интерпретация терма f в алгебре А. Например, пусть в некотором состоянии 5 имеем место [/]5(5) = 11. тогда для состояния 5 (((/?5),15}5 справедливо следующее: [/(5)f =15 Операцию импорта элемента определим следующим образом. Пусть задана функция new(S) 5, возвращающая «новый» элемент, отличный от тех, что во множестве 5. Тогда операция импорта и использования элемента, сорта Р производится следующим образом; (Ах.е(х,(((Р,хХ/гш)}(5U ))) new{S) где е - некоторое выражение над новым элементом и состоянием, {...)(5) -операция применения обновления.

Существует определенный синтаксис для операций ASM, который включает еще несколько операторов, но мы пока ограничимся двумя опера-циями, описанными выше, и не будем вводить специального синтаксиса, С нашей позиции состояние - это множество адресов и значений по этим адресам: s: hoc — Z, где Z - множество возможных значений, которое может не включать true, false и undef. Мы будем писать s(l) для получения значения по адресу L

Анализ релевантной литературы ([43]. [581, [63], [71], [74], [78]) показал, что в реализации симуляторов доминируют языки программирования Си и Java. Сконструируем базовую алгебру и алгебру состояний для этих языков. Прежде всего, выделим общие элементы этих языков, потом рассмотрим отличия. При анализе преобразований программ логично считать, что исходная программа уже подвергнута синтаксическому и семантическому анализу (эти процедуры хорошо описаны в [1]).

Существующие методы тестирования симуляторов

Традиционное функциональное тестирование оимулятора может применяться для тестирования таких независимых его компонентов, имеющих простой интерфейс, таких как АЛУ, математические сопроцессоры, менеджеры памяти. Ручное создание более-менее полных функциональных тестов для симулятора нецелесообразно в виду большой его сложности. Так, в симуля-торе микропроцессора І8086, который рассматривается в данной работе, около 1200 базовых блоков, и еще больше маршрутов выполнения команды. Кроме того, функциональные тесты предназначены для тестирования отдельных модален и едва ли смогут проверить симулятор на совместимость с реальным микропроцессором. Разработка функциональных тестов осложняется еще и неформальным характером входной спецификации - невозможно составить точный тест, если и спецификации непонятно, как должна работать та или иная команда.

Для тестирования симуляторов логично использовать методы, применяемые для тестирования микропроцессоров на функциональном уровне. В качестве тестовой последовательности здесь используется некоторая программа, называемая самотестирующейся программой (selfesting program, СТП), в том смысле, что корректность определяется на основе корректного выполнения самой программы, а не функций симулятора/микропроцессора. Правильность функционирования программы означает, что симулятор функционирует в соответствии со спецификацией, заложенной при создании СТП.

Использование в качестве СТП таких доступных приложений как операционные системы и общецелевые утилиты сталкивается со следующими трудностями: во-первых, для данного микропроцессора может не существовать достаточного количества приложений, чтобы можно было делать утверждения о полноте симуляции. Так, многие операционные системы работают только в определенных режимах архитектуры IA32, а в рассматриваемом си-муляторе І8086 вообще отсутствовали команды двоично-десятичной коррекции, что не мешало запускать операционные системы и большое количество приложений. Во-вторых, при использовании приложений в качестве СТП очень сложно локализовать ошибку в симуляторе.

В настоящий момент существует практика автоматизированного порождения СТП, свободных от первого их предыдущих недостатков (слабое покрытие системы команд). Так, в [70] предлагается методология генерации СТП для систематических неисправностей. Генерируются последовательности команд которые покрывают все комбинации операций и систематически подбираемых операндов. При этом пользователю приходится подбирать эвристики выбора таких значений операндов, которые максимально покрывают статические неисправности, что возможно лишь только в некоторых случаях. В работе [13] предлагается рандомизировать заранее приготовленные шаблоны СТП с помощью наложения И- и ИЛИ-масок.

Подход, основанный на рандомизации, отличается низкими показателями покрытия и большими временными затратами на перебор области значений параметров. Чтобы сузить эту область, в коммерческих инструментах ATPG (automatic test pattern generation, автоматическая генерация тестовых шаблонов) применяют детерминированные технологии генерации тестов, основанные на выявлении и разрешении ограничений [48; 70],

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

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

Взаимодействие компонентов МПС

Сформулированный во введении диссертации перечень основных задач исследования включает в себя проведение объектно-ориентированного анализа задачи интеграции симуляторов МП и МК в САПР МПС и разработку архитектурного каркаса САПР МПС. центральным компонентами которого являются программные модели средств микропроцессорной техники. При-ступая к этой задаче, необходимо учитывать очень важное ее отличие от всех ранее рассмотренных задач. Предложенные и исследованные во второй и третьей главах методы оптимизационных преобразований и тестирования симуляторов базируются на формализмах, относительно которых строятся логические выводы и строгие доказательства, Тем самым, инженерный эксперимент может быть ограничен всего лишь двумя целями; оценкой сложности реализации программ, строящихся на основе теоретических выводов, и оценкой эффекта, достигаемого за счет их применения.

Обьектно-ориентированный анализ задачи интеграции симуляторов в САПР МПС является классической задачей системного анализа, с которой начинается инженерное проектирование сложной программной системы. Достоверность аналитических результатов этого этапа проектирования подтверждается, прежде всего, реализацией наиболее важных компонентов с детальной проработкой комплексного проекта. В перечень таких реализаций, по мнению автора, входят:

а. Объектно-ориентированных моделей, которые можно использовать разработке симуляторов;

b. Базовой реализации некоторой функциональности модели: законченная модель ОЗУ и ПЗУ, дешифратор адреса (в виде диспетчера сообщений), алгоритм симуляции, основанный на планировании и дельта-задержках;

c. Интерфейсы и базовая реализация визуальных компонентов симулятора: дизассемблера, шестнадцатиричного редактора, портов вв/выв, текстового дисплея;

d. Законченной реализации модели МП І8086 и графической оболочки моде лирования МП Ї8086, которая может служить прототипом для создания других симуляторов.

Архитектурный каркас является обобщением опыта, полученного при портировании симулятора МП 18086, написанного на языке Си, на язык Java [58], Архитектурный каркас преследует следующие цели; (а) достижение высокой степени модульности разработки за счет разделения логики моделирования, визуализации и конструирования, (б) сокращение времени разработки симуляторов за счет повторного использования абстракций и кода и (в) предоставление объектно-ориентированной оболочки для создания расширяемых симуляторов.

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

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

Для симуляции и конструирования моделей МПС нужна абстракция соответствующая понятию «компонент МПС», обобщающая понятия МПР контроллеров вв/выв, и прерываний, модулей памяти и периферийных устройств (см. рис. 18). Каждый компонент в модели должен реализовывать интерфейс Component, включающий методы симуляции и, потенциально, методы времени проектирования., из которых на данный момент доступен только метод clone () для создания копии компонента (например, при выборе из палитры компонентов в визуальной среде проектирования).

Похожие диссертации на Автоматизация проектирования симуляторов микропроцессоров и микроконтроллеров