Иинтерфейс IDE/ATA


Оглавление

 

 

Введение

Фирмы-разработчики аппаратного обеспечения постоянно  совершенствуют внешние устройства и другие узлы персонального компьютера. Постоянно появляются новая периферийная аппаратура и новые модификации уже существующих устройств. Старые устройства наделяются новыми возможностями, новые делают такое, о чем раньше не приходилось и мечтать. И, конечно же, это коснулось устройств накопления информации.

Выпускаемые накопители информации представляют собой гамму запоминающих устройств с различным принципом действия физическими и технически эксплуатационными характеристиками. Основным свойством и назначением накопителей информации является ее хранение и воспроизведение. Запоминающие устройства принято делить на виды и категории в связи с их принципами функционирования, эксплуатационно-техническими, физическими, программными и другими характеристиками. Так, например, по принципам функционирования различают следующие виды устройств: электронные, магнитные, оптические и смешанные – магнитооптические. Каждый тип устройств организован на основе соответствующей технологии хранения/воспроизведения/записи цифровой информации. Поэтому, в связи с видом и техническим исполнением носителя информации различают: электронные, дисковые и ленточные устройства.

Самым дешевым  и наибольшим по емкости является жесткий диск. В настоящее время  винчестер имеет объем до 2 Тб.

 

1. Жесткий диск и принцип его работы

Накопитель  на жёстких магнитных дисках, жёсткий диск или винчестер, (англ.HardDiskDrive, HDD) – энергонезависимое, перезаписываемое компьютерное запоминающее устройство. Накопитель на жестком диске относится к наиболее совершенным и сложным устройствам современного персонального компьютера. Его диски способны вместить многие гигабайты информации, передаваемой с большой скоростью.

Жёсткий диск состоит  из гермозоны и блока электроники.

Гермозона включает в себя корпус из прочного сплава, собственно диски (пластины) с магнитным покрытием, блок головок с устройством позиционирования, электропривод шпинделя.

Блок головок  – пакет рычагов из пружинистой  стали (по паре на каждый диск). Одним концом они закреплены на оси рядом с краем диска. На других концах (над дисками) закреплены головки.

Диски (пластины), как правило, изготовлены из металлического сплава, хотя были попытки делать их из пластика и даже стекла, но такие  пластины оказались хрупкими и недолговечными. Обе плоскости пластин, подобно магнитофонной ленте, покрыты тончайшей пылью ферромагнетика – окислов железа, марганца и других металлов. Точный состав и технология нанесения держатся в секрете. Большинство бюджетных устройств содержит 1 или 2 пластины, но существуют модели с большим числом пластин.

Диски жёстко закреплены на шпинделе. Во время работы шпиндель вращается со скоростью несколько  тысяч оборотов в минуту (4200, 5400, 7200, 10 000, 15 000). При такой скорости вблизи поверхности пластины создаётся мощный воздушный поток, который приподнимает головки и заставляет их парить над поверхностью пластины. Форма головок рассчитывается так, чтобы при работе обеспечить оптимальное расстояние от пластины. Пока диски не разогнались до скорости, необходимой для «взлёта» головок, парковочное устройство удерживает головки в зоне парковки. Это предотвращает повреждение головок и рабочей поверхности пластин.

Устройство  позиционирования головок состоит  из неподвижной пары сильных, как  правило, неодимовых постоянных магнитов и катушки на подвижном блоке головок.

Блок электроники, интерфейсный блок – обеспечивает сопряжение электроники жёсткого диска  с остальной системой.

Блок управления представляет собой систему управления, принимающую электрические сигналы позиционирования головок, и вырабатывающую управляющие воздействия приводом типа «звуковая катушка, коммутации информационных потоков с различных головок, управления работой всех остальных узлов (к примеру, управление скоростью вращения шпинделя).

Блок ПЗУ  хранит управляющие программы для  блоков управления и цифровой обработки  сигнала, а также служебную информацию винчестера.

Буферная память сглаживает разницу скоростей интерфейсной части и накопителя (используется быстродействующая статическая память). Увеличение размера буферной памяти в некоторых случаях позволяет увеличить скорость работы накопителя.

Блок цифровой обработки сигнала осуществляет очистку считанного аналогового  сигнала и его декодирование (извлечение цифровой информации).

