输入输出单元的框图主要包含以下几个组成部分:
****1.**** 数据总线缓冲器
****2.**** 读写控制逻辑
****3.**** 端口 A、端口 B 寄存器
****4.**** 控制与状态寄存器
接下来,让我们深入探讨一下这些组件的具体功能。
数据总线缓冲器:
总线缓冲器利用双向数据总线与 CPU 进行通信。接口单元与 CPU 之间的所有控制字数据以及状态信息,都是通过数据总线进行传输的。
端口 A 和 端口 B:
端口 A 和 端口 B 主要用于在输入输出设备与接口单元之间传输数据。每个端口都包含双向数据输入缓冲器和双向数据输出缓冲器。接口单元通过端口 A 和端口 B 直接连接输入设备、输出磁盘,或者是需要同时进行输入和输出的设备,例如调制解调器、外部硬盘驱动器或磁盘等。
控制与状态寄存器:
CPU 会根据控制信息向控制寄存器发送控制指令。接口单元负责控制 CPU 与输入输出设备之间的输入和输出操作。状态寄存器中存在的位用于检查各种状态条件。状态寄存器不仅指示数据寄存器、端口 A 和端口 B 的状态,还会记录数据传输过程中可能发生的错误。
读写控制逻辑:
这个模块负责为整个设备的操作生成必要的控制信号。所有来自 CPU 的命令都由该模块接收。它还允许接口单元的状态通过该模块传输到数据总线上。此外,它接收来自系统总线的 CS(片选信号)、读写控制信号,以及来自系统地址总线的 S0、S1 信号。读写信号用于定义数据总线上的数据传输方向。
****读操作****: CPU I/O 设备
读信号指示数据从接口单元传输到 CPU,而写信号指示数据通过数据总线从 CPU 传输到接口单元。地址总线用于选择接口单元。地址总线的两个最低有效线(A0, A1)连接到选择线 S0 和 S1。这两个选择输入线用于选择接口单元中的四个寄存器之一。接口单元的选择标准如下:
读状态:
操作
接口单元的选择
—
—
—
读
S 0
0
0
端口 A
0
0
端口 B
0
1
控制寄存器
0
1
状态寄存器写状态:
操作
接口单元的选择
—
—
—
读
S 0
1
0
端口 A
1
0
端口 B
1
1
控制寄存器
1
1
状态寄存器示例:
- 如果 S0, S1 = 0 1,则选择端口 B 数据寄存器,以便在 CPU 和 I/O 设备之间传输数据。
- 如果 S0, S1 = 1 0,则选择控制寄存器,用于存储 CPU 发送的控制信息。