Разработка имитатора жесткого диска для верификации интерфейса PATA Выполнил: Фадеев Роман, ФРТК, 613 гр. Научный руководитель: Михайлов М.С. Выпускная квалификационная работа
Южный мост вычислительных систем на базе микропроцессоров Эльбрус-S, МЦСТ-4R (Структурная схема) IOH система для связи внешних устройств с CPU SC – системный коммутатор Контроллеры внешних интерфейсов объединены с помощью системного коммутатора и являются его абонентами. Для обмена IOH с системой используется IO-link интерфейс. Этот же интерфейс используется для обмена между абонентами IOH и системным коммутатором SC.
Постановка задачи Разработка имитатора интерфейса PATA (Parallel AT Attachment) для проверки работы PATA контроллера Имитатор должен удовлетворять требованиям спецификации AT Attachment with Packet Interface 6 (ATA/ATAPI-6) Поддержка режимов PIO, Multiword DMA, Ultra DMA Тактовая частота 100 Мгц Реализация команд передачи данных SET FEATURES, READ DMA, WRITE DMA, READ SECTROR(S), WRITE SECTOR(S) Требования
Структура имитатора С учетом требований поддержки режимов PIO, Multiword и Ultra DMA модель имитатора разбита на 4 части: Command Block Registers – регистры управления интерфейсом Блок управления передачей данных в режиме PIO Блок управления передачей данных в режиме Multiword DMA Блок управления передачей данных в режиме Ultra DMA
Command Block Registers Command Block registers используются для передачи команд в устройство и приема статуса от уcтройства. Регистры: LBA (High, Mid, Low) – задают адрес в буфере имитатора, размер буфера равен битных слов, что составляет 8 секторов (один сектор = 512 байт) Sector Count – содержит число секторов для передачи Command – содержит код команды для исполнения Status, Alternate Status – содержат статус устройства Features – содержит дополнительные параметры команды Error – содержит ошибку Data register – хранит передаваемое слово в PIO режиме Device control register – управление прерываниями и software reset
Команды, поддерживаемые имитатором SET FEATURES задает режимы Multiword DMA и Ultra DMA с параметрами в регистре Sector count READ/WRITE SECTOR(S) чтение/запись данныx в PIO режиме READ/WRITE DMA чтение/запись данныx в DMA режиме
Принципиальная схема работы имитатора в PIO режиме Модель реализована с помощью state machine с четырмя состояниями pio_IDLE, pio_SEL, pio_READ, pio_WRITE Работа в PIO режиме начинается с записи хостом команды READ SECTOR(S) или WRITE SECTOR(S).
PIO протокол PIO протокол используется в старых реализациях HDD, в имитатор включен из требований совместимости Самый медленный режим передачи данных Во время PIO передачи текущее передаваемое слово содержится в Data register
Принципиальная схема работы имитатора Multiword режиме Модель реализована с помощью state machine с шестью состояниями mwdma_IDLE, mwdma_PREP, mwdma_RD_TRANSFER, mwdma_WR_TRANSFER, mwdma_RD_TERMINATED, mwdma_WR_TERMINATED Работа в Multiword режиме начинается с активации хостом Multiword режима и записи хостом команды READ DMA или WRITE DMA
Multiword DMA Стробы чтения/записи всегда генерируются хостом Передача управляется связкой DMARQ и DMACK- Прерывание burst хостом – хост снимает DMACK- Прерывание burst имитатором – имитатор снимает DMARQ на переднем фронте DIOR-/DIOW-
Реализация Ultra DMA в модели (специфика) Предварительные замечания 1) В режиме Ultra DMA некоторые сигналы исполняют другие функции и имеют другие названия (название указано после «:») DIOR-: HDMARDY-: HSTROBE (Device I/O read: Ultra DMA ready: Ultra DMA strobe) DIOW-: STOP (Device I/O write: Stop Ultra DMA burst) IORDY: DDMARDY-: DSTROBE (I/O channel ready: Ultra DMA ready: Ultra DMA data strobe) 2) Данные передаются по обоим фронтам DSTROBE 3) Передача управляется двойной связкой DMARQ и DMACK-, STOP и DMARDY 4) Подсчет CRC
Принципиальная схема работы имитатора в ULTRA DMA режиме
Инициализация Ultra DMA in Burst Установившийся Ultra DMA In Burst Хост прерывает Ultra DMA In Burst Имитатор прерывает Ultra DMA In Burst
Инициализация Ultra DMA out burst Установившийся Ultra DMA out burst Имитатор прерывает Ultra DMA out burst Хост прерывает Ultra DMA out burst
UDMA CRC Устройство, и хост имеют 16-битную CRC функцию и вычисляют значение CRC для каждого фронта STROBE В конце Ultra DMA burst хост высылает свой результат CRC устройству на спадающем фронте DMACK-. Устройство сравнивает полученное CRC со своим собственным. Если значения не совпадают, то устройство сохраняет сведения об ошибке
Реализация временных характеристик в модели PIO t0 (cycle time) Режим 0 – 600 нс, 1 – 383 нс, 2 – 240 нс, 3 – 180 нс, 4 – 120 нс Multiword t0 (Cycle time) Режим нс, нс, нс Ultra DMA t2cyctyp (Typical sustained average cycle time) Режим 0 – 240 нс, 1 – 160 нс, 2 – 120 нс, 3 – 90 нс,4 – 60 нс, 5 – 40 нс
Результаты Разработано Verilog описание имитатора интерфейса PATA Произведено тестирование в составе RTL- модели IOH Обеспечена корректная работа во всех PIO, Multiword, Ultra DMA режимах
Спасибо за внимание!