输入输出系统——信息交换方式

计算机管理外围设备有以下几种方式:
①、程序查询方式
②、程序中断方式
③、直接内存访问(DMA)
④、通道方式

一、程序查询方式
又称程序控制I/O方式。当需要输入输出时,CPU暂停执行主程序,转去执行设备输入/输出的服务程序,根据服务程序中的I/O指令进行数据传输
1、接口

2、轮询
CPU周期性的调用各I/O设备的子程序

3、特点
①、数据传输完全依赖于程序控制
②、硬件结构简单
③、频繁的查询动作浪费了大量宝贵的CPU时间
④、目前只用在单片机中

二、程序中断方式
中断是指CPU暂时中止现行程序,转去处理随机发生的紧急事件,处理完后自动返回原程序的功能和技术,适合处理随机出现的事务
1、中断系统
计算机实现中断功能的软硬件总称
①、在CPU中设置中断机构
②、在外设接口中设置中断控制器
③、在软件上设置相应的中断服务程序
2、中断流程
①、某外设数据准备就绪后,它主动向CPU发出中断请求信号
②、当CPU响应这个中断时,暂停运行主程序,自动转去执行该设备的中断服务程序
③、当中断服务程序执行完毕后,CPU又回到原来主程序继续执行


3、中断技术
(1)、响应中断时机
外界中断请求信号通常存放在接口中的中断源锁存器里,并通过中断请求线连至CPU。外界中断请求是随机的,CPU只有在当前一条指令执行完毕后,即转入公操作时才受理中断请求
(2)、断点保护
断点:主程序被中断的地方(PC的值)
保存现场:把程序计数器PC的内容以及当前指令执行结束后CPU的状态(包括寄存器的内容和一些状态标志位)都保存到堆栈中
恢复现场:在中断服务程序执行完毕后,从堆栈中恢复PC内容和CPU状态,从断点处继续执行主程序
(3)、多重中断处理
多重中断:CPU响应中断后,在执行中断服务程序时,有新的中断源发出中断请求
在CPU的中断管理部件中有一个中断屏蔽触发器,它可以在程序的控制下开关中断:
置1:设置屏蔽,关中断
置0:取掉屏蔽,开中断
(4)、软硬件结合
中断处理过程是由硬件和软件结合完成。中断周期的操作由硬件实现。中断服务程序由机器指令序列实现,其实现保存现场、恢复现场、开放中断并返回主程序的任务,同时还对要求中断的设备进行服务
4、中断源
能发出中断请求的事件,常见中断源:
(1)、硬件中断
①、输入/输出设备中断
②、数据通道中断
③、实时时钟中断
④、硬件故障中断
(2)、软件过程
①、运算出现溢出
②、数据格式非法
③、数据传输过程出现校验错
④、非法指令
⑤、调试断点
5、基本I/O接口

IR:中断请求触发器
IM:中断屏蔽触发器
EI:允许中断触发器
RD:准备就绪标志
例:数据输入流程:
①、程序启动外设,将BS置1,RD清0
②、接口向外设发出启动信号
③、数据由外设传到数据缓冲寄存器
④、外设动作结束或数据缓冲寄存器满时,设备将RD置1
⑤、EI为1时,接口向CPU发出中断请求信号
⑥、在执行公操作时,CPU检查中断请求线,将中断请求线的请求信号接收到IR寄存器
⑦、IM为0时,CPU受理中断请求,向外设发出中断响应信号INTA并关闭中断
⑧、中断服务程序的入口地址
⑨、中断服务程序将接口中数据缓冲寄存器数据读至CPU的寄存器中
⑩、CPU发出控制信号,将BS和RD复位
6、单级中断
所有的中断源都属于同一级,它们排成一行,离CPU近的优先权高。这是中断结构中最基本的形式。当响应某一中断请求时,执行该中断源的服务程序,在此过程中,不允许其他中断源再打断中断服务程序,即使优先权比它高的中断源也不能打断

