2. I/O 接口
I/O接口是主机和外设之间的交接界面,通过接口可以实现主机和外设之间的信息交换。
2.1 I/O接口的功能
- 进行地址译码和设备选择
- 实现主机和外设的通信联络控制
- 实现数据缓冲
- 信号格式的转换
- 传送控制命令和状态信息
2.2 I/O接口的基本结构
I/O接口在主机侧通过I/O总线与内存、CPU相连。
数据缓冲寄存器用与暂存与CPU或内存之间传送的数据信息。
状态寄存器用于记录接口和设备的状态信息。
控制寄存器用来保存CPU对外设的控制信息。
状态寄存器和控制寄存器在方向上相反,在访问时间上错开,因此将他们合二为一。
下图为I/O接口的通用结构:
注意:!!!!!!!!!!!!!!!!
- I/O接口的数据线传送的是读/写数据、状态信息、控制信息和中断类型号。
- 地址线传送的是要访问I/O接口的寄存器的地址。
- 控制线传送的是读/写控制信号来确认是读寄存器还是写寄存器。此外控制线传送的是读写控制信号和响应信号、仲裁信号和握手信号。
I/O接口中的I/O控制逻辑还要对控制寄存器的命令字进行译码,并将译码得到的控制信号通过外设控制逻辑送到外设,同时将数据发送到外设或从外设接收数据到数据缓冲器。此外其还具有收集外设状态到状态寄存器的功能。
I/O指令:对于数据缓冲寄存器,状态/控制寄存器的访问操作。只能在操作系统内核的底层I/O软件种使用,是一种特权指令。(计算机指令系统的一部分,由CPU执行)
I/O指令不直接控制I/O数据的传送,它只负责启动、停止I/O的过程、查询通道和I/O设备的状态以及控制通道进行某些操作(来源于百度百科)
2.3 I/O接口的类型
按数据传送方式:并行接口和串行接口
按主机访问I/O设备的控制方式:程序查询接口、中断接口、DMA接口(下文详解)
按功能选择的灵活性:可编程接口和不可编程接口
2.4 I/O端口及其编址
I/O端口是指I/O接口电路可被CPU直接访问的寄存器,I/O端口要想被CPU访问就必须对各个端口进行编址,每个端口进行编址,而对I/O端口的编址方式有与存储器独立编址和统一编址两种方式
1. 独立编址
也叫I/O映射方式。独立编址对所有I/O端口单独编址。I/O端口的地址空间与主存地址空间是两个独立的地址空间。因此需要有专门的I/O指令区分是哪个地址空间。(相同的地址表示不同的地址空间)
2. 统一编址
统一编址也称存储器映射方式,是指把主存地址空间分出一部分给I/O端口进行编址,I/O端口和主存单元在统一地址空间的不同分段。根据地址范围判断访问的是I/O端口还是主存单元。(无需I/O指令)
3. I/O方式
1. 程序查询方式
信息交换的控制直接由CPU执行程序实现。程序查询方式设置一个数据缓冲器和一个设备状态器