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示例: 硬盘存取
    





























