Разработка аппаратно-программных средств имитационного комплекса моделирования микропроцессора Выполнил: студент 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 Полученный продукт успешно прошел тестирование на прототипе системы на кристалле СБИС МП Спасибо за внимание!