![]() Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Контроллер НГМД
Программное взаимодействие с НГМД производится через контроллер накопителей на гибких дисках FDC (Floppy Drive Controller), как правило, при участии контроллера DMA и прерываний. Программирование контроллера НГМД для выполнения операций с дискетами — довольно хлопотное занятие (см. [4, 8, 9]). Все функции, необходимые для использования НГМД в качестве устройств хранения данных, реализованы сервисами BIOS Int 13h (см. 12.8.1) и ОС. Игнорирование сервисов BIOS и даже ОС оправданно в основном лишь для нетривиальных задач типа работы с ключевыми дискетами и т. п. Все контроллеры, применяемые в IBM PC, обеспечивают совместимость с «исторической» микросхемой контроллера NEC PD765, которая является аналогом i8272. Контроллер FDC А Т поддерживает два накопителя; он позволяет работать со скоростями передачи данных 250 Кбит/с (для работы с дискетами SD, DD и QD в старых дисководах 5"), 500 Кбит/с для плотности HD (1, 2 и 1, 44 Мбайт), а также 300 Кбит/с для работы с дискетами SD, DD и QD в приводах HD 5". Современные контроллеры, поддерживающие накопители ED (2, 88 Мбайт), должны обеспечивать и скорость 1000 Кбит/с. Режимы контроллеров, соответствующие скоростям 250/300, 500 и 1000 Кбит/с, обозначаются соответственно 1М, 2М и 4М. В режиме 1М на одном треке умещается 9 секторов (по 512 байт); для этого при частоте вращения 300 об/мин требуется скорость 250 Кбит/с, а при 360 об/мин -300 Кбит/с. В режиме 2М при частоте вращения 300 об/мин (у дисководов HD 3, 5") на одном треке умещается 18 секторов, а при частоте вращения 360 об/мин (у дисководов HD 5") — 15 секторов. Режим 4М, похоже, так и останется невостребованным. Выбор скорости задает частоту синхронизации при записи и форматировании, а также настраивает цепи Ф АПЧ сепаратора данных контроллера. Сепаратор данных способен устойчиво выделять данные и синхросигнал из сигнала, принятого с головки, лишь при небольших (порядка ±10 %) отклонениях скорости от номинала, поэтому скорость должна быть правильно выбрана для всех операций обмена данными с диском. 9.1. Интерфейс НГМД_____________________________________________ 357 В карте ресурсов AT имеется место под два контроллера НГМД: ♦ FDC АТ#1 (стандартный или основной) занимает порты с адресами 3FOh- ♦ FDC AT#2 (дополнительный) занимает порты с адресами 370h-377h. Контроллеры вырабатывают запрос аппаратного прерывания IRQ6 (BIOS I n t 0E h) по окончании выполнения внутренних операций. Для обмена данными может использоваться канал DMA2. Назначение регистров контроллера приведено в табл. 9.2. Адрес регистра состояния FDC 3F7 (377) совпадает с адресом регистра HDC (давно неиспользуемого), в связи с чем раздельная работа FDC и HDC, расположенных на разных платах, проблематична. В нормальном (не диагностическом) режиме из этого регистра интерес представляет только бит 7 — признак смены носителя. Таблица 9.2. Регистры контроллера НГМД Адрес Назначение (R — чтение, W — запись)
3F3 (373) RW: TDR (Tape Drive Register) — регистр стриммера: биты [1: 0]— номер устройства, которому соответствует стриммер. По сбросу устанавливается 00, но это означает отсутствие стриммера (вместо дисковода А: стиммер не поставить) 3F4 (374) R: MSR (Main State Register) — главный регистр состояния: бит 7 (DQM) — запрос: 1 — готов к приему/передаче байта; бит 6 (DIO) — направление данных: 1 — FDC -> CPU; бит 5 (NON DMA) — использование DMA: 1 — DMA не используется; бит4(CMDBSY): 1 — контроллер занят выполнением команды; биты [0: 3] — привод А:, В:, С:, D: занят (в AT используются только биты 0, 1) 3F4 (374)1 W: DSR (Datarate Select Register) — регистр выбора скорости: бит 7: 1 — сброс контроллера (обнуляется автоматически); бит 6: 1 — отключение питания контроллера; бит 5: 1 — разрешение внешней ФАПЧ (должен быть 0); биты [4: 2] — выбор времени предкомпенсации записи (000 — предкомпенсация по умолчанию); биты [1: 0] — скорость обмена (00 — 500Кбит/с, 01 — 300 Кбит/с, 10 —250 Кбит/с, 11 —1 Мбит/с) 3F5 (375) RW: DR (Data Register) — регистр команд/данных 3F7 (377) W: CCR (Configuration Control Register) — регистр параметров контроллера (AT): биты [7: 2] — не используются; биты [1: 0]— скорость обмена (00 — 500 Кбит/с, 01—300 Кбит/с, 10 — 250 Кбит/с, 11—1 Мбит/с) 3F7 (377) R: DIR (Digital Input Register) — регистр состояния (только в AT): бит 7: 1 =смена носителя (чтение инвертированной линии DC); биты [6: 0] — не используются, при чтении не выводятся на шину данных
Контроллер НГМД может быть использован и для работы со стриммерами; специально для этого в контроллере имеется регистр TDR (Tape Drive Register), пара младших битов которого задает номер устройства, которому соответствует стриммер (для него иначе настраиваются цепи ФАПЧ сепаратора данных). 358________________________________ Глава 9. Интерфейсы устройств хранения Все операции с дискетами выполняются по командам, посылаемым хостом в регистр DR (3F5) согласно состоянию битов регистра MSR (3F4). Запись байта команды или данных в регистр DR разрешается лишь при текущем значении MSR=10xxxxxxb, чтение — при MSR=llxxxxxxb. Для записи/чтения этого регистра приходится использовать отдельные подпрограммы, не только дожидающиеся разрешающих значений MSR, но и имеющие аварийный выход по тайм-ауту. Хост также выполняет запись в регистр DOR (3F2) для запуска/останова дисковода, а также в CCR (3F7) или DSR (3F4) для выбора скорости передачи данных. В операциях обмена данными с дискетами обычно участвует контроллер DMA, и он должен быть своевременно проинициализирован. Сигнал ТС (завершение цикла DMA) используется как признак завершения фазы данных. В общем виде процедура обмена данными состоит из следующих шагов. 1. Запуск мотора и выбор дисковода (записью в регистр DOR). 2. Установка скорости (записью в регистр CCR). 3. Выполнение команды рекалибровки. 4. Ожидание раскрутки двигателя (если мотор работает еще менее 0, 5 с). 5. Позиционирование головки на требуемый цилиндр. 6. Инициализация контроллера DMA. 7. Посылка команды чтения/записи. 8. Ожидание прерывания от контроллера. Прерывание произойдет, когда завер 9. По прерыванию от контроллера считываются байты результата, и если ошибок Помимо описанного механизма имеется механизм автоматического выключения 9, 2. Интерфейс АТА/ATAPI (IDE) _____________________________________ 359 Исполнение каждой команды имеет три фазы. 1. Фаза команды. Контроллер устанавливает биты DQM=1 и DIO-0, что является приглашением к вводу команды. В регистр DR посылается байт команды, после которого посылаются байты параметров в строго предписанном порядке. На прием каждого байта контроллер отзывается обнулением DQM на время обработки. После получения последнего требуемого байта DQM остается обнуленным и контроллер переходит в фазу исполнения. В качестве параметров фигурируют номер цилиндра С, номер головки Н, номер сектора R, код размера N или длина поля данных сектора DTL, номер последнего сектора на треке EOT, число секторов SC, длительность зазоров GPL и некоторые другие данные. 2. Фаза исполнения требует передачи данных от хоста к контроллеру или обратно, 3. В фазе результата DQM=1 и 010=1, хост должен считать байты результата из DR, после чего биты установятся в значение DQM=1 и 010=0, что соответствует переходу в фазу приема команды. С момента получения команды и до окончания фазы результата в регистре MSR бит СМО BSY=1. Контроллер всегда можно принудительно сбросить (перевести в начало фазы команды) записью в регистр DOR или DSR. Если контроллер получит неподдерживаемую команду, он сразу выставит DQM=1 и 010=1, что является указанием на необходимость чтения DR. Хост должен прочитать из DR код состояния, в котором будет значение 80h (недопустимая команда). В современных контроллерах НГМД имеется буфер FIFO глубиной 16 байт, работающий при передаче данных (но не команд и параметров) через регистр DR; в «историческом» контроллере 18272 буфера FIFO не было. Логика общения с регистром DR остается той же. Буфер должен быть своевременно обслужен, чтобы не происходило его переполнения или опустошения. Логика буфера устанавливает запрос данных так, чтобы не отвлекать хост «по пустякам». При чтении из DR запрос устанавливается, когда в буфере имеется (16-яорог) байтов или же считан последний байт сектора. При записи в OR запрос первоначально устанавливается и удерживается до заполнения буфера, впоследствии он устанавливается снова, когда в буфере остается порог байтов. Переход в фазу результата происходит, когда завершается обмен хоста с DR и буфер опустошается. Общение с регистром DR при записи команд и параметров должно выполняться согласно значениям старших битов регистра MSR (буфер FIFO при этом не используется). 9.2. Интерфейс АТА/ATAPI (IDE) Интерфейс ATA (AT Attachment for Disk Drives) разрабатывался в 1986-1990 гг. для подключения накопителей на жестких магнитных дисках к компьютерам IBM PC AT с шиной ISA. Стандарт, выработанный комитетом ХЗТ10, определяет на- 360_______________________________ Глава 9. Интерфейсы устройств хранения бор регистров устройств и назначение сигналов 40-контактного интерфейсного разъема. Интерфейс появился в результате переноса стандартного (для PC/AT) контроллера жесткого диска ближе к накопителю, то есть создания устройств со встроенным контроллером — IDE (Integrated Drive Electronics). Стандартный контроллер AT позволял подключать до двух накопителей, что в интерфейсе АТА означает параллельное подключение контроллеров двух устройств. В спецификации АТА фигурируют следующие компоненты. ♦ Хост-адаптер — средства сопряжения интерфейса АТА с шиной компьютера. ♦ Ведущее устройство (Master) — ПУ, в спецификации АТА официально называемое Device-О (устройство 0). ♦ Ведомое устройство (Slave) — ПУ, в спецификации официально называемое Device-1 (устройство 1). Хост-адаптер и устройства объединяются кабелем-шлейфом, соединяющим параллельно одноименные контакты интерфейсных разъемов. Регистры обоих контроллеров оказываются расположенными в одних и тех же областях пространства ввода-вывода. Для выбора устройства, исполняющего текущую команду, используется бит выбора накопителя (DEV) в регистре номера устройства и головки (drive/head register). Если бит DEV4), выбрано ведущее устройство, если DEV=1 — ведомое. Запись в этот регистр воспринимается сразу обоими устройствами, на обращения к остальным регистрам реагирует только выбранное. Достаточно универсальный набор сигналов позволяет подключать любое устройство со встроенным контроллером, которому в пространстве портов ввода-вывода достаточно того же набора регистров, способное поддержать режим выбора устройства через вышеупомянутый бит. Принятая система команд и регистров, являющаяся частью спецификации АТА, ориентирована на блочный обмен данными с устройствами прямого доступа. Для иных устройств существует спецификация AT API, основанная на тех же аппаратных средствах, но позволяющая обмениваться пакетами управляющей информации (Package Interface, PI). Структура и наполнение пакетов позаимствованы из универсального интерфейса SCSI. Пакетный интерфейс позволяет расширить границы применения шины АТА. Адресация в АТА имеет «дисковые корни»: для накопителей изначально указывали адрес цилиндра (cylinder), головки (head) и сектора (sector) — так называемая трехмерная адресация CHS. Сначала эта адресация точно соответствовала реальной геометрии — физически сектор действительно находился по указанному адресу. Позже по ряду причин диски АТА стали описывать внешней геометрией, отличающейся от реальной внутренней (например, разные зоны треков имеют разное число секторов, причем часть секторов может резервироваться на случай замены дефектных). При этом одно и то же устройство может иметь различную внешнюю геометрию. Преобразование адресов в реальные выполняется встроенным контроллером устройства. В системе CHS устройство АТА позволяет адресовать до 267 386 880 (65 536x16x255) секторов (блоков), что при размере сектора в 512 байт дает 136 902 082 560 байт (около 137 Гбайт). Позже пришли к линейной 9.2. Интерфейс АТА/ATAPI (IDE)_______________________________________ 361 адресации логических блоков LBA (Logical Block Addressing), где адрес блока (сектора) определяется 28-битным числом, что позволяет адресовать до 268 435 455 (228) блоков (немного больше, чем в CHS). Для устройств AT А, поддерживающих и CHS, и LBA, режим адресации определяется для каждой команды битом L (бит 6) регистра D/H; режимы могут чередоваться произвольным образом. Устройства ATAPI используют принятую в SCSI 32-битную логическую адресацию, позволяющую адресовать до 2 Тбайт (при 512-байтном блоке). Если к шине АТА подключено одно устройство, оно должно быть ведущим. Если подключены два устройства, одно должно быть ведущим, другое — ведомым. О своей роли (ведущее или ведомое) устройства «узнают» с помощью предварительно установленных конфигурационных джамперов. Если применяется «кабельная выборка» (см. ниже), роль устройства определяется его положением на специальном ленточном кабеле. Оба устройства воспринимают команды от хост-адаптера одновременно. Однако исполнять команду будет лишь выбранное устройство. Выводить выходные сигналы на шину АТА имеет право только выбранное устройство. Такая система подразумевает, что, начав операцию обмена с одним из устройств, хост-адаптер не может переключиться на обслуживание другого до завершения начатой операции. Параллельно могут работать только устройства IDE, подключаемые к разным шинам (каналам) АТА. Спецификация АТА-4 определяет способ обхода этого ограничения, но эту возможность используют редко. Для устройств IDE существует несколько разновидностей интерфейса. ♦ АТА, он же AT-BUS, — 16-битный интерфейс подключения к шине компьютера AT. Наиболее распространенный 40-проводный сигнальный и 4-проводный питающий интерфейс для подключения дисковых накопителей к компьютерам AT. Для миниатюрных (2, 5" и менее) накопителей используют 44-проводный кабель, по которому передается и питание. ♦ PC Card ATA — 16-битный интерфейс с 68-контактным разъемом PC Card ♦ MCA IDE (16 бит) — 72-проводный интерфейс, предназначенный специально для шины и накопителей PS/2. ♦ АТА-2 — расширенная спецификация АТА. Включает 2 канала, 4 устройства, PIO Mode 3, Multiword DMA Mode 1, Block mode, объем диска до 8 Гбайт, поддержка LBA и CHS. ♦ Fast АТА-2 разрешает использовать Multiword DMA Mode 2 (13, 3 Мбайт/с), PIO Mode 4. ♦ АТА-3 — расширение АТА-2. Включает средства парольной защиты, улучшенного управления питанием, самотестирования с предупреждением приближения отказа — SMART (Self Monitoring Analysis and Report Technology). ♦ ATA/ATAPI-4 — расширение АТА-3, включающее режим Ultra DMA со скоростью обмена до 33 Мбайт/с и пакетный интерфейс ATAPI. Появляется поддержка очередей и возможность перекрытия команд. 362___________________________ Глава 9. Интерфейсы устройств хранения ♦ ATA/ATAPI-5 — ревизия ATA/ATAPI-4: удаляются устаревшие команды ♦ ATA/ATAPI-6 — дополнения к ATA/ATAPI-5: потоковое расширение для чтения/записи аудио- и видеоданных, управление акустическим шумом, режим Ultra DMA со скоростью обмена до 100 Мбайт/с. ♦ Serial ATA — последовательный интерфейс. ♦ E-IDE (Enhanced IDE) — расширенный интерфейс, введенный фирмой Western Digital. Реализуется в адаптерах для шин PCI и VLB. Позволяет подключать до 4 устройств (к двум каналам), включая CD-ROM и стриммеры (ATAPI). Поддерживает РЮ Mode 3, Multiword DMA Mode 1, объем диска до 8 Гбайт, LBA и CHS. С аппаратной точки зрения практически полностью соответствует спецификации АТА-2. Устройства ATA IDE, E-IDE, АТА-2, Fast АТА-2, АТА-3^ ATA/ATAPI-4, ATA/ ATAPI-5 и ATA/ATAPI-6 электрически совместимы. Степень логической совместимости достаточно высока (все базовые возможности АТА доступны). Однако для полного использования всех расширений необходимо соответствие спецификаций устройств, хост-адаптера и его ПО. Разработкой спецификаций ATA/ATAPI занимается технический комитет Т13 американского Национального Комитета но стандартизации в области информационных технологий (NCITS). Разработанные им спецификации оформляются в виде стандартов ANSI. Спецификация ATA/ATAPI-6 объявлена последней версией параллельного интерфейса АТА, за которой следует последовательный интерфейс Serial ATA.
|