1.概述
- I/O接口是主机和外设之间的交接界面,主机和外设之间可通过I/O接口实现信息传递。
- I/O接口是为了解决主机和外设在速度上的差异而设置的。
2.功能
2.1 进行地址译码和设备选择
I/O接口会对CPU送来的地址码进行译码,然后产生设备选择信息,以选中指定外设与CPU进行信息交换。
2.2 实现主机与外设的通信联络控制
解决主机与外设的时序配合问题,协调不同速度的外设与主机进行信息交换,使得整个计算机协调统一的工作。
2.3 实现数据缓冲
I/O接口会设置数据缓冲寄存器,以暂存数据,解决因外设速度与主机不一致而造成数据丢失的问题。
2.4 信号格式的转换
解决外设电平、数据格式可能与主机存在差异的问题。I/O接口提供了电平转换、串/并或并/串转换、模/数或数/模转换等功能。
2.5 传送控制命令和状态信息
CPU要启动某一外设时,会通过I/O接口中的命令寄存器向外设发出启动命令;外设准备就绪时,会将自身的状态信息存储到I/O接口中的状态寄存器,并反馈给CPU,同时也可以进行错误与状态检测。
3.基本结构
- 数据缓冲寄存器可通过数据总线(I/O总线)与主存或CPU进行数据传送。
- 状态寄存器用于存储接口和外设的状态信息。
- 控制寄存器用于存储CPU向外设发出的控制命令。
- 状态寄存器与控制寄存器在数据传送的方向上是相反的。
- 地址线用于给出要访问的I/O接口中的寄存器的地址。
- 控制线用于给出读写信号(是读寄存器,还是写寄存器)、仲裁信号和握手信号等。
- I/O控制逻辑能够对控制寄存器中的命令字进行译码,并将译码后产生的额控制信号通过外设界面控制逻辑发送到外设;同时它还能协调数据缓冲寄存器与外设之间的数据交换;它还能收集外设的状态信息并存储到状态寄存器中。
I/O指令用来访问I/O接口中的数据缓冲寄存器和状态寄存器。
I/O指令只能在操作系统内核的底层I/O软件中使用,属于特权指令。
端口与接口的不同:
端口是指I/O接口电路中的可进行读/写的寄存器。
多个端口 + I/O控制逻辑 = I/O接口。
4.类型
4.1 按(I/O接口与外设一侧)数据传送方式划分
- 并行接口
- 串行接口
4.2 按主机访问I/O设备的控制方式划分
- 程序查询接口
- 中断接口
- DMA接口
4.3 按功能划分
- 可编程接口
- 不可编程接口
5.I/O端口
5.1 说明
- I/O端口是指I/O接口上能够被CPU直接访问(读/写)的寄存器。
5.2 分类
数据端口、状态端口、控制端口。
通常情况下,CPU对数据端口可读可写,对状态端口只读,对控制端口只写。
5.3 编址方式
5.3.1 统一编址/存储器映射方式
5.3.1.1 说明
将I/O端口视为存储器的存储单元进行地址分配,因而也就无需设置专门的I/O指令,使用统一的访存指令就可访问I/O端口
5.3.1.2 优缺点
优点
- 使CPU访问I/O端口更方便、更灵活。
- 增加了I/O端口的编址空间。
缺点
- I/O端口占用了存储器地址,使内存容量变小。
- 通过存储器编址的I/O设备进行数据I/O操作,执行速度较慢。
在统一编址的方式下,是通过不同的地址码区分存储单元和I/O设备的。
5.3.2 独立编址/I/O映射方式
5.3.2.1 说明
- I/O端口的地址空间与主存地址空间属于两个独立的地址空间。
- 由于无法从地址码方面区分I/O端口地址与主存地址,因而需要专门的I/O指令来访问I/O端口。
5.3.2.2 优缺点
优点
I/O指令与存储器指令有明显区别,程序编制清晰,便于理解。
缺点
I/O指令少,一般只能对端口进行传送操作,同时还需要CPU提供存储器读/写、I/O读/写两套控制信号,增加了控制复杂性。
在独立编址的方式下,是通过不同的指令来区分存储单元和I/O端口的。
6.栗子🌰
打印机适配器、网络控制器、可编程中断控制器。
注意:
磁盘驱动器不属于I/O接口,因为磁盘驱动器由磁头,磁盘和读写电路组成,即我们常说的磁盘本身。