Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Энциклопедия PC

.pdf
Скачиваний:
30
Добавлен:
13.03.2015
Размер:
8.94 Mб
Скачать

770 Глава 13. Параллельныешиныпериферийныхустройств— АТАиSCSI

Способ сообщения об ошибке передачи зависит от типа выполнявшейся команды. Получив сообщение об ошибке, хост должен повторить команду. Если ошибки появляются постоянно, хост должен понизить скорость обмена (понизить режим Ultra DMA).

Тип режима обмена определяется возможностями хост-адаптера (и его драйвера), устройств и кабеля, и для каждого устройства он будет ограничен минимумом из максимальных возможностей всех этих компонентов. Как правило, режимы устанавливаются системой автоматически, но пользователю дается возможность при необходимости «подрезать крылья» контроллеру настройками CMOS Setup. Для работы в режимах Ultra DMA Mode 3 и выше требуется 80проводный кабель (см. п. 13.1), присутствие которого должно быть программно определено до включения этого режима обмена. Правда, в спецификации есть оговорка, что при двухточечном соединении (контроллер-устройство) для режимов 3 и 4 можно использовать 40-проводный кабель (без среднего разъема). Система не должна дать пользователю возможность применить высокоскоростные режимы на обычном кабеле, при этом желательно, чтобы она сообщала об обнаруженном несоответствии. Для определения типа кабеля есть несколько возможностей[4].

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

тОпределение через устройство не требует дополнительного приемника в контроллере — линия PDIAG#/CBLID# в хост-контроллере заземляется через конденсатор емкостью 0,047 мкФ. Приемник сигнала идентификации кабеля располагается в устройстве. Если на хост-контроллере нет конденсатора, то даже 40-проводный кабель будет идентифицироваться как 80проводный, что опасно при передаче данных. При некорректно работающем ведомомустройстве80-проводныйкабельбудетказаться40-провод-ным.

тКомбинированный метод определения предполагает наличие на хост-кон- троллере и приемника сигнала CBLID#, и конденсатора (они друг другу не мешают). Решение о наличии 80-проводного кабеля принимается, только если оба метода укажут на его наличие. Возможная ошибка идентификации будет безопасной — при некорректном устройстве 1 на 80-проводном кабеле небудетвключенвысокоскоростнойрежим.

Правильный выбор режима обмена обеспечивает надежность и производительность. Все устройства поддерживают режим РЮ Mode 0, в котором считывается блок параметров идентификации. В блоке имеются поля, описывающие режим обмена по умолчанию, и более эффективные режимы обмена, поддерживаемые устройством. Командой Set Features можно изменить параметры режима. Иногда накопитель не обеспечивает надежной передачи данных в заявленном высокоскоростном режиме. Еслиданные начинают пропадать, первым делом следует понизить режимобмена.

13.1. ИнтерфейсАТА(IDE) 771

BIOS определяет режим обмена с каждым устройством с учетом ограничений, заданных в Setup. Старые диски, не сообщающие своих параметров, могут не работать с последними режимами РЮ. На одном ленточном кабеле (канале АТА) могут присутствовать устройства с разным режимом обмена — спецификация это допускает. Однако реально могут возникать аппаратные или программные ограничения. Некоторые чипсеты не позволяют независимо программировать режим обмена для устройств канала. В таком случае при подключении двух разных устройств (например, РЮ Mode 1 и 3) обмен с обоими устройствами будет происходить со скоростью меньшего (РЮ Mode 1). Поэтому не рекомендуется к одному каналу АТА (порту IDE) подключать быстрый винчестер и медленный CDROM. Иногда завязка режимов обмена двух устройств обусловлена ограниченным набором параметров конфигурации в BIOS. Быстрые режимы множественного обмена по DMA реализуются только драйверами ОС. «Глупый» драйвер может попытаться навязать медленный режим обоим устройствам канала, так что смешивать разные устройства не стоит и по этой причине.

Протокол обмена РЮ хорош только для однозадачных ОС. Для многозадачных ОС больший интерес представляет обмен по DMA, если, конечно, поддерживаемый режим обеспечивает приемлемую скорость обмена (см. табл. 13.5).

