Что бы ни говорили сторонники 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 спецификации АТА. «Оригинальный» интерфейс АТА имел следующие возможности:
- Поддержка двух жестких дисков. Один канал делится между двумя устройствами, сконфигурированными как master и slave;
- PIO Modes. ATA включает поддержку PIO modes 0,1 и 2;
- DMA Modes. ATA включает поддержку single word DMA modes 0, 1 и 2 и multiword DMA mode 0.
«Оригинальный» интерфейс АТА предназначен только для подключения жестких дисков и не поддерживает такие возможности, как ATAPI — интерфейс для подключения IDE-устройств, отличных от жестких дисков, режим передачи block mode и LBA (logical block addressing).
В скором времени стандарт АТА перестал удовлетворять возросшим потребностям, поскольку вновь выпускаемые жесткие диски требовали большей скорости передачи данных и наличия новых возможностей. Так родился на свет интерфейс АТА-2, который вскоре был также стандартизирован ANSI. Сохраняя обратную совместимость со стандартом ATA, ATA-2 содержал несколько новых возможностей:
- Более скоростные PIO Modes. В АТА-2 добавлена поддержка PIO modes 3 и 4;
- Более скоростные DMA Modes. АТА-2 поддерживает multiword DMA modes 1 и 2;
- Block Transfer. ATA-2 включает команды, позволяющие осуществлять обмен в режиме block transfer для повышения производительности;
- Logical Block Addressing (LBA). АТА-2 требует поддержки жестким диском протокола передачи LBA. Разумеется, для использования этого протокола необходимо, чтобы его поддерживал также и BIOS;
- Усовершенствованная команда Identify Drive. Увеличен объем информации о характеристиках, которую жесткий диск выдает по системным запросам.
И все было бы хорошо, но фирмы-производители в стремлении заполучить еще кусочек рынка начали придумывать красивые названия и обзывать ими интерфейсы своих жестких дисков. На самом деле интерфейсы 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, в котором основное внимание уделялось повышению надежности:
- AТА-3 содержит средства, повышающие надежность передачи данных с использованием высокоскоростных режимов, что действительно является проблемой, поскольку кабель IDE/ATA остался тем же, что и при рождении стандарта;
- АТА-3 включает Self-Monitoring Analysis and Reporting Technology (SMART).
АТА-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-каналу нельзя — работать не будет (проверялось мною лично при попытке подключить CD-ROM вместо загрузочного IDE-диска на 486 сервере Hewlett-Packard). Поначалу, по молодости лет пребывал в недоумении: как так — шлейф подходит, а не работает?). Пришлось разработать новый протокол — 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 на данный момент включает в себя:
- ATA-2. Целиком, включая самые быстрые режимы;
- ATAPI. Целиком;
- Dual IDE/ATA Host Adapters. Стандарт EIDE включает поддержку двух IDE/ATA хостов, что позволяет использовать одновременно до 4 IDE/ATA/ATAPI устройств.
Теперь посмотрим, что означает фраза «жесткий диск с интерфейсом 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 устройств необходимо помнить следующее:
- Каждый канал в каждый момент времени может обрабатывать только один запрос к одному устройству. Следующий запрос, пусть даже к другому устройству, будет ожидать завершения текущего. Разные каналы при этом могут работать независимо. Поэтому не стоит подключать два активно используемых устройства (например, два жестких диска), к одному каналу. В идеале каждое IDE-устройство стоит подключать к отдельному каналу (в этом, пожалуй, заключается основное преимущество SCSI).
- Практически все современные чипсеты поддерживают возможность использования различных режимов передачи данных для устройств, подключенных к одному каналу. Однако злоупотреблять этим все-таки не стоит. Два устройства, существенно различающихся по скорости, лучше все-таки разнести по разным каналам.
- Не рекомендуется подключать к одному каналу жесткий диск и ATAPI-устройство (например, CD-ROM). Как было сказано выше, протокол ATAPI использует другую систему команд, и, кроме того, даже самые быстрые ATAPI-устройства много медленнее жесткого диска, что может замедлить работу последнего.
Все вышесказанное, естественно, не является аксиомой, а лишь рекомендациями, основанными на здравом смысле и собственном опыте. Более того, тот же здравый смысл и опыт подсказывают, что если взять 4 IDE-устройства, то они на исправной плате будут работать всегда в любых сочетаниях и при минимуме усилий со стороны пользователя (см. выше, главное, чтобы они попарно были совместимы). И это одно из главных преимуществ IDE перед SCSI.