Реализация инженерного пульта в составе вычислительного комплекса Эльбрус-S2 Выполнил: Иванов Сергей, гр.513 Научный руководитель: Костенко Виталий Олегович
Инженерный пульт диагностическое оборудование микропроцессора позволяет проводить отладку программного и аппаратного обеспечения с помощью доступа к системным регистрам и к встроенному логическому анализатору инженерный пульт персональный компьютер, подключенный к микропроцессору, с которого ведётся управление и отладка доступ к микропроцессору через специализированный последовательный порт JTAG (стандарт IEEE )
Отладка многоядерного микропроцессора Необходимо обеспечить одновременный доступ к диагностическому оборудованию всех ядер Аппаратная реализация отсутствие изменений структуры и количества отладочных регистров идентичность построения отладочного оборудования для каждого из ядер Проблема
Задачи и требования Требования: поддержка различных конфигураций многоядерного процессора минимальное время отклика процессора на заданные команды Задачи: Разработка JTAG сервера, предоставляющего полный функционал для отладки ВК Адаптация существующего графического интерфейса инженерного пульта для возможности его подключения к данному серверу
Принципы построения JTAG сервера взаимодействие графических клиентов с сервером – однонаправленное сервер исполняет команды атомарно сервер выполняет запросы к различным ядрам последовательно
Разработка структуры JTAG сервера Функции : GetConfiguration cвязывание приложения клиента с классом конфигурации сервера GetOutputStream перенаправление потока ввода/вывода Functionality централизованная точка доступа графического приложения к отладочным средствам 1.Введение интерфейсного класса BaseCPU
Разработка структуры JTAG сервера Проблемы: Связь однонаправленная, но результат выполнения каждой команды должен сопровождаться выводом диагностического сообщения Различные отладочные функции должны соответствовать единому интерфейсу взаимодействия Решения: Перенаправление потока вывода Передача параметров через единый буферный класс Configuration 2.Разработка взаимодействия пользовательского приложения с JTAG сервером
Разработка структуры JTAG сервера 3. Разработка средств синхронизации межпроцессного доступа к JTAG серверу ProcessID - идентификатор процесса, который указывает в какую из копий интерфейсного класса BaseCPU идёт запрос Configuration - указатель на буферный класс Output Stream - указатель на выходной поток Function Interface - интерфейс отладочных средств NumberOfClients - полное число клиентов библиотеки Реализация - библиотека DLL готовое программное решение совместного использования объектов C++ простота построения приложения-клиента
Схема синхронизации межпроцессного доступа
Результаты Реализован инженерный пульт в составе вычислительного комплекса Elbrus-S2 В настоящее время полученный продукт проходит тестирование на прототипе Elbrus-3S