Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Последовательный интерфейс АТА




Интерфейс ATA

 

Шина ATA, получила "второе дыхание" на основе расширения ATAPI, имеющего "родственные связи" с SCSI. Здесь будет рассказано о новых возможностях, предложенных в стандарте ATA/ATAPI-4 - режимы Ultra DMA, очереди команд и некоторые другие новшества.

Интерфейс ATA - AT Attachment for Disk Drives - разрабатывался в 1986-1990гг. как средство подключения накопителей на жестких магнитных дисках к компьютерам IBM PC/AT с шиной ISA-Bus. Этот стандарт, разработанный комитетом X3T10, определяет набор регистров и назначение сигналов 40-контактного интерфейсного разъема. Интерфейс появился в результате переноса контроллера жесткого диска поближе к самому накопителю, то есть создания устройств со встроенным контроллером - IDE (Integrated Device Electronic). Фактически стандартный для PC/AT контроллер жесткого диска был перенесен на плату электроники накопителя с сохранением своей регистровой модели. При этом удлинилась связь с устройством со стороны системной шины, которую непосредственно выводить на длинный ленточный кабель, естественно, было нецелесообразно. Это сказалось бы и на достижимой скорости работы шины, и на надежности, и на цене такого решения. Выход был прост: из всех сигналов шины ISA выбрали минимальный набор сигналов, часть из которых буферизовали на небольшой плате, устанавливаемой в слот, а часть направили прямо на разъем ленточного кабеля нового интерфейса. От сигналов системной шины потребовались следующие:

Шина данных - используется полностью.

Шина адреса - 3 младших бита поступают в интерфейс, старшие биты и сигнал AEN проходят через дешифратор, вырабатывающий сигналы выбора устройства CS0# и CS1#.

Шина управления - используются сигналы чтения и записи портов и аппаратного сброса, запрос прерывания, пара сигналов канала DMA, сигналы готовности и управления разрядностью передачи.

Поскольку стандартный контроллер жестких дисков AT позволял подключать до двух накопителей, эту возможность включили и в новый интерфейс. Однако теперь ситуация изменилась: два накопителя стали означать и два контроллера. Их смело подключили к одной интерфейсной шине, а для обеспечения программной совместимости бит выбора накопителя (DEV) в регистре номера головки и номера устройства стали использовать для выбора устройства (теперь, фактически, для выбора контроллера). Для взаимодействия пары устройств на шине ввели несколько дополнительных сигналов. Так появился интерфейс ATA для подключения устройств IDE к шине ISA. Позже его стали подключать и к локальным шинам, но набор сигналов самого интерфейса ATA и протоколы обмена в целом сохранились. Поскольку набор сигналов был взят достаточно универсальный, он позволяет подключать в принципе любое устройство со встроенным контроллером, которому в пространстве портов ввода/вывода достаточно того же набора регистров и которое способно поддержать принятый режим выбора устройства через вышеупомянутый бит. Принятая система команд и регистров, являющаяся частью спецификации ATA, ориентирована на поблочный обмен данными с устройствами прямого доступа. Для иных устройств существует спецификация ATAPI, основанная на тех же аппаратных средствах, но позволяющая обмениваться пакетами управляющей информации (PI - Package Interface). Пакетный интерфейс позволяет расширить границы применения шины ATA.
Система адресации данных в ATA тоже имеет "дисковые корни": для этих накопителей изначально указывали адрес цилиндра (Cyl), головки (Head) и сектора (Sector) - это так называемая трехмерная адресация CHS. Позже по ряду причин стали различать физическую (реальную для накопителя) и логическую (по которой с устройством общается программа) адресацию CHS. При этом одно и то же устройство могло иметь разные варианты логической геометрии (но, естественно, C*H*SЛОГ <= C*H*SФИЗ). Взаимное преобразование логической и физической адресации выполняется встроенным контроллером устройства. Позже пришли к линейной адресации логического блока LBA (Logical Block Addressing), где адрес блока (для дисков - сектора) определяется 28-битным числом.
В спецификации ATA фигурируют следующие компоненты:
Хост-адаптер - средства сопряжения интерфейса ATA с системной шиной (в простейшем случае - набор буферных схем между шинами ISA и ATA). Хостом будем называть компьютер с хост-адаптером интерфейса ATA.
Кабель-шлейф с двумя или тремя 40-контактными IDC-разъемами (рис. 8.9). В стандартном кабеле одноименные контакты всех разъемов соединяются вместе.
Ведущее устройство (Master) - периферийное устройство, в спецификации ATA официально называемое Device-0 (устройство-0).
Ведомое устройство (Slave) - периферийное устройство, в спецификации официально называемое Device-1 (устройство-1).
Если к шине ATA подключено одно устройство, оно должно быть ведущим. Если подключены два устройства, одно должно быть ведущим, другое - ведомым. Все иные варианты назначения устройств неработоспособны (если "хитрый" хост-адаптер не возьмет на себя некоторые функции ведущего устройства). О своей роли (ведущее или ведомое) устройства обычно "узнают" с помощью предварительно установленных конфигурационных джамперов. В редких случаях, когда применяется "кабельная выборка", о которой будет сказано ниже, роль устройства определяется его положением на специальном кабеле-шлейфе.
Оба подключенных устройства воспринимают команды от хост-адаптера одновременно. Однако исполнять команду будет лишь выбранное устройство. Если бит DEV=0, выбрано устройство-0, если бит DEV=1 - устройство-1. Выходные сигналы на шину ATA имеет право выводить только выбранное устройство. Такая система выбора устройства подразумевает, что начав операцию обмена с одним из устройств, хост-адаптер не может переключиться на обслуживание другого устройства той же шины ATA до завершения начатой операции обмена. Параллельно могут работать только устройства IDE, подключаемые к разным шинам (каналам) ATA. Спецификация ATA-4 определяет возможности обхода этого ограничения, о чем подробнее будет рассказано позже.
Выполняемая операция и направление обмена данными между устройством и хост-адаптером определяется предварительно записанной командой. Непременным компонентом устройства является буферная память. Ее наличие позволяет выполнять обмен данными в темпе, предлагаемом хост-адаптером (конечно, в пределах возможности устройства), без оглядки на внутреннюю скорость передачи данных между носителем и буферной памятью периферийного устройства.
Для подключения устройств IDE существует несколько разновидностей интерфейса:

