计算机组织|异步输入输出同步

异步输入输出是一种输入输出处理形式,允许其他设备在传输或数据传输完成之前进行处理。

null

异步输入输出同步面临的问题—— 不确定数据总线上的数据是否新鲜,因为它们没有发送或接收数据的时隙。

这个问题可以通过以下机制解决:

  1. 选通
  2. 握手

数据通过数据总线从源传输到目的地。

1.选通机构:

  1. 源启动选通- 当源启动数据传输过程时。频闪只是一个信号。

    图片[1]-计算机组织|异步输入输出同步-yiteyi-C++库

    (i) 首先,源将数据放在数据总线和选通信号上。 (ii)在看到选通的接通信号时,从数据总线读取数据。 (iii)从目的地读取数据后,从目的地获取数据。

    信号可以被视为:

    图片[2]-计算机组织|异步输入输出同步-yiteyi-C++库

    它表明,首先数据被放在数据总线上,然后选通信号被激活。

  2. 目的地启动信号- 当目的地启动数据传输过程时。

    图片[3]-计算机组织|异步输入输出同步-yiteyi-C++库

    (i) 首先,在选通信号上指定目的地,以确保源将新数据放在数据总线上。 (ii)在看到on信号时,Source会将新数据放到数据总线上。 (iii)目的地从数据总线读取数据,并发出选通断开信号。

    信号可以被视为:

    图片[4]-计算机组织|异步输入输出同步-yiteyi-C++库

    它表明,第一个选通信号被激活,然后数据被放到数据总线上。

基于选通的异步输入输出面临的问题——

  1. 在源端启动的选通中,假设目的端已从数据总线读取数据,但它们不能保证。
  2. 在目的地启动的选通中,假设源已将数据放在数据总线上,但它们不能保证。

这个问题可以通过 握手 .

2.握手机制:

  1. 源启动握手- 当源启动数据传输过程时。它由以下信号组成: 有效数据: 如果ON,则表明数据总线上的数据有效,否则无效。 接受的数据: 如果开启,则表明数据被接受,否则不被接受。

    图片[5]-计算机组织|异步输入输出同步-yiteyi-C++库

    (i) 源将数据放置在数据总线上,并启用数据有效信号。 (ii)目的地从数据总线接收数据,并启用数据接收信号。 (iii)在此之后,禁用数据有效信号意味着数据总线上的数据现在无效。 (iv)禁用数据接收信号,过程结束。

    现在可以确定目的地已经通过数据接收信号从数据总线读取了数据。

    信号可以被视为:

    图片[6]-计算机组织|异步输入输出同步-yiteyi-C++库

    它表明,首先数据被放在数据总线上,然后数据有效信号被激活,然后数据接受信号被激活。接收数据后,第一个数据有效信号关闭,然后数据接受信号关闭。

  2. 目的地发起的握手- 当目的地启动数据传输过程时。 索取资料: 如果请求将数据放到数据总线上。 有效数据: 如果ON,则表明数据在数据总线上有效,否则数据无效。

    图片[7]-计算机组织|异步输入输出同步-yiteyi-C++库

    (i) 当目的地准备好接收数据时,数据信号请求被激活。 (ii)响应源将数据放在数据总线上,并启用数据有效信号。 (iii)目的地随后从数据总线接收数据,并在接收数据后,禁用数据信号请求。 (iv)最后,数据有效信号被禁用意味着数据总线上的数据不再有效。

    现在可以确定源已经通过数据有效信号将数据放到数据总线上。

    信号可以被视为:

    图片[8]-计算机组织|异步输入输出同步-yiteyi-C++库

    它表明,首先对数据信号的请求被激活,然后数据被放到数据总线上,然后数据有效信号被激活。读取数据后,首先发出数据信号请求,然后发出数据有效信号。

© 版权声明
THE END
喜欢就支持一下吧
点赞6 分享