Сигнал (шина)1 цикл2 цикл
1. Вывод 16-разрядных данных в 16-битное устройство по четному адресу
SBHE#L-
SADX(A0=0)-
D[15:8]АН-
D[7:0]AL-
IOCS16#L-
2. Вывод 16-разрядных данных в 16-битное устройство по нечетному адресу ххх1, ххх5, xxx9, xxxD
SBHE#LH
SADX(A0=1)DX+1 (A0=0)
D[15:8]AL0
D[7:0]ALAH
IOCS16#LL
3. Вывод 16-разрядных данных в 16-битное устройство
SBHE#HL
SADX+1 (A0=0)DX (A0=1)
D[15:8]0AL
D[7:0]AH0
IOCS16#LL
4. Вывод 16-разрядных данных в 8-битное устройство по четному адресу
SBHE#LL
SA[1:0]DX(A0=0)DX+1 (A0=1)
D[15:8]AHAH
D[7:0]ALAH
IOCS16#HH
5. Вывод 16-разрядных данных в 8-битное устройство по нечетному адресу ххх1, ххх5, xxx9, xxxD
SBHE#LH
SA[1:0]DX(A0=1)DX+1 (A0=0)
D[15:8]AL0
D[7:0]ALAH
IOCS16#HH
6. Вывод 16-разрядных данных в 8-битное устройство по нечетному адресу xxx3, ххх7, xxxB, xxxF
SBHE#HL
SA[1:0]DX+1(A0=0)DX(A0=1)
D[15:8]0AL
D[7:0]AHAL
IOCS16#HH
7. Вывод 8-разрядных данных в 16-битное устройство по четному адресу
SBHE#H-
SA[1:0]DX(A0=0)-
D[15:8]0-
D[7:0]AL-
IOCS16#L-
8. Вывод 8-разрядных данных в 16-битное устройство по нечетному адресу
SBHE#L-
SA[1:0]DX(A0=1)-
D[15:8]AL-
D[7:0]0(AL?)-
IOCS16#L-

Момент помещения действительных данных на линии SD[15:0] определяется управляющими сигналами чтения/записи, так что исполнителю не требуется синхронизация с тактовым сигналом шины. В циклах чтения адресованный исполнитель должен выдать данные на шину по началу (спаду) соответствующего сигнала чтения (IOR#, MEMR#, SMEMR#) и удерживать их до конца действия сигнала (пока не произойдет подъем сигнала). В циклах записи задатчик выставляет действительные данные несколько позже начала (спада) сигнала записи (IOW#, MEMW#, SMEMW#). Устройство-исполнитель должно фиксировать для себя эти данные в конце цикла по подъему сигнала записи. От устройства-исполнителя не предусматривается никаких подтверждений исполнения циклов; длительность цикла устанавливает задатчик, но исполнитель может потребовать удлинения или укорочения циклов. С помощью сигнала IOCHRDY исполнитель может удлинить цикл на произвольное число тактов, при этом задатчик будет вводить дополнительные такты ожидания (wait states). Обычно контроллер шины следит за длительностью цикла и по достижении критического времени принудительно его завершает (по тайм-ауту, возможно, и не сообщая об этом событии). Слишком длинные циклы тормозят работу компьютера, а превышение длительности 15 мкс может привести к сбою регенерации и потере данных в ОЗУ. С помощью сигнала 0W# исполнитель предлагает задатчику укоротить цикл, исключив такты ожидания. Реакция задатчика на одновременное использование сигналов IOCHRDY и 0WS# непредсказуема, этой ситуации следует избегать.

ВНИМАНИЕ

Некорректное управление сигналом IOCHRDY (его «залипание» на низком уровне) тормозит работу компьютера.

Номинальная длительность цикла определяется чипсетом и может программироваться в BIOS Setup заданием числа тактов ожидания (wait states). При этом циклы обращения к памяти, как правило, короче циклов обращения к портам ввода-вывода. Для управления длительностью цикла используются также сигналы управления разрядностью передачи: если устройство поддерживает 16-битные передачи, предполагается, что оно может работать с меньшим количеством тактов ожидания. Этим объясняется, что в BIOS Setup длительности циклов ISA задаются раздельно как для памяти и ввода-вывода, так и для 8- и 16-битных операций.

Кроме длительности цикла, устройства могут быть критичны к времени восстановления (recovery time) — длительности пассивного состояния управляющих сигналов чтения-записи между циклами. Этот параметр также может программироваться в BIOS Setup и тоже раздельно для 8- и 16-разрядных операций.

Перейти на страницу:

Все книги серии Наиболее полное и подробное руководство

Похожие книги