(1)、单级中断源的识别
采用串行排队链法,IR为中断请求信号,IS为中断选中信号,INTI为中断排队输入,INTO为中断排队输出
(2)、中断向量的产生
向量中断:由于存储器的地址是一串二进制序列,所以常把地址码称为向量地址。CPU响应中断时,由硬件直接产生一个固定的地址(向量地址),指向每个中断源设备的中断服务程序入口
每个中断源分别有一个中断服务程序,每个中断服务程序又有自己的向量地址

7、多级中断
多级中断系统指计算机系统中有相当多的中断源,根据中断事件的轻重缓急分成若干级别,每级有一个中断优先权,优先权高的中断可以打断优先级低的中断

(1)、分类:
①、一维多级中断:每一级中断只有一个中断源
②、二维多级中断:每一级中断有多个中断源
(2)、实现:
一个系统有n级中断,则CPU有n个IR,n个IM。某级中断被响应后,则关闭本级和低于本级的IM,开放更高级的IM。每一级可以有多个中断源,多级中断可以嵌套,但同一级的中断不允许嵌套。使用多级堆栈保护现场,包括IM

(3)、多级中断的识别
独立请求和链式查询方式相结合。级间采用独立请求方式,同一级内采用链式查询方式

(4)、允许和禁止中断、开放和屏蔽中断
允许中断:中断接口中某中断源EI被置1,此时允许该中断源发出中断请求
禁止中断:中断接口中某中断源EI被置0,此时不允许中断源发出中断请求
开放中断:CPU中IM置0,处于开中断,可以响应中断源的中断请求
屏蔽中断:CPU中IM置1,处于关中断,屏蔽中断源的请求而不响应
8、中断控制器
中断控制器是一块专用的集成电路芯片,将中断接口与优先级判断等功能集于一身
9、Pentium中断机制
(1)、中断类型
①、中断:通常称为外部中断,由外部信号引发,分为可屏蔽中断和非屏蔽中断(不能被禁止)
②、异常:由指令执行引发,分为执行异常和软件中断指令
Pentium共有256种中断和异常,每种中断有一个中断向量号(0-255),中断优先级分为5级
(2)、中断服务程序进入过程
中断服务子程序的入口地址信息存于中断向量号检索表内。实模式为中断向量表IVT,保护模式为中断描述符表IDT
Pentium识别中断类型取的中断向量号的途径有三种:指令给出、外部提供、CPU识别错误故障现象

三、DMA
直接内存访问完全由硬件执行I/O数据交换,DMA控制器接管对总线的控制
①、数据交换不经过CPU,直接在内存和I/O设备之间进行
②、DMA控制器将向内存发出地址和控制信号
③、用于高速传送成组数据
1、基本操作
①、外围设备发出DMA请求
②、CPU响应请求,DMA控制器从CPU接管总线的控制
③、由DMA控制器对内存寻址,即决定数据传送的内存单元地址及数据传送个数的计数,并执行数据传送的操作
④、向CPU报告DMA操作的结束
注:数据传送前的准备、传送后的处理,均由程序承担,而DMA控制器仅负责数据传送的工作
2、传送方式
DMA进行数据传送时,CPU仍执行主程序,此时DMA控制器和CPU可能同时要访问主存,引起访问冲突。采用以下传送方式:
原则:I/O数据要尽快处理以防丢失
①、停止CPU访问内存
DMA控制器使用总线,控制内存,CPU处于等待状态

优点:控制简单,适合高速设备成组传送数据
缺点:内存效能没有充分发挥(申请总线、释放总线的时间)
②、周期挪用
CPU让出一个或多个周期(内存读写周期)的总线控制权,由DMA控制权挪用,进行一次数据传送。传送结束后,CPU继续工作,并重复操作直到数据块传送完

特点:较好地发挥了CPU和内存的效率
③、DMA和CPU交替访问
内存工作周期分为C1和C2两个分周期,一个供CPU访存,一个供DMA控制器访存。总线采用时分控制

适合DMA控制器频繁访问内存的场合,硬件逻辑复杂,没有DMA数据传送时,时间片被浪费
特点:DMA传送效率很高,没有总线申请时间
3、基本组成

