- •Интерфейсы жестких дисков
- •Интерфейс ATA
- ••Хост-контроллер (хост-адаптер) взаимодействует с контроллером винчестера по специальному протоколу
- •Эволюция ATA. Версии интерфейса
- ••ATA/ATAPI-4:
- ••Интерфейс Serial ATA является наследником ATA/ATAPI, но по сути разработан и поддерживается другой
- •Электрический интерфейс ATA
- ••Проверив заземление на 28 контакте, винчестер может определить, является ли он Master
- •Описание сигналов ATA
- •Переопределение сигналов в режиме Ultra DMA
- •Регистры устройства ATA
- •Блок командных регистров
- ••011 R/W: SN (Sector Number) – номер сектора (CHS) или биты [0:7] адреса
- ••111 R: SR (Status Register) – регистр состояния. Чтение регистра вызывает сброс некоторых
- •Блок управляющих регистров
- •Адресация секторов
- •Адресация CHS
- •Адресация LBA
- •Команды. Общая информация
- •Протокол 1: PIO In
- •Протокол 2: PIO Out
- •Протокол 3: DMA
- •Режимы обмена данными
- •Параметры режимов PIO
- •Режимы DMA и UDMA
- •Параметры режимов DMA/Ultra DMA
- •Дополнительные функции ATA
- •Шина SCSI
- •Архитектурная модель SCSI
- ••Помимо классического транспортного протокола SIP (SCSI Interlocked Protocol), архитектурная модель предполагает использование других
- •Архитектурная модель SCSI
- •Применение SCSI для подключения жестких дисков
- •Отличия между SCSI и ATA
- ••Интерфейс SCSI:
- •Электрический интерфейс SCSI SPI
- ••Существует несколько видов кабелей и разъемов для параллельного интерфейса SCSI
- ••Кабели:
- •Сигналы интерфейса SPI SCSI
- •Адресация шины SCSI
- •Фазы шины
- •–Message: фаза сообщений используется для управления шиной. Сообщения бывают однобайтными, двухбайтными и расширенными
- •Порядок следования фаз при обмене данными
- •Порядок следования фаз при возобновлении обмена
Адресация шины SCSI
•В зависимости от разрядности шины данных поддерживается 7, 15 или 31 устройство
•Идентификатор (SCSI ID) представляет собой номер в позиционном коде: 00000001…10000000
•Устройство с большим номером – наиболее приоритетное
•Выбор идентификатора выполняется перемычками или программно
•Обычно у хост-контроллера ID=0001000
•ID выставляется на шину для выбора устройства, являясь таким образом адресом устройства
•Также есть понятия LUN (логическое устройство) и TRN (целевая программа), которые адресуются через сообщения и команды
•Физическое устройство может иметь до 8 LUN и 8 TRN
Фазы шины
•Шина SCSI может находиться в одном из перечисленных состояний:
–Bus Free: низкий уровень BSY# и SEL#, шина свободна
–Arbitration: борьба за доступ к шине. Каждое из устройств, требующих обмена, выставляет на шину данных свой адрес (ID) и поднимает сигнал BSY#. Устройство, которому соответствует самый старший бит шины данных, выигрывает арбитраж
–Selection/Reselection: выбор устройств для обмена данными. Устройство, выигравшее арбитраж, поднимает линию SEL# и выставляет на шину два ID – свой и другого устройства. Если фазу вводит инициатор, он выставляет сигнал ATN# (Selection). Если фазу вводит приемник, запросивший продолжение транзакции, он выставляет сигнал I/O#. После этого BSY# снимается и ожидается сигнал BSY# от второго устройства (подтверждение связи). Если сигнал не появляется, срабатывает тайм-аут, шина освобождается
–Message: фаза сообщений используется для управления шиной. Сообщения бывают однобайтными, двухбайтными и расширенными (с аргументами, например, тайминги синхронного обмена, управление указателями, разрядность обмена данными). Сообщения позволяют адресовать конкретное логическое устройство (Identify), подтверждать успешное выполнение команды (Command Complete), отключаться на время от шины для выполнения отложенной транзакции (Disconnect), управлять очередями и цепочками команд, сообщать об ошибках. Фаза сообщений опознается по сигналу MSG#
–Command: фаза передачи команды. Команды могут занимать 6, 10 и 12 байт, в них указывается код, номер LUN, адрес логического блока, количество блоков (секторов), признак цепочки. С/D#=1, I/O#=0
–Status: фаза состояния, завершающая выполнение команд (кроме команд Abort, Hard Reset, Bus Device Reset и т.п.). Один байт сигнализирует об успешном завершении команды или цепочки либо об отказе из-за резервирования, заполненности очереди, занятости. C/D#=1, I/O#=1
|
|
Фаза синхронной передачи |
|||
I/O# |
|
|
|
|
|
DB# |
DT |
DT |
DT |
DT |
DT |
|
|
|
|
|
|
REQ# |
|
|
|
|
|
ACK# |
|
|
|
|
|
|
|
Фаза синхронного приема |
|
|
|
I/O# |
|
|
|
|
|
DB# |
DI |
DI |
DI |
DI |
DI |
|
|
|
|
|
|
REQ# |
|
|
|
|
|
ACK# |
|
|
|
|
|
Порядок следования фаз при обмене данными
Bus Free (шина свободна)
Arbitration (попытка доступа к шине)
Selection (выбор устройства)
Message (адресация LUN/TRN)
Command (выдача команды)
Data In / Data Out
Status (состояние выполнения)
Message (Command Complete/Error)
Порядок следования фаз при возобновлении обмена
Bus Free (шина свободна)
Arbitration (попытка доступа к шине)
Reselection (выбор инициатора)
Message (Restore Pointers)
Data In / Data Out
Status (состояние выполнения)
Message (Command Complete/Error)