Последний уровень раздела предыдущего изложения   Текущий уровень изложения предыдущего раздела   Текущий уровень изложения следующего раздела   Первый уровень изложения следующего раздела   Уровень:


Интерфейс IDE (современные реализации)

Что бы ни говорили сторонники SCSI, широкое распространение IDE-устройств на сегодняшний день - свершившийся факт. Как посчитали умные люди из компании Quantum, свыше 90% РС-совместимых персональных компьютеров оснащены жесткими дисками с интерфейсом IDE. Беда, однако, в том, что IDE или Integrated Device Electronic - понятие слишком общее и относится, вообще говоря, к любому устройству с интегрированным контроллером вплоть до электрического чайника с автоматическим отключением при закипании. В попытках как-то конкретизировать, какой именно интерфейс имеется в виду, было изобретено столько различных названий, что при выборе жесткого диска с интерфейсом IDE у неподготовленного человека может закружиться голова. Посудите сами: есть интерфейсы АТА с различными номерами, Fast ATA (тоже с номерами), Ultra ATA (тоже несколько), и, наконец, EIDE! Действительно ли все эти интерфейсы разные, какие из них совместимы и какой лучше? Попробуем разобраться.

Для начала немного истории. После того, как компания IBM выпустила модель АТ (Advanced Technology), в 1984 году у компаний Compaq и Western Digital возникла идея встроить AT-совместимый контроллер, использующий 16-разрядную шину ISA, непосредственно в электронику жесткого диска. Сказано - сделано. Получилось удачно: цена жесткого диска увеличилась несущественно, зато стоимость всей дисковой подсистемы заметно снизилась. Так и родился на свет интерфейс ATA (AT Attachment - в дословном переводе - "прикрепление к АТ"), который стал широко известен под названием IDE. Так как шина ISA в модели АТ была 16-битной, интерфейс, естественно, получился тоже 16-битным, причем эта разрядность сохранилась до настоящего времени, невзирая на последующие улучшения и добавления. В скором времени, однако, выяснилось, что разные производители умудрялись делать несовместимые между собой диски с интерфейсом ATA. Если такие диски устанавливались в паре master/slave на один канал IDE, то дисковая подсистема просто не работала. Для устранения этих неприятных явлений был принят стандарт ANSI спецификации АТА. "Оригинальный" интерфейс АТА имел следующие возможности:

"Оригинальный" интерфейс АТА предназначен только для подключения жестких дисков и не поддерживает такие возможности, как ATAPI - интерфейс для подключения IDE-устройств, отличных от жестких дисков, режим передачи block mode и LBA (logical block addressing).

В скором времени стандарт АТА перестал удовлетворять возросшим потребностям, поскольку вновь выпускаемые жесткие диски требовали большей скорости передачи данных и наличия новых возможностей. Так родился на свет интерфейс АТА-2, который вскоре был также стандартизирован ANSI. Сохраняя обратную совместимость со стандартом ATA, ATA-2 содержал несколько новых возможностей:

И все было бы хорошо, но фирмы-производители в стремлении заполучить еще кусочек рынка начали придумывать красивые названия и обзывать ими интерфейсы своих жестких дисков. На самом деле интерфейсы Fast ATA, Fast ATA-2 и Enhanced IDE базируются на стандарте АТА-2 и являются не более, чем маркетинговыми терминами. Все различие между ними состоит в том, какую часть стандарта и как они поддерживают.

Наибольшую путаницу вызывают названия Fast ATA и Fast ATA-2, принадлежащие перу соответственно Seagate и Quantum. Создается вполне естественное впечатление, что Fast ATA является некоторым улучшением стандарта АТА, тогда как Fast ATA-2 базируется на стандарте АТА-2. Но все, увы, не так просто. На самом деле Fast ATA-2 есть просто другое название стандарта АТА-2, а Fast ATA отличается от него лишь тем, что не поддерживает самые быстрые режимы - PIO mode 4 и DMA mode 2.

При этом обе компании нападают на компанию Western Digital и ее стандарт EIDE за то, что он вносит еще большую путаницу. У EIDE есть свои недостатки, но об этом чуть позже.

Попыткой дальнейшего развития интерфейса АТА был проект стандарта АТА-3, в котором основное внимание уделялось повышению надежности:

