Аппаратные интерфейсы ПК. Энциклопедия
Шрифт:
3. Хост читает основной или альтернативный регистр состояния адресованного устройства, дожидаясь признака готовности (
4. Хост заносит требуемые параметры в блок командных регистров.
5. Хост записывает код команды в регистр команд.
6. Устройство устанавливает бит
Дальнейшие действия зависят от протокола передачи данных, заданного командой.
Для команд, не требующих передачи данных, следующий шаг (шаг 7) — последний. Завершив исполнение команды, устройство сбрасывает бит
Для команд, требующих чтения данных в режиме PIO, процедура продолжается следующим образом.
7. Подготовившись к передаче первого блока данных по шине ATA, устройство устанавливает бит
8. Зафиксировав обнуление бита
9. Если хост обнаружил единичное значение бита
• если на шаге 8 ошибка не обнаружена и требуется передача следующего блока, устройство устанавливает бит
• если есть ошибка или передан последний блок данных, устройство сбрасывает бит
Для операций записи данных после шага 6 для устройства начинается активная фаза записи на носитель, что отмечается установкой бита
Для команд, требующих записи данных в режиме PIO, процедура после шага 6 продолжается следующим образом.
7. Подготовившись к приему первого блока данных по шине ATА, устройство устанавливает бит
8. Зафиксировав обнуление бита
9. Если хост обнаружил единичное значение бита
10. После передачи блока данных возможно одно из следующих действий:
• если обнаружена ошибка, устройство сбрасывает бит
• если ошибка не обнаружена, устройство устанавливает бит
11. Устройство обрабатывает принятый блок данных, затем:
• если нет ошибок и обработанный блок — последний, устройство сбрасывает бит
• если обнаружена ошибка, выполнение команды завершается таким же об разом, но с установкой битов ошибок;
• если нет ошибок и требуется передача следующего блока, процедура продолжается.
12. По готовности приема следующего блока устройство устанавливает бит
13. По обнулении бита
14. Обнаружив бит
Команды с передачей данных в режиме DMA выполняются похожим
образом, но с некоторыми исключениями.♦ Вместо PIO используется прямой доступ к памяти. Хост должен инициализировать канал DMA до записи кода в регистр команд, чтобы при появлении сигнала
♦ Запрос прерывания даже в многосекторных передачах производится один раз — по выполнении команды.
Простейший адаптер ATA содержит только буферы сигналов шины и дешифратор зоны адресов. Все регистры контроллера и схемы кодирования размещены в самом устройстве IDE. Шина ATA требует выделения системных ресурсов — двух областей портов ввода-вывода и линии прерывания; дополнительно может потребоваться канал DMA. Интерфейсу ATA первого канала выделили ресурсы, ранее использовавшиеся контроллером жестких дисков. Второму каналу назначили ресурсы альтернативного контроллера жестких дисков. Позже определили ресурсы еще для двух каналов (табл. 9.8). Традиционному контроллеру жестких дисков выделялся канал DMA3, но он является 8-битным, в то время как шина ATA требует 16-битного канала DMA. Производительности стандартных каналов DMA для шины ATA явно недостаточно.
Таблица 9.8. Системные ресурсы каналов ATA
Канал | CS0 | CS1 | IRQ |
---|---|---|---|
1 | 1F0h-1F7h | 3F6h-3F7h | 14 |
2 | 170h-177h | 376h-377h | 15 или 10 |
3 | 1E8h-1Efh | 3Eeh-3Efh | 12 или 11 |
4 | 168h-16Fh | 36Eh-36Fh | 10 или 9 |
На системных платах с шиной PCI стандартом является установка двухканального адаптера, занимающего ресурсы каналов 1 и 2. В идеальном варианте двухканальные контроллеры имеют шины, полностью изолированные друг от друга буферными и логическими схемами. В самом дешевом варианте они используют общие буферы для линий данных и управляющих сигналов и отдельные только для некоторых сугубо индивидуальных сигналов. С точки зрения логики здесь все в порядке, но следует учитывать нагрузочную способность (влияние паразитных параметров): суммарная длина обоих ленточных кабелей не должна превышать 46 см, а суммарная емкость каждой линии со всеми устройствами не должна превышать 35 пФ. Иначе на высокоскоростных режимах обмена возможны неконтролируемые искажения передаваемых данных. Стандарт ATA/ATAPI-6 предписывает следующее.
♦ В каждом канале должны быть собственные формирователи управляющих сигналов
♦ Для поддержки Ultra DMA 0, 1 и 2 (до 33 Мбайт/с) к этим требованиям добавляется наличие раздельных формирователей сигнала
♦ Для поддержки Ultra DMA 3 и выше (44-100 Мбайт/с) все линии должны иметь раздельные приемопередатчики. Общими могут быть только сигналы
Поскольку скорость программного обмена задается хост-адаптером, интересно индивидуальное программирование режимов PIO Mode для каждого канала/устройства. Ряд чипсетов этого не допускает и при инициализации назначает общий минимальный режим. В результате подключение «тихоходного» устройства замедляет обмен быстрого соседнего устройства.