导图社区 计算机组成原理第七章输入输出系统
程序中断是指在计算机执行现行程序的过程中,出现某些需紧急处理的异常情况或特殊请求,CPU暂时中止现行程序,而转去对这些异常情况或特殊情况进行处理,在处理完毕后CPU又自动返回到现行程序的断点处,继续执行原程序。
编辑于2022-10-18 23:47:24 江苏省第七章 输入/输出系统 计算机组成原理 王道考研系列
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指令的一部分
操作码:识别I/O指令
命令码:做什么操作
设备码:对哪个设备进行操作
通道指令
通道能识别的指令
通道程序提前编制好放在主存中
在含有通道的计算机中,CPU执行I/O指令对通道发出命令,由通道执行一系列通道指令,代替CPU对I/O设备进行管理
I/O控制方式
程序查询方式
CPU不断轮询检查I/O控制器中的“状态寄存器”,检测到状态为“已完成”之后,再从数据寄存器取出输入数据
主要特点:CPU有“踏步”等待现象,CPU和I/O串行工作
优点:接口设计简单,设备量少
缺点:CPU在信息传送过程中要花费很多时间用于查询和等待,而且如果采用独占查询,则在一段时间内只能和一台外设交换信息,效率大大降低
独占查询:CPU100%的时间都在查询I/O状态,完全串行
定时查询:在保证数据不丢失的情况下,每隔一段时间CPU就查询一次I/O状态,查询的间隔内CPU可以执行其他程序
程序中断方式
中断的基本概念
程序中断是指在计算机执行现行程序的过程中,出现某些需紧急处理的异常情况或特殊请求,CPU暂时中止现行程序,而转去对这些异常情况或特殊情况进行处理,在处理完毕后CPU又自动返回到现行程序的断点处,继续执行原程序
等待I/O时CPU可以先去执行其他程序,键盘I/O完成后I/O控制器向CPU发出中断请求,CPU响应中断请求,并取走输入数据
中断请求标记
每个中断源向CPU发出中断请求的时间是随机的
为了记录中断事件并区分不同的中断源,中断系统需对每个中断源设置中断请求标记触发器INTR
对于外中断,CPU是在统一的时刻即每条指令执行阶段结束前向端口发出中断查询信号,以获取I/O的中断请求,也就是说,CPU响应中断的时间是在每条指令执行阶段的结束时刻
中断的工作流程
1.中断请求
中断源向CPU发送中断请求信号
2.中断响应
响应中断的条件
关中断
关中断的作用:实现原子操作
原子操作:这一系列的操作,要么一点不做,要么全部完成
PSW中的IF
IF=1表示开中断
IF=0表示关中断
狭义的中断
非屏蔽中断:关中断时也会被响应,如:掉电
可屏蔽中断:关中断时不会被响应
中断判优
3.中断处理
中断隐指令
保存原程序的PC值,并让PC指向中断服务程序的第一条指令
主要任务
关中断
保存断点
可以存入堆栈,也可以存入指定单元
引出中断服务程序
软件查询法
硬件向量法
由硬件产生向量地址(中断类型号),再由向量地址找到入口地址
中断服务程序
主要任务
保护现场
保护通用寄存器和状态寄存器的内容,存入堆栈或特定存储单元
中断服务(设备服务)
恢复现场
中断返回
多重中断
单重中断
执行中断服务程序时不响应新的中断请求
多重中断
又称中断嵌套,执行中断服务程序时可响应新的中断请求
屏蔽字
每个中断源都有一个屏蔽触发器,1表示屏蔽该中断源的请求,0表示可以正常申请,所有屏蔽触发器组合在一起,便构成一个屏蔽字寄存器,屏蔽字寄存器的内容称为屏蔽字
屏蔽字设置的规律
1.一般用1表示屏蔽,0表示正常申请
2.每个中断源对应一个屏蔽字
3.屏蔽字中1越多,优先级越高。每个屏蔽字中至少有一个1(至少屏蔽自身)
DMA控制方式
DMA接口,即DMA控制器,也是一种特殊的I/O控制器
主存与高速I/O设备之间有一条直接数据通路(DMA总线)。CPU向DMA接口发出“读/写”命令,并指明主存地址、磁盘地址、读写数据量等参数
DMA控制器自动控制磁盘与主存的数据读写,每完成一整块数据读写(如1KB为一整块),才向CPU发出一次中断请求
DMA控制器工作流程
1.接受外设发出的DMA请求(外设传送一个字的请求),并向CPU发出总线请求
2.CPU响应此总线请求,发出总线响应信号,接管总线控制权,进入DMA操作周期
3.确定传送数据的主存单元地址及长度,并能自动修改主存地址计数和传送长度计数
4.规定数据在主存和外设间的传送方向,发出读写等控制信号,执行数据传送操作
5.向CPU报告DMA操作的结束(通过中断信号)
传送后
传送前
传送时
DMA传送过程
I/O与主机并行工作,程序与传送并行工作
解决I/O设备和CPU同时访问主存时的数据冲突
1.停止CPU访问主存
优点:控制简单
缺点:CPU处于不工作状态或保持状态,未充分发挥CPU对主存的利用率
2.DMA与CPU交替访存
优点:不需要总线使用权的申请、建立和归还过程
缺点:硬件逻辑更为复杂
3.周期挪用(周期窃取)
DMA访问主存有三种可能
CPU此时不访存(不冲突)
CPU正在访存(存取周期结束让出总线)
CPU和DMA同时请求访存(I/O访存优先)
通道控制方式
通道:可以理解为是“弱鸡版的CPU”,通道可以识别并执行一系列通道指令,通道指令种类、功能通常比较单一
外部设备
输入设备:鼠标、键盘等
输出设备
显示器
分类
按显示设备所用的显示器件分类
阴极射线管(CRT)
字符、图形、图像
光栅扫描、随机扫描
液晶显示器(LCD)
LED显示器
按所显示的信息内容分类
字符显示器
图形显示器
图像显示器
参数
屏幕大小
以对角线长度表示,常用的有12~29英寸等
分辨率
所能表示的像素个数,屏幕上的每一个光点就是一个像素,以宽、高的像素的乘积表示,例如,800×600
灰度级
灰度级是指黑白显示器中所显示的像素点的亮暗差别
n位可以表示2ⁿ种不同的亮度或颜色
刷新
光点只能保持极短的时间便会消失,为此必须在光点消失之前再重新扫描显示一遍,这个过程称为刷新
刷新频率
单位时间内扫描整个屏幕内容的次数
通常显示器刷新频率在60~120Hz
显示存储器(VRAM)
也称刷新存储器,为了不断提高刷新图像的信号,必须把一帧图像信息存储在刷新存储器中。其存储容量由图像分辨率和灰度级决定,分辨率越高,灰度级越多,刷新存储器容量越大。
VRAM容量 = 分辨率 × 灰度级位数
VRAM带宽 = 分辨率 × 灰度级位数 × 帧频
打印机
击打式和非击打式
串行和行式
针式、喷墨式和激光
外存储器
I/O接口
I/O接口的概念,结构和作用
I/O接口:又称I/O控制器,设备控制器,负责协调主机与外部设备之间的数据传输
I/O接口的结构
数据缓冲寄存器(DBR)
暂存即将输入输出的数据
主机和外设的速度匹配
状态/控制寄存器
命令字:CPU对设备发出的具体命令
状态字:设备的状态信息,供CPU检查
串-并转换机构
数据格式的转换
1/O控制逻辑
根据命令字向设备发出控制信号
地址译码逻辑
将地址信号映射到指定I/O端口
I/O接口的作用
数据缓冲:通过数据缓冲寄存器(DBR)达到主机和外设工作速度的匹配
错误或状态监测:通过状态寄存器反馈设备的各种错误、状态信息,供CPU查用
控制和定时:接收从控制总线发来的控制信号、时钟信号
数据格式转换:串-并、并-串 等格式转换
与主机和设备通信:实现 主机—I/O接口—I/O设备 之间的通信
I/O接口的工作原理
数据线:读写数据、状态字、控制字、中断类型号
地址线:指明I/O端口
控制线:读/写IO端口的信号、中断请求信号
控制寄存器、状态寄存器在使用时间上是错开的,因此有的I/O接口中可将二者合二为一
1.发命令:发送命令字(控制字)到I/O控制寄存器,向设备发送命令(需要驱动程序的协助)
2.读状态:从状态寄存器读取状态字,获得设备或I/O控制器的状态信息
3.读/写数据:从数据缓冲寄存器发送或读取数据,完成主机与外设的数据交换
I/O端口
I/O端口是指接口电路中可以被CPU直接访问的寄存器
统一编制
把I/O端口当作存储器的单元进行地址分配,用统一的访存指令就可以访问I/O端口,又称存储器映射方式
靠不同的地址码区分内存和I/O设备,访存类的指令都可以访问I/O端口
RISC机器常用
优点:不需要专门的输入/输出指令,所有访存指令都可直接访问端口,程序设计灵活性高,端口有较大的编址空间,读写控制逻辑电路简单
缺点:端口占用了主存地址空间,使主存地址空间变小,外设寻址时间长(地址位数多,地址译码速度慢)
独立编制
I/O端口地址与存储器地址无关,独立编址CPU需要设置专门的输入/输出指令访问端口,又称I/O映射方式
靠不同的指令区分内存和I/O设备,只能用专门的I/O指令访问I/O端口
Intel处理器常用,IN,OUT就是IO指令
优点:使用专用I/O指令,程序编制清晰,I/O端口地址位数少,地址译码速度快,I/O端口的地址不占用主存地址空间
缺点:I/O指令类型少,一般只能对端口进行传送操作,程序设计灵活性差,需要CPU提供读/写,I/O设备读/写两组控制信号,增加了控制逻辑电路的复杂性
分类
按数据传送方式
并行接口:一个字节或一个字所有位同时传送
串行接口:一位一位的传送
按主机访问I/O设备的控制方式
程序查询接口
中断接口
DMA接口
按功能的灵活性
可编程接口
不可编程接口