Д. А. МЕЛЕНТЬЕВ, Д. В. ПЛЕШАКОВ

Научный руководитель – С. В. СИНИЦЫН, к. т.н., доцент

Национальный исследовательский ядерный университет «МИФИ»

РАЗРАБОТКА ЭМУЛЯТОРА СПЕЦПРОЦЕССОРА
В РАМКАХ СОЗДАНИЯ ИНСТРУМЕНТАЛЬНОГО
КОМПЛЕКСА ДЛЯ ПРОГРАММИРОВАНИЯ
СПЕЦПРОЦЕССОРА

Рассматривается один из подходов к созданию эмулятора для спецпроцессора.

Немаловажной частью среды программирования спецпроцессора является эмулятор, который обеспечивает расширенный контроль работы программы, не прибегая к ее выполнению на спецпроцессоре. Его можно разделить на две части: непосредственно эмулятор целевого спецпроцессора, а также средства отладки и тестирования.

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

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

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

НЕ нашли? Не то? Что вы ищете?

Таким образом, память команд можно представить как набор ячеек, причем набор ограниченного размера. Каждая ячейка может содержать, или не содержать команду спецпроцессора такого вида.

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

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

Задачи, поставленные перед второй частью эмулятора это: возможность просмотра состояний моделируемых устройств, контроль выполнения программы, сбор покрытия и проверка выполнения программы при различных входных данных [1]. Также немаловажным моментом является возможность предоставления отчета о проведенной эмуляции.

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

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

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

Список литературы

1. , Налютин программного обеспечения. М.:ИНТУИТ, 2008, 368 c.