АТА-3 не был утвержден в качестве стандарта ANSI в основном потому, что не вводил новых режимов передачи данных, хотя технология SMART в настоящее время широко используется производителями жестких дисков.

Следующим шагом в развитии интерфейса IDE/ATA явился стандарт Ultra ATA (он же Ultra DMA, он же ATA-33, он же DMA-33, его же иногда называют АТА-3(!)). Ultra ATA является стандартом де-факто использования самого быстрого режима DMA - mode 3, обеспечивающего скорость передачи данных 33.3 МВ/сек. Для обеспечения надежной передачи данных по все тому же кабелю используются специальные схемы контроля и коррекции ошибок, при этом сохраняется обратная совместимость с предыдущими стандартами - АТА и АТА-2. То есть если вы, купив жесткий диск с интерфейсом Ultra АТА, вдруг обнаружили, что ваша системная плата его не поддерживает, не огорчайтесь - диск все равно будет работать, хотя и медленнее.

И, наконец, последнее достижение в этой области - интерфейс Ultra ATA/66, разработанный компанией Quantum, позволяющий осуществлять передачу данных со скоростью 66МВ/сек.

В то время, когда разрабатывался интерфейс IDE/ATA, единственным устройством, которое нуждалось в этом интерфейсе, был жесткий диск, поскольку стриммеры и зарождающиеся драйвы CD-ROM имели собственный интерфейс (многие помнят времена, когда CD-ROM подключался через интерфейс на звуковой карте). Однако вскоре стало ясно, что использование для подключения всех устройств быстрого и относительно простого интерфейса IDE/ATA сулит значительные выгоды, в том числе и за счет своей универсальности. Однако система команд интерфейса IDE/ATA была рассчитана только на жесткие диски, поэтому просто подключить, например, CD-ROM к IDE-каналу нельзя - работать не будет. Пришлось разработать новый протокол - ATA Packet Interface или ATAPI. Этот протокол позволяет другим устройствам подключаться с помощью стандартного шлейфа IDE и "вести себя" как IDE/ATA жесткий диск. На самом деле протокол ATAPI намного сложнее, чем ATA, поскольку передача данных идет с использованием стандартных режимов PIO и DMA, а реализация поддержки этих режимов существенно зависит от типа подключенного устройства. Название packet (пакетный) этот протокол получил по той причине, что команды устройству действительно приходится передавать группами или пакетами. Тем не менее, с точки зрения пользователя, что, согласитесь, важнее всего, нет разницы между IDE/ATA жестким диском, ATAPI CD-ROMом или ZIP-драйвом. Современные BIOSы даже поддерживают загрузку с ATAPI-устройств.

Теперь, как и было обещано, поговорим немного о EIDE. Этот термин, введенный компанией Western Digital, достаточно широко употребляется в компьютерной индустрии и почти так же широко критикуется, причем справедливо. Одной из причин для критики является тот факт, что EIDE не является стандартом, а лишь маркетинговым термином, причем его содержание меняется с течением времени. Так, изначально EIDE включал поддержку режимов PIO до mode 3, потом была добавлена поддержка mode 4. Еще одним существенным недостатком EIDE как стандарта является тот факт, что его спецификация включает в себя совершенно разноплановые вещи. Судите сами, EIDE на данный момент включает в себя:

Теперь посмотрим, что означает фраза "жесткий диск с интерфейсом EIDE". Поскольку поддерживать ATAPI ему абсолютно незачем, а два канала IDE он поддержать не в состоянии, то все это сводится к гораздо более скромному: "жесткий диск с интерфейсом АТА-2". В принципе идея была хорошая - создать стандарт, охватывающий BIOS, чипсет и жесткий диск. Но поскольку большая часть EIDE как стандарта относится именно к BIOS и чипсету, то получилась еще и путаница между Enhanced IDE и возникшим приблизительно в это же время Enhanced BIOS (BIOS, поддерживающий IDE/ATA диски емкостью больше 504MB). Сложилось вполне естественное мнение, что для использования дисков объемом больше 504МВ нужен интерфейс EIDE (тогда как на самом деле нужен был только Enhanced BIOS), тем более, что производители карт с Enhanced BIOS рекламировали их как "enhanced IDE cards". Сейчас, к счастью, эти проблемы позади (как и барьер 540МВ).