ATA (AT Attachment), он же AT-BUS - 16-битный интерфейс подключения к шине компьютера AT. В настоящее время это наиболее распространенный 40-проводной сигнальный и 4-проводной питающий интерфейс для подключения дисковых накопителей к компьютерам класса AT. Для миниатюрных (2,5" и передается и питание.

PC Card ATA - 16-битный интерфейс с 68-контактным разъемом PC Card (PCMCIA) для подключения к блокнотным ПК.

XT IDE (8-бит), он же XT-BUS - 40-проводной интерфейс, похожий на ATA, но несовместимый с ним.

MCA IDE (16-бит) - 72-проводный интерфейс, предназначенный специально для шины и накопителей PS/2. Как и компьютеры PS/2, по крайней мере в нашей стране устройства с этим интерфейсом встречаются редко.

ATA-2 - расширенная спецификация ATA, включает 2 канала, 4 устройства, PIO Mode 3, multiword DMA mode 1, Block mode, объем диска до 8 Гбайт, поддержка LBA и CHS.

Fast ATA-2 разрешает использовать Multiword DMA Mode 2 (13,3 Mбайт/с), PIO Mode 4.

ATA-3 - расширение ATA-2. Включает средства парольной защиты, улучшенного управления питанием, самотестирования с предупреждением приближения отказа - SMART (Self Monitoring Analysis and Report Technology).

ATA/ATAPI-ATAPI-4 - расширение ATA-3, включающее режим Ultra DMA со скоростью обмена до 33 Мбайт/с и пакетный интерфейс ATAPI.

E-IDE (Enhanced IDE) - расширенный интерфейс, введенный фирмой Western Digital. Реализуется в адаптерах для шин PCI и VLB, позволяющий подключать до 4 устройств (к двум каналам), включая CD-ROM и стриммеры (ATAPI). Поддерживает PIO Mode 3, multiword DMA mode 1, объем диска до 8 Гбайт, LBA и CHS. С аппаратной точки зрения практически полностью соответствует спецификации ATA-2.

Устройства ATA IDE, E-IDE, ATA-2, Fast ATA-2, ATA-3 и ATA/ATAPI-4 электрически совместимы, степень логической совместимости достаточно высока (все базовые возможности ATA доступны). Однако для полного использования возможностей всех расширений необходимо соответствие спецификаций устройств, хост-адаптера и его программного обеспечения. В настоящее время наиболее широко распространен и четко стандартизован интерфейс, официально называемый ATA-2, о котором в основном и пойдет речь.
Все информационные сигналы интерфейса передаются через 40-контактный разъем, у которого ключем является отсутствующий на вилке и закрытый на розетке контакт я20. Для соединения устройств спецификация требует использования плоского многожильного кабеля, длина которого не должна превышать 0,46 м (18"), допустимая емкость проводников не более 35 пФ. Специальные терминаторы стандартом не предусматриваются (они имеются в каждом устройстве и хост-адаптере), но если кабель с тремя разъемами (розетками) используют для подключения одного устройства, то и его и хост-адаптер рекомендуется подключать к противоположным концам кабеля. Для устойчивости работы в режиме UltraDMA при высокой скорости обмена рекомендуется применение сборки 40-контактных разъемов и 80-проводных кабелей, обеспечивающих чередование сигнальных цепей и проводов схемной земли.
Каждое устройство ATA имеет стандартный набор регистров, адресуемых сигналами от хост-адаптера. Напомним, что эти регистры, как и система команд, ориентированы на подключение накопителей на магнитных дисках, чем и определяется их специфика. Набор регистров состоит из двух блоков: блок командных регистров служит для посылки команд устройству и передачи информации о его состоянии, блок управляющих регистров используется для управления устройством и получения байта его состояния.
Регистр состояния SR отражает текущее состояние устройства в процессе выполнения команд. Чтение регистра состояния разрешает дальнейшее изменение его бит и сбрасывает запрос аппаратного прерывания. Альтернативный регистр состояния AS имеет те же биты, что и основной, но его чтение не приводит ни к каким изменениям состояния устройства.
Назначение регистра команд CR очевидно из названия. Устройство начинает исполнять команду сразу, как только ее код будет записан в данный регистр. Регистры номера цилиндра (старшего CH и младшего байта CL) и номера сектора SN имеют двоякое назначение в зависимости от выбранной системы адресации (CHS или LBA). Они инициализируются хост-адаптером, а в случае возникновения ошибки при операции устройство поместит в них адрес, по которому встретилась ошибка. Регистр номера устройства и головки D/H кроме хранения части адресной информации служит для выбора устройства-0 или устройства-1 и метода адресации LBA или CHS.
После включения питания, сброса или выполнения диагностики устройство в блоке командных регистров содержит сигнатуру, определяющую его тип (ATA или ATAPI)
Регистр данных DR может использоваться как 8-битный или 16-битный в зависимости от типа данных, передаваемых в текущей команде. Регистр управления устройством CR служит для управление программным сбросом и разрешения запроса прерывания. Регистр ошибок ER хранит состояние выполнения последней операции или диагностический код. Регистр свойств FR (более подходящий эквивалент названию Features Register найти не удалось) используется в зависимости от команды. В команде Set Features через него задается код подкоманды. Регистр счетчика секторов SC содержит число секторов, участвующих в обмене.


Система команд

 

Стандарт ATA задает систему команд, ориентированную, опять-таки, на накопители на магнитных дисках. Для операций, связанных с обменами данных, имеются команды, использующие обмен данных в режиме PIO или по каналу DMA. Режимы PIO и DMA, включая и Ultra DMA, программируются для устройств специальными командами.
Свое основное назначение устройства ATA реализуют с помощью команд чтения и записи данных, минимальной адресуемой единицей которых является 512-байтный сектор.
Команды чтения секторов позволяют считать последовательно расположенные секторы. Команды чтения имеют версии с повторами или без них. В первом случае, если при чтении сектора обнаружена неисправимая ошибка, устройство автоматически делает несколько повторных попыток чтения. Команда чтения в блочном режиме передачи отличается от обычного (с обменом PIO) тем, что запросы прерывания вырабатываются не на каждый сектор, а на блок секторов. Блочный режим за счет сокращения числа прерываний, которые должен обслужить процессор, в многозадачной системе позволяет повысить производительность дискового обмена даже на 30%. От размера блока зависит производительность обмена, но значение размера, оптимальное для устройства, может не совпадать со значением, оптимальным для операционной системы. В однозадачной системе существенного выигрыша от блочного режима не будет, поскольку прерывания могут и не использоваться. Команда "длинного" чтения считывает сектор данных вместе с контрольными байтами и также имеет версии с повторами и без. При ее вызове регистр SC должен указывать на запрос только одного сектора. Команда верификации с повторами и без в отличие от обычного чтения не передает данные от устройства. В случае обнаружения неисправимой ошибки на адрес сбойного сектора указывает содержимое блока командных регистров. Команды записи работают аналогично симметричным им командам чтения и также имеют версии с повторами или без. В команде записи с верификацией для каждого сектора после записи на носитель выполняется контрольное считывание. Для логической инициализации (или очистки области) дисков имеется команда повторяющейся записи, которая позволяет содержимое 512-байт, принятых от хоста, записать в группу секторов.
Команды чтения и записи буфера служат для обмена информации в режиме PIO с 512-байтной буферной памятью устройства (но не сектором носителя).
Команда форматирования трека по входным параметрам специфична для каждого устройства, и ее использование в целевой системе не рекомендуется. Многие устройства ее отвергают как недопустимую. Поскольку команда форматирования традиционно ориентирована на один трек, форматирование дисков ATA в режиме трансляции геометрии, при котором физическая организация не совпадает с логической, невозможно: команда, поданная с указанием логического трека (номера цилиндра и головки), будет претендовать на создание секторов, расположенных на нескольких треках или (и) не всех секторов одного трека. В накопителях с зонным форматом записи форматирование логического трека будет "накрывать" переменное число физических.
По команде поиска устройство устанавливает головки на заданный цилиндр, трек и считывает идентификатор сектора. Команда рекалибровки заставляет устройство найти нулевой цилиндр. Эту команду обычно применяют при обработке ошибок: часто после такого "встряхивания" ошибка не повторяется.
Для накопителей со сменными носителями в ATA-2 были предназначены команды загрузки и выгрузки, подтверждения смены носителя, блокировки и разблокировки дверец, их реализация специфична для каждой модели устройства. В ATA-4 набор этих команд сокращен, здесь может работать механизм уведомления о смене носителя Removable Media Status Notification.
Для запоминающих устройств на флэш-памяти в ATA-4 ввели специальную группу команд. Специфика этих устройств заключается в выполнении операции записи: флэш-память обеспечивает запись лишь в предварительно стертые ячейки (сектор), хотя есть устройства, автоматически осуществляющие стирание при записи. Операция записи устройством выполняется существенно медленнее, чем чтения, скорость которого приближается к скорости динамической памяти. Операция стирания занимает еще больше времени. Интерес представляет и информация о состоянии сектора: стертый или нет, сколько раз выполнялась запись (это число хоть и велико, ограничено).
В системе команд имеются средства идентификации и управления свойствами устройств. Команда идентификации позволяет считать из контроллера блок из 256 слов, характеризующих устройство ATA. Блок параметров может храниться как в энергонезависимой памяти устройства, так и на самом носителе в месте, недоступном для обычных обращений. Команда установки параметров задает режим трансляции логической геометрии в системе CHS. Если запрошенный режим трансляции устройство поддержать не может, то оно выдаст состояние с ошибкой "команда отвергнута" (прежняя спецификация ATA не четко описывала эту ситуацию, и некоторые системы не обнаруживали отказ при выполнении данной команды). После запроса неподдерживаемого режима трансляции устройство блокирует доступ к носителю информации до запроса поддерживаемого режима трансляции. Устройство обязано поддерживать режим, описанный в блок его параметров.

Команда установки свойств имеет ряд подкоманд, позвроляющих управлять режимом обмена, кэшированием, параметрами режимов энергосбережения и т.п.
Команда диагностики, в отличие от остальных всегда адресуясь к нулевому устройству, выполняется одновременно обоими. О ее результате устройство-1 сообщает не хост-контроллеру, а устройству-0. При этом состояние обоих устройств определяется по диагностическому коду, который потом считывается из регистра ошибок нулевого устройства. Такая завязка устройств имеет корни в прототипе интерфейса ATA - контроллере жестких дисков с двумя подключенными накопителями.
Средства управления энергопотреблением - Power Management не являются обязательными. С точки зрения потребления различают следующие состояния, перечисленные в порядке возрастания потребления: Sleep - "заснувшее" устройство потребляет минимум энергии, "разбудить" его может только сброс. Время "пробуждения" может доходить до 30 с. В состоянии Standby Mode (дежурный режим) устройство способно принимать команду по интерфейсу, но для доступа к носителю может потребоваться такое же большое время. И наконец, в активном режиме Active Mode устройство все запросы обслуживает за кратчайшее время. Устройства могут поддерживать и расширенное управление энергопотреблением APM (Advanced Power Management). При этом задается уровень APM Level, определяющий степень активности: 01h - минимальное потребление, FEh - максимальная производительность. Уровень выше 80h не позволяет устройству останавливать шпиндельный двигатель. APM управляется подкомандами Set Features. Устройства с пакетным интерфейсом для управления энергопотреблением могут использовать и команды пакетного протокола.
Начиная с ATA-3 в стандарт введена группа команд защиты - Security. Защищенное устройство по включению питания или аппаратному сбросу будет находиться в заблокированном состоянии, при котором любой доступ к информации носителя запрещается. Система защиты поддерживает два пароля - главный (Master Password) и пользовательский (User Password).
Разблокировать можно только специальной командой, в которой необходимо указать пароль пользователя. Если пароль утерян, то можно использовать главный пароль, но доступ к данным будет получен только если была выбрана высокая степень защиты (High). Если была выбрана максимальная степень защиты, то разблокировать устройство по главному паролю можно только командой защитного стирания всей информация с носителя. Для осложнения подбора пароля (его длина составляет 32 байт) служит счетчик неудачных попыток разблокировки, по срабатывании которого команды разблокировки будут отвергаться до выключения питания или аппаратного сброса.
Для предупреждения о надвигающихся предсказуемых отказах устройств служит технология S.M.A.R.T. (Self-Monitoring, Analysis and Reporting Technology - технология самонаблюдения, анализа и сообщения).Предсказуемые отказы (Predictable Failure) появляются в результате постепенного ухода каких-либо параметров (атрибутов) от номинальных значений, когда этот уход перейдет некоторый порог (treshold). Средства наблюдения за такими параметрами, как время разгона до заданной скорости, время позиционирования, процент ошибок позиционирования, высота полета головок, производительность (зависящей и от числа вынужденных повторов для успешного выполнения операций), количество использованных резервных секторов и другими могут быть встроены в устройство. Для непакетных устройств имеется команда Smart (пакетные используют для этих целей собственный протокол), подкоманды которой задаются через регистр свойств.
Команда загрузки микрокода позволяет модифицировать firmware - встроенное программное обеспечение устройства. В зависимости от кода в регистре свойств загруженный микрокод будет действовать временно, то есть до выключения питания, или постоянно. Эта команда, как и флэш-BIOS, является палкой о двух концах: возможность модификации кода может обернуться выводом из строя устройства загрузкой некорректного микрокода.

Режимы обмена данными

 

Программа общается с устройствами ATA через регистры, используя инструкции ввода/вывода IN и OUT. Для передачи данных, которую стремятся выполнять с максимальной скоростью, применяют программный доступ к регистру данных или обмен по каналу DMA. Тип обмена задается командой, причем если программный доступ обязателен для всех устройств, команды, дублирующие те же функции в режиме DMA, устройствами могут и не поддерживаться.
Программный доступ PIO (Programmed Input/Output) выполняется в виде следующих друг за другом операций чтения или записи в пространстве ввода/ вывода по адресу регистра данных. В отличие от программно-управляемого ввода/вывода, применяемого, например, для общения с LPT-портом, передача блока данных в режиме PIO производится без программного опроса какого-либо бита готовности для передачи каждого слова. Готовность устройства проверяется только перед началом передачи блока, после чего хост имеет право произвести серию операций в определенном темпе. Этот темп определяется выбранным режимом PIO Mode, для каждого из которых определены допустимые границы всех параметров временной диаграммы цикла обмена. Обмен PIO программно реализуется с помощью инструкций ввода/вывода строк REP INS или REP OUTS с занесенным в регистр CX количеством слов (или байт) в передаваемом блоке. Эти инструкции, появившиеся с процессором 80286, обеспечивают максимально возможную скорость обмена для данного процессора и системной шины.
Обмен по каналу DMA в отличие от PIO занимает только шины ввода/вывода и памяти. Процессору требуется выполнить только процедуру инициализации канала, после чего до прерывания от устройства, полученному в конце передачи блока, он свободен (этой свободой могут воспользоваться только многозадачные системы). Заметим, что стандартные каналы DMA шины ISA для интерфейса ATA практически не используются из-за низкой пропускной способности. Высокопроизводительные адаптеры ATA могут иметь собственные более эффективные контроллеры. Режимы обмена по каналу DMA могут быть одиночными и множественными. При множественном режиме (Multiword DMA) на сигнал запроса хост отвечает потоком циклов DMA. Если устройство не справляется с этим потоком, оно может приостановить поток, а по готовности к продолжению снова его установить. Множественный режим позволяет развивать более высокую скорость передачи.
Новейшее достижение в повышении скорости обмена - режимы Ultra DMA, позволяющие достигнуть скорости передачи по шине ATA 33 Мбайт/с и обеспечить контроль достоверности передач, чего не делалось ни в PIO, ни в стандартных режимах DMA (а зря!). Стандартом ATA-4 определено 3 режима Ultra DMA (0, 1 и 2), выбор режима осуществляется с помощью команды Set Features. В пакете данные на шине сопровождаются стробом, генерируемым источником данных, причем для синхронизации используются оба перепада сигналов. Это позволяет повысить пропускную способность шины, не увеличивая максимальною частоту переключений сигналов выше 8.33 с-1 (этот предел для обычного кабеля достигается в режиме PIO Mode 4 и Multiword DMA Mode 2). Каждое переданное слово участвует в подсчете CRC-кода, который передается в конце пакета. Подсчет ведется и источником данных, и приемником, а при несовпадении принятого и ожидаемого фиксируется ошибка передачи. Передача в пакете может приостанавливаться, если премник информации снимет сигнал готовности. Передача пакета может прекращаться как по инициативе устройства, так и по инициативе хоста.
Параметры стандартных режимов обмена PIO и DMA приведены в табл. 1.

 

Таблица 1. Параметры циклов обмена Режим   Минимальное время цикла, нс Скорость передачи, Мбайт/с
PIO mode 0   3,3
PIO mode 1   5,2
PIO mode 2   8,3
PIO mode 3   11,1
PIO mode 4   16,6
Single word DMA Modeя0   2,08
Single word DMA Modeя1   4,16
Single word DMA Modeя2   8,33
Multiword DMA Modeя0   4,12
Multiword DMA Modeя1   13,3
Multiword DMA Modeя2   16,6

 

Ultra DMA Modeя0 240* 16,6
Ultra DMA Modeя1 160*  
Ultra DMA Modeя2 120*  

* В пакете данных режима Ultra DMA за каждый такт передаются два слова данных, один по фронту синхронизирующего сигнала, другой по спаду.

Правильный выбор режима обмена обеспечит надежную работу и высокую производительность устройства. Все устройства обязаны поддерживать режим PIO Mode 0, в котором может быть считан блок параметров идентификации. В этом блоке имеются поля, описывающие режим обмена по умолчанию и, возможно, более эффективные режимы обмена, поддерживаемые данным устройством. Командой Set Features можно изменить параметры режима обмена. Случается, что реально накопитель не обеспечивает надежной передачи данных в заявленном высокоскоростном режиме обмена. При этом данные будут записываться или считываться с диска с ошибками, не выявляемыми никакими схемами контроля (почему-то считается, что передачу данных по шине контролировать не надо). Если при работе с накопителями возникает недоверие к сохранности данных, первым делом стоит понизить режим обмена данными.
BIOS обычно определяет режим обмена с каждым устройством индивидуально с учетом ограничений, заданных в Setup. Старые IDE-диски, не сообщающие своих параметров, могут не работать с разрешенными старшими режимами PIO. В принципе на одном шлейфе (канале ATA) могут присутствовать устройства, поддерживающие разные режимы обмена - спецификация ATA это допускает. Однако реально могут проявиться аппаратные или программные ограничения. Некоторые чипсеты системных плат, в которые входят и IDE-адаптеры, не позволяют программировать режим обмена индивидуально для каждого устройства, подключенного к каналу ATA. В таком случае при подключении двух устройств с разными возможностями (например, PIO Mode 1 и 3) с обоими устройствами обмен будет происходить со скоростью меньшего (в данном случае PIO Mode 1). Отсюда ясно, почему не рекомендуют к одному каналу ATA (или порту IDE, что одно и то же) подключать быстроходный винчестер и тихоходный CD-ROM (или старенький винчестер). Иногда завязка режимов обмена двух устройств канала (хорошо, если не двух каналов!) обусловлена ограниченным набором параметров конфигурации, хранимых BIOS. Быстродействующие режимы множественного обмена по DMA реализуются только драйверами операционной системы, так что гибкость управления ими определяется возможностями программного конфигурирования драйвера. "Глупый" драйвер может попытаться навязать такой режим обоим устройствам канала, так что смешивать разнородные устройства в одном канале не стоит и по этой причине.
Режим обмена PIO хорош только для однозадачных операционных систем, где вопрос утилизации процессора не актуален. Для многозадачных операционных систем больший интерес представляет обмен по DMA, но, конечно, если поддерживаемый режим обеспечивает приемлемую скорость обмена.

Адаптеры шины ATA и категории устройств IDE

 

Простейший адаптер ATA содержит только буферы сигналов шины и дешифратор зоны адресов. Все регистры контроллера и схемы кодирования размещены в самом устройстве IDE. Шина ATA требует выделения системных ресурсов - обязательно двух областей портов ввода/вывода и линии прерывания, и дополнительно может использоваться канал DMA. Поскольку интерфейс ATA пришел на смену традиционному контроллеру жесткого диска, ему и выделили ресурсы, ранее используемые данным контроллером. Так были определены ресурсы для первого канала, который чаще всего был и единственным. Второму каналу назначили ресурсы альтернативного контроллера жестких дисков, предусмотренного архитектурой AT. Позже назначили ресурсы и еще для двух каналов. Традиционному контроллеру жестких дисков выделялся канал DMA3, но он является 8-битным, в то время как шина ATA требует 16-битного канала DMA. Кроме того, производительности стандартных каналов DMA для шины ATA явно недостаточно. Поскольку обмен по DMA в ATA может с успехом заменяться программным доступом (PIO), простейшие адаптеры ATA, применяемые в мультикартах для шин ISA и VLB, часто канал прямого доступа и не предоставляли. Более сложные адаптеры ATA содержат собственный контроллер DMA. На современных системных платах с шиной PCI фактическим стандартом является установка двухканального адаптера, обычно занимающего ресурсы каналов 1 и 2. Этот адаптер обеспечивает шинам ATA 16-битные каналы DMA, поддерживающие высокоскоростные режимы обмена. Двухканальные контроллеры могут быть реализованы по-разному. В идеальном варианте они имеют шины, полностью изолированные друг от друга буферными и логическими схемами. В самом дешевом варианте они могут использовать общие буферы для линий данных и управляющих сигналов и отдельные только для некоторых сугубо индивидуальных сигналов. С точки зрения логики здесь все в порядке, но с точки зрения нагрузочной способности (влияния паразитных параметров) стоит уточнить ограничения для такой разделяемой шины: суммарная длина обоих шлейфов не должна превышать 46 см, а суммарная емкость каждой линией со всеми (возможно, четырьмя) устройствами не должна превышать 35 пФ. Если эти ограничения нарушаются, на высокоскоростных режимах обмена возможны проблемы, выражающиеся и в неконтролируемых искажениях передаваемых данных.
Поскольку скорость программного обмена, определяемая режимом PIO, задается хост-адаптером, интерес представляет возможность индивидуального программирования PIO Mode для каждого канала и каждого устройства. К сожалению, ряд чипсетов не имеет возможности такого индивидуального подхода, и при инициализации (во время POST) назначает общий режим - естественно, минимальный из поддерживаемых установленными устройствами. В результате подключение "тихоходного" устройства может замедлить и обмен "быстроходного" соседнего устройства. Заметить эту досадную завязку можно при внимательном анализе опций BIOS Setup, относящихся к дисковым каналам. Кстати сказать, в BIOS Setup вместо названия ATA чаще используют традиционную аббревиатуру IDE.
Адаптеры ATA часто размещают и на звуковых картах в качестве легкого средства подключения накопителей CD-ROM. По умолчанию им обычно назначают ресурсы каналов 3 или 4. В принципе к этим каналам можно подключать и винчестеры, но будет ли их там искать BIOS во время POST - вопрос. Современные версии BIOS позволяют хранить конфигурационные параметры четырех жестких дисков, более старые версии - двух. Четыре возможных канала ATA физически позволяют подключить до восьми накопителей, но возможность общения с ними может упереться в чисто программные ограничения.
Расширенные адаптеры могут иметь аппаратные средства поддержки высокоэффективных режимов передачи (PIO, DMA, Bus Master), буферные регистры записи и собственную кэш-память. Более сложные адаптеры могут аппаратно поддерживать зеркальные диски. Некоторые адаптеры позволяют даже соединять несколько физических дисков в один логический на уровне вызовов BIOS, однако в настоящее время актуальнее обратная задача.
Кроме "классических" адаптеров подключения устройств с интерфейсом ATA к шине компьютера AT, cуществуют и гибридные адаптеры для подключения ATA HDD к шинам XT и MCA или, например, к LPT-порту.
Интерфейс ATA позволяет подключать устройства различных категорий, отличающихся "уровнем интеллекта" встроенного контроллера. Первые дисковые накопители IDE представляли собой просто аналог пары диск-контроллер ST-506/412, выполненной в едином конструктиве. Эти устройства с современной точки зрения были примитивными, за что и были впоследствии причислены к категории неинтеллектуальных устройств со встроенным контроллером - Non-Intelligent IDE. Эти устройства не выполняли трансляцию нумерации секторов - их логические параметры всегда совпадали с физическими. Команды идентификации устройства и установки параметров ими не выполнялись. Дефектные блоки, отмеченные в заводском списке и появляющиеся в процессе эксплуатации, были видны пользователю. Низкоуровневое форматирование этими устройствами выполнялось непосредственно по команде, так что неудачное форматирование могло понизить производительность из-за нарушения оптимальных установок чередования и смещения.
На следующей ступени роста интеллекта стоят устройства категории Intelligent ATA IDE. Их отличительной чертой является способность выполнять расширенные ATA-команды - идентификации устройства и установки параметров. Они поддерживают возможность трансляции физических параметров в логические (или наоборот - это как посмотреть). Дефектные секторы они могут и прятать от пользователя (до исчерпания резерва). Низкоуровневое форматирование возможно только при установке логической геометрии, совпадающей с физической. Однако это форматирование опять-таки может "снести" заводские установки факторов оптимизации. Для повышения производительности обмена эти устройства могут поддерживать блочные режимы передачи Read Multiple и Write Multiple и высокоскоростные режимы обмена PIO и DMA.
К следующей категории относятся устройства с зонным форматом записи - Intelligent Zoned Recording IDE. Поскольку они имеют различное количество секторов на разных треках (для повышения плотности хранения), режим трансляции геометрии является для них обязательным (спецификация ATA не предусматривает возможности сообщения устройством способа разбиения на зоны и формата каждой зоны, так что обращаться к ним можно только по логическому трехмерному (CHS) или линейному (LBA) адресу).
Здесь были перечислены категории устройств по их отношению к физической и логической адресации секторов. Устройства IDE отличаются также и по другим признакам, определяемым интеллектуальностью контроллера: это и автоматический мониторинг внутренних параметров (например, SMART), и температурная коррекция системы позиционирования, и поддержка управления энергопотреблением, и различные усовершенствования, направленные на повышение производительности.

Конфигурирование устройств ATA

 

Устройства ATA перед подключением к шине должны быть корректно сконфигурированы. Конфигурирование подразумевает выбор типа интерфейса и определение адреса устройства на шине. С выбором типа интерфейса сталкиваются редко, поскольку 8-битная шина XT практически сошла со сцены, да и устройства IDE в машинах XT широко не применялись. Тип интерфейса - XT или AT - определяется моделью накопителя. В изделиях фирмы Seagate тип обозначается последней буквой в шифре модели: A - ATA (16 бит,) X - для XT (8 бит), а сочетание AX означает возможность выбора AT/XT с помощью соответствующего джампера. Естественно, что устройство будет работать с адаптером, только если тип их интерфейса совпадает.
Способов задания адреса устройства на канале шины ATA существует два - с помощью кабельной выборки или явным заданием адреса на каждом из устройств. Режим кабельной выборки включается перемычкой CS (Cable Select - кабельная выборка). В этом случае оба устройства на шине конфигурируются одинаково - в режим CS, а адрес устройства определяется его положением на специальном кабеле-шлейфе. Кабельная выборка будет работать, если ее применение поддерживается и задано на всех устройствах данного канала шины, включая и хост-адаптер, который обеспечивает заземление контакта 28. При этом способе адресации исключается возможность синхронизации шпинделей накопителей (она актуальна в RAID-массивах) через тот же провод контакта 28. Кабельная выборка применяется редко. Ее условное преимущество - унификация конфигурирования устройств, а недостаток - привязка физического положения устройств к кабелю - устройство-0 должно быть ближе к адаптеру, чем устройство-1. Возможно и подключение адаптера к среднему разъему, а устройств - к крайним, но это тоже не всегда удобно.
Более распространен режим явной адресации, при котором используется обычный "прямой" кабель. В этом случае перемычка CS не устанавливается, а адрес каждого устройства задается перемычками, состав которых у разных моделей варьируется. В принципе достаточно лишь указать устройству на его номер (0/1) или роль (Master/Slave), но в устройствах, разработанных до принятия стандарта ATA, ведущему (Master) устройству еще "подсказывали" о наличии ведомого, что по интерфейсу ATA оно могло бы определить и само по сигналу DASP#. Таким образом, на устройствах IDE можно увидеть следующие джамперы:
M/S (Master/Slave) - переключатель адреса (устройство-0 - Master, устройство-1 - Slave). Если на шине присутствует лишь одно устройство, оно должно быть сконфигурировано как нулевое. Если на шине два устройства - одно должно быть нулевым, другое - первым. Иногда джампер с тем же назначением обозначается как "C/D" (диск C:/диск D:), но для второго канала IDE такое название уже некорректно. Когда появились первые IDE-диски емкостью около 1 Гбайт, в качестве решения проблемы преодоления 504-Мбайт барьера некоторые модели допускали их конфигурирование в виде двух устройств (Master и Slave) половинной емкости для обеспечения совместимости со старыми версиями BIOS. При этом на их IDE-шлейф второе физическое устройство подключать уже нельзя.
SP (Slave Present), DSP (Drive Slave Present), "Master but Slave is not ATA-compatible", "Master but Slave uses only PDIAG-signal" - устанавливается на устройстве-0 (Master) для указания на присутствие устройства-2 (Slave). Если этот переключатель установлен, а устройство-1 не подключено, POST даст сообщение об ошибке.
ACT (Drive Active) - устанавливается на Master (встречается редко).
Для полностью ATA-совместимых дисков (например, новые модели Seagate) перемычка ставится только на Slave, а его присутствие Master определит автоматически (джамперы SP, DSP... не требуются и отсутствуют).
Разобраться с джамперами старых устройств бывает довольно трудно, если нет соответствующей документации. У современных устройств лишние джамперы упразднили, а назначение существующих обычно приводится на наклейке-шильдике, так что задача упрощается дважды.
При конфигурировании устройств следует учитывать, что перестановка джамперов воспринимается устройством зачастую даже не по аппаратному сбросу (кнопке RESET), а только по включении питания. Незнание этого факта при отсутствии информации о назначении джамперов делает задачу подбора их положения на паре устройств практически неразрешимой. Кроме того, следует учитывать, что при установке на один шлейф двух разнотипных не-ATA устройств возможны неразрешимые проблемы.

 

Пакетный интерфейс ATAPI

 

Для подключения к интерфейсу ATA накопителей CD-ROM, стриммеров и ряда других устройств набора регистров и системы команд ATA, явно ориентированных на дисковые устройства оказывается недостаточно. Для них существует аппаратно-программный интерфейс ATAPI (ATA Package Interface - пакетный интерфейс ATA). Устройство ATAPI поддерживает минимальный набор команд ATA, который неограниченно расширяется 16-байтным командным пакетом, посылаемым хост-контроллером в регистр данных устройства по команде Packet. Структура командного пакета пришла от SCSI, что обеспечивает схожесть драйверов для одних и тех же устройств, имеющих интерфейсы SCSI и ATAPI. Классификация устройств совпадает с принятой в SCSI, класс устройства сообщается им в начале блока параметров идентификации.
Интерфейс ATAPI может использоваться с любыми неинтеллектуальными адаптерами ATA, поскольку для хост-адаптера поддержка ATAPI может выполняться чисто программно. Сложные контроллеры интерфейса ATA, имеющие кэш-память и собственный процессор, не ориентированные на интерфейс ATAPI, могут и не догадаться, что в регистр данных устройства кроме 512-байтных блоков данных можно записывать и 16-байтный блок с командным пакетом. Устройства ATAPI имеют ряд особенностей, отличающих их от ATA-устройств:

Команду идентификации Identify Device они должны отвергать, чтобы хост не пытался к ним обратиться как к ATA-устройствам. Для идентификации устройств ATAPI предназначена специальная команда Identify Packet Device, а блок параметров, сообщаемых устройством, трактуется иначе.

Для программного сброса устройства ATAPI предназначена команда Device Reset, которую устройства ATA отвергают. Программный сброс через регистр управления не прекращает выполнение команды Packet.

Специфические команды вместе с необходимыми параметрами передаются по команде Packet, код которой является недействительным для устройств ATA.

При подаче команды Packet регистр свойств содержит признаки команды - использование для обмена данными канала DMA, возможность перекрывающегося выполнения.
Структура командного пакета позаимствована из SCSI. При любой длине блока дескрипторов, определяемой кодом команды (нулевой байт пакета), передаваемый пакет имеет длину 16 байт, но используется только требуемое количество байт, начиная с нулевого. Систему команд и структуры пакетов стандарт ATA/ATAPI-4 не описывает, но для каждого класса устройств существует свой стандартный набор команд с определенными структурами пакетов.

Средства обеспечения многозадачности
(ATA-4 против SCSI)

 

Главным недостатком интерфейса ATA при применении в многозадачных системах является то, что когда одно устройство на шине исполняет команду, другое устройство использоваться не может. В этом интерфейс ATA существенно уступает SCSI, где устройства на время выполнения длительной внутренней операции может освобождать шину, и, кроме того, имеется эфективный механизм организации очередей процессов ввода/вывода. Спецификация ATA-4 определяет возможности параллельного выполнения команд обоими устройствами и создания очередей. Возможность перекрытия команд - Overlaped Feature - позволяет устройству, занятому длительной внутренней операцией освободить шину для того, чтобы ее было можно использовать для обмена с другим устройством шины. Принятый механизм продолжения менее эффективен, чем в SCSI - он требует привлечения ресурсов хоста для обнаружения готовности устройства. Перекрытие допускается только для нескольких новых команд интерфейса ATA-4.
Устройства могут поддерживать очереди команд, но только для команд, допускающих перекрытие (эти свойства тесно связаны). Если при наличии команд в очереди устройство получает команду, не входящую в этот список, команда отвергается (с соответствующим битом в регистре ошибок) и очередь сбрасывается. Глубина очереди, поддерживаемой устойством, сообщается в блоке параметров идентификации. По возникновении любой ошибке вся очередь сбрасывается. Следующая команда в очередь может посылаться лишь при освобожденной шине, перед ее посылкой хост должен запретить прерывания, а разрешить их может только после посылки новой команды. Если для выполнения новой команды у устройства нет намерения освободить шину, то эта команда будет выполнена немедленно, а находящиеся в очереди команды, освободившие шину, будут выполнены позже. Очереди SCSI-2 более эффективны как по набору команд (здесь в очередь ставятся процессы, которые могут представлять собой и цепочки команд), так и по гибкости управления. SCSI обеспечивает независимость исполнения одних команд очереди от результатов выполнения других (это облегчает жизнь многозадачных систем), чего не скажешь про ATA.
ПОСЛЕДОВАТЕЛЬНЫЙ ИНТЕРФЕЙС SERIAL ATA

 

 




Поделиться с друзьями:


Дата добавления: 2014-01-05; Просмотров: 1898; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.062 сек.