①、内存地址寄存器:当DMA传送时,每传送一次数据,地址计数器加1
②、字计数器:每传送一次数据,该计数器加1,直到溢出,向CPU发出中断请求信号
③、数据缓冲寄存器:暂存传送的数据
④、DMA请求标志:外设准备好数据字后,该标志置1,该标志引发DMA请求
⑤、控制、状态逻辑:修改内存地址计数器和字计数器、指定传送方向、定时
⑥、中断机构:当一数据块传送完成,字节数器溢出信号触发中断机构,向CPU提出中断请求,CPU将进行DMA传送的收尾处理
4、数据传输过程
停止CPU访问访问内存方式流程图:

DMA的数据块传送过程可分为三个阶段:传送前预处理、正式传送、传送后处理
(1)、传送前
主机向DMA接口传送以下信息
①、测试设备状态
②、向内存地址计数器送数据块在内存中首地址
③、启动设备
④、向字计数器送字个数
这些做完后,CPU继续原来的工作
(2)、数据传送阶段
①、外设准备好收发数据时,由DMA控制器向主机发DMA请求
②、CPU响应请求,让出总线使用权
③、DMA控制器接管总线控制权,发送内存地址、读写命令
④、每传送一个字,主存地址计数器加1,字计数器加1
⑤、若字计数器为0时,进入传送后处理
(3)、传送后处理
①、DMA控制器向CPU发出中断请求,报告数据传送结束
②、CPU停止主程序执行,转向中断服务程序进行DMA操作的后处理,包括校验送入内存的数据、决定是否继续DMA数据传送、测试是否发生错误
5、DMA控制器类型
(1)、选择型DMA控制器

物理上可以连接多个设备,而逻辑上只允许连接一个设备。即:某一段时间内只能为一个设备服务
(2)、多路型DMA控制器

物理上可以连接多个设备,逻辑上允许这些设备同时工作,适合于同时为多个慢速设备服务。对于每个DMA通路,控制器内部都有独立的寄存器组用于保存各自的传送参数

6、优点
速度快:
①、省去了CPU取指令、取数、送数等操作
②、没有保存现场、恢复现场等操作
③、主存地址的修改、传送字个数的计数用硬件实现
7、DMA方式与中断控制方式的比较
①、中断方式通过程序实现数据传送,而DMA直接用硬件实现
②、CPU在执行完一条指令后响应中断,而在一个机器周期(指令周期)后响应DMA请求
③、中断方式不仅具有传送数据的能力,还能处理异常事件,而DMA只能进行数据传送
④、中断方式需要切换程序、保护现场和恢复现场,而DMA不改变CPU现场
⑤、DMA请求比中断请求优先级高。之所以优先响应DMA请求,是为了防止丢失DMA高速传送的数据
⑥、DMA利用了中断技术

四、通道方式
通道是一个特殊功能的处理器,吸取了DMA技术,增加了软件管理,设有专用通道指令负责数据输入输出的传输控制。CPU只负责数据处理,进一步提高了CPU的效率

1、总线
从逻辑结构上将,I/O系统一般具有四级连接

总线有2种类型:
①、系统总线:承担通道与内存、CPU与内存之间的数据传送
②、I/O总线:承担外围设备与通道之间的数据传送
这2种总线可以按照各自时序同时进行工作
2、类型
(1)、选择通道
在物理上可以连接多个设备,但这些设备不能同时工作,在某一时间内通道只能选择一个设备进行工作
(2)、多路通道
在同一时间能处理多个I/O设备的数据传送,又分为数组多路通道和字节多路通道
①、数组多路通道
当某设备进行数据传送时,通道只为该设备服务。当设备在执行寻址等控制性动作时,通道暂时断开与这个设备的连接,挂起该设备的通道程序,去为其他设备服务,即执行其他设备的通道程序
②、字节多路通道
字节多路通道主要用于连接大量的低速设备,如键盘、打印机

猜你喜欢

转载自blog.csdn.net/qq_43581718/article/details/106313728