第5章输入输出技术.ppt
《第5章输入输出技术.ppt》由会员分享,可在线阅读,更多相关《第5章输入输出技术.ppt(156页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第5 5章章 输入输出技术输入输出技术第5章输入输出技术 Still waters run deep.流静水深流静水深,人静心深人静心深 Where there is life,there is hope。有生命必有希望。有生命必有希望第第5 5章章 输入输出技术输入输出技术5-1 概概 述述输入输出是计算机与外部世界进行信息交换不可缺少的手段,在整个计算机系统中占有极其重要的地位。没有输入、输出,计算机将变得毫无意义。由于外部设备种类繁多,要求输入或输出的信号形式、电平、速率千差万别。这些问题在考虑采用输入输出技术时必须认真加以考虑。在本节中,我们将介绍如下几个有关的问题。第第5 5章章
2、输入输出技术输入输出技术一、外设接口的编址方式在微型计算机系统中,主要采用两种不同的外设地址的编址方式。1.外设地址与内存地址统一编址。这种编址方式又称为存贮器映射编址方式。在这种编址方式中,将外设接口地址和内部存贮器地址统一安排在内存的地址空间中。即把内存地址分配给外设,由外设来占用这些地址。用于外设的内存地址,存贮器不能再使用。第第5 5章章 输入输出技术输入输出技术2.外设与内存独立编址。在这种编址方法中,内存地址空间和外设地址空间是相互独立的。例如,在8086(8088)CPU中,内存地址是连续的1M字节,从00000HFFFFFH。第第5 5章章 输入输出技术输入输出技术二、输入输出
3、的基本方法在微型计算机系统中,主要的输入输出方法有以下四种:无条件传送。查询方式。中断方式。直接存贮器存取(DMA)方式。第第5 5章章 输入输出技术输入输出技术1.无条件传送。在微机系统中,有一些简单的外设,当它工作时,随时都准备好接收CPU的输出数据或它的数据随时都是准备好的,CPU什么时候读它的数据均可以正确地读到。也就是说外设无条件准备好向CPU提供数据或接收CPU送来的数据。所以CPU可以无条件地向这样的外设传送数据。在CPU与这样的外设交换数据的过程中,数据交换与指令的执行是同步的。故有人也称其为同步传送。第第5 5章章 输入输出技术输入输出技术作为无条件数据输入的例子,我们来看一
4、下图5-1所示的电路。在图中,我们把开关K看做是一个简单的外设。K的状态是确定的,要么闭合,要么打开。当计算机通过外设接口读K的状态时,一定会读到指令执行时刻K的状态。第第5 5章章 输入输出技术输入输出技术图5-1开关K的输入接口第第5 5章章 输入输出技术输入输出技术无条件数据传送的另一个例子如图5-2表示。图中外设是简单的发光二极管。此外设的接口用锁存器(273)来实现。锁存器是在打入脉冲CP上升沿将输入端D的数据锁存在它的输出Q端。第第5 5章章 输入输出技术输入输出技术图5-2锁存器输出接口第第5 5章章 输入输出技术输入输出技术图5-2中,锁存器作为输出接口,其外设地址为0000H
5、。当CPU执行如下指令时,即可将图中两个发光二极管点亮。MOVAL,81HMOVDX,0000HOUTDX,AL当执行OUT指令时,CP端会有负脉冲产生,这就可以将数据线上的81H锁存在输出端,从而点亮发光二极管。第第5 5章章 输入输出技术输入输出技术2.查询方式。无条件传送对于那些慢速的总是准备好的外设是适用的,但是,还有许多外设并不是总是准备好的。CPU与这类外设进行数据交换,经常采用程序查询方式。查询方式传送数据过程如下:如果CPU要从外设接收一个数据,则CPU首先查询外设的状态,看外设数据是否准备好,若没有准备好则等待;若外设已将数据准备好,则CPU由外设读取数据。接收数据后,CPU
6、向外设发响应信号,表示数据已被接收。外设收到响应信号之后,即可开始下一个数据的准备工作。第第5 5章章 输入输出技术输入输出技术若CPU需要向外设输出一个数据,同样,CPU首先查询外设的状态,看其是否空闲。若正忙,则等待;若外设准备就绪,处于空闲状态,则CPU向外设送出数据和输出就绪信号,后者通知外设CPU送来有效数据。外设接收数据后,向CPU发出数据已收到的状态信息。这样,一个数据的输出过程就告结束。以上所描述的查询方式工作的输入输出过程,可简要地用图5-3所示的流程图来说明。CPU查询外设的状态而后决定数据的传送。第第5 5章章 输入输出技术输入输出技术图5-3查询方式输入输出框图第第5
7、5章章 输入输出技术输入输出技术下面的一段程序是将BL的内容输出到外设上去。MOVDX,00FFHLOOP:INAL,DXANDAL,01HJZLOOPMOVAL,BLOUTDX,AL第第5 5章章 输入输出技术输入输出技术图5-4查询方式I/O接口第第5 5章章 输入输出技术输入输出技术图5-5多外设查询方式工作流程第第5 5章章 输入输出技术输入输出技术5-2 中断方式中断方式一、中断的基本概念1.中断的概念及中断源分类在CPU执行程序过程中,由于某种事件发生,强迫CPU暂时停止正在执行的程序而转向对该发生的事件进行处理,当对事件的处理结束后又能回到原中止的程序,接着中止前的状态继续执行原
8、来的程序,这一过程称为中断。第第5 5章章 输入输出技术输入输出技术2.中断响应的一般过程在这里主要是介绍可屏蔽中断的响应过程,只要INTR的响应过程清楚了,NMI的响应过程也就很容易理解了。可屏蔽中断的响应过程按其先后顺序分为如下几步:(1)中断请求当外部设备要求CPU对它服务时,产生一个有效的中断请求信号,注意是一个电平信号加到CPU的中断请求输入端,即可对CPU提出中断请求。第第5 5章章 输入输出技术输入输出技术(2)中断承认CPU在每条指令执行的最后一个时钟周期检测中断请求输入端有无请求发生,而后决定是否对它做出响应。CPU承认一个中断请求,必须满足以下四个条件:一条指令执行结束。C
9、PU在一条指令执行的最后一个时钟周期对请求进行检测,当满足我们要叙述的四个条件时,本指令结束,即可响应。第第5 5章章 输入输出技术输入输出技术CPU处于开中断状态。只有在CPU的IF=1开中断时,CPU才有可能响应可屏蔽中断请求。没有发生复位(RESET),保持(HOLD)和非屏蔽中断请求(NMI)。开中断指令(STI)、中断返回指令(IRET)执行完,还需再执行一条指令才能响应INTR请求。另外,一些前缀指令,如LOCK、REP等,将它们后面的指令看作一个总体,直到这种指令执行完,方可响应INTR请求。第第5 5章章 输入输出技术输入输出技术(3)断点保护在中断响应过程中,CPU硬件对断点
10、进行保护。只是不同的CPU断点保护的内容略有不同。8086(88)CPU在中断响应时硬件自动关中断、将标志寄存器压入堆栈进行保护、将CS和IP的内容压入堆栈加以保护。第第5 5章章 输入输出技术输入输出技术有两种常用的确定中断源的方法;软件查询软件查询中断源,需要硬件支持,其硬件电路简图如图5-6所示。图5-6中,当中断源要提出中断请求时,INT变为高电平。它经或门加到CPU上提出中断请求。同时,利用并行接口(可以是三态输入口)将INT的状态输入CPU。第第5 5章章 输入输出技术输入输出技术图5-6查询中断源硬件第第5 5章章 输入输出技术输入输出技术一旦中断请求得到响应,在保护断点后,CP
11、U读INT的输入口,利用软件对中断源逐一查询,确定中断源并对相应的中断源进行服务。当然,应当注意到,一旦确定了中断源之后,应当立即将相应的INT状态变低去掉请求信号。查询确定中断源的流程框图如图5-7所示。中断矢量法利用不同中断源提供不同中断矢量,从而确定中断源。该方法已得到广泛的应用。在下一节中将仔细加以说明。第第5 5章章 输入输出技术输入输出技术图5-7软件查询确定中断源流程图第第5 5章章 输入输出技术输入输出技术(5)中断服务我们将用户为进行中断处理所编写的程序统称为中断服务程序。通常用户编写的服务程序包括断点保护是指在中断响应过程中CPU硬件未能保护的那些寄存器的内容,要进行保护。
12、对中断源进行针对其要求的服务,假定采用矢量中断,识别中断源已经解决。最后是恢复断点,开中断,中断返回。上述内容都是用户在编写中断服务程序时需要做的工作。第第5 5章章 输入输出技术输入输出技术中断服务程序分为两种情况:第一种是如图5-8所示的、不允许被中断的中断服务程序。这种中断服务程序进入过程是中断源请求,CPU响应承认、断点保护后进入该服务程序的入口。在入口时刻,CPU内部硬件已经关中断并进行了部分断点保?护工作。从图5-8流程图中可以看到,本服务程序直到中断返回IRET前才开中断,保证在整个中断服务程序中不会被INTR所中断。第二种是可以被中断的中断服务程序,其流程图如图5-9是允许被其
13、他优先级更高的中断源中断的服务程序。同样,在流?程图中,在某些CPU最后一次开中断是可以不要的。第第5 5章章 输入输出技术输入输出技术图5-8不允许被中断的中断服务程序流程图第第5 5章章 输入输出技术输入输出技术图5-9允许中断的中断服务程序流程图第第5 5章章 输入输出技术输入输出技术(6)断点恢复与前面所提到的断点保护相对应,由于中断响应过程中,CPU硬件本身只保护有限的几个寄存器的内容,而服务程序中可能还会用到其他一些寄存器,这些寄存器的内容就必须加以保护。(7)中断返回中断返回是一条指令,执行这条指令,其操作刚好是CPU硬件在中断响应时自动保护断点的逆过程。即将堆栈的内容依次弹回到
14、IP、CS和FLAG之中。第第5 5章章 输入输出技术输入输出技术3.中断优先级及中断嵌套当微型计算机系统中存在着多个中断源,这些中断源在提出中断请求后,要求CPU对它响应的快慢程度是不一样的。而且从微机系统的设计者的眼光来看,在多个中断源的系统中,设计者会知道哪些中断源特别重要,所要求的响应要快;哪些中断源速度比较慢或重要性比较低,对它们的响应稍微晚一点是可以的。为了能够根据中断源的轻重缓急对多个中断进行合理的响应,在微机中提出了中断优先级的控制问题。中断优先级控制应当解决这样两种可能出现的情况:第第5 5章章 输入输出技术输入输出技术当不同优先级的多个中断源同时提出中断请求时,CPU首先响
15、应最高优先级的中断源。当CPU正在对某一中断源服务时,比它优先级更高的中断源提出中断请求,CPU能够中断正在执行的中断服务程序转向响应并对优先级更高的中断源服务。服务结束再返回原优先级较低的中断服务程序继续执行。第第5 5章章 输入输出技术输入输出技术图5-10中断嵌套示意图第第5 5章章 输入输出技术输入输出技术二、8086(88)的中断系统8086(88)具有功能很强的中断系统,可以处理256个不同方式的中断。每一个中断赋于一个中断向量码,CPU根据向量码的不同来识别不同的中断源。8086(88)中断源分为两大类,下面将逐一加以介绍。1.内部中断源8086(88)的内部中断主要是如下五种:
16、第第5 5章章 输入输出技术输入输出技术(1)除法错中断在8086(88)执行除法指令时,如果所得的商超过了CPU所能表示的最大值,CPU会立即产生一个向量码为0的中断。(2)单步中断8086(88)CPU的标志寄存器中有一位TF标志陷井状态标志。CPU每执行完一条指令都检测TF的状态。第第5 5章章 输入输出技术输入输出技术(3)断点中断8086(88)的指令系统中有一条专门用做设置断点的指令,其操作码为单字节CCH。(4)溢出中断当CPU进行算术运算时,如果发生溢出,则会使标志寄存器的OF标志置1。(5)用户自定义的软件中断用户可以用INTn这样的指令形式来产生软件中断。第第5 5章章 输
17、入输出技术输入输出技术2.外部中断8086(88)有两个信号输入端供外部中断源提出中断请求来使用,下面分别予以说明。(1)非屏蔽中断NMI如前所述,8086(88)的NMI不受IF标志的限制,只要是CPU在正常执行程序,一旦NMI请求发生,CPU在一条指令执行结束后将对它作出响应。NMI输入为上升沿有效。第第5 5章章 输入输出技术输入输出技术(2)可屏蔽中断请求INTR通常简称中断请求。它受中断允许标志位IF的约束。只有当IF=1,CPU才有可能响应INTR请求。INTR是高电平有效。INTR的响应过程中,在获得中断向量码上与内部中断和NMI中断不同。其时序关系图如图5-11所示。第第5 5
18、章章 输入输出技术输入输出技术图5-11INTR中断响应时序关系第第5 5章章 输入输出技术输入输出技术由CPU在INTR请求响应时,从数据总线上获取由外部中断控制器件提供的中断向量码。而一个字节的中断向量码是可以由用户来加以指定的。一个中断源对应一个8位二进制数所表示的向量码。所以,最多可以区分256个中断源。当然,这些向量码的一部分已分配给内部中断和NMI所用。综上所述,我们用图5-12表示8086(88)CPU响应中断的处理过程。第第5 5章章 输入输出技术输入输出技术图5-128086(88)的中断处理过程第第5 5章章 输入输出技术输入输出技术在8086(88)CPU中,内部中断的除
19、法错、溢出、断点及用户自定义软件中断的优先级最高,其次是NMI,比NMI优先级低的是INTR,优先级最低的是单步中断。从图5-12可以看到,各中断的处理过程大致是相同的。即CPU将标志寄存器压栈保护,暂存寄存器TEMP存放中断前的TF状态,清除IF和TF,而后将CS和IP压入堆栈保护起来,再根据向量码转向相应的服务程序。第第5 5章章 输入输出技术输入输出技术3.中断向量表在前面的叙述中,无论是内部中断还是外部中断,对应每一个中断源都有它相应的中断向量码。前面已经强调,每个中断源的向量码或者由CPU内部硬件决定或者由用户来指定。不同的向量码代表着不同的中断源。在8086(88)内存的开始1k字
20、节建立了一个中断向量表,如图5-13所示。第第5 5章章 输入输出技术输入输出技术图5-13中断向量表第第5 5章章 输入输出技术输入输出技术三、中断控制器在前面的叙述中,曾经提到利用可编程中断控制器是当前最常用的解决中断优先级控制的方法。中断控制器8259具有很强的控制功能,它能对8个或级联对更多的中断源实现优先级控制,利用提供不同的中断向量码来识别这些中断源。为用户构成中断系统提供强有力的手段。第第5 5章章 输入输出技术输入输出技术1.8259的外部引线可编程中断控制器8259外部引线图如图5-14所示。D0D7为双向数据线,与系统总线的数据线相连接。WR、RD为写和读控制信号,与系统总
21、线的读写信号相连接。CS为片选信号.A0是8259内部寄存器的选择信号,它的不同状态,对应不同的内部寄存器。INT为8259的中断请求输出信号,可直接接到CPU的INTR输入端。第第5 5章章 输入输出技术输入输出技术图5-148259引线图第第5 5章章 输入输出技术输入输出技术INTA中断响应输入信号,在中断响应过程中,CPU的中断响应信号由此端进入8259。CAS02为级联控制线。当多片8259级联工作时,其中一片为主控级芯片,其他均为从属级芯片。SP/EN为双功能引线。IR07中断请求输入端。第第5 5章章 输入输出技术输入输出技术2.8259的工作方式通过编程,可以设置8259的不同
22、工作方式,以便适应不同环境的需要。这也说明8259工作的灵活性和适应性。(1)80/85与86/88工作模式8259可以应用于8080(85)系统中,也可以用于8086(88)系统中。利用初始化命令字(见后)可以指定8259是工作在8080/85系统模式下还是工作在8086/88模式下。第第5 5章章 输入输出技术输入输出技术在80/85模式下,服务程序的入口地址高8位和低8位可通过编程由用户来指定。由于8259可以处理8个中断源,每个中断源入口地址间的间隔可以是4个字节,也可以是8个字节。这也是由用户通过编程来指定的。当间隔为4字节时,要求用户编程指定低位地址的A7、A6、A5三位;当间隔为
23、8个字节时,用户仅需指定A7和A6两位。具体情况如图5-15所示。当然,一般来说,中断服务程序用4个字节或8个字节大概都是不够的,这时,可在这里面放上JP指令,将中断服务程序安排在其他地方。第第5 5章章 输入输出技术输入输出技术图5-1580/85模式下第二中断响应字节第第5 5章章 输入输出技术输入输出技术(2)特殊屏蔽方式在正常情况下,当一个中断请求被响应时,8259将禁止所有同级及更低优先级中断请求,这就称为一般屏蔽方式。但是,在一特殊情况下,希望较低优先级的中断请求也能允许产生中断。这时,可用特殊屏蔽方式。要做到这一点,需要利用后面将要提到的8259初始化命令字。一个特殊屏蔽方式的示
24、意图如图5-17所示,其中SMM等需参看后面的命令字的定义。第第5 5章章 输入输出技术输入输出技术图5-1686/88模式下的中断向量码第第5 5章章 输入输出技术输入输出技术图5-17特殊屏蔽示意图第第5 5章章 输入输出技术输入输出技术(3)中断结束在8259中,中断结束有两种方法:自动结束。利用设置自动结束初始化命令字写入8259,此后,当8259获得CPU送来的最后一个INTA下降沿时,即自动将相应的ISR(中断服务寄存器)复位完成中断结束。非自动结束。在这种情况下,中断结束要利用中断服务程序的EOI中断结束命令。EOI命令有两种形式:特殊结束命令SEOI和一般结束命令EOI。后者用
25、于全嵌工作方式,前者用于特殊屏蔽方式。第第5 5章章 输入输出技术输入输出技术(4)优先权循环根据8259的命令字规定,它有两种优先级规定:循环优先权和固定优先权。固定优先级规定8个中断源的优先级以IR0最高,依次降低直到IR7最低。而且这种安排是不变的。第第5 5章章 输入输出技术输入输出技术循环优先权有三个结构:自动优先权循环用于中断源具有相等的优先级。在自动循环时,规定刚才获得服务的中断源在服务结束后具有最低优先级。指定优先级循环可以利用命令一次性改变优先级。利用指定优先权循环命令,指定最低优先级,而后其他中断源的优先级也就决定了。自动结束方式(AEOI)下的优先权循环,其优先权控制方式
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 输入输出 技术
限制150内