Итак, основные (как официальные, так и неофициальные) стандарты интерфейса IDE приведены в следующей таблице.

Интерфейс Стандарт PIO modes DMA modes Отличия от IDE/ATA
IDE/ATA ANSI 0, 1, 2 Single word 0, 1, 2; multiword 0  
ATA-2 ANSI 0, 1, 2, 3, 4 Single word 0, 1, 2; multiword 0, 1, 2 Режим block transfer, поддержка LBA, Усовершенствованная команда identify drive
Fast ATA Маркетинговый термин 0, 1, 2, 3 Single word 0, 1, 2; multiword 0, 1 Аналогично АТА-2
Fast ATA-2 Маркетинговый термин 0, 1, 2, 3, 4 Single word 0, 1, 2; multiword 0, 1, 2 Аналогично АТА-2
ATA-3 Неофициальный 0, 1, 2, 3, 4 Single word 0, 1, 2; multiword 0, 1, 2 Аналогично АТА-2, добавлена поддержка надежности передачи на высоких скоростях и SMART
Ultra ATA Неофициальный 0, 1, 2, 3, 4 Single word 0, 1, 2; multiword 0, 1, 2, 3 (DMA-33/66) Аналогично АТА-3
ATAPI ANSI 0, 1, 2, 3, 4 Single word 0, 1, 2; multiword 0, 1, 2 Аналогично АТА-2, добавлена поддержка устройств, отличных от жестких дисков
EIDE Маркетинговый термин 0, 1, 2, 3, 4 Single word 0, 1, 2; multiword 0, 1, 2 ATA-2 + ATAPI и поддержка двух хост-адаптеров

Теперь перейдем к теме, не менее интересной. Существуют два параметра, характеризующих скорость передачи данных при использовании IDE/ATA-жесткого диска. Внутренняя скорость передачи (internal transfer rate) характеризует скорость передачи непосредственно между магнитным носителем и внутренним буфером жесткого диска и определяется плотностью записи, скоростью вращения и т.д. Эти параметры зависят от конструкции диска, а не от типа интерфейса. С другой стороны, внешняя скорость передачи данных, то есть скорость передачи по каналу IDE, полностью зависит от используемого режима передачи данных. На заре использования дисков IDE/ATA скорость работы дисковой подсистемы определялась внутренней скоростью передачи данных, которая была заведомо меньше внешней. В настоящее время в связи с увеличением плотности записи (что позволяет снимать больше информации за один оборот диска) и частоты вращения на первый план выходит именно внешняя скорость передачи. Что же все-таки означают номера режимов и чем PIO отличается от DMA?

Изначально общеупотребительным способом передачи данных через интерфейс IDE/ATA был протокол, называемый Programmed I/O или PIO. Существует пять режимов PIO, различающихся максимальными скоростями пакетной передачи данных (burst transfer rates). Общеупотребительное английское название - PIO modes.

PIO mode Максимальная скорость передачи (МВ/сек) Поддерживается стандартами
0 3.3 Всеми
1 5.2 Всеми
2 8.3 Всеми
3 11.1 ATA-2, Fast ATA, Fast ATA-2, ATA-3, ATAPI, Ultra ATA, EIDE
4 16.6 ATA-2, Fast ATA-2, ATA-3, ATAPI?, Ultra ATA, EIDE

Естественно, речь идет о внешней скорости передачи данных и определяет скорость интерфейса, а не диска. Необходимо также учитывать (хотя сейчас это уже вряд ли актуально), что PIO mode 3 и 4 требуют использования шины VLB или PCI, так как шина ISA не может обеспечить скорость передачи данных больше 10 МВ/сек. До появления режима DMA-33 максимальная скорость передачи данных у режимов PIO и DMA была одинаковой. Главным недостатком режимов PIO является то, что передачей данных управляет процессор, что существенно увеличивает его загрузку. Зато эти режимы не требуют специальных драйверов и идеально подходят для однозадачных операционных систем. Похоже, однако, что это вымирающий вид?

