IO接口
IO接口,又称IO控制器、设备控制器,负责协调主机与外部设备之间的数据传输
IO接口的作用
- 进行地址译码和设备选择。CPU 送来选择外设的地址码后,接口必须对地址进行译码以产生设备选择信息,使主机能和指定外设交换信息。
- 实现主机和外设的通信联络控制。解决主机与外设时序配合问题,协调不同工作速度的外设和主机之间交换信息,以保证整个计算机系统能统一、协调地工作。
- 实现数据缓冲。CPU 与外设之间的速度往往不匹配,为消除速度差异,接口必须设置数据缓冲寄存器,用于数据的暂存,以避免因速度不一致而丢失数据。
- 信号格式的转换。外设与主机两者的电平、数据格式都可能存在差异,接口应提供主机与外设的信号格式的转换功能,如电平转换、并/串或串/并转换、模/数或数/模转换等。
- 传送控制命令和状态信息。CPU 要启动某外设时,通过接口中的命令寄存器向外设发出启动命令;外设准备就绪时,则将“准备好”状态信息送回接口中的状态寄存器,并反馈给 CPU。外设向 CPU 提出中断请求时,CPU 也应有相应的响应信号反馈给外设。
IO接口的基本结构
I/O 接口中的数据线传送的是读/写数据、状态信息、控制信息和中断类型号。地址线传送的是要访问 I/O 接口中的寄存器的地址。控制线传送的是读/写控制信号,以确认是读寄存器还是写寄存器,此外控制线还会传送中断请求和响应信号、仲裁信号和握手信号。
I/O 接口中的 IO 控制逻辑还要能对控制寄存器中的命令字进行译码,并将译码得到的控制信号通过外设界面控制逻辑送到外设,同时将数据缓冲寄存器的数据发送到外设或从外设接收数据到数据缓冲寄存器。另外,它还要具有收集外设状态到状态寄存器的功能。对数据缓冲寄存器、状态/控制寄存器的访问操作是通过相应的指令来完成的,通常称这类指令为 I/O 指令,IO 指令只能在操作系统内核的底层 I/O 软件中使用,它们是一种特权指令。
数据缓冲寄存器和命令/状态寄存器的内容都是通过控制线来传送的,一定要记住这一点。面向考试的话,直接记住这一点即可
这张图上写得很清楚,控制总线、地址总线和IO逻辑之间连接,而所有的IO端口(寄存器)都是和数据总线连接的,控制寄存器中可能存放了一些IO逻辑需要用到的控制参数。有了这些参数和控制信息,IO逻辑就能指挥外设执行具体的操作(控制线上的读写控制信号是指挥IO逻辑进行读或者写寄存器)
这张图也可以看到,一个IO控制器可以连接多个设备