В накопителях на жестких дисках данные записываются и считываются универсальными головками чтения/записи с поверхности вращающихся магнитных дисков, разбитых на дорожки и секторы (512 байт каждый). В накопителях обычно устанавливается несколько дисков, и данные записываются на обеих сторонах каждого из них. В большинстве накопителей есть, по меньшей мере, два или три диска (что позволяет выполнять запись на четырех или шести сторонах), но существуют также устройства, содержащие до 11 и более дисков. Однотипные (одинаково расположенные) дорожки на всех сторонах дисков объединяются в цилиндр. Для каждой стороны диска предусмотрена своя дорожка чтения/записи, но при этом все головки смонтированы на общем стержне, или стойке. Поэтому головки не могут перемещаться независимо друг от друга и двигаются только синхронно.

2. Интерфейс IDE/ATA

ATA (AdvancedTechnologyAttachment), также называемый IDE (IntegratedDriveElectronics) – стандарт на интерфейс между  компьютером (контроллером) и накопителем  на жестких магнитных дисках (дисководом, HDD), включая физический уровень (разъёмы, кабели), электрические и логические характеристики сигналов, регистры устройства, команды и протоколы.

2.1 Эволюция интерфейса

Интерфейс ATA – разрабатывался для подключения накопителей на жестких магнитных дисках к компьютерам IBM PC AT с шиной  ISA. Интерфейс появился в результате создания устройств со встроенным контроллером – IDE. Контроллер жесткого диска был перенесен на плату электроники накопителя с сохранением регистровой модели.

Из всех сигналов шины ISA выбрали минимальный набор сигналов, часть из которых буферизовали на небольшой плате, устанавливаемой в слот, а часть направили прямо на разъем ленточного кабеля нового интерфейса.

Стандартный контроллер AT позволял подключать до двух накопителей – эту возможность получил и интерфейс ATА. Для взаимодействия пары устройств на шине ввели несколько дополнительных сигналов. Так появился интерфейс ATА для подключения устройств IDE к шине ISA. Позже их стали подключать и к локальным шинам, но набор сигналов интерфейса и протоколы обмена сохранились.

Принятая система  команд и регистров, являющаяся частью спецификации ATА, ориентирована на блочный обмен данными с устройствами прямого доступа. Для иных устройств  существует спецификация ATAPI, основанная на тех же аппаратных средствах, но позволяющая обмениваться пакетами управляющей информации (PI – PackageInterface).

В спецификации АТА фигурируют следующие компоненты:

  • Хост-адаптер – средства сопряжения интерфейса АТА с системной шиной (набор буферных схем между шинами ISA и АТА).
  • Кабель-шлейф с двумя или тремя 40-контактными IDC-разъемами. В стандартном кабеле одноименные контакты всех разъемов соединяются вместе.
  • Ведущее устройство (Master) – ПУ, в спецификации АТА называемое Device-0.
  • Ведомое устройство (Slave) – ПУ, в спецификации называемое Device-1.

О своей роли устройства узнают с помощью предварительно установленных конфигурационных джамперов. Если применяется кабельная выборка, то роль устройства определяется его  положением на специальном кабеле-шлейфе.

Оба устройства воспринимают команды от хост-адаптера одновременно. Однако выходные сигналы  на шину АТА имеет право выводить только выбранное устройство. Такая  система подразумевает, что, начав  операцию обмена с одним из устройств, хост-адаптер не может переключиться на обслуживание другого до завершения начатой операции. Параллельно могут работать только устройства IDE, подключаемые к разным шинам (каналам) АТА.

Выполняемая операция и направление обмена данными  между устройством и хост-адаптером  определяются предварительно записанной командой. Непременным компонентом устройства является буферная память. Ее наличие позволяет выполнять обмен данными в темпе, предлагаемом хост-адаптером (в пределах возможности устройства).

2.2 Адресация устройств

Адресация в АТА тоже имеет «дисковые корни»: для накопителей изначально указывали адрес цилиндра, головки и сектора – так называемая трехмерная адресация CHS (Cyllinder-Head-Sector). Позже по ряду причин стали различать физическую (реальную для накопителя) и логическую (по которой с устройством общается программа) адресацию CHS. При этом одно и то же устройство могло иметь различную логическую геометрию (но, естественно, С×Н×Sлог ≤ С×Н×Sфиз). Преобразование логической адресации в физическую выполняется встроенным контроллером устройства. Позже пришли к линейной адресации логических блоков LBA (LogicalBlockAddressing), где адрес блока (сектора) определяется 28-битным числом.

