IO系统和控制方式
IO系统的组成
- IO硬件:IO接口(IO控制器)、外部设备(IO总线、输入设备(键盘鼠标)、输出设备(显示器打印机)、外存设备(硬盘光盘))
- IO软件:驱动程序、用户程序、管理程序、升级补丁等
- IO指令:是CPU指令的一部分,由CPU执行,用于控制IO接口或通道。包括操作码(CPU要对IO接口做什么)、命令码(IO接口要对设备做什么)、设备码(对哪个设备进行操作)
- 通道指令:通道执行的指令,提前编制好放在主存中,与CPU指令不同,代替CPU对IO设备进行管理
IO接口
三种信号线控制信号、状态信号、数据信号
- 通过电缆与计算机内部I/O接口进行数据、状态和控制信息的传送
- 控制逻辑:根据控制信息控制设备的操作,并检测设备状态
- 缓冲器:暂存即将输入输出的数据,使主机和外设的工作速度匹配
- 变换器:用于在电信号形式(内部数据)和其他形式的设备数据之间进行转换
编址
IO端口是IO接口中CPU可访问的寄存器
- 统一编址:IO端口写在内存中,用访存指令就可以访问IO端口,靠不同的地址码区分内存与IO设备,又称为储存器映射方式
- 优点:无需专门的输入输出指令,所有访存指令都可直接访问端口,端口编址空间大,读写控制逻辑电路简单
- 缺点:端口占用了主存地址空间,使主存地址空间变小,地址位数多,外设寻址时间长
- 独立编址:IO端口独立编址,用专门的输入输出指令访问端口,靠不同的指令区分内存和IO设备,又称特殊IO指令方式
- 优点:不占用主存地址空间,使用专用IO指令,成为独立的IO地址空间,程序编制清晰,地址位数少,地址译码速度快
- 缺点:IO指令类型少,一般只能对端口进行传送操作,程序设计灵活性差,需要CPU提供存储器读写,IO设备读写两组控制信号,增加了控制逻辑电路的复杂性
IO控制方式
数据流:键盘 -> IO接口的数据寄存器 -> 数据总线 -> CPU某寄存器 -> 主存(变量的对应位置)
CPU->寄存器->IO指令->IO端口->IO设备
程序查询方式
- CPU不断轮询检查IO控制器中的状态寄存器,如果状态为已完成,再从数据寄存器中取出数据
- 优点:接口设计简单,设备量少
- 缺点:CPU在信息传送过程中要花费很多时间用于查询和等待,而且如果采用独占查询,则在一段时间内只能和一台外设交换信息,效率大大降低。
- 并行启动多个外部设备:允许所有相关设备同时开始它们的操作。
- 周期性查询: 在保证数据不丢失的情况下,每隔一段时间CPU就查询一次I/0状态。查询的间隔内CPU可以执行其他程序。与之相反的是独占查询,CPU百分百串行查询io状态
- 条件服务程序的调用: 如果在某次查询中发现某个设备已经准备好了数据交换,CPU将暂停当前任务并进入该设备的专用服务程序。这个服务程序专门处理与该设备相关的数据输入输出操作,完成后CPU再恢复执行主程序。
因此,对于硬盘这种高速传输设备,独占查询并不适用,会浪费大量时间在轮询检查设备状态上
程序中断方式
等待键盘IO时CPU先去执行其他程序,设备准备好之后向CPU发出中断请求,CPU执行中断处理程序,并取走输入数据(此方法对于快速IO设备会浪费大量时间来处理中断服务程序,导致CPU利用率严重下降)
DMA控制方式
主存与高速IO设备之间有一条直接数据通路(DMA总线),CPU向DMA接口发出读/写命令,并指明主存地址、磁盘地址、读写数据量等参数。DMA控制器自动控制磁盘与主存的数据读写,传输完一整块数据才需要中断。
- 工作过程:
- 传送前:接受外设的DMA请求,向CPU发出总线请求,CPU响应请求后进入DMA操作周期,接管总线控制权
- 传送时:管理总线,控制数据传送;确定主存单元地址及长度,自动修改对应参数
- 传送后:向CPU报告DMA操作的结束,进入中断服务程序
- 特点:
- 主存和DMA接口之间有一条直接数据通路
- DMA方式传送数据不用经过CPU,因此不必中断现行程序,程序和传送并行工作
- 使主存与CPU的固定联系脱钩,主存既可被CPU访问,也可被外设访问
- 在数据块传送时,主存地址的确定、传送数据的计数等都由硬件电路直接实现
- 主存中要开辟专用缓冲区,及时供给和接收外设的数据
- DMA传送速度快,CPU和外设并行工作,提高了系统效率
- DMA在传送开始前要通过程序进行预处理,结束后要通过中断方式进行后处理
通道控制方式
通道就是一个小处理器,功能单一,用来识别并执行一系列通道指令。通过IO指令启动通道,通道执行通道指令序列,通道程序存放在主存中控制IO设备,可以在使用多种IO设备时解放CPU
显示器
- 分辨率:有多少位像素点
- 灰度级:n位可以表示2ⁿ种不同房的亮度或颜色
- 刷新率:每秒刷新多少次
- 显示(刷新)储存器:由分辨率和灰度级决定
- VRAM容量:分辨率灰度级位数
- VRAM带宽:分辨率灰度级位数帧频
- 阴极射线管(CRT)显示器:用点阵显示字符,点阵存入由ROM构成的字符发生器中,CRT读出点阵,在屏幕上显示字符,字符的ASCII码被存放在VRAM中,以备刷新
中断
- 基本概念:程序中断是指在计算机执行现行程序的过程中,出现某些急需处理的异常情况或特殊请求,CPU暂时中止现行程序,而转去对这些异常情况或特殊请求进行处理,在处理完毕后CPU又自动返回到现行程序的断点处,继续执行原程序。
- 工作流程:
- 中断请求:中断源向CPU发出中断请求信号(通过中断请求标记触发器来判断发出中断请求的设备)
- 中断响应:CPU响应中断,如果多个中断源同时提出请求时需通过中断判优逻辑响应一个中断源,可由硬件通过硬件排队器实现,也可由软件通过查询程序实现
- 优先级:硬件故障>软件中断;非屏蔽中断>可屏蔽中断;DMA>IO设备传送;高速设备>低速设备;输入设备>输出设备
- 中断处理:
- 执行中断隐指令:保存原程序的程序计数器PC值,并让PC指向中断服务程序的第一条指令
- 关中断:在中断服务程序中,为了保护中断现场(即CPU主要寄存器中的内容)期间不被新的中断所打断,必须关中断,从而保证被中断的程序在中断服务程序执行完毕之后能接着正确地执行下去
- 保存断点:为了保证在中断服务程序执行完毕后能正确地返回到原来的程序,必须将原来程序的断点(即程序计数器PC的内容)保存起来
- 引出中断服务程序:取出中断服务程序的入口地址并传送给程序计数器PC
- 中断服务程序
- 保护现场:保存通用寄存器和状态寄存器的内容,以便返回原程序后可以恢复CPU环境
- 中断服务:主体部分,如通过程序控制需打印的字符代码送入打印机的缓冲存储器中
- 恢复现场:通过出栈指令或取数指令把之前保存的信息送回寄存器中
- 中断返回:通过中断返回指令回到原程序断点处
- 执行中断隐指令:保存原程序的程序计数器PC值,并让PC指向中断服务程序的第一条指令
- 单中断:执行中断服务程序时不响应新的中断请求
- 多重中断:又称中断嵌套,在执行中断服务程序时可响应新的中断请求
- 中断屏蔽技术:在硬件排队器的每个中断源加一个屏蔽触发器,1屏蔽0正常申请,所有屏蔽触发器组合在一起,便构成一个屏蔽字寄存器,屏蔽字寄存器的内容称为屏蔽字。需要满足两个条件:中断服务程序中提前设置中断开指令、优先级别高的中断源有权中断优先级别低的中断源
- 中断屏蔽技术:在硬件排队器的每个中断源加一个屏蔽触发器,1屏蔽0正常申请,所有屏蔽触发器组合在一起,便构成一个屏蔽字寄存器,屏蔽字寄存器的内容称为屏蔽字。需要满足两个条件:中断服务程序中提前设置中断开指令、优先级别高的中断源有权中断优先级别低的中断源