目录
I/O系统基本概念
基本概念
I/O硬件
现代计算机的结构
“I/O”就是"输入/输出"
IO设备就是可以将数据输入到计算机,或者可以接收计算机输出数据的外部设备。
常见的IO设备
主机如何与I/O设备进行交互?
I/O接口:又称I/O控制器(I/O Controller)、设备控制器,负责协调主机与外部设备之间的数据传输
I/O硬件包括外部设备、I/O接口、I/O总线等。
I/O软件
I/O软件包括驱动程序、用户程序、管理程序、升级补丁等。
通常采用I/O指令和通道指令实现主机和I/O设备的信息交换。
(1)I/O指令 CPU指令的一部分
注:I/O指令与普通指令格式略有不同,操作码指明了CPU要对IO接口做什么,命令码指明了IO接口要对设备做什么
(2)通道指令 通道能识别的指令
通道程序提前编制好放在主存中
在含有通道的计算机中,CPU执行I/O指令对通道发出命令,由通道执行一系列通道指令,代替CPU对I/O设备进行管理
I/O控制方式
CPU如何控制键盘I/O的完成?通过下面四种方式
程序查询方式
CPU不断轮询检查I/O控制器中的“状态寄存器”,检测到状态为“”已完成之后,再从数据寄存器取出输入数据
这种方式CPU等待的时间较长,利用率太低。
程序中断方式
等待键盘 I/O时CPU可以先去执行其他程序,键盘I/O完成后I/O控制器向CPU发出中断请求,CPU响应中断请求,并取走输入数据。
这种方式如果对于快速 I/O设备,如“磁盘”,每准备好一个字就给CPU发送一次中断请求,会导致CPU需要花大量的时间来处理中断服务程序,CPU利用率严重下降。
DMA控制方式
DMA控制方式:主存与高速I/O设备之间有一条直接数据通路(DMA总线) 。CPU向DMA接口发出“读/写”命令,并指明主存地址、磁盘地址、读写数据量等参数。
DMA控制器自动控制磁盘与主存的数据读写,每完成一整块数据读写(如1KB为一整块),才向CPU发出一次中断请求。
通道控制方式
有的商用中型机、大型机可能会接上超多的I/0设备,如果都让CPU来管理,那么CPU就太累了..这时就引入了通道控制方式。
通道:可以理解为是“弱鸡版的CPU”。通道可以识别并执行一系列通道指令,通道指令种类、功能通常比较单一
通道方式:通过IO指令启动通道,通道执行通道指令序列,通道程序放在主存中
外部设备
外部设备也称外围设备,是除了主机以外的、能直接或间接与计算机交换信息的装置。
输入设备
用于向计算机系统输入命令和文本、数据等信息的部件。键盘和鼠标是最基本的输入设备。
输出设备
用于将计算机系统中的信息输出到计算机外部进行显示、交换等的部件。显示器和打印机是最基本的输出设备。
重点:VRAM的参数计算
重点:字符点阵的存储
外存设备
是指除计算机内存及CPU缓存等以外的存储器。硬磁盘、光盘等是最基本的外存设备。
I/O接口
I/O接口:又称I/O控制器(I/O Controller)、设备控制器,负责协调主机与外部设备之间的数据传输
I/O接口的作用
- 数据缓冲:通过数据缓冲寄存器(DBR)达到主机和外设工作速度的匹配
- 错误或状态监测:通过状态寄存器反馈设备的各种错误、状态信息,供CPU查用
- 控制和定时:接收从控制总线发来的控制信号、时钟信号
- 数据格式转换:串-并、并-串等格式转换
- 与主机和设备通信:实现主机- I/O接口-I/O设备之间的通信
I/O接口的结构
数据缓冲寄存器:暂存即将输入输出的数据、主机和外设的速度匹配。
状态/控制寄存器:
- 命令字:CPU对设备发出的具体命令
- 设备的状态信息,供CPU检查
串-并转换机构:数据格式的转换
I/O控制逻辑:根据命令字向设备发出控制信号
地址译码逻辑:将地址信号映射到指令I/O端口
I/O接口的工作原理
接口与端口
I/O端口是指接口电路中可以被CPU直接访问的寄存器。
如何访问I/O端口?
I/O端口要想能够被CPU访问,必须要有端口地址,每一个端口都对应着一个端口地址。
统一编址v.s.独立编址
I/O接口的类型
按数据传送方式可分为
- 并行接口:一个字节或一个字所有位同时传送。
- 串行接口:一位一位地传送。
注:这里说的数据传送方式指的是外设和接口一侧的传送方式。接口要完成数据格式转换。
按主机访问I/O设备的控制方式可分为
程序查询接口
中断接口
DMA接口
按功能选择的灵活性可分为
可编程接口
不可编程接口
程序查询方式
CPU一旦启动I/O,必须停止现行程序的运行,并在现行程序中插入一段程序。
流程图
【例题】
独占查询:CPU 100%的时间都在查询I/O状态,完全串行。
定时查询:在保证数据不丢失的情况下,每隔一段时间CPU就查询一次I/O状态。查询的间隔内CPU可以执行其他程序
程序中断方式
中断系统
中断的基本概念
程序中断是指在计算机执行现行程序的过程中,出现某些急需处理的异常情况或特殊请求,CPU暂时中止现行程序,而转去对这些异常情况或特殊请求进行 处理。在处理完毕后CPU又自动返回到现行程序的断点处,急需执行原程序。
工作流程
1.中断请求
- 中断源向CPU发出中断请求信号。
2.中断响应
- 响应中断的条件。
- 中断判优:多个中断源同时提出请求时通过中断判优逻辑响应一个中断源。
3.中断处理
- 中断隐指令。
- 中断服务程序。
CPU中有一个程序状态寄存器——PSW寄存器
里面的IF字段用来标识此时处于开中断还是关中断
IF=1表示开中断(允许中断)
IF=0表示关中断(不允许中断)关中断的作用:实现原子操作(执行一系列其间不能中断的程序)
中断请求
中断请求标记:用来判断是哪个设备发出的中断信号。
每个中断源向CPU发出中断请求的时间都是随机的。
为了记录中断事件并区分不同的中断源,中断系统需对每个中断源设置中断请求标记触发器INTR,当其状态为“1”时,表示中断源有请求。
这些触发器可组成中断请求标记寄存器,该寄存器可集中在CPU中,也可分散在各个中断源中。
中断响应
对于外中断,CPU是在同一的时刻即每条指令执行阶段结束前向接口发出中断查询信号,以获取I/O的中断请求,也就是说,CPU响应中断的时间是在每条指令执行阶段的结束时刻。
CPU响应中断必须满足以下3个条件:
- 中断源有中断请求。
- CPU允许中断即开中断。
- 一条指令执行完毕,且没有更紧迫的任务。
中断判优-实现
中断判优既可以用硬件实现,也可用软件实现:
硬件实现是通过硬件排队器实现的,它既可以设置在CPU中,也可分散在各个中断源中;
软件实现是通过查询程序实现的。
现代计算机通常采用硬件排队器这种判优方式来速度快。
中断判优-优先级设置
- 硬件故障中断属于最高级,其次是软件中断;
- 非屏蔽中断(关中断时也会被响应,如:掉电)优于可屏蔽中断(关中断时不会被响应);
- DMA请求优于I/O设备传送的中断请求;
- 高速设备优于低速设备;
- 输入设备优于输出设备;
- 实时设备优于普通设备;
中断处理
中断处理过程-中断隐指令
中断隐指令的主要任务:
- 关中断。在中断服务程序中,为了保护中断现场(即CPU主要寄存器中的内容)期间不被新的中断所打断,必须关中断,从而保证被中断的程序在中断服务程序执行完毕之后能接着正确地执行下去。
- 保存断点。为了保证在中断服务程序执行完毕后能正确地返回到原来的程序,必须将原来程序的断点(即程序计数器(PC)的内容)保存起来。可以存入堆栈,也可以存入指定单元。
- 引出中断服务程序。引出中断服务程序的实质就是取出中断服务程序的入口地址并传送给程序计数器(PC)。
引出中断处理程序有两种方法:
- 软件查询法
- 硬件向量法
中断处理程序-硬件向量法
为什么需要中间的向量地址?而不是直接用入口地址找中断程序呢?
如果直接用入口地址的话,假设打印机的服务程序入口地址变了,就需要改变硬件。如果采用中间的向量地址的话可以直接在主存中改变中断向量即可。
中断处理程序-中断服务程序
中断服务程序的主要任务:
- 保护现场 保存通用寄存器和状态寄存器的内容(eg:保存ACC寄存器的值),以便返回原程序后可以恢复CPU环境。可使用堆栈,也可以使用特定存储单元。
- 中断服务(设备服务) 主体部分,如通过程序控制需打印的字符代码送入打印机的缓冲存储器中(eg:中断服务的过程中有可能修改ACC寄存器的值)
- 恢复现场 通过出栈指令或取数指令把之前保存的信息送回寄存器中(eg:把原程序算到一般的ACC值恢复原样
中断处理过程总结
这个中断属于单重中断(执行中断服务程序时不响应新的中断请求)
多重中断
多重中断:又称中断嵌套,执行中断服务程序时可响应新的中断请求。
单重中断与多重中断
中断屏蔽技术
中断屏蔽技术主要用于多重中断,CPU要具备多重中断的功能,须满足下列条件。
- 在中断服务程序中提前设置开中断指令。
- 优先级别高的中断源有权中断优先级别低的中断源。
每个中断源都有一个屏蔽触发器,1表示屏蔽该中断源的请求,0表示可以正常申请,所有屏蔽触发器组合在一起,便构成一个屏蔽字寄存器,屏蔽字寄存器的内容称为屏蔽字。
屏蔽字设置的规律:
- 一般用“1”表示屏蔽,“0”表示正常申请。
- 每个中断源对应一个屏蔽字(在处理该中断源的中断服务程序时,屏蔽寄存器中的内容为该中断源对应的屏蔽字)。
- 屏蔽字中“1”越多,优先级越高,每个屏蔽字中至少有一个“1”(至少要能屏蔽自身的中断)。
【例题】
程序中断方式
工作流程
CPU占用时间
DMA方式
DMA控制器
DMA控制器一般来控制快速的设备
CPU向DMA控制器指明要输入还是输出:要传送多少个数据;数据在主存、外设中的地址。
传送前:
- 接受外设发出的DMA请求(外设传送一个字的请求),并向CPU发出总线请求。
- CPU响应此总线请求,发出总线响应信号,接管总线控制权,进入DMA操作周期。
传送时:
- 确定传送数据的主存单元地址及长度,并能自动修改主存地址计数和传送长度计数。
- 规定数据在主存和外设间的传送方向,发出读写等控制信号,执行数据传送操作。
传送后:
- 向CPU报告DMA操作的结束。
DMA详细结构
DMA传送过程(重点)
数据流程图
DMA传送方式(重点)
主存和DMA控制器之间有一条数据通路,因此主存和I/O设备之间交换信息时,不通过CPU。但当I/O设备和CPU同时访问主存时,可能发生冲突,为了有效地使用主存,DMA控制器与CPU通常采用以下3种方法使用主存。
1.停止CPU访问主存
优点:控制简单
缺点:CPU处于不工作状态或保持状态,未充分发挥CPU对主存的利用率。
2.DMA与CPU交替访存
优点:不需要总线的使用权的申请、建立和归还过程。
缺点:硬件逻辑更为复杂。
3.周期挪用(周期窃取)
’这里的周期是指存取周期
DMA访问主存有三种可能:
- CPU此时不访存(不冲突)
- CPU正在访存(存取周期结束让出总线)
- CPU与DMA同时请求访存(I/O访存优先)
DMA方式的特点
主存和DMA接口之间有一条直接数据通路(3总线结构)
由于DMA方式传送数据不需要经过CPU,因此不必中断现行程序,I/O与主机并行工作,程序和传送并行工作。
DMA方式具有下列特点:
- 它使主存与CPU的固定联系脱钩,主存既可被CPU访问,又可被外设访问。
- 在数据块传送时,主存地址的确定、传送数据的计数等都由硬件电路直接实现。
- 主存中要开辟专用缓冲区,及时供给和接收外设的数据。
- DMA传送速度快,CPU和外设并行工作,提高了系统效率。
- DMA在传送开始前要通过程序进行预处理,结束后要通过中断方式进行后处理。