Оригинальная  спецификация АТА предусматривала 28-битный режим адресации. Это позволяло  адресовать 228 (268 435 456) секторов по 512 байт каждый, что давало максимальную ёмкость в 137 ГБ (128 ГиБ). В стандартных PC BIOS поддерживал до 7,88 ГиБ (8,46 ГБ), допуская максимум 1024 цилиндра, 256 головок и 63 сектора. Это ограничение на число цилиндров/головок/секторов CHS в сочетании со стандартом IDE привело к ограничению адресуемого пространства в 504 МиБ (528 МБ). Для преодоления этого ограничения была введена схема адресации LBA (LogicalBlockAddress), что позволило адресовать до 7,88 ГиБ. Со временем и это ограничение было снято, что позволило адресовать сначала 32 ГиБ, а затем и все 128 ГиБ, используя все 28 разрядов (в АТА-4) для адресации сектора. Запись 28-битного числа, организована путём записи его частей в соответствующие регистры накопителя (с 1 по 8 бит в 4-й регистр, 9-16 в 5-й, 17-24 в 6-й и 25-28 в 7-й).

Адресация регистров  организована при помощи трёх адресных линий DA0-DA2. 1-й регистр с адресом 0 является 16-разрядный, и используется для передачи данных между диском и контроллером. Остальные регистры 8-битные и используются для управления.

Новейшие спецификации ATA предполагают 48-битную адресацию, расширяя таким образом возможный предел до 128 ПиБ (144 петабайт). Однако файловые системы большинства современных  операционных систем поддерживают диски объёмом лишь до 2 ТиБ (исключением является, например, файловая система Ext4, поддерживающая размер до 256ПиБ).

2.3 Назначение контактов разъема

Все информационные сигналы интерфейса передаются через 40-контактный разъем, у которого ключом является отсутствующий на вилке и закрытый на розетке контакт № 20. Длина кабеля не должна превышать 0,46 м, допустимая емкость проводников не более 35 пФ.

Терминаторы стандартом не предусматриваются (они имеются  в каждом устройстве и хост-адаптере), но если кабель с тремя разъемами (розетками) используют для подключения одного устройства, то и его, и хост-адаптер рекомендуется подключать к противоположным концам кабеля. Все сигналы АТА являются логическими со стандартными ТТЛ-уровнями («0» – до 0,4В, «1» – 2,4-5В).

Устройства  и адаптеры, рассчитанные на использование Ultra DMA, должны иметь в сигнальных цепях последовательные согласующие  резисторы с сопротивлением для  различных цепей 22, 33 или 82 Ом. Спецификация АТА устанавливает 40-контактный сигнальный и 4-контактный разъемы питания (Рисунок 1), но для малогабаритных устройств питание может подаваться по 44-проводному интерфейсному кабелю

Рисунок 1 – Разъемы интерфейса АТА: сигнальный и питания

2.4 Сигналы интерфейса ATA IDE

Типы и виды сигналов интерфейса ATAIDEпредставлены в следующей таблице (Таблица 1):

Таблица 1 – Сигналы интерфейса ATA IDE

Сигнал

Тип 1

Контакт

Контакт

Тип

Сигнал

RESET

I

1

2

GND

DD7

I/OTS

3

4

I/OTS

DD8

DD6

I/OTS

5

6

I/OTS

DD9

DD5

I/OTS

7

8

I/OTS

DD10

DD4

I/OTS

9

10

I/OTS

DD11

DD3

I/OTS

11

12

I/OTS

DD12

DD2

I/OTS

13

14

I/OTS

DD13

DD1

I/OTS

15

16

I/OTS

DD14

DD0

I/OTS

17

18

I/OTS

DD15

GND

19

20

Ключ

DMARQ

OTS2

21

22

GND

DIOW | STOP3

I

23

24

GND

DIOR | HDMARDY | HSTROBE3

I

25

26

GND

IORDY | DDMARDY | DSTROBE3

OTS2

27

28

I/O

SPSYNC | SCEL

DMACK

I

29

30

GND

INTRQ

OTS2

31

32

OOK

IOCS16

DA1

I

33

34

I, O4

PDIAG | CBLID3

DA0

I

35

36

I

DA2

CS0

I

37

38

I

CS1

DASP

I\OOK5

39

40

GND

+5 В

416

426

+5 B

GND

436

446

Зарезервирован


  1. Тип сигнала для устройства: I – вход, О – выход, I/O – двунаправленный, TS – тристабильный, ОС – открытый коллектор.
  2. У старых устройств сигнал может иметь тип ОС (при разнотипных сигналах на одной шине возможен конфликт).
  3. Сигаалы, приведенные после символа /, используются только в режиме Ultra DMA (ATA-4).
  4. У ведущего устройства – вход, у ведомого – выход.
  5. У ведомого устройства – только выход.
  6. Контакты 41-44 используются только для миниатюрных дисков.

 