13.1.6. Средствамногозадачности(АТА-4)

Главный недостаток интерфейса АТА проявляется в многозадачных системах: когда одно устройство на шине исполняет команду, другое использоваться не может. В этом АТА существенно уступает SCSI, где устройство на время длительной внутренней операции может освобождать шину и имеется эффективный механизм организации очередей процессов ввода-вывода. Спецификация АТА-4 определяет возможности параллельного выполнения команд обоими устройствами и создания очередей.

Перекрытие команд (overlapped feature) позволяет устройству, занятому длительной внутренней операцией, освободить шину. Для этого устройство должно сбросить биты DRQ и BSY регистра состояния. По окончании выполнения операции устройство устанавливает бит SERV в своем регистре состояния. Если хост намерен использовать шину для обращения к другому устройству, он должен запретить прерывания от текущего выбранного устройства, установив бит nIEN в регистре управления. После того как хост вернется к обслуживанию данного устройства, он должен послать ему команду NOP с подкомандой 01 для получения информации о состоянии. При этом он может разрешить прерывание, которое произойдет по готовности устройства. Обнаружив установленный бит SERV, хост посылает команду Service, вызывающую продолжение исполнения команды, во время которой шина освобождалась. Принятый механизм продолжения менее эффективен, чем в SCSI, — он требует привлечения хоста для обнаружения готовности устройства. Готовность устройства определяется хостом путем полинга (периодического опроса состояния устройств), реализуемого хост-контроллером (аппаратно) или программой хост-компьютера. Перекрытие допускается только для команд NOP (с подкомандой

01), Packet, Read DMA Queued, Service иWrite DMA Queued.

772 Глава13. Параллельныешиныпериферийныхустройств— АТАиSCSI

Устройства могут поддерживать очереди команд, но только для команд, допускающих перекрытие (эти свойства тесно связаны). Если при наличии команд в очереди устройство получает команду, не входящую в этот список, она отвергается (с соответствующим битом в регистре ошибок) и очередь сбрасывается. Глубина очереди, поддерживаемой устройством, сообщается в блоке параметров идентификациисловом75, нулевомузначениюсловасоответствуетглубинаочереди 1 — фактически, отсутствие поддержки очередей. Команды ставятся в очередь с уникальным идентификатором-тегом, который передается через регистр счетчика секторовSC. ПослеисполнениякомандыService значениетегадляобслуживаемой команды считывается из того же регистра, что позволяет ее идентифицировать. Если устройство получает команду со значением тега, которое уже присутствует в очереди, новая и старая команды отвергаются (состояние не определено). При возникновении любой ошибки вся очередь сбрасывается. Следующая команда в очередь посылается лишь при освобожденной шине. Перед посылкой хост должен запретить прерывания, а разрешить их может только после посылки новой команды. Если длявыполнения командыустройству ненужно освобождать шину, команда будет выполнена немедленно, а находящиеся в очереди команды, освободившие шину, будут выполнены позже. Очереди SCSI более эффективны как по набору команд (в очередь ставятся процессы, которые могут представлять собой цепочки команд), так и по гибкости управления. SCSI также обеспечивает независимость исполнения одних команд очереди от результатов выполнения других.

Для подключения к интерфейсу АТА накопителей CD-ROM и стримеров (атакже других устройств) недостаточно набора регистров и системы команд АТА. Для них существует аппаратно-программный интерфейс ATAPI (АТА Package Interface — пакетный интерфейс АТА). Устройство ATAPI поддерживает минимальный набор команд АТА, который неограниченно расширяется 16-байтным команднымпакетом, посылаемымхост-контроллеромврегистрданныхустройства покомандеPacket. СтруктуракомандногопакетапришлаотSCSI, чтообеспечивает схожесть драйверов для устройств с интерфейсами SCSI и ATAPI. Классификация устройств совпадаетспринятой вSCSI (см. п. 13.2.2), классустройствасообщается имвначалеблокапараметровидентификации.

