Разработка аппаратно-программных средств имитационного комплекса моделирования микропроцессора

advertisement
Разработка аппаратно-программных
средств имитационного комплекса
моделирования микропроцессора
Выполнил: студент 515 группы МФТИ Иванов С.С
Научный руководитель: д.т.н., профессор Сахин Ю.Х
Диагностическое оборудование
Программные средства:
Аппаратные средства:
инженерный пульт
программное обеспечение, установленное
на персональный компьютер, с которого
ведётся управление и отладка
стандарт IEEE 1149.1 Standard Test Access
Port and Boundary-Scan Architecture
TAP контроллер
цифровой автомат, обеспечивающий
последовательный доступ по записи и
чтению к системным регистрам и к
встроенным логическим анализаторам
Компьютер тестового стенда
JTAG интерфейс
Имитационный комплекс
Отладка многоядерного комплекса
Проблема
Необходимо обеспечить
одновременный доступ к
диагностической
аппаратуре всех ядер
Требования
• поддержка различных конфигураций многоядерной системы
• соответствие стандарту IEEE 1149.1 Standard Test Access Port and
Boundary-Scan Architecture
• совместимость со средствами отладки предыдущих проектов
Аппаратная реализация
вторичный
• отсутствие изменений
структуры и количества
отладочных регистров
• идентичность построения
отладочного оборудования
для каждого из ядер
• минимальное количество
пинов процессора
Требования и задачи
ВК “Эльбрус – 3S”
Проблемы:
• Зависимость графического
интерфейса от средств
реализации
• Ограниченность использования
в многопроцессных и сетевых
приложениях
• Отсутствие поддержки
динамической смены
конфигурации
Требования и задачи
Требования:
•
•
•
Обеспечение корректности
подаваемых команд
Функциональная гибкость и
масштабируемость решения
Малое время отклика
Задачи:
•
•
Разработка JTAG сервера,
предоставляющего полный
функционал для отладки ВК
Разработка приложений-клиентов
JTAG сервера
Принципы построения JTAG сервера
Клиент-серверное
взаимодействие –
однонаправленное
сервер исполняет
команды атомарно
сервер выполняет
запросы к
различным ядрам
последовательно
Этапы разработки
1.
Разработка функциональной библиотеки

Построение общей структурной схемы

Определение интерфейса (API)

Разработка внутренних модулей
2.
Разработка модуля межпроцессной синхронизации

Выбор механизма синхронизации

Разработка внутренней архитектуры модуля
3.
Создание приложений клиентов JTAG сервера

Разработка специализированных приложений

Адаптация инженерного пульта Elbrus-JTAG
Разработка функциональной библиотеки
1.Общая структура
Интерфейсный
модуль
центральный класс связывающий
остальные функциональные блоки и
организующий доступ внешних
приложений к отладочным средствам
BaseCPU
Модуль
конфигурации
Модуль
отладочных средств
Configuration
Functionality
управление конфигурацией
аппаратных средств
диагностического оборудования
набор независимых функциональных
средств отладки реализованных как
транзакции по доступу к
диагностической аппаратуре
Исполнительный
модуль
CPU,LA,TAP
низкоуровневые средства доступа
по записи и чтению к JTAG адаптеру
Разработка функциональной библиотеки
2.Интерфейс взаимодействия
Проблемы:
•
•
Связь однонаправленная, но
результат выполнения каждой
команды должен
сопровождаться выводом
диагностического сообщения
Различные отладочные
функции должны
соответствовать единому
интерфейсу взаимодействия
Решения:
•
•
Перенаправление потока
вывода
Передача параметров через
единый буферный класс
Configuration
GetConfiguration
функция получение клиентом указателя на класс конфигурации
SaveConfiguration
функция сохранение текущей конфигурации приложения – клиента
GetOutputStream
функция перенаправление потока ввода/вывода
Functionality
интерфейс функций отладки одного процессорного ядра
имитационного комплекса
Разработка функциональной библиотеки
3.Модуль управления конфигурацией
•
•
•
•
Динамическая смена конфигурации инженерного пульта в
зависимости от выбранного режима работы
Загрузка и сохранение конфигурации приложений-клиентов
и JTAG сервера
Обеспечение передачи аргументов при запросах на
исполнение команд
Агрегация данных аппаратной реализации
диагностического оборудования
4.Исполнительный модуль
•
•
Поддержка PCI,USB интерфейсов для отладки
имитационного комплекса, TCP/IP – для отладки в среде
моделирования ModelSim
Формирование и извлечение бинарных команд в
соответствии с конфигурацией отладочного оборудования
Выбор механизма межпроцессой синхронизации
Автоматизация - это механизм обмена информацией между процессами
(interprocess communications, IPC) в среде Windows, с помощью которого одна
прикладная программа или компонент может управлять другой.
Automation Servers
Out-of-Process
Servers
(EXE)
In-Process
Servers
Static
Library
Dynamic
Link Library
(DLL)
Поддержка модульной архитектуры приложений
Простота построения приложения-клиента
готовое программное решение совместного использования
объектов C++ (COM,DCOM технологии)
Способы организации DLL
•
C- Handles
Неявное управление объектом через HANDLE
•
C++ Exporting a Class
Экспорт класса стандартными средствами C++ компиляторов
•
C++ Abstract Interface
Использование абстрактных интерфейсов
C-Handles
Независимость от компилятора
Масштабируемость
Контроль версий
C++ Exporting C++ Abstract
Class
Interface
Разработка модуля межпроцессной синхронизации
Разработка приложений-клиентов
Специализированные приложения
• простота построения
• широкий спектр применения
• неограниченное количество
клиентов
• поддержка приложений intranet
Разработка приложений-клиентов
Многофункциональные приложения
Elbrus-JTAG
Адаптированное
графическое приложение
Результаты
Разработаны аппаратные средства отладки и диагностики
системы на кристалле СБИС МП
Реализован инженерный пульт, обладающий следующими
характеристиками
• Поддержка различных конфигураций SCAN цепи
• Поддержка межпроцессного и сетевого доступа
• Время отклика: ~ 4 ms
Полученный продукт успешно прошел тестирование на
прототипе системы на кристалле СБИС МП
Спасибо за внимание!
Download