RESET (Devicereset) – сброс устройства (инвертированный сигнал сброса системной шины). Сигнал длительностью не менее 25 мкс вырабатывается после установления питающих напряжений.

DA[2:0] (DeviceAddress) – три младших бита системной шины адреса, используемые для выбора регистров устройств.

DD[15:0] (DeviceData) – двунаправленная 16-битная шина данных между адаптером и устройствами. При 8-битных обменах используются младшие биты D[7:0].

DIOR (Device I/O Read) – строб чтения портов ввода/вывода. Данные фиксируются по положительному перепаду сигнала.

DIOW (Device I/O Write) – строб записи портов ввода/вывода. Данные фиксируются по положительному перепаду сигнала.

IORDY (I/O channelready) – готовность устройства завершить цикл обмена. Низким уровнем сигнала во время цикла обмена устройство может ввести такты ожидания шины. Сигнал требуется при обмене в PIO MODE 3 и выше.

IOCS16 – разрешение 16-битных операций. Обращение ко всем регистрам, кроме регистра данных, всегда 8-битное. Для РЮ MODE 0, 1, 2 при активном сигнале обращения 16-битные, при неактивном – 8-битные. Для РЮ MODE 3, 4 и DMA все обмены 16-битные, кроме дополнительных байт (выходящих за границу 512-байтного сектора) «длинного» считывания и записи.

DMARQ (DMA ReQuest) – запрос обмена по каналу DMA (сигнал необязательный). При разрешении обмена сигнал (высокий уровень) вводится устройством по готовности к обмену. Введя сигнал DMARQ, устройство должно дождаться подтверждения от хост-адаптера сигналом DMACK, после чего может снять запрос DMARQ. Для очередной передачи запрос должен быть введен снова. В режиме Multi-Word DMA запрос может удерживаться на время передачи всех данных. Выход должен быть тристабильным, в активном состоянии (0 или 1) он может быть только у выбранного устройства во время работы с DMA. В АТА-1 для этого сигнала мог использоваться как тристабильный, так и стандартный ТТЛ-выход. Работа на одной шине устройств с разнотипными выходами DMARQ может привести к конфликтам.

DMACK (DMA aCKnowledge) – подтверждение DMA. Сигнал вырабатывается хост-адаптером как подтверждение цикла передачи. Передача слова данных управляется сигналами DIOR или DIOW. Во время обмена по каналу DMA сигналы IOCS16, CS0 и CS1 не используются, обмен всегда производится 16-битными словами.

INTRQ (Device interrupt) – запроспрерывания.Выход должен быть тристабильным, активный сигнал (логическую 1) вырабатывает только выбранное устройство, когда у него имеется необслуженный запрос прерывания и его вырабатывание не запрещено битом nIEN в регистре DeviceControl. Запрос сбрасывается по сигналу RESET, установке бита SRST в регистре DeviceControl, записи в регистр команд или чтении регистра состояния. При обменах РЮ запрос устанавливается в начале передачи каждого блока (сектора или группы секторов при многосекторных операциях). Исключения: по командам FormatTrack, WriteSector(S), WriteBuffer и WriteLong в начале передачи первого блока данных запрос прерывания не вырабатывается. При обменах DMA запрос прерывания вырабатывается только по завершении операции.

