РРТ - МЦСТ

advertisement
Выпускная квалификационная работа
Разработка имитатора жесткого
диска для верификации интерфейса
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) – задают адрес в буфере имитатора,
размер буфера равен 2048 16-битных слов, что
составляет 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 режиме
Имитатор
прерывает
UltraDMA
DMAIn
In
Burst
Хост
прерывает
Ultra
DMA
In
Burst
Инициализация
inBurst
Установившийся
Инициализация
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)
Режим 0 - 480 нс, 1 - 150 нс, 2 - 120 нс
• 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 режимах
Спасибо за внимание!
Download