Интерфейс ATAPI может использоваться с неинтеллектуальными адаптерами АТА, поскольку для хост-адаптера поддержка ATAPI может выполняться чисто программно. Сложные контроллеры АТА, имеющие кэш-память и собственный процессор, неориентированныенаинтерфейсATAPI, могут«недогадаться», чтов регистр данных устройства кроме 512-байтных блоков данных можно записывать 16-байтныйблокскоманднымпакетом. Нижеперечисленыособенностиустройств

ATAPI.

® Команду Identify Device они должны отвергать, устанавливая в блоке командных регистров сигнатуру ATAPI, чтобы хост не пытался к ним обратиться как к АТА-устройствам. Для идентификации устройств ATAPI предназначена специальная команда Identify Packet Device, а блок параметров, сообщаемыхустройством, трактуетсяиначе[6].

13.1. Интерфейс АТА(IDE) 773

s» Для программного сброса устройства ATAPI предназначена команда Device Reset, которую устройства АТА отвергают. Программный сброс через региструправлениянепрекращаетвыполнениекомандыPacket.

т Специфические команды вместе с необходимыми параметрами передаются по команде Packet, код которой является недействительным для устройств АТА.

Для устройств ATAPI допустимы далеко не все команды. Обязательная команда Read Sector(s) устройствами ATAPI выполняется своеобразно: она отвергается, новблокекомандныхрегистровоставляетсигнатурупакетногоустройства.

Получив команду Packet, устройство устанавливает бит занятости BSY и готовитсяпринятьпакет.

После подачи команды Packet хост определяет состояние устройства, прочитав егорегистры. Возможныследующиеварианты:

» ожиданиекомандыPacket;

ш передача данных;

»освобождение шины; ш запрос обслуживания;

»успешное завершение;

«завершение сошибкой (только после передачи последнего байта пакета).

Систему команд и структуру пакетов стандарт ATA/ATAPI-4 не описывает, но для каждого класса устройств существует стандартизованный набор команд с определенной структурой пакетов.

13.1.8. АдаптерыиконтроллерышиныАТА

Простейший адаптер АТА содержит только буферы сигналов шины и дешифратор зоны адресов. Все регистры контроллера и схемы кодирования размещены в самом устройстве IDE. Шина АТА требует выделения системных ресурсов — двух областей портов ввода-вывода и линии прерывания; дополнительно может использоваться канал DMA. Интерфейсу АТА первого канала выделили ресурсы, ранее занятые контроллером жестких дисков. Второму каналу назначили ресурсы альтернативного контроллера жестких дисков. Позже определили ресурсы еще для двух каналов (табл. 13.6). Традиционному контроллеру жестких дисков выделялся канал DMA3, но он является 8-битным, в то время как шина АТА требует 16-битного канала DMA. Производительности стандартных каналов DMA дляшины АТА явнонедостаточно.

Таблица13.6. СистемныересурсыканаловАТА

Канал

CSO

CS1

IRQ

1

!FOh-lF7h

3F6h-3F7h

14

2

170h-177h

376h-377h

15 или10

3

lE8h-lEfh

3Eeh-3Efh

12

или11

4

168h-16Fh

36Eh-36Fh

10

или9

774 Глава13. Параллельныешиныпериферийныхустройств— АТАиSCSI

На системных платах с шиной PCI стандартом является установка двухканального адаптера, занимающего ресурсы каналов 1 и 2. В идеальном варианте двухканальные контроллеры имеют шины, полностью изолированные друг от друга буферными и логическими схемами. В самом дешевом варианте они используют общие буферы для линий данных и управляющих сигналов и отдельные только для некоторых сугубо индивидуальных сигналов. С точки зрения логики здесь все в порядке, но следует учитывать нагрузочную способность (влияние паразитных параметров): суммарная длина обоих ленточных кабелей не должна превышать 46 см, а суммарная емкость каждой линии со всеми устройствами не должна превышать 35 пФ. Иначенавысокоскоростных режимах обменавозможны неконтролируемые искажения передаваемых данных. Ниже перечислены предписаниястандартаATA/ATAPI-6.

ш В каждом канале должны быть собственные формирователи управляющих сигналов DIOR#, DIOW# и приемник IORDY (рекомендуемый вариант); либо должны быть раздельные формирователи CSO# и CS1# (второй вариант логичнее, но хуже в планепомех). Такаяконфигурация позволяетиспользовать все режимы обмена, кроме Ultra DMA.

