16.IO
外部设备
- 输入/输出操作通过连接到输入输出模块的各种外部设备完成, 这些外部设备提供了在外部环境和计算机系统之间的数据交换
输入设备
-
键盘, 鼠标
输出设备
-
显示器, 打印机
外存设备
I/O接口
又称I/O控制器(I/O Controller), 设备控制器, 负责协调主机与外部设备之间的数据传输
-
数据缓冲: 通过数据缓冲寄存器(DBR)达到主机和外设工作速度的匹配
-
错误或状态监测: 通过状态寄存器反馈设备的各种错误, 状态信息, 供CPU查用
-
控制和定时: 接收从控制总线发来的控制信号, 时钟信号
-
数据格式转换: 串-并, 并-串 等格式转换
-
与主机和设备通信: 实现 主机 -> I/O接口 -> I/O设备 之间的通信
-
数据线 -> 状态/控制寄存器 : CPU对外设的命令
-
控制线 -> I/O控制逻辑 : CPU对I/O模块的控制
I/O操作技术
编程式I/O
处理器通过执行程序来直接控制I/O操作, 当处理器发送一条命令到I/O模块时, 它必须等待, 直到I/O操作完成
-
I/O指令很容易映射为I/O命令, 并且两者之间通常是简单的一一对用关系
- 指令的形式取决于外设寻址的方式
-
编址方式
- 存储器映射式I/O: 存储单元和I/O设备有统一的地址空间
- 能使用大的指令系统, 可进行更有效的编程
- I/O设备占用地址空间
- 分离式I/O: 让总线既有存储器的读线和写线, 同时也有输入和输出命令线
- 存储器映射式I/O: 存储单元和I/O设备有统一的地址空间
中断驱动式I/O
处理器发送一条I/O命令后, 继续执行其他指令; 并且当I/O模块完成其工作后, 才取中断处理器工作
基本概念
-
中断是指在计算机执行现行程序的过程中, 出现某些急需处理的异常情况或特殊请求, CPU暂时终止现行程序, 而转去对这些异常情况或特殊请求进行处理, 在处理完毕后CPU又自动返回到现行程序的断点处, 继续执行原程序
中断判优
-
硬件实现: 通过排队器实现, 既可以设置在CPU中, 也可以分散在各个中断源中
-
软件实现: 通过查询程序实现
中断处理
-
中断隐指令的主要任务
-
关中断
-
保存断点
-
引出中断服务程序: 取出中断服务程序的入口地址并传送给程序计数器(PC)
-
-
中断服务程序的主要任务
- 保护现场: 保存通用寄存器和状态寄存器的内容, 以便返回原程序后可以恢复CPU环境
- 中断服务(设备服务): 主体部分
- 恢复现场
- 中断返回
程序中断方式
单重中断与多重中断
响应优先级和处理优先级
-
对应每一个中断请求触发器就有一个屏蔽触发器,将所有的屏蔽触发器组合在一起,就成了一个屏蔽寄存器,屏蔽寄存器中的内容称为屏蔽字。
-
在终端服务程序中设置合适的屏蔽字,能起到对优先级别不同的中断源的屏蔽作用。屏蔽技术是可以改变优先等级的。
-
优先级包含响应优先级和处理优先级。响应优先级是CPU响应各中断源请求的优先次序,这种次序一般是硬件线路已经设置好的,不便改动。处理优先级是CPU实际对各中断源请求的处理优先次序。如果不采用屏蔽技术,响应的优先次序就是处理的优先次序
例子
直接存储器存取 (DMA)
I/O模块与主存直接交换数据, 而不需要处理器的干涉
DMA内存访问
-
CPU停止法
-
周期窃取
-
交替分时访问
DMA配置机制
-
单总线分离DMA
-
单总线集合的DMA-I/O
-
I/O总线
DMA示例: 硬盘存取