logo
Лекции - Чернышева

Асинхронный обмен данными

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

Записав эту информацию в буфер, процессор переходит к выполнению следующей команды. Фактически обмен происходит, когда в буферах соответствующих процессоров содержится информация об обмене.

При асинхронном обмене можно одновременно обмениваться информацией и проводить вычисления.

За время между обращением к функции асинхронного обмена и фактическим обменом значение переменной может быть изменено, т.к. в буфере хранится только ее адрес. Фактически будет передано то значение, которое имела данная переменная на момент реальной передачи.

При приеме может быть изменено значение принимаемой переменной, даже если она в это время участвовала в других операторах.

Yandex.RTB R-A-252273-3
Yandex.RTB R-A-252273-4