за Для поддержки Ultra DMA О, 1 и 2 (до 33 Мбайт/с) к этим требованиям добавляетсяналичиераздельныхформирователейсигналаDMACK#.

ш Для поддержки Ultra DMA 3 и выше (44-100 Мбайт/с) все линии должны иметь раздельные приемопередатчики. Общими могут быть только сигналы

RESET#, INTRQ, DA(2:0), CSO#, CS1# и DASP#, но стандарт этого не ре-

комендует.

Поскольку скорость программного обмена задается хост-адаптером, интересно индивидуальное программирование РЮ Mode для каждого канала/устройства. Ряд чипсетов этого не допускает и при инициализации назначает общий минимальный режим. В результате подключение «тихоходного» устройства замедляетобменбыстрогососеднегоустройства.

Современные системные платы оснащаются высокопроизводительными контроллерами шины АТА, обеспечивающими прямое управление шиной PCI (Bus Mastering) при обмене с устройствами в режимах DMA и Ultra DMA. Прямое управление шиной повышает суммарную производительность компьютера в многозадачныхимногопоточныхоперационныхсистемах. СамипосебережимыDMA не даютвыигрыша вскорости обменапошинеАТА— толькорежимыUltraDMA Mode 1 и выше превосходят по скорости РЮ Mode 4 (см. табл. 13.5). Однако обмен в режиме DMA значительно меньше загружает центральный процессор компьютера, и параллельно с дисковым обменом процессор может заниматься обработкой других потоков (задач). В однозадачных (и однопотоковых) системах во время дискового обмена процессор все равно ничем другим не занимается, поэтому для них хорош и режим РЮ. Для реального использования прямого управления в операционной системе должен бытьустановлен специальный драйвер Bus-Master, соответствующий используемому контроллеру АТА (как правило, чипсету системной платы). Стандартный контроллер PCI IDE описан ниже. Операционная система MS-DOS режимы DMA (и прямое управление) не под-

держивает. Для многозадачных ОС (Windows 9x/NT/2000, OS/2, UNIX, Linux,

13.1. ИнтерфейсАТА(IDE) 775

NetWare...) драйверы могут входить в комплект поставки ОС или поставляться производителями системных плат (контроллеров АТА). И наконец, режим DMA должны поддерживать подключаемые устройства. Практически все современные устройства поддерживают Ultra DMA (или Multiword DMA), но если в паре с таким устройством к одному контроллеру подключено старое устройство, не поддерживающее этот режим, то прогрессивные режимы могут оказаться недоступными (повине чипсета или драйвера) и дляновогоустройства.

ВНИМАНИЕ ———————————————————————————————————————————

Режим UltraDMA привлекателен не только скоростью и разгрузкой процессора, но и контролем достоверности передач по шине АТА (правда, этот контроль корректно работает не со всеми драйверами).

Поскольку контроллеры АТА подключаются к 32-разрядной шине PCI, в них ввели возможность обращения к регистру данных АТА двойными словами. При этом за одну 32-битную операцию процессора и шины PCI по шине АТА последовательно передаются два 16-битных слова. Возможностью 32-разрядного доступа к регистру данных можно управлять через параметр CMOS Setup (IDE 32-bit Transfer — Enable/Disable). .

Более сложные контроллеры (отдельные карты расширения) могут иметь собственную кэш-память и управляющий процессор. Они могут аппаратно поддерживать «зеркальные» диски и организовывать RAID-массивы АТА-дисков. Некоторые адаптеры позволяют соединять несколько физических дисков в один логический на уровне вызовов BIOS.

Адаптеры АТА одно время часто размещали на звуковых картах (для подключения CD-ROM). По умолчанию им назначают ресурсы каналов 3 или 4. К этим каналам можно подключать винчестеры, но будет ли их там искать BIOS во время теста POST — вопрос. Современные версии BIOS позволяют хранить конфигурационные параметры четырех жестких дисков, старые версии — двух. Четыре канала АТА физически позволяют подключить до восьми накопителей, но работаснимилимитированапрограммнымиограничениями.

