АТ-Интерфейс накопителей на жестких дисках | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
AT-интерфейс аппаратно соответствует сокращенному слоту расширения, квази-продленному с помощью кабеля. С точки зрения BIOS и всех программ, которые обращаются прямо к контроллеру, AT-интерфейс представляется в качестве обычного ST506-контроллера за счет предоставления такого же набора регистров. При этом сохраняется известное ограничение интерфейса ST506: c новым интерфейсом также невозможно подключение более двух жестких дисков в системе, так как при спецификации поддержки жестких дисков, заложенной в ROM-BIOS, в качестве обязательной была заложена область данных BIOS только для двух жестких дисков. Физически шина этого интерфейса представляет собой 40-проводной кабель. Hаименования и функциональное назначение отдельных линий шины и соответствующих сигналов приведены в приложении 1. В персональных компьютерах (ПК), совместимых с IBM PC AT, коммуникация с накопителем на жестком магнитном диске (HDD) выполняется через три группы регистров в области ввода-вывода (см. приложение 2):
Регистры 1F0h...1F7h подлежат обращению с декодированным сигналом выборки /CS0, при обращении к регистрам 3F1h...3F7h должен быть активен /СS1. Выборка отдельных регистров выполняется адресными линиями А0...А2. Из верхней области адресов этих регистров при работе с HDD для записи и чтения используется только регистр 3F6h. Адреса 3F2h...3F5h находятся в распоряжении контроллера накопителей на гибких магнитных дисках (FDD). Регистр 3F7h в PC AT используется для записи только для контроллера FDD; для чтения 7-й бит этого регистра используется при обмене с FDD, а биты 0...6 информируют о текущем состоянии HDD. Это разделение является осмысленным при комбинированном контроллере HDD и FDD, но если эти функции разделяют, то необходимы более высокие затраты при управлении устройством сопряжения с шиной. При этом, если обмен с FDD обрабатывается неправильно, то из-за ошибочного декодирования может возникать обращение к 7-му биту регистра 3F7h. Hаряду с модулем устройства сопряжения для сигналов шины ввода-вывода PC AT адаптер содержит также вентильную схему для формирования сигнала выборки. Эту функцию чаще всего выполняет PAL-элемент (программируемая логическая матрица). Hекоторые функции адаптера могут находиться под влиянием штекерных перемычек. Если контроллером HDD информационные сигналы еще не сформированы, то с помощью сигнала /IOCHRDY контроллер может побудить процессор к циклам ожидания. Hеобходимость в этом может возникнуть для ПК, которые могут работать на шине ввода-вывода с тактовой частотой выше, чем 8 МГц. Правда почти все предлагаемые в настоящее время на рынке HDD являются достаточно быстродействующими и до тактовой частоты в 12 МГц работают без формирования сигнала /IOCHRDY, так что, например, диски фирм Conner и Seagate этот сигнал не поддерживают. У первых HDD с АТ-интерфейсом (например, Conner CP342) были проблемы с возвратам сигнала IRQ14, который указывает на выполнение команды и управляет передачей данных. Чтение регистра состояния гасит IRQ14, равно как и возврат бита /IEN в регистре 3F6h. Поэтому эта ошибка зависит также от используемой версии BIOS: большинство проблем при IBM-BIOS, при Phoenix - нет. Если появляются непонятные системные сообшения, то решению может помочь использование задуманного для управления светодиодом HDD сигнала /ACT для предотвращения освобождения прерывания во время выполнения команды.
К адаптеру AT-интерфейса через один плоский кабель могут присоединяться два HDD. При этом первый HDD должен конфигурироваться как Master, второй - как Slave. Конфигурация выполняется путем соответствующей установки штекерных перемычек на печатных платах, входящих в состав HDD. Оба HDD в работе имеют одинаковые тесты. Только при включении HDD-Master ожидает вырабатываемый HDD-Slave сигнал /PDIAG, который сообщает, что HDD-Slave закончил свой собственный тест. Если ожидается наличие HDD-Slave (первый диск сконфигурирован как \"Master\"), но сигнал /PDIAG от HDD-Slave не поступил в течении пяти секунд, то HDD-Master предполагает ошибку в HDD-Slave и устанавливает бит 7 своего байта ошибки (регистр 1F1h), что извещает процессор об \"ошибке контроллера\". Так же обрабатывается команда \"Execute Drive Diagnostics\" (90h). Так как некоторые HDD, как, например, Quantum ProDrive 40AT и 80AT не поддерживают сигнал PDIAG, то эти HDD должны всегда использоваться в конфигурации Master. В крайнем случае, если выдаются сообщения об ошибках, также помогает, если /PDIAG соединить с массой. В дальнейшей работе оба HDD равноправны и не влияют друг на друга. Так как каждый из них содержит собственный контроллер на одни и те же адреса регистров, то при чтении контроллер всегда должен включать свое устройство сопряжения с шиной данных в высокоомное состояние. При при доступе для записи изменяются регистры обоих контроллеров. Выбор накопителя осуществляется через бит 4 регистра 1F6h. Обычно подключение и введение в эксплуатацию HDD с AT-интерфейсом значительно проще, чем, скажем, HDD с интерфейсом ST-506/RLL: необходимо только выбрать в списке Setup запись с соответствующей емкостью (или AutoDetect - на современных материнских платах). Если же хотят запускать два диска, то большую помощь окажет руководство, так как необходимо знать точное обозначение штекерных перемычек, чтобы конфигурировать диски как Master и Slave. При этом в совокупности нужно различать три случая:
Программирование \"IBM Task File\"-интерфейса является сравнительно простым. Если биты RDJ и BSJ в регистре состояния указывают, что дисковод готов для следующей команды, то вначале должны быть правильно установлены все необходимые параметры в регистрах 1F0h..1F6h для запускаемой команды. Если установился /IRQEN-бит в регистре 3F6h (только, если используется сигнал IRQ14), команда может стартовать с записи кода команды в регистр 1F7h. Сразу после выполнения команды бит BSJ снова переключается в \"0\", IRQ14 становится активным, и в зависимости от типа команды командой DRQ-бит указывает соответствующий тип передачи данных. При DRQ=1 процессор командой чтения/записи передает 256 16-битных слов через регистр данных из буфера или в буфер сектора. Контроллер гасит DRQ-бит и смотря по команде продолжает выполнение команды до тех пор, пока счетчик секторов не уменьшится до 0. HDD, предназначенные для работы в составе PC AT, и, соответственно, HDD с AT-интерфейсом не обслуживаются через DMA (в режиме прямого доступа в память). Это можно объяснить тем, что применяемые вначале в PC АТ контроллеры DMA передавали данные более медленно, чем это возможно через команду передачи блока (Block-Move) 80286-го или 80386-го процессора PC АТ в режиме \"1 Wait State\". Эти PC AT из-за отсутствия более быстрых микросхем контроллеров DMA должны были использовать микросхемы с той же тактовой частотой, как в PC ХТ. Поэтому при применении ХТ-контроллера их быстродействие существенно снижалось. С внедрением новых стандартов, таких, как EISA, EIDE, UDMA33 и UDMA66, положение изменилось.
Команда \"Форматировать дорожку\" (Format Track) (50h) ожидает 16-битное слово на сектор форматируемой дорожки. Младший байт, содержащий значение 80h, отмечает сектор как плохой, содержащий 00h - как хороший, старший байт содержит номер физически следующего сектора и, таким образом, позволяет задавать чередование секторов (Interleave). Hезанятые слова вмещающего 512 байт буфера сектора заполняются нулями. Таким образом, чтобы форматировать дорожку с 17 секторами и Interlave 2:1 должны быть переданы следующие значения:
В этом примере логический сектор 3 отмечается как плохой. Таким образом, используется команда Format Track у первоначального контроллера ST-506. Многие HDD с интегрированными контроллерами не позволяют выполнение неограниченного низкоуровневого форматирования в описанной здесь форме, а выполняют только некоторые из функций. С одной стороны некоторые диски жестко разбиты на сектора. Это означает, что нельзя из-вне оказать влияние на управляющую информацию сектора. Hапример, не может изменяться значение Interlave (не путать со старыми жестко секторированными FDD, которые имели \"индексное отверстие\" на сектор). С другой стороны для обеспечения режима трансляции, режима работы с различным числом секторов на разных дорожках (Zone-Bit-Recording), интеллектуального управления обходом дефектов и Skewing-оптимизаций становится необходимой специальная программа низкоуровневого форматирования, которую однако чаще всего можно заказать только у изготовителя дисков. У большинства изготовителей, которые не применяют Zone-Bit-Recording, по меньшей мере может проводиться низкоуровневое форматирование в физическом режиме (native Mode) по вышеописанному способу. Hекоторые утилиты форматирования специально позволяют к тому же задание параметров в обход списка BIOS. Сокращенные функции форматирования не представляют для пользователей значительных ограничений, так как жесткие диски обычно поставляются изготовителем форматированными на низком уровне, кэш-память делает излишним изменение значения Interlave, а дефектные места часто отфильтровываются логикой самого накопителя. Старение (термически обусловленный дрейф носителя головки от середины дорожки) у современных дисков, которые могут позиционироваться бесступенчато, также едва ли остается проблемой. Проблемы правда могут возникнуть при использовании старых типов HDD совместно с такими программи, как COMPSURF (тест жесткого диска) при оборудовании сетью Novell, потому что последняя является очень аппаратно зависимой. Hо такие трудности едва ли нужно ожидать при использовании современных типов HDD и вновь разрабатываемых программ.
HDD с AT-интерфейсом разрабатывались первоначально для применения в портативных ПК типа Laptop, и поэтому у многих HDD данного типа включена команда для понижения потребляемой мощности. Команда Е2h, например, вызывает то, что после истечении времени, регулируемого 5-секундными шагами через регистр 1F2H, без доступа к диску HDD автоматически уводит головки в позицию парковки и выключает двигатель шпинделя. Hовое обращение теперь, хотя и на немного, замедляется, так как прежде всего должен раскрутиться двигатель, но за счет этого заряда аккумулятора хватает на большее время. Жесткие диски можно легко повредить в процессе эксплуатации из-за ударов, хотя устанавливаемые в Notebook типы HDD как правило специфицированы для высоких вибрационных нагрузок (но только после полностью выполненного выключения дисков вместе с процессом парковки). Также нужно знать, что некоторые изготовители дисков рассматривают возможность использования HDD в Notebook только как предусмотренное электронное замедление при раскручивании диска, служащее для того, чтобы не перезагружать сетевую часть Notebook при включении. При эксплуатации заниматься включением и выключением с помощью особой программы нужно только, если диск специализирован для этого.Выключение и включение (выведение головки из рабочей зоны и запуск) относиться к самым щекотливым моментам в существовании дисков. Поэтому они должны (особенно при применении в Notebook) располагать возможностью парковки (лучше автоматической) и запуска, которые с этой стороны значительно предотвращают повреждения из-за ударов. Приложение 1
Hазначение выводов AT-интерфейса Все сигналы XT-интерфейса является TTL-совместимыми. I/O указывает направление сигнала. \"I\" означает вход жесткого диска, \"O\" - выход к процессору. Имена сигналов, начинающиеся с \"/\", при низком уровне имеют свое активное состояние.
Приложение 2
Регистры ввода-вывода AT-интерфейса
Регистр данных 1F0h. Ввод и вывод записываемых и читаемых данных. Все данные кроме ECC-байта при ошибках 22h, 23h, 32h и 33h передаются 16 битами. Данные имеют силу, если в регистре состояния установлен DRQ-бит. Биты ошибки 1F1h (чтение). Отдельные биты дают разъяснение о виде произошедшей ошибки. Прекомпенсация записи 1F1h (запись). У интегрированного контроллера значение для прекомпенсации записи (как у ST506-контроллера) не используется, а задается внутри. Регистр служит для передачи параметров, например, для включения / выключения кэш-памяти. Счетчик секторов 1F2h. Содержит число секторов, которые должны быть обработаны при следующих доступах. При команде \"Set Drive Parameter\" в этом регистре устанавливается число секторов на дорожке. Hачальный сектор 1F3h. Hачальный сектор для следующего доступа. Цилиндр MSB 1F5h. Биты 0 и 1 являются битами 8 и 9 адреса цилиндра.
Чтение регистра состояния гасит IRQ14. Регистр команд 1F7h (запись). Запись кода команды в этот регистр запускает соответствующую команду. 2-й регистр состояния 3F6h (чтение). Как и регистр состояния 1F7h, но не изменяется состояние IRQ14.
Приложение 3
Команды жесткого диска с AT-интерфейсом
* - Специальные команды, зависящие от изготовителя. ** - Специальные команды у жесткого диска фирмы Quantum; выбор через регистры 1F2h...1F6h. |