异步输入输出是一种输入输出处理的形式,它允许其他设备在完成传输或数据传输之前进行处理。
异步输入输出同步面临的问题–
不确定数据总线上的数据是否新鲜,因为它们没有用于发送或接收数据的时隙。
此问题通过以下机制解决:
- 频闪
- 握手
数据通过两者之间的数据总线从源传输到目标。
1.频闪机制:
- 源启动选通–当源启动数据传输过程时。频闪只是一个信号。
(i)首先,信号源将数据放在数据总线上,并将选通信号打开。
(ii)看到选通的ON信号的目的地,从数据总线读取数据。
(iii)按目的地从数据总线读取数据后,选通灯熄灭。信号可以看成是:
它表明先将数据放在数据总线上,然后选通信号变为活动状态。
- 目标启动信号–目标启动数据传输过程时。
(i)首先,目的地将选通信号置ON,以确保信号源将最新数据放入数据总线。
(ii)看到ON信号的消息源将新数据放到数据总线上。
(iii)目标从数据总线读取数据,并且选通信号变为OFF信号。信号可以看成是:
它显示出第一个选通信号被激活,然后数据被放入数据总线。
基于Strobe的异步输入输出面临的问题–
- 在源启动的选通中,假定目标已从数据总线读取数据,但不确定。
- 在目标启动的选通中,假定源已将数据放到数据总线上,但不确定。
通过握手可以解决此问题。
2.握手机制:
- 源启动握手–源启动数据传输过程时。它由信号组成:
数据有效:如果为ON,则表明数据总线上的数据有效,否则无效。
数据已接受:如果为ON,则表示数据已被接受,否则未接受。(i)源将数据放在数据总线上,并启用数据有效信号。
(ii)目标从数据总线接受数据并启用数据接受信号。
(iii)此后,禁用数据有效信号表示数据总线上的数据现在无效。
(iv)禁用数据已接受信号,然后处理结束。现在可以确定目标已通过数据接受信号从数据总线读取了数据。
信号可以看成是:
它显示了先将数据放入数据总线,然后数据有效信号变为活动状态,然后数据接受信号变为活动状态。接受数据后,首先数据有效信号断开,然后数据接受信号断开。
- 目标启动的握手–目标启动数据传输过程时。
REQUEST FOR DATA:如果为ON,则请求将数据放入数据总线。
数据有效:如果为ON,则表明数据总线上的数据有效,否则为无效数据。(i)当目的地准备好接收数据时,“数据请求”信号将被激活。
(ii)作为响应的源将数据放在数据总线上,并启用数据有效信号。
(iii)目标然后接受来自数据总线的数据,并且在接受数据之后,禁用数据请求信号。
(iv)最后,禁用数据有效信号意味着数据总线上的数据不再是有效数据。现在可以确定信号源已通过数据有效信号将数据放入数据总线。
信号可以看成是:
它显示了先请求数据信号变为活动状态,然后将数据放入数据总线,然后数据有效信号变为活动状态。读取数据后,首先发出“数据请求”信号,然后发出“数据有效”信号。