Существуют гибридные адаптеры для подключения АТА HDD к шинам XT и МСА или, например, к LPT-порту. В последнее время получили распространение переходные адаптеры, позволяющие подключать устройства ATA/ATAPI к шине USB. При использовании USB 2.0 простота подключения внешнего устройства будетсочетаться исвысокойскоростьюпередачиданных.

КонтроллерPCI IDE

Для шины PCI существует стандартный вариант интерфейса контроллера IDE (название «АТА» здесь не очень уместно, поскольку оно ориентировано на ISAподобную шину). Спецификация «PCI IDE Controller Specification» появилась еще в 1994 году, она описывала реализацию контроллера, совместимого с интерфейсом АТА. По сравнению с обычным контроллером, у данного контроллера в блоке управляющих регистров имеется лишь один адрес (устаревший регистр адреса недоступен). Чуть позже была опубликована спецификация «Programming Interface for Bus Master IDE Controller», описывающая работу с устройствами в режиме DMA спрямым управлением шиной. Двухканальный контроллер в тер-

776 Глава13. Параллельныешиныпериферийныхустройств— АТАиSCSI

микологии PCI является одной функцией (имеет один 256-байтный блок конфигурационных регистров); четырехканальный контроллер будет уже многофункциональным устройством PCI. Для контроллера определены два режима распределенияресурсов:

*режим совместимости (compatibility), в котором каналам выделяются традиционные областиадресов ввода-выводаилиниипрерываний;

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

Распределение ресурсов для контроллера иллюстрирует табл. 13.7. В режиме совместимости контроллер может работать только на первичной шине PCI, поскольку мост PCI-PCI не будет транслировать обращения по стандартным адресам на другую шину. В режиме PCI с перемещаемыми ресурсами контроллер может находиться на любой шине. Конкретный контроллер может иметь возможность изменения режима или же поддерживать лишь один из этих режимов. Если контроллер по умолчанию (или всегда) работает в режиме совместимости, то для ПО он «прозрачен» — работа с ним не отличается от традиционного контроллера АТА. Текущий режим и возможность его смены отражаются в байте программного интерфейса, являющегося последним элементом идентификатора класса устройства. Байт интерфейса имеет следующее назначение битов:

« бит 7 (Bus master) — возможность работы в режиме прямого управления;

ибиты 6:4-000 (признак стандартного интерфейса, соответствующего PCI IDE Controller Specification);

т бит 3 — индикатор программируемости режима для второго канала (возможности изменения бита 2);

ибит 2 — режим второго канала: 0 — совместим со стандартным контроллером АТА IDE, 1 - е контроллером PCI IDE;

*бит 1 — индикатор программируемости режима для первого канала (возможности изменения бита 0);

*бит 0 — режим первого канала: 0 — совместим с АТА IDE, 1 — PCI IDE.

Таблица13.7. РесурсыконтроллераPCI IDE

Ресурс

Режимсовместимости:

РежимPCI: базовыйадрес

 

ресурсыдляканалов

(смещениевконфигура-

 

 

 

ционномпространстве) для

 

 

 

канала

 

 

1

2

1

2

Блоккомандныхрегистров

!FOh-lF7h

170h-177h

lOh

14h

Блокуправляющихрегистров

3F6h

376h

18h

ICh

Прерывание

14

15

 

 

Типовой контроллер имеет класс 01:01:80h и реализован в чипсетах большинства современных системных плат. Контроллер выглядит как расширение стандартного АТА-контроллера, обеспечивающего доступ к регистрам устройств АТА/ ATAPI по известным адресам. Расширение касается прямого управления шиной

13.1. ИнтерфейсАТА(IDE) 777

PCI (bus mastering), благодаря которому можно реализовать обмен данными с устройствами в режимах DMA. Контроллер позволяет использовать все доступные ему режимы обмена РЮ (3,3-16,6 Мбайт/с), режимы DMA в стиле контроллера

8237А (2-16,6 Мбайт/с) и режимы UltraDMA (16,6-100 Мбайт/с). Все настройки временных параметров выполняются через конфигурационные регистры PCI, их состав может быть специфичным. Однако с этими регистрами должен иметь дело только тест POST, устанавливающий для каждого обнаруженного устройства ATA/ATAPI оптимальные режимы РЮ и DMA/UltraDMA. В эти настройки может вмешаться пользователь, установив какие-либо ограничивающие параметры в CMOS Setup. В итоге после конфигурирования во время теста POST при обращении программ к устройствам остается лишь выбор между РЮ и DMA (если устройство поддерживает DMA). Для обмена в режиме РЮ никаких специальных действий не требуется, программа просто выполняет чтение или запись в регистр данныхкомандамиREP INS/OUTS. ДляобменаврежимеDMA требуется«зарядить» и запуститьконтроллерпрямогоуправления, очемипойдетречьниже.

Двухканальный контроллер имеет 16-байтный блок регистров, расположенный в пространстве портов ввода-вывода. Базовый адрес блока хранится в конфигурационном пространстве устройства по смещению 20h (берутся младшие 16 бит двойного слова). Расположение регистров в блоке иллюстрирует табл. 13.8, имена регистров имеют префикс BMI (Bus Master IDE) и окончание Р (Primary) для первого канала, S (Secondary) — для второго; в описании будем использовать окончание х(любойканал).

Таблица13.8. БлокрегистровконтроллераPCI IDE

Смещение

Длина,

Регистрдляпервого/второгоканаловдля

канала

байт

 

1

2~____ _______________________ ____________________

О

8

 

1

BMICP/BMICS (RW) - регистр команд:

 

 

 

 

и бит0: 1 — запуск, 0 — останов;

 

 

 

 

& бит3 — направление: 0 — чтениепамяти,

 

 

 

 

1 — записьвпамять; ____________________т биты1-2. 3-7 -

резерв(0)_______________________

1_____9_____1______Резерв(0)_____________________________________

2

OAh

I

BMISP/BMISS - регистр состояния:

 

 

 

 

^ битО(R/0) — активность канала;

 

 

 

 

бит1 (RWC) — ошибкаобменапоPCI;

Ш бит2 (RWC) — запроспрерыванияотустройства; ?$ биты3-4 — резерв(0);

& бит5 (RW) - устройство-0 поддерживает DMA;

Ш бит6 (RW) — устройство-1 поддерживаетDMA;

& бит7 — признаксимплексногорежима(1, есликаналы

_______________________немогут работать одновременно)_________________

3_____OBh

1______Резерв(0)____________________________________

 

 

 

 

4____ОСЬ

4______BMIDPTP/ BMIDPTS (RW) - адрес таблицы дескрипторов_______

Регистр команд BMICx, доступный по чтению и записи, используется для запуска контроллера и задания направления передачи. Запуск осуществляется при переходе бита 0 из нулявединицу, останов длятекущего сеанса необратим. Ос-

778 Глава13. Параллельныешиныпериферийныхустройств— АТАиSCSI

танов контроллера (сброс бита) нормально выполняют по окончании выполнения команды ATA/ATAPI (по прерыванию). Преждевременный останов приведет к ошибке выполнения команды с соответствующим сообщением. Направление должно быть задано до запуска контроллера, изменять его «на ходу» нельзя.

Врегистре состояния BMISx биты 1 и 2 устанавливаются аппаратно, а сбрасываются при записи байта с единичным значением в соответствующем бите. После сброса бита запроса прерывания он снова установится только по следующему фронту сигнала прерывания от устройства. Биты 5 и 6 устанавливаются программно, обычно когда процедура POST определяет возможности подключенных устройств и программирует режимы контроллера. Регистр состояния должен быть прочитан после завершения команды для определения успешности операций на шине PCI.

Врегистр BMIDPTx заносятадрес таблицыдескрипторов областейпамяти, с

которыми производится обмен данными. Контроллер способен при чтении памяти собрать поток данных из произвольного числа областей (gathered read), а при записи «разбросать» поток по этим областям (scatter write). Такая возможность встречалась еще в EISA-системах, она позволяет преодолевать барьеры на границах страниц, свойственные стандартным контроллерам DMA. Каждый дескриптор занимает 8 байтов:

