Источник: http://sim.1024.info/text/science/20051215.html
Содержание
Проверка работоспособности проекта является важным этапом создания любого электронного устройства. Выполнение процесса моделирования является эффективным средством проверки работоспособности проекта. Постоянное возрастание размерности и сложности реальных проектов приводит к увеличению времени, необходимому для проведения моделирования. Одним из возможных решений проблемы ускорения моделирования больших и сверхбольших проектов является использование нескольких компьютеров, работающих параллельно.
Существует множество программных систем, которые позволяют проводить моделирование. Среди них ModelSim фирмы Model Technology Inc., Active-HDL фирмы Aldec, Foundatein Series фирмы Xilinx, Electronic Workbanch фирмы Interactive Image Technologies Ltd. Общим недостатком этих систем является то, что они не позволяют проводить распределенное моделирование.
Программная система реализована в среде проектирования Delphi и работает под управлением операционных система семейства Windows. Для связи используется технология DirectPlay. Система содержит в себе 19 исполнимых файлов. Общий объем исходного кода системы составляет порядка 1.5MB в 132 модулях.
Система позволяет проводить последовательное моделирование. Для синхронизации процессов при распределенном моделировании реализован консервативный протокол с маркером и пустыми сообщениями, оптимистический и комбинированный протоколы.
Структура системы распределенного моделирования
Разрабатываемый проект включает в себя три подсистемы: подсистему ввода, подсистему распределенного моделирования и подсистему анализа результатов моделирования.
Рисунок 1 - Структура системы распределенного моделирования
Подсистема ввода позволяет:
Генерировать случайное входное воздействие и случайные схемы с заданными параметрами. Схемы генерируются уже разрезанными. Используется для исследования поведения протоколов синхронизации на разных входных данных.
Вручную вводить схему и входное воздействие. Для этого подсистема ввода содержит в себе визуальный редактор многоуровневого описания схем (рисунок 2) и редактор входного воздействия.
Разрезать схемы на части. Сейчас реализован простейший алгоритм, основанный на последовательном склеивании пар вершин. Оптимальность разрезания определяется порядком выбора пар для склеивания. Ведется работа по реализации других алгоритмов.
Рисунок 2 - Редактор многоуровневого описания схем
Подсистема распределенного моделирования
Подсистема распределенного моделирования содержит в себе администратор процесса моделирования и моделирующий процессор (рисунок 3). Во время моделирования запускается один администратор процесса моделирования и множество копий моделирующих процессоров.
Рисунок 3 - Моделирующий процессор и администратор процесса моделирования
Администратор процесса моделирования позволяет решать большое количество независимых задач по моделированию при ограниченном количестве моделирующих процессоров. Все задачи выстраиваются в очередь, и при наличии достаточного количества свободных моделирующих процессоров запускается очередная задача. После того, как очередная задача по моделированию запущена, вся синхронизация производится только моделирующими процессорами, без участия администратора процесса моделирования (рисунок 4).
Одна из перспективных задач проекта состоит в реализации веб-интерфейса для доступа к системе распределенного моделирования из Интернета. Администратор процесса моделирования управляет моделирующими процессорами, и может использоваться как интерфейс между веб-приложением и моделирующими процессорами.
Рисунок 4 - Схема взаимодействия моделирующих процессоров (МодПр) с
администратором процесса моделирования (АПМ)
Подсистема анализа результатов моделирования
Для анализа результатов моделирования проект включает в себя три компонента:
Компонент для построения диаграмм причинно-следственных связей (ПСС-диаграмм) (рисунок 5). Во время работы моделирующие процессоры генерируют программы на языке диаграмм причинно-следственных связей (ПСС-программы). ПСС-диаграммы предназначены для визуализации графов причинно-следственных связей, визуализации процесса моделирования, оценки корректности моделирования, для поиска причин появления лишних сообщений в сети и лишних задержек при моделировании.
Компонент для построения временных диаграмм сигналов (рисунок 6).
Компонент для подсчета статистической информации.
Рисунок 5 - Компонент для построения диаграмм причинно-следственных связей
На ПСС-диаграммах показываются все моделирующие процессоры (на этом рисунке их три - Р1, Р2 и Р3). Для каждого моделирующего процессора показывается список всех переменных состояния этого процессора. Для каждой переменной состояния приводятся значения этих переменных во все моменты физического времени (цифры и буквы на осях). Синими линиями обозначены сообщения, которые передаются между процессорами по сети.
Информация, представленная на диаграммах причинно-следственных связей, в той или иной форме присутствует в любых распределенных приложениях. Поэтому ПСС-диаграммы могут быть использованы как средство отладки распределенных приложений вообще, а не только моделирующих процессоров.
Рисунок 6 - Компонент для построения временных диаграмм сигналов
В системе используется 15 видов файлов:
*.dll
- динамически загружаемые библиотеки.
Некоторые элементы моделируемых схем могут задаваться при помощи
загружаемых библиотек.
*.ef
(Element Function) -
схемная функция элемента
(используется только в редакторе многоуровневого описания схем)
или функция элемента, логика работы которого определяется таблицей
истинности.
*.esm
(Editor Scheme Model) -
схема для моделирования в формате редактора многоуровневого схем.
Содержит в себе дополнительную информацию для визуального отображения схемы.
*.sti
(STImulus) - входное воздействие.
*.ssm
(Simulator Scheme Model) -
схема для моделирования в формате моделирующего процессора.
Содержит в себе минимальную информацию о схеме, необходимую для проведения
моделирования.
*.sr
(Simulator Report)
отчет моделирующего процессора о проведенном моделировании,
ПСС-программа. Содержит в себе список всех собыйтий в моделирующем
процессоре: когда какой метод был вызван, какое событие
обработано, какое событие добавлено/выбрано из локального списка событий,
как изменились очереди и стеки, какие сообщения получены/отправлены по сети.
*.srs
(Simulator Report Sorted)
отчет моделирующего процессора, отсортированный с соблюдением
причинно-следственных связей.
*.stat
(STATistics) -
статистика по отчету моделирующего процессора.
Для каждого типа записи отчета считается, сколько раз этот тип записи был
встречен. Используется для поисска ответов на такие вопросы как, например,
«сколько всего событий было отправлено от процессора Р1 к процессору Р2»
или «сколько раз был произведен откат».
*.crts
(Conservative Real Time Statistics) -
статистика по реальному времени - специфическая для консервативного
протокола моделирования. Включает в себя время простоя, время круга маркера.
*.rts
(Real Time Statistics) -
статистика по реальному времени. Для всех пар типов элементов отчета
моделирующего процессора подсчитывается суммарное/среднее физическое время
перехода от одного типа элемента к другому типу элемента.
Используется для поиска ответов на такие вопросы как, например,
«сколько времени занимает работа метода добавления событий в локальный
список событий?» или «как много времени проходит от момента получения
маркера до момента его отправки?».
*.mgp
(Model Generator Project) -
проект генератора структурно-функциональной модели схемы.
Задает параметры генерирования случайной схемы.
*.msg
(Messages)
сообщения, выбранные из SR отчета моделирующего процессора.
Включают в себя сообщения об ошибках и замечания.
*.sgp
(Stimulus Generator Project) -
проект генератора входного воздействия.
Задает параметры генерирования случайного входного воздействия.
*.sp
(Simulator Project)
проект администратора процесса моделирования.
*.evl
(EVent List) -
Список событий. Всегда одинаковый для одной и той же схемы и одного и того
же входного воздействия. Используется для сравнения результатов
моделирования разными способами (с использованием разных протоколов
синхронизации, по-разному разрезанные схемы, с разными параметрами
моделирования).
Перспективные направления исследований
разработка веб-интерфейса для доступа к системе распределенного моделирования из глобальной сети Интернет
реализация протоколов динамической балансировки нагрузки
исследования влияния особенностей моделируемой схемы, способа разрезания схемы на части, особенностей графов процессоров на скорость моделирования
разрешение проблемы ненадежных («исчезающих») процессоров