第八章 输入输出系统-中断

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第八章输入输出系统8.1外围设备的定时方式和信息交换方式8.2程序查询方式8.3程序中断方式8.4DMA方式8.5通道方式8.6通用I/O标准接口8.1外围设备的定时方式和信息交换方式8.1.1外围设备的速度分级外设种类繁多,存在以下几种情况:不同种类的外设数据传输速率差别很大同一种设备在不同时刻传输速率也可能不同高速的CPU与速度参差不齐的外设怎样在时间上同步呢?首先,看一下输入输出设备与CPU交换数据的过程:解决办法是在CPU和外设之间数据传送时加以定时。1、速度极慢或简单的外设(机械开关,led)CPU只需要接受或者发送数据即可。2、慢速或者中速的设备(键盘,打印机)CPU与外围设备之间的定时,有以下三种情况。可以采用异步定时的方式如果CPU从外设接收一个字,则它首先询问外设的状态,如果外设的状态标志表明设备已“准备就绪”,那么CPU就从总线上接收数据。CPU在接收数据后,发出输入响应信号,告诉外设已经把数据总线的数据取走。3、高速外设CPU以等间隔的速率执行输入/输出指令,因此这种方式叫作同步定时方式。ADC0809转换时间100μs8.1.2信息交换方式1、程序查询方式2、程序中断方式3、DMA方式4、通道方式适用于低速设备高速设备1、程序查询方式在程序查询方式下,数据在CPU和外设之间的传送完全靠计算机程序控制。某一设备一旦被选中,主机将不停地查询这个设备,看其是否准备就绪。2、程序中断方式在程序中断方式中,某一外设的数据准备就绪后,就“主动”向CPU发出中断请求信号,当CPU响应这个中断时,便暂停现行程序的运行,自动转移到该设备的中断服务程序,完成数据交换。当中断服务程序执行结束后,CPU又回到原来的程序继续运行。跟程序查询方式相比,中断方式更有效,但中断方式的数据传送仍以程序方式实现,在程序切换过程中存在许多额外操作,如保护断点、保护现场、恢复断点、恢复现场等,所以传送效率仍然不是很高,只适合中、低速设备的I/O操作。3、直接内存访问DMA方式在大批量、高速度传送数据时,需要一种更加有效的方法,这就是DMA。DMA在主存和外设之间实现高速、批量数据交换,数据传输完全依靠硬件,不需要执行程序,因而速度快、效率高。DMA方式适用于内存和高速外围设备之间大批数据交换的场合。在大型计算机系统中,所连接的I/O设备多、I/O操作多、I/O速度快,单纯依靠采用程序中断和DMA控制方式已不能满足输入输出的要求,于是通道控制方式被引入计算机系统。在通道控制方法下,CPU将部分权力下放给通道,让通道去管理外设,大大提高了CPU的工作效率。4、通道方式8.2程序查询方式1、设备编址计算机中有两种需要编址的器件:一种是存储器,另一种是接口电路。存储器是对存储单元进行编址,而接口电路是对其中的端口进行编址。常用的I/O编址有两种:独立编址方式和统一编址方式。把端口当成存储单元对待,也就是让端口占用存储器单元地址。MCS-51就是采用这种编址方式,把外部64K字节的数据存储器RAM空间的一部分作为扩展外围I/O的地址空间。把I/O口和存储器分开进行编址,形成两个独立的地址空间,需要专门的I/O指令和控制信号。8086、8088就是采用这种编址方式,它具有两条I/O指令(IN和OUT)。(1)独立编址方式:(2)统一编址方式:2、输入输出指令I/O指令一般具有以下功能:1、置1或置0接口的某些控制触发器。2、测试设备的状态,如“忙”、“准备就绪”等3、传送数据某机I/O指令的格式为:01R0~R7OP控制DMsDOAS2,13012345678910……1564个外部设备的设备地址表示把CPU中R2的内容输出到13号设备的A数据缓冲器中,同时启动13号设备工作。3、程序查询接口设备选择电路:设备地址译码器,用来判别地址总线上呼叫的设备是不是本设备。数据缓冲寄存器设备状态寄存器:是接口中的标志触发器,如“忙”,“准备就绪”等。⑤③(1)先向I/O设备发出命令字,请求进行数(2)从I/O接口读入状态字;(3)检查状态字中的标志,看看数据交换是否可以进行;(4)假如这个设备没有准备就绪,则第(2)、第(3)步重复进行,一直到这个设备准备好交换数据,发出准备就绪信号“Ready”(5)CPU从I/O接口的数据缓冲寄存器输入数据,或者将数据从CPU输出至接口的数据缓冲寄存器。与此同时,CPU将接口中的状态标志复位。(6)数据传送4、程序查询输入/输出方式⑤③CPU在执行主程序的过程中,周期性地查询外部设备的情况。设备服务子程序的功能:1、实现数据传送输入时的数据传送输出时的数据传送2、修改内存地址3、修改传送字节数,以便修改传送长度。4、进行状态分析和其它控制功能8.3程序中断方式8.3.1中断的概念、功能8.3.2程序中断方式的基本接口8.3.3单级中断8.3.4多级中断8.3.5Pentium中断机制(简单看一下)8.3.1中断的概念、功能中断(Interrupt)是指CPU暂时中止现行程序,转去处理随机发生的紧急事件,处理完后自动返回原程序的功能和技术。中断系统是计算机实现中断功能的软硬件总称。一般在CPU中设置中断机构,在外设接口中设置中断控制器,在软件上设置相应的中断服务程序。中断系统的功能包括:(1)实现主机和外设的并行工作;(2)处理故障;(3)实现多道程序和分时操作;(4)实时控制;(5)实现人机联系;(6)实现多机通信。中断源:能够向CPU发出中断请求的事件。常见中断源有:输入、输出设备中断。数据通道中断。实时时钟中断。故障中断。系统中断。为了调试程序而设置的中断。如键盘、打印机等工作过程中已做好接收或发送准备。如磁盘、磁带等要同主机进行数据交换等。例如电源掉电、设备故障等要求CPU进行紧急处理等。如运算过程出现溢出、数据格式非法,数据传送过程出现校验错,控制器遇到非法指令等等图8.5中断处理过程流程图公操作:是指一条指令执行结束后CPU所进行的操作,如中断处理、直接内存传送、取下一条指令等。转入公操作时才受理设备的中断请求中断处理过程注意几个问题:1、响应中断时机:外界中断请求是随机的,2、断点保护问题(PC,寄存器内容和状态的保存)3、开中断和关中断问题。4、中断是由软硬件结合起来实现的。“中断周期”由硬件实现,而中断服务程序由机器指令序列实现。但CPU只有在当前指令执行完毕后,才转至中断操作。8.3.2程序中断方式的基本接口设备选择器:设备选择器用来判别总线上送出的地址(或称呼叫的设备)是否为本设备,它实际上是设备地址的译码比较电路。BS外设接口忙(BuSy)标志RD外设准备就绪(ReaDy)标志EI(EnableInterrupt中断允许触发器)为1,某设备可以向CPU发出中断请求。IR(InterruptRequest)中断请求触发器为1,表示设备发出中断请求IM(InterruptMask)中断屏蔽触发器为0,CPU可受理外界中断请求。①表示由程序启动外设,将该外设接口的“忙”标志BS置“1”,“准备就绪”标志RD清“0”②表示接口向外设发出启动信号;③表示数据由外设传送到接口的缓冲寄存器;④表示当设备动作结束或缓冲寄存器数据填满时,设备向接口送出一控制信号,将数据“准备就绪”标志RD置“1”;⑤表示允许中断标志EI为“1”时,接口向CPU发出中断请求信号;⑥表示在一条指令执行末尾CPU检查中断请求线,将中断请求线的请求信号接收到“中断请求”标志IR;⑦表示如果“中断屏蔽”标志IM为“0”时,CPU在一条指令执行结束后受理外设的中断请求,向外设发出响应中断信号并关闭中断;⑧表示转向该设备的中断服务程序入口;⑩表示CPU发出控制信号C将接口中的BS和RD标志复位。⑨表示在中断服务程序通过输入指令把接口中数据缓冲寄存器的数据读至CPU中的寄存器;图中①-⑧表示由某一外设输入数据的控制过程。8.3.3单级中断所有中断源属于同一级,离CPU越近,优先级越高图8.7类似于第六章的链式查询方式。1、单级中断的概念2、单机中断源的识别中断源的识别:串行排队链法IS1,IS2,IS3为中断选中信号INTO为中断排队输出INTI为中断排队输入IR1,IR2,IR3为中断请求信号1、若没有更高优先级的中断请求,/INTI=0,门1输出高电平,即IS1=1,若IR1=1,当CPU发来INTA=1,则发出IR1请求的中断源被选中。2、选中信号经门7送入编码电路,产生一个惟一对应的设备地址,并经数据总线送往CPU的主存地址寄存器,然后执行该中断源设备的中断服务程序。3、由于/IR1=0,封锁门2,IS2,IS3=0,即排队识别工作不再向下进行。4、若IR1无请求,则iR1=0,门7被封锁,不会向编码电路送入选中信号。/IR1=1,则IS2=1,如果IR2=1,则被选中,否则继续往下查询。01中断向量:当CPU响应中断时,由硬件直接产生一个固定的地址(即向量地址)由向量地址指出每个中断源设备的中断服务程序入口,这种方法称为向量中断。每个中断源分别有一个中断服务程序,而每个中断服务程序又有自己的向量地址。当CPU识别出某中断源时,由硬件直接产生一个与该中断源对应的向量地址,很快便引入中断服务程序。3、中断向量的产生向量中断要求在硬件设计时考虑所有中断源的向量地址,而实际中断时只能产生一个向量地址。图8.8中上面部分即为中断向量产生逻辑,它是由编码电路实现的。1、有些计算机中由硬件产生的向量地址不是直接地址,而是一个“位移量”,这个位移量加上CPU某寄存器里存放的基地址,最后得到中断处理程序的入口地址。2、还有一种采用向量地址转移的方法。假设有8个中断源,由优先级编码电路产生8个对应的固定地址码(例如0,1,2,…7),这8个单元中存放的是转移指令,通过转移指令可转入设备各自的中断服务程序入口。这种方法允许中断处理程序放在内8.3.4多级中断1、多级中断的概念系统中有相当多的中断源,每一中断级分配一个优先权。一般来说,优先权高的中断可以打断优先权低的中断服务程序。一维多级中断:二维多级中断:每一级中断中只有一个中断源。每一级中断中有多个中断源。1、一个系统有n级中断,则CPU中有n个IR,n个IM(置1关闭本级和低优先级,置0开放更高优先级。)2、某级中断被响应后,则关闭本级和低于本级的IM,开放更高级的IM。3、多级中断可以嵌套,但同一级的中断不允许嵌套。4、中断响应时,确定哪一级中断和中断源采用硬件实现。采用了独立请求方式和链式查询方式相结合的方式。5、使用堆栈保存现场,后进先出顺序进行,不必单独设置现场保护区。2、多级中断源的识别在多级中断中,每一级均有一根中断请求线送往CPU的中断优先级排队电路,对每一级赋予了不同的优先级。图8.10给出了独立请求式的中断优先级排队与中断向量产生的逻辑结构。1、每个中断请求信号保存在“中断请求”触发器中,经“中断屏蔽”触发器控制后,可能有若干个请求信号IR’进入虚线框所示的排队电路。2、排队电路在若干个中断源中决定首先响应哪个中断源,并将IRi置1,其他为0。3、编码电路根据排上队的中断源输出信号IRi,产生一个预定的地址码,转向中断服务程序。假设中断源1的优先级最高,中断源4最低。已知中断请求寄存器内容为1111,中断屏蔽寄存器内容为0010,那么进入排队器的中断请求是1101。根据优先次序,排队器输出为1000。然后由编码器产生中断源1所对应的向量地址。100举例例1、参见图所示的二维中断系统。请问:(1)在中断情况下,CPU和设备的优先级如何考虑?(2)若CPU现执行设备B的中断服务程序,IM2,IM1,IM0的状态是什么?如果CPU执行设备D的中断服务程序,IM2,IM1,IM0的状态又是什么?请按降序排列各设备的中断优先级。(3)每一级的IM能否对某个优先级的个别设备单独进行屏蔽?如果不能,采取什么办法可达到目的?(4)假如设备C一提出中断请求,CPU立即进行响应,如何调整才能满足此要求?分析(1)在中断情况下,CPU的优先级最低。各设备的优先次序是:(2)执行设备B的中断服务程

1 / 45
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功