什么是握手?


握手是一种 I/O 控制方法,用于将 I/O 设备与微处理器同步。由于一些 I/O 设备接收或释放数据的速度远低于微处理器,因此使用此技术来控制微处理器以 I/O 设备的数据传输速率与 I/O 设备一起工作。

脉冲控制方法的缺点是,启动传输的源单元无法知道目标单元是否已接收位于总线上的数据元素。启动传输的目标单元无法知道源单元是否已将信息放置在总线上。

握手方法通过引入第二个控制信号来解决此问题,该信号支持对启动传输的单元的响应。数据传输的两线握手方法的基本特征如下。一条控制线的方向与数据在总线中从源到目标的流动方向相同。

它由源单元用于通知目标单元总线中是否有有效数据。另一条控制线的方向与数据在总线中从目标到源的流动方向相反。它由目标单元用于通知源单元是否可以接收信息。传输期间的控制顺序基于启动传输的单元。

该图显示了源单元启动时的数据传输过程。两条握手线分别是数据有效(由源单元产生)和数据已接收(由目标单元产生)。时序图显示了两个单元之间信号的交换。

部分 (c) 中显示的事件序列显示了系统在任何给定时间可能处于的四种可能状态。源单元通过将信息放置在总线上并启用其数据有效信号来启动传输。目标单元从总线获取数据后,将激活数据已接收信号。

图中显示了使用握手线的目标单元启动的传输。由目标单元产生的信号名称已修改为准备接收数据以反映其新定义。在这种情况下,源单元直到从目标单元获取准备接收数据信号后才会将数据放置在总线上。

如果将准备接收数据信号视为数据已接收的补码,则这两种情况下的事件序列将相同。源单元启动的传输和目标单元启动的传输之间的唯一区别在于它们对初始状态的选择。

更新于: 2023年10月31日

27K+ 次查看

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告