5.1 概述
一、输入输出系统的发展概况
随着I/O的发展,数据的输入输出操作,逐渐的从CPU中分离出来,外部设备的独立性逐渐增强
I/O指令
操作码:表示该指令是I/O指令
命令码:相当于CPU指令集中普通指令的操作码,指出要多I/O设备进行什么操作
设备码:I/O设备的编码或I/O设备中某一寄存器的地址
通道指令
通道:小型的DMA处理器 。通道有自己的指令
统一编址:把I/O设备当做内存地址的一部分
不统一编址(单独编址):在内存地址空间之外专门设置一个地址空间
在单独编址的计算机当中,输入输出指令不能采用计算机系统原有的取数或存数指令,需要用专门的I/O指令对I/O设备进行控制
设备选址:通过设备选择电路识别某一个设备是否被选中。比较CPU给出的地址和设备当中保存的地址,若一致则设备被选中
并行:多条数据线,通常数据线的条数是8的倍数
CPU和I/O接口之间一般都是并行传输
异步工作应答信号主要是I/O接口和I/O设备之间采用的,为了进行并行工作,I/O接口与I/O设备之间要有多条数据线组成的类似总线结构的数据线来完成数据并行的输入与输出,双方之间还要采用应答信号
辐射式连接(分散连接):增加一个I/O设备,就需要在主机中增加一个控制电路对I/O设备进行控制
缺点:可移植性差,不便于增删设备
总线连接:外部设备通过接口与主机进行连接,接口能够向外部设备传送主机的控制命令,可以向主机传送外部设备状态信息,接口还可以完成数据缓存
程序查询方式:CPU和外设采用串行方式进行连接
程序中断方式:CPU实现了与I/O设备之间部分的并行工作
DMA方式:把CPU进一步从输入输出工作中解放出来,使外部设备和内存之间可以建立直接的联系,由DMA接口直接控制外部设备与内存之间进行数据交换
数据准备期,CPU不需要参与
缺点:CPU并没有完全从数据传输中抽离出来,而且需要保证在执行完数据传输工作之后,CPU继续执行之前的程序,即需要保存现场,保存程序断连;程序返回的时候要恢复现场,恢复程序断连
DMA方式是在内存和I/O设备之间建立直接的通路,可以借助该通路进行数据传输
DMA请求占用总线使用权,占用一个存取周期,利用这一个存取周期进行外部设备和内存之间的数据交换,在这一个周期内,CPU不能使用总线对内存进行访问,这个周期结束以后,I/O设备可以继续进行准备,CPU继续执行当前程序,即总线使用权归还给CPU
在存取周期,总线使用权交给DMA后,CPU不能对主存进行访问,但是当前指令/数据如果预存到CPU中,并不影响CPU执行现行程序
5.2 I/O设备
5.3 I/O接口
设备选择线:传输参与本次信息交换的设备码或端口号,单向线
数据线:条数跟接口的类型有关,用于数据传输,双向
命令线:来自主机的命令通过命令线输入到I/O接口中,命令通过缓冲和译码可以控制设备做相应的输入输出操作
状态线:单向,从I/O接口送到I/O总线进而送到主机,由主机来了解I/O设备的工作状态,是忙还是准备好,或出错,都是通过状态线进行传输的
D-0:数据还没有准备好;B-1:设备开始工作,设备处于忙的状态;该状态下,设备开始准备数据,并将数据保存到DBR中,设备工作结束;设备会通过状态线向接口电路送入设备工作结束信号,这个信号会修改典礼中的两个标记,D-1,B-1,CPU一直在查询D是否为1
5.5 程序中断方式
中断:CPU在程序执行的过程中,如果发生意外事件,CPU要中断当前程序的执行,转而处理当前意外事件,当处理完意外事件之后,再继续执行原程序
在主机的外部/内部,CPU的外部/内部,能够引发CPU发生中断的因素都成为中断源
某一个优先级的设备提出中断请求的话,排在其后面的设备INT’都会变为0
中断隐指令:硬件要自动执行的一系列操作,并不是一条指令
单重中断、多重中断
中断周期:保护断点;形成中断服务程序的入口地址;关中断。由硬件按照一定的次序完成
5.6 DMA方式
程序查询通路和程序中断通路是相同的
周期是指访存周期
当数据准备好之后,DMA通过申请建立总线的使用权,占用一个或者几个内存访问周期完成数据传输,在数据传输的间隔或数据准备阶段,DMA接口放弃对内存的使用权,放弃对总线的占用
存储墙
交替访问,使用率并不是很高
- CPU提供输入/输出数据地址:内存的哪个地址开始输入或输出数据------地址寄存器AR
- 传输的数据量-----计数器WC(字数记数)
- 数据缓存BR
- 设备地址寄存器DAR:供设备选择电路使用,缓存设备的地址信息
- HRQ:总线使用请求信号
- HLDA:CPU应答信号
后处理是CPU相应了DMA接口的中断请求之后,执行中断服务程序来完成的
数据准备阶段允许多个设备同时工作,在数据传输阶段只有一个能传输
速度越高的设备,优先级越高