ATA (англ. Advanced Technology Attachment) или IDE (англ. Integrated Drive Electronics) — параллельный интерфейс подключения накопителей (гибких дисков, жёстких дисков и оптических дисководов) к компьютеру. В 1990-е годы был стандартом на платформе IBM PC; в настоящее время вытеснен своим последователем — SATA — и с его появлением получил название PATA (Parallel ATA).
Предварительное название интерфейса было PC/AT Attachment («Соединение с PC/AT»), так как он предназначался для подсоединения к 16-битной шине ISA, известной тогда как шина AT. В окончательной версии название переделали в «AT Attachment» для избежания проблем с торговыми марками.
Первоначальная версия стандарта была разработана в 1986 году фирмой Western Digital и по маркетинговым соображениям получила название IDE (англ. Integrated Drive Electronics — «электроника, встроенная в привод»). Оно подчеркивало важное нововведение: контроллер привода располагается в нём самом, а не в виде отдельной платы расширения, как в предшествующем стандарте ST-506 и существовавших тогда интерфейсах SCSI и ST-412. Это позволило улучшить характеристики накопителей (за счёт меньшего расстояния до контроллера), упростить управление им (так как контроллер канала IDE абстрагировался от деталей работы привода) и удешевить производство (контроллер привода мог быть рассчитан только на «свой» привод, а не на все возможные; контроллер канала же вообще становился стандартным). Контроллер канала IDE правильнее называть хост-адаптером, поскольку он перешёл от прямого управления приводом к обмену данными с ним по протоколу.
В стандарте АТА определён интерфейс между контроллером и накопителем, а также передаваемые по нему команды.
Интерфейс имеет 8 регистров, занимающих 8 адресов в пространстве ввода-вывода. Ширина шины данных составляет 16 бит. Количество каналов, присутствующих в системе, может быть больше 2. Главное, чтобы адреса каналов не пересекались с адресами других устройств ввода-вывода. К каждому каналу можно подключить 2 устройства (master и slave), но в каждый момент времени может работать лишь одно устройство.
Принцип адресации CHS заложен в названии. Сперва блок головок устанавливается позиционером на требуемую дорожку (Cylinder), после этого выбирается требуемая головка (Head), а затем считывается информация из требуемого сектора (Sector).
Стандарт EIDE (англ. Enhanced IDE — «расширенный IDE»), появившийся вслед за IDE, позволял использовать приводы ёмкостью, превышающей 528 Мб (504 МиБ), вплоть до 8,4 Гб. Хотя эти аббревиатуры возникли как торговые, а не официальные названия стандарта, термины IDE и EIDE часто употребляются вместо термина ATA. После введения в 2003 году стандарта Serial ATA («последовательный ATA») традиционный ATA стали именовать Parallel ATA, имея в виду способ передачи данных по параллельному 40- или 80-жильному кабелю.
Поначалу этот интерфейс использовался с жёсткими дисками, но затем стандарт был расширен для работы и с другими устройствами, в основном — использующими сменные носители. К числу таких устройств относятся приводы CD-ROM и DVD-ROM, ленточные накопители, а также дискеты большой ёмкости, такие, как ZIP и флоптические (используют магнитные головки с лазерным наведением[1][2]) диски (LS-120/240). Кроме того, из файла конфигурации ядра FreeBSD можно сделать вывод, что на шину ATAPI подключали даже накопители на гибких магнитных дисках (дискета). Этот расширенный стандарт получил название Advanced Technology Attachment Packet Interface (ATAPI), в связи с чем полное наименование стандарта выглядит как ATA/ATAPI. ATAPI практически полностью совпадает с SCSI на уровне команд и, по сути, есть «SCSI по ATA-кабелю».
Первоначально интерфейсы для подключения приводов CD-ROM не были стандартизованы и являлись проприетарными разработками производителей приводов. В результате для подключения CD-ROM было необходимо устанавливать отдельную плату расширения, специфичную для конкретного производителя, например, для Panasonic (существовало не менее 5 специфичных вариантов интерфейсов, предназначенных для подключения CD-ROM). Некоторые варианты звуковых карт, например, Sound Blaster, оснащались именно такими портами (часто привод CD-ROM и звуковая плата поставлялись в виде мультимедиа-комплекта). Появление ATAPI позволило стандартизировать всю эту периферию и дать возможность подключать её к любому контроллеру, к которому можно подключить жесткий диск.
Другим важным этапом в развитии ATA стал переход от PIO (англ. Programmed input/output — программный ввод-вывод) к DMA (англ. Direct memory access — прямой доступ к памяти). При использовании PIO считыванием данных с диска управлял центральный процессор компьютера, что приводило к повышенной нагрузке на процессор и замедлению работы в целом. По причине этого компьютеры, использовавшие интерфейс ATA, обычно выполняли операции, связанные с диском, медленнее, чем компьютеры, использовавшие SCSI и другие интерфейсы. Введение DMA существенно снизило затраты процессорного времени на операции с диском.
В данной технологии потоком данных управляет сам накопитель, считывая данные в память или из памяти почти без участия процессора, который выдаёт лишь команды на выполнение того или иного действия. При этом жёсткий диск выдаёт сигнал запроса DMARQ на операцию DMA контроллеру. Если операция DMA возможна, контроллер выдаёт сигнал DMACK, и жёсткий диск начинает выдавать данные в 1-й регистр (DATA), с которого контроллер считывает данные в память без участия процессора.
Операция DMA возможна, если режим поддерживается одновременно BIOS, контроллером и операционной системой, в противном случае возможен лишь режим PIO.
В дальнейшем развитии стандарта (АТА-3) был введён дополнительный режим UltraDMA 2 (UDMA 33).
Этот режим имеет временные характеристики DMA Mode 2, однако данные передаются и по переднему, и по заднему фронту сигнала DIOR/DIOW. Это вдвое увеличивает скорость передачи данных по интерфейсу. Также введена проверка на чётность CRC, что повышает надёжность передачи информации.
В истории развития ATA был ряд барьеров, связанных с организацией доступа к данным. Большинство из этих барьеров, благодаря современным системам адресации и технике программирования, было преодолено. К их числу относятся ограничения на максимальный размер диска в 504 МиБ, около 8 ГиБ, около 32 ГиБ, и 128 ГиБ. Существовали и другие барьеры, в основном связанные с драйверами устройств и организацией ввода-вывода в операционных системах, не соответствующих стандартам ATA.
Оригинальная спецификация АТА предусматривала 28-битный режим адресации. Это позволяло адресовать 228 (268 435 456) секторов по 512 байт каждый, что давало максимальную ёмкость в 137 Гб (128 ГиБ). В стандартных PC BIOS поддерживал до 7,88 ГиБ (8,46 Гб), допуская максимум 1024 цилиндра, 256 головок и 63 сектора. Это ограничение на число цилиндров/головок/секторов CHS (Cyllinder-Head-Sector) в сочетании со стандартом IDE привело к ограничению адресуемого пространства в 504 МиБ (528 Мб). Для преодоления этого ограничения была введена схема адресации LBA (Logical Block Address), что позволило адресовать до 7,88 ГиБ. Со временем и это ограничение было снято, что позволило адресовать сначала 32 ГиБ, а затем и все 128 ГиБ, используя все 28 разрядов (в АТА-4) для адресации сектора. Запись 28-битного числа организована путём записи его частей в соответствующие регистры накопителя (с 1 по 8 бит в 4-й регистр, 9-16 в 5-й, 17-24 в 6-й и 25-28 в 7-й).
Адресация регистров организована при помощи трёх адресных линий DA0-DA2. Первый регистр с адресом 0 является 16-разрядным и используется для передачи данных между диском и контроллером. Остальные регистры 8-битные и используются для управления.
Новейшие спецификации ATA предполагают 48-битную адресацию, расширяя таким образом возможный предел до 128 ПиБ (144 петабайт).
Эти ограничения на размер могут проявляться в том, что система думает, что объём диска меньше его реального значения, или вовсе отказывается загружаться и виснет на стадии инициализации жёстких дисков. В некоторых случаях проблему удаётся решить обновлением BIOS. Другим возможным решением является использование специальных программ, таких, как Ontrack DiskManager, загружающих в память свой драйвер до загрузки операционной системы. Недостатком таких решений является то, что используется нестандартная разбивка диска, при которой разделы диска оказываются недоступны, в случае загрузки, например, с обычной DOS-овской загрузочной дискеты. Впрочем, многие современные операционные системы (начиная от Windows NT4 SP3) могут работать с дисками большего размера, даже если BIOS компьютера этот размер корректно не определяет.
Для подключения жёстких дисков с интерфейсом PATA обычно используется 40-проводный кабель (именуемый также шлейфом). Каждый шлейф обычно имеет два или три разъёма, один из которых подключается к разъёму контроллера на материнской плате (в более старых компьютерах этот контроллер размещался на отдельной плате расширения), а один или два других подключаются к дискам. В один момент времени шлейф P-ATA передаёт 16 бит данных. Иногда встречаются шлейфы IDE, допускающие подключение трёх дисков к одному IDE-каналу, но в этом случае один из дисков работает в режиме read-only.
Контакт | Назначение | Контакт | Назначение |
---|---|---|---|
1 | Reset | 2 | Ground |
3 | Data 7 | 4 | Data 8 |
5 | Data 6 | 6 | Data 9 |
7 | Data 5 | 8 | Data 10 |
9 | Data 4 | 10 | Data 11 |
11 | Data 3 | 12 | Data 12 |
13 | Data 2 | 14 | Data 13 |
15 | Data 1 | 16 | Data 14 |
17 | Data 0 | 18 | Data 15 |
19 | Ground | 20 | Key |
21 | DDRQ | 22 | Ground |
23 | I/O Write | 24 | Ground |
25 | I/O Read | 26 | Ground |
27 | IOC HRDY | 28 | Cable Select |
29 | DDACK | 30 | Ground |
31 | IRQ | 32 | No Connect |
33 | Addr 1 | 34 | GPIO_DMA66_Detect |
35 | Addr 0 | 36 | Addr 2 |
37 | Chip Select 1P | 38 | Chip Select 3P |
39 | Activity | 40 | Ground |
Долгое время шлейф ATA содержал 40 проводников, но с введением режима Ultra DMA/66 (UDMA4) появилась его 80-проводная версия. Все дополнительные проводники — это проводники заземления, чередующиеся с информационными проводниками. Таким образом вместо семи проводников заземления их стало 47. Такое чередование проводников уменьшает ёмкостную связь между ними, тем самым сокращая взаимные наводки. Ёмкостная связь является проблемой при высоких скоростях передачи, поэтому данное нововведение было необходимо для обеспечения нормальной работы установленной спецификацией UDMA4 скорости передачи 66 МБ/с (мегабайт в секунду). Более быстрые режимы UDMA5 и UDMA6 также требуют 80-проводного кабеля.
Хотя число проводников удвоилось, число контактов осталось прежним, как и внешний вид разъёмов. Внутренняя же разводка, конечно, другая. Разъёмы для 80-проводного кабеля должны присоединять большое число проводников заземления к небольшому числу контактов заземления, в то время как в 40-проводном кабеле проводники присоединяются каждый к своему контакту. У 80-проводных кабелей разъёмы обычно имеют различную расцветку (синий, серый и чёрный), в отличие от 40-проводных, где обычно все разъёмы одного цвета (чаще чёрные).
Стандарт ATA всегда устанавливал максимальную длину кабеля равной 45,7 см (18 дюймов). Это ограничение затрудняет присоединение устройств в больших корпусах или подключение нескольких приводов к одному компьютеру, и почти полностью исключает возможность использования дисков PATA в качестве внешних дисков. Хотя в продаже широко распространены кабели большей длины, следует иметь в виду, что они не соответствуют стандарту. То же самое можно сказать и по поводу «круглых» кабелей, которые также широко распространены. Стандарт ATA описывает только плоские кабели с конкретными характеристиками полного и ёмкостного сопротивлений. Это, конечно, не означает, что другие кабели не будут работать, но, в любом случае, к использованию нестандартных кабелей следует относиться с осторожностью.
Если к одному шлейфу подключены два устройства, одно из них обычно называется ведущим (англ. master), а другое — ведомым (англ. slave). Обычно ведущее устройство идёт перед ведомым в списке дисков, перечисляемых BIOS’ом компьютера или операционной системы. В старых BIOS’ах (486 и раньше) диски часто неверно обозначались буквами: «C» для ведущего диска и «D» для ведомого.
Если на шлейфе только один привод, он в большинстве случаев должен быть сконфигурирован как ведущий. Некоторые диски (в частности, производства Western Digital) имеют специальную настройку, именуемую single (то есть «один диск на кабеле»). Впрочем, в большинстве случаев единственный привод на кабеле может работать и как ведомый (такое часто встречается при подключении CD-ROM’а на отдельный канал).
Настройка, именуемая cable select (то есть «выбор, определяемый кабелем», кабельная выборка), была описана как опциональная в спецификации ATA-1 и стала широко распространена начиная с ATA-5, поскольку исключает необходимость переставлять перемычки на дисках при любых переподключениях. Если привод установлен в режим cable select, он автоматически устанавливается как ведущий или ведомый в зависимости от своего местоположения на шлейфе. Для обеспечения возможности определения этого местоположения шлейф должен быть с кабельной выборкой. У такого шлейфа контакт 28 (CSEL) не подключен к одному из разъёмов (серого цвета, обычно средний). Контроллер заземляет этот контакт. Если привод видит, что контакт заземлён (то есть на нём логический 0), он устанавливается как ведущий, в противном случае (высокоимпедансное состояние) — как ведомый.
Во времена использования 40-проводных кабелей широко распространилась практика осуществлять установку cable select путём простого перерезания проводника 28 между двумя разъёмами, подключавшимися к дискам. При этом ведомый привод оказывался на конце кабеля, а ведущий — в середине. Такое размещение в поздних версиях спецификации было даже стандартизировано. Когда на кабеле размещается только одно устройство, такое размещение приводит к появлению ненужного куска кабеля на конце, что нежелательно — как из соображений удобства, так и по физическим параметрам: этот кусок приводит к отражению сигнала, особенно на высоких частотах.
80-проводные кабели, введённые для UDMA4, лишены указанных недостатков. Теперь ведущее устройство всегда находится в конце шлейфа, так что, если подключено только одно устройство, не получается этого ненужного куска кабеля. Кабельная же выборка у них «заводская» — сделанная в самом разъёме просто путём исключения данного контакта. Поскольку для 80-проводных шлейфов в любом случае требовались собственные разъёмы, повсеместное внедрение этого не составило больших проблем. Стандарт также требует использования разъёмов разных цветов, для более простой идентификации их как производителем, так и сборщиком. Синий разъём предназначен для подключения к контроллеру, чёрный — к ведущему устройству, серый — к ведомому.
Термины «ведущий» и «ведомый» были заимствованы из промышленной электроники (где указанный принцип широко используется при взаимодействии узлов и устройств), но в данном случае являются некорректными, и потому не используются в текущей версии стандарта ATA. Более правильно называть ведущий и ведомый диски соответственно device 0 (устройство 0) и device 1 (устройство 1). Существует распространённый миф, что ведущий диск руководит доступом дисков к каналу. На самом деле управление доступом дисков и очерёдностью выполнения команд осуществляет контроллер (которым, в свою очередь, управляет драйвер операционной системы). То есть фактически оба устройства являются ведомыми по отношению к контроллеру.
В приводимой далее таблице приведены названия версий стандарта ATA и поддерживаемые ими режимы и скорость передачи. Скорость передачи, указываемая для каждого стандарта (например, 66,7 МБ/с для UDMA4, именуемого обычно «Ultra-DMA 66»), указывает максимальную теоретически возможную скорость в кабеле (два байта, умноженные на фактическую частоту), и предполагает, что каждый цикл используется для передачи пользовательских данных. На практике скорость меньше.
Перегрузка на шине, к которой подключён ATA-контроллер, также может ограничивать максимальный уровень передачи. Например, максимальная пропускная способность шины PCI, работающей на частоте 33 МГц и имеющей разрядность 32 бита, составляет 133 МБ/с, и эта скорость делится между всеми подключёнными к шине устройствами.
Стандарт | Другие названия | Добавлены режимы передачи (МБ/с) | Максимально поддерживаемый объём диска | Другие свойства | ANSI Reference |
---|---|---|---|---|---|
ATA-1 | ATA, IDE | PIO 0,1,2 (3.3, 5.2, 8.3) Single-word DMA 0,1,2 (2.1, 4.2, 8.3) Multi-word DMA 0 (4.2) |
137 ГБ | 28-bit LBA | X3.221-1994[3] (obsolete since 1999) |
ATA-2 | EIDE, Fast ATA, Fast IDE, Ultra ATA |
PIO 3,4: (11.1, 16.6) Multi-word DMA 1,2 (13.3, 16,6) |
X3.279-1996[4] (obsolete since 2001) | ||
ATA-3 | EIDE | S.M.A.R.T., Security |
X3.298-1997[5] (obsolete since 2002) | ||
ATA/ATAPI-4 | ATAPI-4, ATA-4, Ultra ATA/33 | Ultra DMA 0,1,2 (16.7, 25.0, 33.3) aka Ultra-DMA/33 |
Интерфейс ATAPI (поддержка сменных носителей), host protected area, поддержка твердотельных накопителей | NCITS 317—1998 | |
ATA/ATAPI-5 | ATA-5, Ultra ATA/66 | Ultra DMA 3,4 (44.4, 66.7) aka Ultra DMA 66 |
80-wire cables | NCITS 340—2000[6] | |
ATA/ATAPI-6 | ATA-6, Ultra ATA/100 | UDMA 5 (100) aka Ultra DMA 100 |
144 ПБ | 48-bit LBA Automatic Acoustic Management |
NCITS 347—2001 |
ATA/ATAPI-7 | ATA-7, Ultra ATA/133 | UDMA 6 (133) aka Ultra DMA 133 SATA/150 |
SATA 1.0, Streaming feature set, long logical/physical sector feature set for non-packet devices | NCITS 361—2002 |