Direct Memory Access (DMA) - прямой доступ к памяти - собирательное название протоколов, позволяющих периферийному устройству передавать информацию непосредственно в системную память без участия центрального процессора. Современные жесткие диски используют эту возможность в сочетании с возможностью перехватывать управление шиной и самостоятельно управлять передачей информации (bus mastering подробно обсуждался в серии статей по шинам). Существует несколько режимов DMA (DMA modes), которые приведены в таблице. Стоит отметить, что так называемые single word режимы в настоящее время не используются и приведены только для сравнения.

DMA mode Максимальная скорость передачи (МВ/сек) Поддерживается стандартами
Single word 0 2.1 Всеми
Single word 1 4.2 Всеми
Single word 2 8.3 Всеми
Multiword 0 4.2 Всеми
Multiword 1 13.3 ATA-2, Fast ATA, Fast ATA-2, ATA-3, Ultra ATA, EIDE
Multiword 2 16.6 ATA-2, Fast ATA-2, ATA-3, Ultra ATA, EIDE
Multiword 3 (DMA-33) 33.3 (66) Ultra ATA(АТА/66)

Еще одной забавной вещью, связанной с интерфейсом IDE/ATA, является 32-разрядный доступ к диску. Как уже отмечалось выше, интерфейс IDE/ATA был и остается 16-битным. Резонный вопрос: А почему тогда при отключении драйверов 32-разрядного доступа к диску в Windows скорость работы оного диска падает? Не менее резонный ответ: Во-первых, как работает Windows - отдельный разговор. А во-вторых, шина PCI, на которой в настоящий момент располагаются IDE host-контроллеры, 32-разрядная. Поэтому 16-битная передача по этой шине есть зряшнее расходование пропускной способности. В нормальных условиях host-контроллер формирует из двух 16-битных пакетов один 32-битный и пересылает его дальше по шине PCI (повторяю, я не берусь объяснять, как с диском работает Windows).

Выше встречался термин - режим block transfer. На самом деле это всего-навсего режим, позволяющий передавать несколько команд чтения/записи за одно прерывание. Современные IDE/ATA диски позволяют передавать 16->32 сектора за "одно прерывание". Поскольку прерывания генерируются реже, снижается загрузка процессора и уменьшается доля команд в общем объеме передаваемых данных.

К каждому каналу IDE может быть подключено одно или два устройства. В современных компьютерах, как правило, устанавливается два канала IDE (что соответствует спецификации EIDE), хотя теоретически возможно установить до 4-х (!), что позволяет подключать 8 IDE устройств. Все каналы IDE являются равноправными. Использование системных ресурсов каналами приведено в таблице.

Канал IRQ I/O Addresses Поддержка и возможные проблемы при использовании
Primary 14 1F0-1F7h и 3F6-3F7h Используется во всех компьютерах с интерфейсом IDE/ATA
Secondary 15 (10) 170-177h и 376-377h Широко распространен, присутствует практически во всех современных компьютерах.
Tertiary 11(12) 1E8-1Efh и 3EE-3Efh Используется редко. Возможны проблемы с софтом
Quaternary 10(11) 168-16Fh и 36E-36Fh Крайне редко используется. Весьма вероятны проблемы с софтом

Ресурсы, используемые 3-м и 4-м каналами , могут конфликтовать с другими устройствами (так, IRQ 12 используется мышью PS/2, IRQ 10 - обычно занят сетевой картой).

Как было сказано выше, каждый канал IDE/AТА интерфейса поддерживает подключение двух устройств - master и slave. Конфигурация обычно задается перемычкой на задней стенке устройства. Кроме этих двух позиций там обычно присутствует и третья - cable select. Что же будет, если установить перемычку в это положение? Оказывается, для работы устройств в положении перемычки cable select требуется специальный Y-образный шлейф, центральный разъем которого подключается к системной плате. Крайние разъемы такого кабеля неравноправны - устройство, подключенное к одному разъему, автоматически становится master, к другому - slave (аналогично флопам А и В). При этом перемычки на обоих устройствах должны стоять в положении cable select. Основная проблема такой конфигурации в том, что она экзотична, хотя и является стандартной, и не всеми поддерживается, поэтому и Y-образный шлейф найти достаточно трудно (я, например, его не видел, да и вообще не совсем понятно, зачем это нужно).

Если не принимать во внимание эту экзотику, при конфигурировании IDE/ATA устройств необходимо помнить следующее: