Интерфейсы ПК

       

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


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

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

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

допустимые параметры временной диаграммы цикла обме- на (табл. 6.10). Обмен PIO программно реализуется с помо- щью инструкций ввода/вывода строк REP INS или REP OUTS с занесенным в регистр СХ количеством слов (или байт) в передаваемом блоке. Эти инструкции обеспечивают макси- мально возможную скорость обмена для данного процессо- ра и системной шины. "Обуздать" процессор в соответствии с выбранным режимом входит в задачу адаптера АТА, кото- рый использует для удлинения цикла сигнал готовности шины (для ISA - IOCHRDY). Традиционные режимы 0, 1 и 2 имеют временные параметры, фиксируемые только хост-адап- тером. Для прогрессивных режимов АТА-2 (PIO Mode 3 и старше) устройство может затормозить обмен, используя сигнал готовности IORDY. Программный обмен на все время передачи блока занимает и процессор, и системную шину.

PIO mode

МимимаяьмА"

ГяП-МЧОЛвтЧС

время цикла, нс

Скорость передачи, Мбайт/с



Интерфейс

0

600

3,3

АТА

1

383

5,2

АТА

2

240

8,3

АТА

3

180

11,1

E-IDE, АТА-2 (используется IORDY)

4

120

16,6

E-IDE, Fast АТА-2 (используется IORDY)

<
Обмен по каналу DMA занимает исключительно шины ввода/ вывода и памяти. Процессору требуется выполнить только процедуру инициализации канала, после чего до прерывания от устройства в конце передачи блока он свободен (этим мо- гут воспользоваться многозадачные системы). Стандартные каналы DMA шины ISA для интерфейса АТА практически не используются из-за низкой пропускной способности. Вы- сокопроизводительные адаптеры АТА могут иметь собствен- ные более эффективные контроллеры. Режимы обмена по ка- налу DMA бывают одиночными и множественными. При одиночном режиме (Single Word DMA) устройство для переда-

чи каждого слова вырабатывает сигнал запроса DMARQ и сбра- сывает его по сигналу DMACK#, подтверждающему цикл об- мена. При множественном режиме (Multiword DMA) на сиг- нал DMARQ хост отвечает потоком циклов, сопровождаемых сигналами DMACK#. Если устройство не справляется с пото- ком, оно может приостановить его снятием сигнала DMARQ, а по готовности установить его снова. Множественный режим позволяет развить более высокую скорость передачи.

Новейшее достижение - режим Ultra DMA, позволяющий до- стигнуть скорости передачи 33 Мбайт/с и обеспечить досто- верность передачи, чего не делалось ни в PIO, ни в стандарт- ных режимах DMA (а зря!). Стандартом АТА-4 определено 3 режима Ultra DMA (0, 1 и 2), выбор режима осуществляется командой Set Features. В режимах Ultra DMA сигналы DMARQ и DACK# сохраняют свое назначение, а вот смысл сигналов DIOR#, DIOW# и IORDY на время передачи пакета (Ultra DMA Burst) существенно меняется (см. 6.1). В пакете данные на шине сопровождаются стробом, генерируемым источником данных, причем для синхронизации используются оба пере- пада сигналов. Это позволяет повысить пропускную способ- ность шины, не увеличивая частоту переключении сигналов сверх 8,33 с'1 (этот предел для обычного кабеля достигается в режиме PIO Mode 4 и Multiword DMA Mode 2). Каждое пе- реданное слово участвует в подсчете CRC-кода, который пе- редается в конце пакета.


Подсчет ведется и источником данных, и приемником. При несовпадении принятого и ожи- даемого кода фиксируется ошибка передачи. Передача в па- кете может приостанавливаться, если приемник снимет сиг- нал готовности (DDMARDY# или HDMARDY#). Передача пакета может прекращаться по инициативе устройства (снятием сиг- нала) или хоста (сигналом STOP). Противоположная сторона должна подтвердить окончание цикла сигналом STOP или DMARQ соответственно.

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

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

Параметры стандартных режимов обмена по DMA приведе- ны в табл. 6.11.

Режим

МмиЫиЯЯШПА ВПАЛАв

•--n4DAB-w WWW

цикла,нс

Скорость передачи, Мбайт/с

Single word DMA Mode 0

960

2,08

Single word DMA Mode 1

480

4,16

Single word DMA Mode 2

240

8,33

Multiword DMA Mode 0

480

4,12

Multiword DMA Mode 1

150

13,3

Multiword DMA Mode 2

120

16,6

Ultra DMA Mode 0

240*

16,6

Ultra DMA Mode 1

160*

25

Ultra DMA Mode 2

120*

33

* В пакете данных режима Ultra DMA за каждый такт передаются два слова данных, один по фронту синхронизирующего сигнала, другой - поспаду.

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


Некоторые чип- сеты не позволяют независимо программировать режим об- мена для устройств канала. В таком случае при подключе- нии двух разных устройств (например, PIO Mode 1 и 3) обмен с обоими устройствами будет происходить со ско- ростью меньшего (PIO Mode 1). Поэтому не рекомендуется к одному каналу АТА (порту IDE, что то же самое) подклю- чать быстрый винчестер и медленный CD-ROM. Иногда за- вязка режимов обмена двух устройств обусловлена ограни-

ченным набором параметров конфигурации в BIOS. Быстрые режимы множественного обмена по DMA реализуются толь- ко драйверами ОС. "Глупый" драйвер может попытаться на- вязать медленный режим обоим устройствам канала, так что смешивать разные устройства не стоит и по этой причине.

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


Содержание раздела