В поле START возможны следующие коды:
? 0000 – начало цикла обращения хоста к устройству;
? 0010 – предоставление доступа ведущему устройству 0;
? 0011 – предоставление доступа ведущему устройству 1;
? 1111 – принудительное завершение цикла.
Поле CYCTYPE задает тип и направление передачи. Бит 0 задает направление (0 – чтение, 1 – запись), биты [2;1] – тип обращения (00 – порт, 01 – память, 10 – DMA, 11 – резерв), бит 3 – резерв.
Поле TAR (Turn-Around) служит для смены владельца шины LAD [3:0], оно занимает 2 такта. В первом такте прежний владелец помещает код 1111, во втором переводит буферы в третье состояние.
Поле ADDR служит для передачи адреса. В цикле памяти оно занимает 8 тактов (32 бита), в цикле ввода-вывода 4 такта. Передача адреса начинается со старших битов для того, чтобы раньше срабатывал дешифратор адреса.
В поле DATA передаются данные. На каждый байт требуется 2 такта, передача начинается с младшей тетрады. Многобайтные передачи начинаются с младшего байта.
Поле Sync служит для введения тактов ожидания устройством, к которому выполняется обращение. Оно может содержать следующие коды:
? 0000 – готовность (без ошибок), для DMA означает снятие запроса для данного канала;
? 0101 – короткое ожидание (несколько тактов);
? 0110 – длинное ожидание;
? 1001 – готовность и присутствие запроса для канала DMA (для других топов обращения не доступно);
? 1010 – ошибка: данные переданы, но возникли условия, при которых на шинах PCI или ISA выработался бы сигнал SERR# или IOCHK# (для DMA также означает снятие сигнала запроса).
Поле синхронизации обеспечивает контроль передачи, введение тактов ожидания и механизм тайм-аутов. Начав цикл, хост читает поле синхронизации. Если в течение трех тактов адресованное устройство не ответит, хост считает, что его нет на шине, и прекращает транзакцию. Если приходит код короткого ожидания, хост дожидается его смены на готовность или ошибку, но после 8 тактов ожидания он прервет транзакцию по тайм-ауту. Код длинного ожидания может приходить много раз, но ответственность за отсутствие зависания ложится на адресованное устройство. При прямом управлении поле SYNC выставляется хостом, и устройство должно ожидать готовности.
Во всех обращениях хоста к памяти или портам передается по одному байту. Для чтения памяти требуется 21 такт (0,63 мкс), что обеспечивает скорость чтения памяти 1,59 Мбайт/с. Если память конвейеризирована, то последующие обращения будут быстрее. Для записи в память поле SYNC занимает 1 такт, а весь цикл – 17 тактов (0,51 мкс), что дает скорость записи 1,96 Мбайт/с. Обращения к портам за счет более короткой адресации и без тактов ожидания занимают по 13 тактов (0,39 мкс), что дает скорость 2,56 Мбайт/с для чтения и записи.
