Реализация доступа к накопителям на жестких магнитных дисках в ВК Эльбрус-3S Кондрашин Александр Александрович, группа 212.
Подключение устройств с интерфейсом IDE ВК Эльбрус – 3М (южный мост фирмы Intel): ВК Эльбрус – 3S (южный мост собственной разработки): ограниченная доступность недостаточный набор интерфейсов недостаточный набор интерфейсов частота 33 МГц независимость от зарубежных производителей широкий набор интерфейсов частота 125 МГц
Задачи разработать контроллер шины IDE, поддерживающий работу с интерфейсом IO-link разработать стенд для отладки и тестирования провести тестирование Обеспечить доступ к устройствам с интерфейсом IDE в ВК Эльбрус-3S, для чего: в ВК Эльбрус-3S, для чего:
Интерфейс IO-Link
Типы пакетов обмена интерфейса IO-link Формат заголовка пакетов запроса: MEM32_Req, IO_Req и MEM64_Req Формат заголовка пакета запроса Config_Req Формат заголовка пакета завершения (ответа)
Реализация IDE-контроллера IOL Engine обеспечивает работу с IO-Link реализует внутренние DMA и Register интерфейсы IDE Engine отвечает за работу с IDE собран из отлаженых подмодулей ранней разработки IDE RegBlock, Config Space служебная информация для управления работой
Реализация модуля IO-link Engine 7 основных блоков отдельные автоматы для передачи и приема данных Analyzer – главный управляющий блок одновременная работа режимов PIO и DMA обмена данными
Реализация блока Analyzer управление работой модуля IOL Engine арбитрация пакетов запроса (DMA/PIO) и ответов (PIO/DMA) управление режимом адресации запросов DMA (32/64bit) выставление подтверждений выполнения операций DMA обмена мониторинг ошибок во время приема/передачи данных
Реализация блока IO-Link Receiver контроль сигнала валидности транзакции на шине IO-link управление сигналом готовности к приему буферизация принятых данных до завершения операции
Реализация блока Packet Decoder определение типа операции и параметров пакета (addr, size..) декодирование адреса и определение адресного пространства выделение данных payload
Реализация блока IO-Link Transmitter управление сигналом валидности передачи выставление данных на шину IO-Link мониторинг сигнала готовности принимающей стороны
Реализация блока Packet Builder формирование пакета данных формирование заголовка за 1 такт потактовое наполнение данными payload (без буферизации) одновременная работа с блоком IO-link Transmitter, поэтому повышенная производительность
Функции блоков Slave- и DMA Interface Agent обеспечение доступа к модулям: IDE Engine, RegBlock и Config Space конвертирование параметров операции (addr, size..) перестановка в словах данных payload {data3, data2, data1, data0} size... {data0, data1, data2, data3} address size_convert... address_convert
Блок-схема IDE-контроллера
Реализация стенда для отладки прием и передача пакетов всех типов различная последовательность пакетов два режима адресации при DMA обмене все возможные размеры блока данных эмуляция ошибок, вызванных неверным размером, ID, номером пакета
Результаты Разработан контроллер шины IDE со следующими техническими характеристиками: характеристиками: поддержка интерфейса IO-link передачи данных поддержка 2-х IDE каналов; работа на частоте 125 МГц; работа с запросами в пространство памяти (с режимами адресации 32bit и 64bit), пространство ввода/вывода, адресации 32bit и 64bit), пространство ввода/вывода, конфигурационное пространство и ответами на них. конфигурационное пространство и ответами на них. Разработан стенд для отладки и проведено тестирование Контроллер реализован на ПЛИС и проходит тестирование в составе ВК Эльбрус-3S 4300 логических элементов.