Организация асинхронного обмена в БЭВМ. Пример программы. Временные издержки асинхронного обмена
Асинхронный обмен — это способ программно-управляемого ввода-вывода, при котором процессор и внешнее устройство работают с разными скоростями. Поэтому перед выполнением обмена процессор должен убедиться, что устройство готово к передаче данных.

Готовность внешнего устройства определяется по специальному флагу в регистре состояния КВУ (6 бит SR). Процессор циклически (spin-loop) опрашивает этот флаг до тех пор, пока устройство не станет готовым. После этого выполняется команда ввода или вывода данных.
Алгоритм асинхронного обмена (ввод):
- Проверить флаг готовности устройства (6 бит SR).
- Если устройство не готово — продолжать ожидание.
- Если готово, процесор выходит из цикла ожидания и выполняет команду ввода.
- Процессор выставляет на шину адрес контроллера. Дешифратор адреса активирует ЛУ контроллера.
- ЛУ подает ток на приёмо-передатчики регистра DR.
- Байт из регистра DR записывается по системной шине данных в младшие 8 бит регистра AC процессора.
- ЛУ контроллера мгновенно подает импульс на сброс 6-м бита SR обратно в 0, переводя устройство в режим ожидания нового символа.
Пример программы асинхронного ввода:
RES: WORD 0
START: CLA
WAIT: IN 5
AND #0x40
BEQ WAIT
IN 4
ST RES
HLT
Временные издержки асинхронного обмена
Недостатком асинхронного обмена является необходимость постоянного опроса флага готовности устройства. Во время ожидания процессор выполняет spin-loop и не может заниматься полезной обработкой данных. В результате часть процессорного времени расходуется впустую, особенно при работе с медленными внешними устройствами.