Интерфейс IDE
Несмотря на все аргументы сторонников SCSI, широкое распространение устройств IDE необходимо признать свершившимся фактом. Согласно расчетам умных людей из компании Quantum, более 90% РС-совместимых ПК сегодня оснащены HDD с интерфейсом IDE. Проблема лишь в том, что IDE (полное название - Integrated Device Electronic) - слишком общее понятие, относящееся, собственно, к любому устройству, оснащенному интегрированным контроллером, начиная от электрического чайника с ”умным” отключением при закипании. Попытки хоть как-то конкретизировать, какой все же интерфейс имеется в виду, привели к тому, что было придумано столько разнообразных названий, что при выборе HDD с интерфейсом IDE неподготовленный человек просто потеряется в этом многообразии. Смотрите сами, существуют интерфейсы АТА с разными номерами, FastATA (также с номерами), UltraATA (несколько версий), и, конечно, EIDE! На самом ли деле эти интерфейсы различны, какие из них между собой совместимы, и какой из них лучший? Постараемся разобраться.
Начнем с краткого исторического экскурса. После того, как IBM была выпущена модель АТ (сокр. от Advanced Technology) в 1984 г., у компаний Western Digital и Compaq появилась идея встроить AT-совместимый контроллер, который использует ISA 16-разрядную шину, непосредственно в электронику HDD. Идея была реализована. Получилось неплохо: цена HDD несущественно увеличилась, однако полная стоимость дисковой подсистемы значительно снизилась. Таким образом появился на свет интерфейс ATA (ATAttachment, дословно - "прикрепление к АТ"), ставший широко известным под названием IDE. Так как ISA шина в модели АТ являлась 16-битной, интерфейс, разумеется, получился также 16-битным, причем разрядность эта сохранилась до сегодняшнего дня, несмотря на последующие добавления и улучшения. В дальнейшем выяснилось, что различные производители умудрились выпускать несовместимые между собой HDD с ATA интерфейсом. Если эти накопители устанавливались в т.н. паре master-slave на один IDE канал, вся дисковая подсистема попросту не работала. Чтобы устранить эти неприятные явления был принят ANSI стандарт спецификации АТА. В "оригинальном" интерфейсе АТА имелись следующие возможности:
- Поддержка 2-х HDD. Один канал разделяется между 2-мя устройствами, которые сконфигурированы как master и slave;
- Поддержка PIO Modes. В ATA включена поддержка PIOmodes 0,1 и 2;
- Поддержка DMA Modes. В ATA включена поддержка singleword DMAmodes 0, 1 и 2, а также multiword DMAmode 0.
Предназначается "оригинальный" интерфейс АТА исключительно для подключения HDD, в нем не поддерживаются такие возможности, как интерфейс ATAPI для подключения устройств IDE, которые отличны от HDD, т.е. режим передачи blockmode или LBA (сокр. от logical block addressing).
Спустя некоторое время стандарт АТА перестал соответствовать возрастающим потребностям, т.к. вновь выпускаемые HDD требовали значительно большей скорости трансфера данных, а также наличия новых возможностей. Таким образом появился на свет АТА-2 интерфейс, вскоре также стандартизированный ANSI. При сохранении взаимосовместимости со стандартом ATA, в ATA-2 появилось несколько дополнительных возможностей:
- Более быстрые PIO Modes. Добавлена поддержка PIOmodes 3 и 4;
- Более быстрые DMA Modes. Поддерживается multiword DMAmodes1 и 2;
- Block Transfer. Были включены команды, которые позволяют осуществлять трансфер в режиме blocktransfer, с целью повышения производительности;
- Logical Block Addressing (сокр. LBA). В АТА-2 требуется поддержка HDD протокола передачи LBA. Само собой, чтобы использовать этот протокол, нужно, чтобы он поддерживался также BIOS;
- Усовершенствованная команда IdentifyDrive. В интерфейсе увеличен объем информации относительно характеристик, выдаваемой HDD по системным запросам.
Все было бы отлично, однако фирмы-производители в своем стремлении заполучить больший кусок рынка начали сочинять красивые названия, обзывая ими интерфейсы своих HDD. Ведь интерфейсы FastATA, FastATA-2, а также EnhancedIDE, по сути, базируются на АТА-2 стандарте, являясь не более чем красивыми маркетинговыми терминами. Различия между ними заключаются лишь в том, какую часть стандарта и каким образом они поддерживают.
Самую большую неразбериху вносят названия FastATA и FastATA-2, которые принадлежат умным головам из Seagate и Quantum соответственно. Вполне логично будет предположить, что FastATA – это своего рода улучшение АТА стандарта, в то время как FastATA-2 основан на стандарте АТА-2. К сожалению, все не так просто. В реальности FastATA-2 лишь другое название АТА-2 стандарта. В свою очередь все отличия FastATA от него сводятся лишь к тому, что здесь поддерживаются самые быстрые режимы, а именно: PIO mode4 и DMA mode2. Обе компании, при этом, нападают на Western Digital и разработанный ею стандарт EIDE за внесение еще большей путаницы. EIDE также отличается своими недостатками, однако, о них чуть позже.
В попытке дальнейшего развития АТА интерфейса был разработан проект стандарта АТА-3, основное внимание в котором уделялось улучшению показателей надежности:
- В AТА-3 содержатся средства, которые повышают надежность трансфера данных благодаря использованию высокоскоростных режимов, что является серьезной проблемой, т.к. кабель IDE/ATA сохранился неизмененным с момента рождении стандарта;
- В АТА-3 включена технология SMART.
АТА-3 не утвержден как ANSI стандарт в первую очередь потому, что в нем не было использовано новых режимов трансфера данных, несмотря на то, что технология SMART сейчас достаточно широко используется производителями HDD.
Следующий виток развитии интерфейса IDE/ATA - это стандарт UltraATA (также известный, как UltraDMA либо ATA-33, либо DMA-33, либо АТА-3(!)). UltraATA, по сути, является стандартом использования наиболее быстрого режима DMA - mode3, который обеспечивает скорость трансфера данных в 33.3 МВ/сек. С целью обеспечения надежного трансфера данных по старой модели кабеля используются особые схемы контроля над ошибками и их коррекции. Обратная совместимость с прошлыми стандартами: АТА и АТА-2, при этом, сохраняется. Таким образом, если Вы купили HDD с интерфейсом UltraАТА и вдруг обнаружили, что он не поддерживается вашей системной платой, не расстраивайтесь – накопитель все же будет работать, хотя и несколько медленнее.
Наконец, самое последнее достижение в этой сфере – это интерфейс UltraATA/66, который разработан компанией Quantum. Интерфейс позволяет осуществлять трансфер данных на скорости 66МВ/сек.
Во времена первых разработок IDE/ATA интерфейса, единственным устройством, нуждающимся в этом интерфейсе, был HDD, т.к. зарождающиеся драйвы CD-ROM и стримеры оснащались собственным интерфейсом (вы наверняка помните времена, когда подключение CD-ROM осуществлялось с помощью интерфейса на звуковой карте). Вскоре, однако, стало понятно, что использование быстрого и простого интерфейса IDE/ATA для подключения всех возможных устройств сулит принести значительные выгоды, в т.ч. за счет универсальности. К сожалению, система команд IDE/ATA интерфейса была рассчитана исключительно на HDD, поэтому подключить, к примеру, CD-ROM просто так к IDE-каналу нельзя – он просто не будет работать. Соответственно необходимо было разработать новый протокол – ATAPI (сокр. от ATA Packet Interface). Протокол позволяет большинству других устройств подключаться при помощи стандартного IDE шлейфа и "почувствовать себя" в роли IDE/ATA HDD. Протокол ATAPI, на самом деле, гораздо сложнее, чем ATA, т.к. трансфер данных здесь идет с использованием режимов DMA и PIO, реализация же поддержки этих режимов значительным образом зависит от особенностей подключенного устройства. Само название packet (с англ. пакетный) было получено протоколом из-за того, что команды устройству приходится передавать буквально группами или пакетами. С точки зрения рядового пользователя, однако, важнее всего, что отсутствует различие между IDE/ATA HDD, CD-ROMом ATAPI, а также ZIP-драйвом. Сегодняшние BIOSы даже поддерживают осуществление загрузки с ATAPI-устройств.
Сейчас, как было обещано, переходим к EIDE. Термин этот был введен компанией WesternDigital. EIDE достаточно широко употребляется и практически также широко критикуется, вполне на наш взгляд заслужено. Главной причиной для жесткой критики является тот факт, что, по сути, EIDE – вовсе и не стандарт, а чисто маркетинговый термин, причем содержание этого термина постоянно меняется. Так, сначала EIDE включал поддержку PIO режимов вплоть до mode3, затем была добавлена поддержка mode4. Существенным недостатком EIDE в качестве стандарта является включение в его спецификацию абсолютно разноплановых вещей. Смотрите сами, на данный момент EIDE включает:
- ATA-2. Полностью, в т.ч. самые скоростные режимы;
- ATAPI. Целиком;
- Dual IDE/ATA Host Adapters. В стандарте EIDE включена поддержка 2-х IDE/ATA хостов, таким образом можно использовать параллельно до 4-х IDE/ATA/ATAPI устройств.
Разберем теперь, что обозначает фраза "HDD с интерфейсом EIDE". Так как поддерживать ATAPI ему нет никакого смысла, а 2 канала IDE он поддержать не сможет, все это сводится к скромному: "HDD с интерфейсом АТА-2". Идея, в принципе, была неплохая- создать стандарт, который охватывает чипсет, BIOS и жесткий диск. Однако так как большая часть EIDE в качестве стандарта относится непосредственно к чипсету и BIOS, то получается путаница между EnhancedIDE и примерно в тоже время возникшей EnhancedBIOS (т.е. BIOS, который поддерживает IDE/ATA для HDD емкостью более 504MB). Вполне логично было бы предположить, что для использования HDD объемом свыше 504МВ необходим интерфейс EIDE, однако, как Вы уже поняли, нужен лишь EnhancedBIOS. Более того, производители карт с EnhancedBIOS рекламировали их в качестве "enhanced IDE cards". К счастью, сейчас эти проблемы остались в прошлом, в прочем, как и барьер 540МВ.
Чтобы как-то систематизировать информацию все основные (официальные и неофициальные) стандарты интерфейса IDE, которые были описаны выше, приведены в форме таблицы.
Стандарт |
Интерфейс |
DMA modes |
PIO modes |
Отличия от IDE/ATA |
ANSI |
IDE/ATA |
Singleword 0-2; multiword 0 |
0-2 |
|
ANSI |
ATA-2 |
Singleword 0-2; multiword 0-2 |
0-4 |
Поддержка LBA, block transfer, режим, улучшенная команда identify drive |
Маркетинговый термин |
FastATA |
Singleword 0-2; multiword 0, 1 |
0-3 |
Аналогичен АТА-2 |
Маркетинговый термин |
FastATA-2 |
Singleword 0-2; multiword 0-2 |
0-4 |
Аналогичен АТА-2 |
Неофициальный |
ATA-3 |
Singleword 0-2; multiword 0-2 |
0-4 |
Аналогичен АТА-2, при этом добавлена поддержка надежности трансфера на высоких скоростях, используется технология SMART |
Неофициальный |
UltraATA |
Singleword 0-2; multiword 0-3 (DMA-33/66) |
0-4 |
Аналогичен АТА-3 |
ANSI |
ATAPI |
Singleword 0-2; multiword 0-2 |
0-4 |
Аналогичен АТА-2, добавлена поддержка отличных от HDD устройств |
Маркетинговый термин |
EIDE |
Singleword 0-2; multiword 0-2 |
0-4 |
Аналогичен ATA-2 +ATAPI, поддерживает 2 хост-адаптера |
Плавно переходим к не менее интересной теме. Всего существуют 2 параметра, которые характеризуют скорость трансфера данных при использовании HDD с интерфейсом IDE/ATA. Первый из них - внутренняя скорость передачи (англ. internal transfer rate), характеризующая скорость трансфера данных между внутренним буфером HDD и магнитным носителем. Она определяется скоростью вращения, плотностью записи и т.д. Т.е. параметрами, зависящими не от типа интерфейса, а от конструкции носителя. Второй показатель – это внешняя скорость трансфера данных, т.е. скорость передачи данных по IDE каналу, полностью зависящая от режима передачи данных. В самом начале использования IDE/ATA дисков скорость работы всей дисковой подсистемы зависела от внутренней скорости трансфера данных, которая была значительно меньше внешней. Сегодня же, благодаря увеличению плотности записи (это позволяет снимать больше данных за оборот диска) и увеличению частоты вращения, главенствующую роль занимает внешняя скорость передачи. В связи с этим возникает вопрос относительно номеров режимов и отличия PIO от DMA.
Первоначально распространенным способом трансфера данных посредством интерфейса IDE/ATA был протокол, который носит название Programmed I/O (сокр. PIO). Всего существует 5 режимов PIO, которые различаются по максимальной скорости пакетной передачи данных (англ. burst transfer rates). Режимы эти называются термином PIO modes.
PIOmode |
Максимальная скорость трансфера (МВ/сек) |
Поддерживают стандарты: |
0 |
3.3 |
Все |
1 |
5.2 |
Все |
2 |
8.3 |
Все |
3 |
11.1 |
ATA-2, FastATA, FastATA-2, ATAPI, ATA-3, UltraATA, EIDE |
4 |
16.6 |
ATA-2, FastATA-2, ATAPI, ATA-3, UltraATA, EIDE |
Разумеется, здесь имеется в виду внешняя скорость трансфера данных, определяемая скоростью интерфейса, а не HDD. Следует также учитывать, хоть сегодня это вряд ли актуально, что PIO modes 3 и 4 нуждаются в использовании шины PCI либо VLB, т.к. ISA шина не способна обеспечивать скорость трансфера данных более 10 МВ/сек.
Вплоть до появления DMA-33 режима, максимальная скорость трансфера данных у PIO и DMA была идентичной. Основным недостатком PIO режимов считается то, что трансфером данных управляет процессор - это значительно увеличивает его загрузку. С другой стороны, эти режимы не нуждаются в специальных драйверах и прекрасно подходят для однозадачных ОС. К сожалению, это, скорее всего, вымирающий вид…
Direct Memory Access (сокр. от DMA) - прямой доступ к памяти – обозначает собирательное название протоколов, которые позволяют периферийному устройству передавать данные в системную память непосредственно без участия ЦП. Современными жесткими дисками эта возможность используется в сочетании с возможностью, перехватывая управление шиной, самостоятельно управлять передачей данных (т.н. bus mastering). Существующие режимы DMA (т.н. DMAmodes) приведены в таблице. Следует отметить, что singleword режимы на сегодняшний день более не используются, они приведены исключительно для сравнения.
DMAmode |
Максимальная скорость трансфера (МВ/сек) |
Поддерживают стандарты: |
Singleword 0 |
2.1 |
Все |
Singleword 1 |
4.2 |
Все |
Singleword 2 |
8.3 |
Все |
Multiword 0 |
4.2 |
Все |
Multiword 1 |
13.3 |
ATA-2, FastATA, FastATA-2, ATA-3, UltraATA, EIDE |
Multiword 2 |
16.6 |
ATA-2, FastATA-2, ATA-3, UltraATA, EIDE |
Multiword 3 (DMA-33) |
33.3 (66) |
UltraATA (АТА/66) |
Еще одной интересный момент относительно работы интерфейса IDE/ATA – это 32-разрядный доступ к HDD. Как Вы уже знаете, интерфейс IDE/ATA всегда был и остается по сей день 16-битным. В таком случае будет уместен вопрос, почему при выключении драйверов 32-разрядного доступа к HDD в Windows скорость работы этого диска падает? В первую очередь, потому что работа Windows, в принципе, далека от совершенства. Во-вторых, PCI шина, на которой сейчас располагаются host-контроллеры IDE, 32-разрядна. Следовательно, 16-битный трансфер по этой шине есть пустое расходование пропускной способности. Host-контроллер в нормальных условиях формирует из 2-х 16-битных пакетов 32-битный, пересылая его в дальнейшем по PCI шине.
Ранее встречался такой термин, как режим blocktransfer. Здесь ничего сложного. На самом деле этот термин просто обозначает режим, позволяющий передавать определенное число команд чтения/записи за время одного прерывания. Современные IDE/ATA HDD позволяют передавать 16->32 секторов за одно прерывание. Так как прерывания генерируются реже, загрузка процессора снижается, а также уменьшается процент команд в общем количестве передаваемых данных.
Каждый канал IDE позволяет подключить к нему одно либо два устройства. Современные компьютеры, как правило, отличаются установкой двух каналов IDE (в соответствии со спецификацией EIDE), несмотря на то, что теоретически возможно устанавливать до четырех (!), что позволяет осуществлять подключение восьми IDE устройств. Все IDE каналы являются равноправными. В таблице приведено использование системных ресурсов различными каналами.
Канал |
I/O Addresses |
IRQ |
Поддержка, возможные проблемы, возникающие при использовании |
Primary |
1F0-1F7h, а также 3F6-3F7h |
14 |
Используется в любых компьютерах, оснащенных интерфейсом IDE/ATA |
Secondary |
170-177h, а также 376-377h |
15 (10) |
Распространен широко, присутствуя практически во всех современных ПК. |
Tertiary |
1E8-1Efh, а также 3EE-3Efh |
11(12) |
Редко используется. Возможны определенные проблемы с софтом |
Quaternary |
168-16Fh, а также 36E-36Fh |
10(11) |
Используется крайне редко. Проблемы с софтом весьма вероятны |
Ресурсы, которые используются третьим и четвертым каналами, обычно конфликтуют с другими устройствами (к примеру, IRQ 12 используется PS/2 мышью, IRQ 10 – традиционно занят сетевой картой).
Как уже было отмечено, каждый IDE/AТА канал интерфейса поддерживает подключение 2-х устройств, а именно: master и slave. Конфигурация задается обычно перемычкой, располагающейся на задней стенке устройства. Помимо этих двух позиций на ней часто присутствует также третья - cableselect. Что произойдет, если перемычку установить в это положение? Оказывается, для функционирования устройств в положении cableselect перемычки необходим специальный Y-образный шлейф, у которого центральный разъем подключается непосредственно к системной плате. У такого рода кабеля крайние разъемы неравноправны - устройство, которое подключено к одному разъему, автоматическим образом определяется, как master, а к другому, соответственно, как slave (аналогично А и В флопам). Перемычки на обоих устройствах, при этом, должны находиться в положении cableselect. Основной проблемой этой конфигурации является то, что она экзотична, несмотря на то, что де-юре считается стандартной, а значит, поддерживается не всеми. Из-за этого Y-образный шлейф достать очень трудно
Если предположить, что, несмотря на экзотику, Вы все-таки будете использовать описанную конфигурацию IDE/ATA устройств, запомните следующее:
- В каждый момент каждый канал может обрабатывать лишь один запрос и лишь к одному устройству. То есть следующему запросу, даже к другому устройству, придется ждать завершения текущего. Различные каналы, при этом, могут функционировать независимо. Следовательно, не стоит подключать 2 устройства, которые активно используются (к примеру, два HDD), к одному каналу. Оптимальным вариантом будет подключение каждого IDE-устройства к отдельному каналу (это, пожалуй, главный минус по сравнению с SCSI).
- Практически все чипсеты на сегодняшний день поддерживают возможность использования разных режимов трансфера данных для устройств, которые подключены к одному каналу. Злоупотреблять этим, однако, не стоит. Два устройства, которые значительно различаются по скорости, рекомендуется разнести по различным каналам.
- Также рекомендуется не подключать HDD и ATAPI-устройство (к примеру, CD-ROM) к одному каналу. Как было указано выше, ATAPI протокол использует иную систему команд, и, более того, даже самые скоростные ATAPI-устройства намного медленнее HDD, что может существенно замедлить работу последнего.
Вышесказанное, разумеется, нельзя считать аксиомой - это лишь рекомендации, которые основаны на здравом смысле и опыте экспертов. Кроме того, здравый смысл и опыт говорит о том, что четыре IDE-устройств на исправной плате могут работать в любых сочетаниях и при минимальных затрачиваемых усилиях со стороны пользователя, если соблюдать требования по совместимости. В этом и заключается главное преимущество IDE перед SCSI.