CSO (ChipSelect 0) – сигнал выбора блока командных регистров (CommandBlockRegisters). Для первого канала он вырабатывается при наличии на системной шине адреса порта ввода/вывода в диапазоне lFOh–lF7h (сигнал также называют CS1FX#).

CS1 (ChipSelect 1) – выбор блока управляющих регистров (ControlBlockRegisters). Для первого канала он вырабатывается при наличии на системной шине адреса порта ввода/вывода в диапазоне 3F6h-3F7h (часто этот сигнал называется CS3FX;.

PDIAG (Passeddiagnostics) – сигнал о прохождении диагностики. Ведущее устройство наблюдает за этим сигналом, который ведомое устройство должно выработать в ответ на сброс или команду диагностики. Если ведомое устройство обнаружено (по сигналу DASP), ведущее устройство ожидает сигнал в течение 31с после сброса и 6 с после команды диагностики. Если за это время сигнал не появился, ведущее устройство отмечает этот факт установкой бита 7 регистра ошибок. Если ведомое устройство не обнаружено, ведущее обнуляет регистр состояния ведомого устройства и сообщает свое состояние сразу после завершения собственной самодиагностики. Сигнал служит только для связи двух устройств и хост-адаптером не используется.

CBUD (Cable assembly type identifier) – идентификациятипакабеля.В 80-проводной сборке контакт 34 на разъеме хост-адаптера соединяется с шиной GND, а контакты 34 разъемов устройств соединяются между собой, но связи с разъемом хост-адаптера не имеют. После прохождения сброса (когда сигнал PDIAG снимается) хост может определить наличие 80-проводного кабеля по низкому" уровню сигнала.

DASP (DeviceActive, SlavePresent) – сигнал двойного назначения: индикатор активности устройства и присутствия ведомого устройства. Устройства имеют выход типа «открытый коллектор» с нагрузочным резистором 10 кОм к шине +5 В. После сброса по сигналу RESET или при инициализации по включении питания оба устройства в течение 1 мс должны деактивировать этот сигнал, после чего не позже чем через 400 мс его вводит ведомое устройство для сообщения о своем присутствии. Ведущее устройство не активирует этот сигнал в течение 450 мс. Сигнал деактивируется ведомым устройством после получения им команды или через 31с автрматически (смотря что произойдет раньше). После этого сигнал может быть введен любым устройством как индикатор активности. Адаптер использует этот сигнал для включения светодиодного индикатора доступа к диску.

SPSYNC/CSEL (SpindleSynchronization/CableSelect) - синхронизация шпинделя/выборка кабелем. Сигнал двойного назначения, которое должно быть единым для обоих устройств. Сигнал SPSYNC позволяет синхронизировать шпиндели устройств (актуально для RAID-массивов); используется по усмотрению производителя накопителя. Сигнал CSEL позволяет устройствам определять свой адрес по положению на специальном кабеле с разрывом провода 28 между разъемами двух устройств (малораспространенная «кабельная выборка»). Эта линия на хост-адаптере заземлена, и ведущее устройство получает заземленную линию, а ведомое – не подключенную. Состояние сигнала (если он управляется хост-адаптером) должно удерживаться по крайней мере 31с после сигнала RESET.

При использовании режима Ultra DMA четыре линии получают новое назначение сигналов:

  • STOP (StopUltra DMA burst) – останов передачи пакета Ultra DMA.
  • DDMARDY (DeviceUltra DMA ready) – готовность устройства при приеме пакета Ultra DMA (управление потоком).
  • DSTROBE (HostUltra DMA datastrobe) – строб данных устройства при передаче пакета хосту. Данные передаются по обоим перепадам DSTROBE.
  • HDMARDY (HostUltra DMA ready) – готовность хоста при приеме им пакета Ultra DMA (управление потоком).
  • HSTROBE (HostUltra DMA datastrobe) – строб данных хоста при передаче пакета устройству. Данные передаются по обоим перепадам HSTROBE.

2.5 Протокол взаимодействия хоста и устройства

Обычный протокол взаимодействия хоста с устройством  выглядит следующим образом:

  1. Хост читает регистр состояния устройства, дожидаясь нулевого значения бита BSY. Если присутствуют два устройства, хост обращается к ним «наугад» – состояние будет сообщать последнее выбранное устройство.
  2. Дождавшись освобождения устройства, хост записывает в регистр DH байт, у которого бит DEV указывает на адресуемое устройство. Здесь кроется причина невозможности параллельной работы двух устройств на одной шине ATА: обратиться к устройству можно только после освобождения обоих устройств.
  3. Хост читает основной или альтернативный регистр состояния адресованного устройства, дожидаясь признака готовности (DRDY=1).
  4. Хост заносит требуемые параметры в блок командных регистров.
  5. Хост записывает код команды в регистр команд.
  6. Устройство устанавливает бит BSY и переходит к исполнению команды. Дальнейшие действия зависят от протокола передачи данных, заданного командой.

 

Для команд, не требующих передачи данных (ND):

Для команд данного  типа, кроме шести вышеперечисленных  пунктов стандартного взаимодействия хоста и устройства, выполняется  ещё одна.

  1. Завершив исполнение команды, устройство сбрасывает бит BSY и устанавливает запрос прерывания (если он не запрещен). К этому моменту в регистрах состояния и ошибок уже имеется информация о результате исполнения. Выполнение завершается.

Единичное значение бита BSY может промелькнуть между шагами 6 и 7 так быстро, что хост его не зафиксирует, но для фиксации факта выполнения команды или ее части и предназначен запрос прерывания.

 

Для команд, требующих  чтения данных в режиме PIO (PI):

Для команд данного  типа, кроме шести вышеперечисленных пунктов стандартного взаимодействия хоста и устройства, выполняются ещё несколько.

  1. Подготовившись к передаче первого блока данных по шине АТА, устройство устанавливает бит DRQ. Если была ошибка, она фиксируется в регистрах состояния и ошибок. Далее устройство сбрасывает бит BSY и устанавливает запрос прерывания (если он не запрещен).
  2. Зафиксировав обнуление бита BSY (или по прерыванию), хост считывает регистр состояния, что приводит к сбросу прерывания от устройства.
  3. Если хост обнаружил единичное значение бита DRQ, он производит чтение первого блока данных в режиме PIO (адресуясь к регистру данных). Если обнаружена ошибка, считанные данные могут быть недостоверными.После передачи блока данных возможно одно из следующих действий:
  • Если на шаге 8 ошибка не обнаружена, а требуется передача следующего блока, устройство устанавливает бит BSY, и данная последовательность повторяется с шага 7.
  • Если есть ошибка или передан последний блок данных, устройство сбрасывает бит DRQ и выполнение команды завершается

Для операций записи данных после шага 6 для устройства начинается активная фаза записи на носитель, что отмечается установкой бита BSY.

 

Для команд, требующих  записи данных в режиме PIO (PO и P):

Для команд данного  типа, кроме шести вышеперечисленных пунктов стандартного взаимодействия хоста и устройства, выполняются ещё несколько.

  1. Подготовившись к приему первого блока данных по шине ATА, устройство устанавливает бит DRQ (если нет ошибок) и сбрасывает бит BSY. Если была ошибка, она фиксируется.
  2. Зафиксировав обнуление бита BSY, хост считывает регистр состояния
  3. Если хост обнаружил единичное значение бита DRQ, он производит запись первого блока данных в режиме PIO по адресу в регистре данных
  4. После передачи блока данных возможно одно из следующих действий:
  • Если обнаружена ошибка, устройство сбрасывает бит DRQ, устанавливает запрос прерывания и выполнение команды завершается. Переданные по шине данные остаются необработанными устройством (не записываются на носитель).
  • Если ошибка не обнаружена, устройство устанавливает бит BSY и переходит к следующему шагу
  1. Устройство обрабатывает принятый блок данных, затем:
  • Если нет ошибок и обработанный блок – последний, устройство сбрасывает бит BSY и устанавливает запрос прерывания, на чем выполнение команды успешно завершается;
  • Если обнаружена ошибка, выполнение команды завершается таким же образом, но с установкой бит ошибок;
  • Если нет ошибок и требуется передача следующего блока, выполняются следующие шаги:
  1. По готовности приема следующего блока устройство устанавливает бит DRQ, сбрасывает бит BSY и устанавливает запрос прерывания.
  1. По обнулению бита BSY (или по прерыванию) хост считывает регистр состояния.
  2. Обнаружив бит DRQ, хост выполняет запись очередного блока в регистр данных, и последовательность повторяется с шага 11. Команды с передачей данных в режиме DMA выполняются похожим образом, но:
  • Вместо PIO используется прямой доступ к памяти. Хост должен проинициализировать канал DMA до записи кода в регистр команд, чтобы по появлении сигнала DMARQ начался обмен
  • Запрос прерывания даже в многосекторных передачах производится один раз – по выполнении команды

2.6 Протоколы и режимы передачи данных

Программа общается с устройствами АТА через регистры, используя инструкции ввода/вывода IN и OUT. Для передачи данных с максимальной скоростью применяют программный доступ к регистру данных или DMA. Тип обмена задается командой. Программный доступ обязателен для всех устройств. Команды режима DMA устройствами могут не поддерживаться.

Программный доступ PIO (ProgrammedInput/Output) выполняется в виде следующих друг за другом операций чтения или записи в пространстве ввода/вывода по адресу регистра данных. В отличие от программно-управляемого ввода/вывода, применяемого, например, для общения с LPT-портом, передача блока данных в режиме PIO производится без программного опроса какого-либо бита готовности для передачи каждого слова. Готовность устройства проверяется перед началом передачи блока, после чего хост производит серию операций в определенном темпе. Темп определяется выбранным режимом PIO Mode (Таблица 2).

Иинтерфейс IDE/ATA