i* байты0-3 (двойное слово) — физический адресначалаобласти(четный); ж байты 4-5 (слово) — счетчик байтов (четный, 0000 соответствует 65 536); » байты 6-7 (слово) — признак конца таблицы (бит 15), биты 0-14 не используются (0).

Каждая область может быть расположена в произвольном месте памяти (кроме отображаемой на шину ISA) и иметь произвольный размер, но не должна пересекать границы страниц размером 64 Кбайт. Таблица дескрипторов должна быть выровнена по границе двойного слова и не должна пересекать границу страницы размером 64 Кбайт. Число дескрипторов в таблице произвольно, последний должен содержать признак конца таблицы. Обмен начинается с области, описанной первым дескриптором; за ней идет область следующего дескриптора и так далее до последнего. Контроллер остановится по исчерпании счетчика в последнем дескрипторе или по инициативе устройства, если в обмене должно участвовать меньшее число данных. Если устройству данных не хватит, оно укажет на ошибку призавершениикоманды.

После запуска контроллера биты 2,0 регистра состояния отражают следующие ситуации:

» 0,1 — происходит обмен с памятью, прерывания по концу операции еще нет;

ss1,0 — обмензавершен, переданный объемсоответствуетобъемуописанных буферов (нормальное завершение);

в1,1 — устройство завершило обмен, но по команде АТА передано меньше данных, чемописановтаблицах (допустимое завершение);

as 0,0 — ошибка на шине (бит 1), или в таблицах описано меньше данных, чемвкомандеАТА.

13.1. ИнтерфейсАТА(IDE) 779

13.1.9. КатегорииустройствIDE

Интерфейс АТА позволяет подключать устройства различных категорий, отличающихся «уровнем интеллекта» встроенного контроллера. Первые дисковые накопители IDE относятся к категории неинтеллектуальных устройств — NonIntelligent IDE. Они не выполняли трансляцию нумерации секторов — их параметры внешней геометрии совпадали с реальными. Команды идентификации устройства и установки параметров невыполнялись. Дефектные блоки, отмеченные в заводском списке, были видны пользователю. Низкоуровневое форматирование выполнялось непосредственно по команде, так что неудачное форматирование могло понизить производительность из-за нарушения оптимальных установок чередованияисмещения.

Позже появились более интеллектуальные устройства — Intelligent. АТА IDE, способные выполнять расширенные АТА-команды — идентификацию устройства и установку параметров. Поддерживается трансляция геометрии. Дефектные секторы скрыты от пользователя (до исчерпания резерва). Для ускорения обмена эти устройства поддерживают блочные режимы передачи Read Multiple и Write Multiple, а также высокоскоростные режимы обмена РЮ и DMA. Низкоуровневое форматированиевозможнотолькоприустановкевнешнейгеометрии, совпадающей с реальной. Однако форматирование опять-таки может «снести» заводскую оптимизацию, хотя более поздние устройства либо игнорируют стандартную командуформатированиятрека, либопростозаполняютвсесекторытреканулями.

Кследующейкатегорииотносятсясовременныеустройствасзоннымформатом записи — Intelligent Zoned Recording IDE. Поскольку они имеют различное количество секторов на разных треках (для повышения плотности хранения), трансляция геометрии является для них обязательной (спецификация АТА не предусматривает сообщения устройством способа разбиения на зоны и формата каждой зоны, так что обращаться к ним можно только по внешнему трехмерному (CHS) или линейному (LBA) адресу). Информация о зонном распределении хранится, как правило, в служебной области носителя. Она используется микропрограммой контроллера устройства, и с помощью специальных программных средствдонееможнодобратьсяи, например, отключитьдефектнуюзону(уменьшив доступный объем диска). Низкоуровневое форматирование по стандартной команде как таковое не выполняется. Такие устройства либо отвергают команду, либо выполняют фиктивно (только позиционируя головки), либо просто заполняютвсесекторытреканулями.

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

13.1.10. Конфигурированиеустройств

Устройства АТА перед подключением к шине должны быть корректно сконфигурированы. Конфигурированиеподразумеваетвыбортипаинтерфейсаиопреде-