输入输出IO系统.ppt

上传人:牧羊曲112 文档编号:6349453 上传时间:2023-10-19 格式:PPT 页数:134 大小:2.26MB
返回 下载 相关 举报
输入输出IO系统.ppt_第1页
第1页 / 共134页
输入输出IO系统.ppt_第2页
第2页 / 共134页
输入输出IO系统.ppt_第3页
第3页 / 共134页
输入输出IO系统.ppt_第4页
第4页 / 共134页
输入输出IO系统.ppt_第5页
第5页 / 共134页
点击查看更多>>
资源描述

《输入输出IO系统.ppt》由会员分享,可在线阅读,更多相关《输入输出IO系统.ppt(134页珍藏版)》请在三一办公上搜索。

1、1,第10章 输入、输出(I/O)系统,2,10.1 输入输出(IO)系统概述 输入输出系统包括外部设备及其与主机(CPU和存储器)之间的控制部件。后者称之为设备控制器,有时也称为设备适配器或接口,其作用是控制并实现主机与外部设备之间的数据传送。本章主要介绍设备控制器的工作原理及其与主机之间传送数据的协议,即系统总线。,3,10.1.1 功能 接口是计算机与I/O设备或其他系统之间所设置的逻辑控制部件,也称I/O控制器。接口的引入:,外设类型不同:机械、电子、机电、电磁传送信息类型:数字量、模拟量传送速度传送方式:串行、并行编码方式:,能实现数据缓冲和数据锁存能完成信息格式和电平的转换能进行地

2、址译码和设备选择能保证数据传送的定时与协调,功能:,4,外围设备接口的结构,接口地址,地址,译码,器,数据寄存器,命令寄存器,RD,WE,地址,有效,总线,数据线,地址线,外设接口,外设控制信号,外设数据,外设状态,状态寄存器,I/O接口功能演示,5,1.输入输出接口的基本结构,CPU和外设之间通常传递的信息:数据、状态、控制,组成:寄存器组、控制逻辑电路、主机与接口和接口与I/O设备之间的信号联接线、数据地址线、控制状态信号线,CPU,控制电路,DR,SR,CR,I/O设备,地址,数据,IO/M,RD,WR,数据,状态,控制,6,2.I/O接口分类,结构方式并行和串行收发配合方式同步和异步数

3、据传送配合方式程序传送、中断传送、DMA、通道、IO处理器电路规模简单接口、可编程接口、外设接口适配器,7,3.输入输出接口的编址方式,在接口电路中通常都具有多个可由CPU进行读写操作的寄存器,每个寄存器也叫做“端口”。为了CPU便于对IO设备进行寻址和选择,必须给众多的IO设备的端口进行编址,也就是给每一台设备规定一些地址码称为设备号或设备代码。(1)存储器、I/O接口统一编址优:访存指令可访问端口,这样寻址类型多,编程较方便。缺:占用存储器空间;速度慢。(2)I/O端口独立编址优:专门的I/O指令,与访存分开;指令执行快;不占内存地址空间。缺:需专用指令、寻址方式少。,8,IBM PC等系

4、列机设置有专门的IO指令(IN和OUT),设备的编址可达512个,部分设备的地址码如表 10.1所示。从表中可见,每一台设备占用了若干个地址码分别表示相应的设备控制器中的寄存器地址。,9,10.1.2 主机与外设间 数据传送控制方式,(1)程序直接控制(program direct control)传递方式(2)程序中断传送(program interrupt transfer)方式(3)直接存储器存取(direct memory access)方式DMA(4)I/O通道控制(I/O channel control)方式(5)外围处理机(peripheral processor unit)方式

5、,10,信号传输过程,状态寄存器,数据寄存器,2,控制,器,ALU,数据寄存器,1,地址寄存器,设备驱动电路,数据寄存器,地址译码器,设备接口,CPU,11,1、程序直接控制传送方式,该方法是主机与外设之间进行数据交换的最简单、最基本的控制方法。无条件传送只有在外设总处于准备好状态程序查询方式优点:较好协调主机与外设之间的时间差异所用硬件少。缺点:主机与外设只能串行工作主机一个时间段只能与一个外设进行通讯CPU效率低。,从I/O接口中读 一个字到CPU,从CPU向主存 写入一个字,CPU向I/O发 读指令,CPU读I/O状态,检查状态,完成否,未准备就绪,现行程序,是,出错,已准备就绪,否,1

6、2,2、程序中断传送方式,由于CPU与外设之间的速度至今仍是微秒和毫秒的数量级,速度差异悬殊,会使CPU的工作效率下降。优点:避免频繁查询,适合随机出现的服务和中低速外设使用。缺点:成批数据交换时,中断影响传送效率,一次传送一个字符,中断处理时间大于传送数据时间。需要一定的硬件电路。,中断方式的引入,程序中断方式的输入接口工作过程演示,13,3、直接存储器访问方式,1.DMA方式的引入前两种方式以CPU为中心,占用CPU时间。DMA方式以内存为中心。2.基本工作原理在外设通过专门的接口电路和存储器进行数据交换,而不用通过CPU的寄存器。控制过程由DMA控制器这样的硬件来完成,不需要保存断点。特

7、点:适用于高速设备和大数据量的数据传输,需用更多的硬件电路支持。,直接存储器存取方式软盘控制接口工作演示,14,三种方式的 CPU 工作效率比较,程序查询方式,程序中断方式,DMA 方式,15,4、I/O通道控制方式 IO通道具有少数专用的指令系统,能实现指令所控制的操作,管辖其相应的设备控制器,所以IO通道已具备简单处理机的功能。但它仅仅是面向外围设备的控制和数据的传送,其指令系统也仅仅是几条简单的与IO操作有关的命令。它要在CPU的IO指令指挥下启动、停止或改变工作状态。因此,lO通道不是一个完全独立的处理机,它只是从属于CPU的一个专用IO处理器。它的进一步发展是引入专用的输入输出处理机

8、。通道方式的出现进一步提高了CPU的效率。但需更多的硬件电路。,16,5、输入输出处理机(IOP)方式,有单独的存储器和独立的运算部件,可访问系统的内部存储器除数据传输外,还应有以下功能:能处理传送过程中出错及异常情况,数据格式翻译,数据块校验。IOP方式是通道方式的进一步的发展。它们大多应用在中、大型计算机中。,17,10.2 程序中断控制技术 中断:计算机暂时中止当前程序运行,转而处理意外出现的情况或有意安排的任务,在处理结束后能自动恢复原程序的执行,这个过程叫作“中断”。中断系统是计算机实现中断功能的软、硬件总称。在CPU一侧配置了中断机构,在设备一侧配置了中断控制接口,在软件上设计了相

9、应的中断服务程序。中断过程由中断请求、中断响应、状态保护、中断屏蔽、中断处理、恢复和返回组成。,18,I/O 中断的产生,以打印机为例,CPU 与打印机并行工作,19,10.2.1 中断的概念,在机器中引起中断产生的事件或发生中断请求的来源统称为中断源。硬件中断:是指由某个硬件中断请求信号引起的中断,硬件中断通过是中断请求信号形成向量地址。向量地址是中断服务程序入口地址的地址。软中断:是指由软中断指令所引起的中断,软中断由指令提供中断号n,再转换为向量地址。强迫中断:是指由于故障、外部请求等所引起的强迫性中断,非程序本身安排的,这种请求的提出和相应的服务处理都是随机的。自愿中断即软中断 这是程

10、序有意安排的,即以事先在程序某处设置断点,以中断方式引出服务程序,实现某种功能。如单步调试程序。,1.中断源,20,内部中断:指来自主机内部的中断请求,如CPU内部硬件故障、软中断、程序出错、运算产生故障引起的中断、控制器产生的中断。即溢出、除数为零、校验错、非法格式、虚拟存储器页面失效、非法指令、调用失败、故障中断等。外部中断:由CPU外部产生的中断键盘中断、打印机中断、磁盘存储器申请中断、电源故障、主机设备故障、定时时钟中断、显示器中断、打印机中断等。可屏蔽中断INTR 一般将外围设备中断作为可屏蔽中断,CPU通过屏蔽技术施加以控制。不可屏蔽中断NMI 这是一种必须响应处理的中断请求,作为

11、非屏蔽中断,不受CPU屏蔽。软中断发生于CPU内部,不属于外中断范畴,从概念上将它也是不可屏蔽的。,21,向量中断 CPU响应中断后,由中断机构自动将向量地址通知处理机,由向量地址指明中断向量位置并实现向量切换,不必经过处理程序来查询中断源的中断功能,称为向量中断。即直接依靠硬件来实现根据中断源获得服务程序入口地址,以实现程序切换。向量中断的特点是根据中断请求信号能快速地、直接转向对应的服务程序。因此,现代计算机基本上多具有向量中断能力。非向量中断 CPU不能直接提供中断服务程序入口地址,而是CPU在响应中断时只产生一个固定的地址,由此读取中断查询程序的入口地址,从而转向查询程序;通过执行查询

12、程序,确定被优先批准的中断源,然后分支进入相应的中断服务程序。非向量中断也称为单向量中断。,22,2.CPU响应中断必须满足的条件,中断源有中断请求中断寄存器CPU允许接受中断请求开中断中断屏蔽寄存器(判优)禁止中断一般一条指令执行完毕后CPU才能响应中断,并且当前执行的不是停机指令,又没有优先权更高的请求,则CPU进入中断周期状态,进入中断响应。,取指令,执行指令,中断,响应中断,执行中断服务程序,返回断点,关中断、保存断点、现场、开中断,关中断、恢复现场、断点、开中断,NO,Y,23,相关知识说明 1)中断响应 一旦CPU中断响应条件得到满足,则CPU进入中断周期状态,并开始响应中断。CP

13、U响应中断意味着处理机从一个程序切换到另一个程序。2)中断服务程序 为处理意外情况或有意安排的任务而编写的程序称为“中断服务程序”3)中断请求的检测与屏蔽在一个指令周期的最后一个机器周期检测当外部中断源申请中断时,CPU是否响应还要取决于其内部的中断允许寄存器IR。IR=1 是允许中断申请(开中断);IR=0 时禁止中断申请(关中断)。由指令STI和CLI软件设置。,24,4)中断请求触发器:当中断源发生引起中断的事件时先将它保存在设备控制器的中断请求触发器中,即将“中断触发器置1”。5)禁止中断:产生中断源后,由于某种条件的存在,CPU不能中止现行程序的执行,称为禁止中断。一般在CPU内部设

14、有一个“中断允许触发器。只有该触发器为1状态时。才允许处理机响应中断;如果该触发器被清除,则不响应外部中断源申请的中断、前者叫做允许中断,后者叫做禁止中断。6)堆栈与断点的保护程序被中断的地址称为断点,需保存,以备恢复执行时使用,保存断点的地方称为栈区。栈区:内存中开辟的专用数据存取区,25,7)“中断允许触发器通过开中断ST I或关中断CLI指令来置位、复位。进入中断服务程序后自动“关中断。8)中断屏蔽:当产生中断请求后,用程序方式有选择地封锁部分中断而允许其余部分中断仍得到响应,称为中断屏蔽。实现方法是为每个中断源设置一个中断屏蔽触发器来屏蔽该设备的中断请求。具体说,用程序方法将该触发器置

15、“l则对应的设备中断被封锁,若将其置“0”,才允许该设备的中断请求得到响应,由各设备的中断屏蔽触发器组成中断屏蔽寄存器。,26,9)向量(矢量)中断和中断向量(矢量)矢量中断:是根据发生中断时,CPU能够直接获得到一个中断服务程序的起始地址的方式而得名。中断矢量:实际上就是一个指针,其内容是中断服务程序起始地址。即中断服务程序起始地址的地址。10)中断矢量表:微机中把全部中断矢量存放在内存的某一区域中,形成一个中断矢量表。当发生中断时,根据中断源不同,从中断矢量表中取出对应的中断矢量送给CPU的IP寄存器,CPU开始执行中断处理子程序。11)多重中断和中断优先:多重中断就是CPU在执行某一中断

16、服务程序后,如果令IR=1,那么 CPU还可以接受更高级的中断申请执行其中断服务程序.形成多重中断(也称为中断嵌套)。响应多重中断的原则是按实现设定好的各中断源的中断优先级别进行先后处理。级别高的优先处理,级别低的后处理。具体判断方法可用硬件判断或软件判断。,27,3.中断屏蔽技术的应用 通过输出指令送出一个屏蔽字,有选择地允许某些中断请求、屏蔽某些中断请求。常用于如下两种场合。1)在多重中断方式中(即允许中断嵌套),当CPU响应某个中断请求后,送出一个新的屏蔽字,以禁止与该请求统一优先级或更低级优先级的其它请求。只允许比该请求优先级高的其它中断请求可以提出。2)利用屏蔽技术动态地修改优先级

17、硬件排优逻辑所分配的优先级是固定的,但有时根据程序的需要临时动态的修改优先顺序,就可利用屏蔽字将原来优先级高的设备请求暂时屏蔽。原来级别低的请求由于未被屏蔽,优先级相对提高,称为中断升级。过一段时间再恢复或再调整屏蔽字。,28,4.中断的作用和功能(1)CPU可与 IO设备并行工作,提高CPU的工作效率(2)利用中断来处理故障,提高了机器的可靠性。计算机运行时,如硬件出现某些故障,机器中断系统发出中断请求,CPU响应中断后自动进行处理。(3)实现人机联系 在计算机工作过程中,如果用户要干预机器,如抽查计算中间结果,了解机器的工作状态,给机器下达临时性的命令等。利用中断系统实现人机通信是很方便、

18、很有效的。(4)实现多道程序和分时操作 计算机实现多道程序运行是提高机器效率的有效手段,多道程序的切换运行需借助于中断系统。在一道程序的运行中,由IO中断系统切换到另外一道程序运行,也可以通过分配每道程序一个固定时间片,利用时钟定时发中断进行程序切换。,29,(5)实现实时处理 所谓实时处理,是指在某个事件或现象出现时及时地进行处理,而不是集中起来再进行批处理。这些事件出现的时刻是随机的,而不是程序本身所能预见的,因此,要求计算机中止正在执行的程序,转而去执行中断服务程序。在实际工程中,利用中断技术进行实时控制已广泛应用于各个生产领域中。(6)实现应用程序和操作系统的联系 可以在用户程序中安排

19、一条Trap指令进入操作系统,称之为软中断。其中断处理过程与其他中断类似。(7)多处理机系统各处理机间的联系 在多处理机系统中,处理机和处理机之间的信息交流和任务切换可以通过中断来实现。,10.2.2 中断处理,1.中断处理过程,31,I/O 中断处理过程,DBR,设备选择电路,以输入为例,32,(1)关中断:由硬件自动实现、因为接下去要保存断点,保存现场。在保存现场过程中,即使有更高级的中断源申请中断,CPU也不应该响应。否则,如果现场保存不完整,在中断服务程序结束之后,也就不能正确地恢复现场并继续执行现行程序。(2)保存断点和现场 为了在中断处理结束后能正确地返回到中断点,在响应中断时,必

20、须把当前的程序计数器PC中的内容(即断点)保存起来。现场信息一般指的是程序状态字中断屏蔽寄存器和CPU中某些寄存器的内容。对现场信息的处理有两种方式。一种是由硬件对现场信息进行保存和恢复;另一种是由软件即中断服务程序对现场信息保存和恢复。对于由硬件保存现场信息的方式,各种不同的机器有不同的方案。有的机器把断点等保存在主存固定的单元。,33,有的机器则不然,它在每次响应中断后把处理机状态字和程序计数器内容相继压入堆栈,再从指定的两个主存单元分别取出新的程序计数器内容和处理机状态字来代替,称为交换新、旧状态字方式。(3)判别中断源,转向中断服务程序。在多个中断源同时请求中断的情况下。本次实际响应的

21、只能是优先权最高的那个中断源、所以,需进一步判别中断源,并转入相应的中断服务程序入口。(4)开中断。因为接下去就要执行中断服务程序,开中断将允许更高级中断请求得到响应。实现中断嵌套。(5)执行中断服务程序。不同中断源的中断服务程序是不同的,实际有效的中断处理工作是在此程序段中实现的。(6)退出中断。在退出时,又应进入不可中断状态,即关中断,恢复现场、恢复断点,然后开中断,返回原程序执行。进入中断时执行的关中断、保存断点等操作一般是由硬件实现的,它类似于一条指令,但它与一般的指令不同,不能被编写在程序中。因此,常常称为中断隐指令。,34,2.判别中断源 查询法:由测试程序按一定优先排队次序检查各

22、个设备的“中断触发器”(或称为中断标志)。当遇到第一个1标志时,即找到了优先进行处理的中断源,通常取出其设备码,根据设备码转入相应的中断服务程序。串行排队链法:由硬件确定中断源。图10.4为中断请求逻辑图和串行排队判优先线路图。专用硬件独立请求。中断服务程序入口地址有两种方法。其一是在中断程序中设一条专门接受中断设备号的指令INTA,收到设备号后,在通过主存的跳转表产生其中断服务程序入口地址。另一种是目前广泛应用的向量中断方法。3.多重中断处理中断嵌套:在处理某一个中断的过程中又发生了新的更高级中断源的中断申请,且CUP又处于开中断状态下,CPU就要中断该服务程序的执行,转去进行新的中断处理服

23、务程序。一般情况下与它同级的或比它低级的新中断请求不能CPU不能相应其请求,35,中断优先级的响应次序由硬件排队线路决定。一旦设计完成,系统的优先级别就决定了,但缺乏改变优先权级别的灵活性。在有优先级中断屏蔽码控制的条件下,可以不改变系统排队线路,使其中断响应次序不同。因为中断屏蔽码是由软件赋值,改变屏蔽码可以改变个设备之间中断处理次序,所以屏蔽码可看成中断处理过程中的软排队器。从中断服务程序结构看,中段服务程序可以在具体处理前被中断,所以中断处理次序可以不同于中断响应次序。这就反映了中断系统软硬件结合所带来的灵活性。,36,中断判优逻辑,分散 在各个中断源的 接口电路中 链式排队器,集中 在

24、 CPU 内,(1)硬件实现(排队器),INTR1,INTR2,INTR3,INTR4,INTR1、INTR2、INTR3、INTR4 优先级 按 降序 排列,37,A、B、C 优先级按 降序 排列,(2)软件实现(程序查询),转 A 的服务程序入口地址,转 B 的服务程序入口地址,转 C 的服务程序入口地址,38,中断服务程序入口地址的寻找,1.硬件向量法,向量地址 12H、13H、14H入口地址 200、300、400,39,2.软件查询法,M,40,3.中断隐指令,(1)保护程序断点,(2)寻找服务程序入口地址,(3)硬件 关中断,PC,断点存于 特定地址(0 号地址)内,断点 进栈,I

25、NT 中断标记,EINT 允许中断,R S 触发器,41,保护现场和恢复现场,1.保护现场,2.恢复现场,保护现场,其他服务程序,恢复现场,中断返回,PUSH,视不同请求源而定,POP,中断服务程序 完成,中断服务程序,中断隐指令 完成,中断服务程序 完成,IRET,42,1.多重中断的概念,k,l,m,k+1,l+1,m+1,程序断点 k+1,l+1,m+1,中断屏蔽技术,43,2.实现多重中断的条件,中断请求,主程序,(2)优先级别高 的中断源 有权中断优先级别低 的中断源,(1)提前 设置 开中断 指令,44,3.屏蔽技术,(1)屏蔽触发器的作用,MASK=0(未屏蔽),INTR 能被置

26、“1”,MASKi=1(屏蔽),INTPi=0(不能被排队选中),45,(2)屏蔽字,16个中断源 1、2、3 16 按 降序 排列,46,(3)屏蔽技术可改变优先等级,(4)屏蔽技术的其他作用,0 0 0 0 1 0 1 1 1 1 1 1 1 1 1 1,0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1,6#比 5#优先级高,便于程序控制,可以 人为地屏蔽 某个中断源的请求,47,例1 假设某机有设备一、二、三和四共4个设备中断源,每个中断原具有不同的优先权,共1、2、3、4级响应优先权。设其中断源的优先级别从高到低分别为1234的顺序。每级对应1个屏蔽码。表1列出中断响应优

27、先级与屏蔽级一致情况下的屏蔽码。表1,48,假设当CPU执行主程序过程中同时出现设备2和3两个中断请求。按排队线路,因设备2的优先级高于3,故应先响应设备2中断请求。执行设备2的中断服务程序并保护现场和原屏蔽字后,将2级程序的屏蔽码置入各接口屏蔽寄存器,它将屏蔽3级的中断请求。执行完2级服务程序后恢复原屏蔽码,返回主程序后再响应3级的中断请求。此时若4级又提出中断请求,CPU暂不予理睬。3级中断程序执行完后再响应4级的中断。由图10.5可知,纵向表示各中断源申请中断的先后时间,横向表示中断优先级别。假若CPU再次执行2级中断服务程序时,出现了1级中断请求,由于在执行3级服务程序时已经把其程序屏

28、蔽字置入屏蔽寄存器了,这样对1级中断是开放的。因其1级优先级高于2级,则CPU暂停对第2级中断服务程序的执行,转去执行第1级中断服务程序。等第1级中断服务程序执行完后,再去执行第2级中断服务程序。在本例中,中断请求次序为2、342l;而中断完成次序为234l2,两者不相同。,49,图10.5 多重中断处理示意图中断请求 主程序 中断处理程序 1 2 3 4,3,2 4,21,50,(1)断点进栈,(2)断点存入“0”地址,中断隐指令 完成,中断周期,命令存储器写,三次中断,三个断点都存入“0”地址,多重中断的断点保护,中断隐指令 完成,51,(3)程序断点存入“0”地址的断点保护,SERVE,

29、LDA SAVE,JMP RETURN,存程序断点,5 为向量地址,保护现场,恢复现场,间址返回,存放 ACC 内容,转存 0 地址内容,开中断,ENI,52,例2 在不改变硬件排队响应次序下,欲临时改变上题中断处理次序为1432时,则可以采用改变中断屏蔽码来实现。如表2所示。在CPU执行主程序过程中的某一时刻,1、2和4三个设备同时出现中断请求信号,首先响应1级请求;当返回主程序后,有硬件排队线路决定先响应2级请求,但2级屏蔽码置入屏蔽寄存器后,由于2级对4级是开放的且屏蔽它本身,2级服务程序执行到开中断指令后就被4级中断;当4级中断服务程序执行完后返回到2级程序,并执行完2级服务程序后返回

30、主程序。由此可知,它改变了硬件排队所决定的响应次序。当第二组中断请求出现时,3级申请先出现,故先响应3级中断,并执行中断服务程序。因3级对1级开放,所以当1级请求出现时,1级中断了3级。当1级服务程序执行完后返回3级后,又由2级出现申请时,由于3级对2级屏蔽,故当3级执行完返回主程序后才响应2级请求并执行执行完后返回主程序。,53,CPU执行中断的时序如图10.6。表2 中断处理次序为1432的屏蔽码 图10.6响应次序与处理次序不一致时CPU的执行时序,54,10.2.3 80X86的中断功能,允许256个中断源、02551.按中断原因分:软件中断:执行特定指令时产生的中断硬件中断:外部事件

31、触发产生的中断2.中断矢量:中断服务程序入口地址的地址。3.中断服务程序入口地址:放在 CS和IP中。,55,4.8086中断响应过程,将类型码乘4作为指向中断矢量(向量)表内的地址;标志寄存器FR入栈,保护各个标志位;将陷阱标志寄存器TF的内容送入暂存寄存器,清除中断允许寄存器IR和TF的内容,屏蔽新的外部中断申请INTR和单步中断。根据中断矢量,从中断矢量表中取中断服务程序入口地址分别送入指令指针寄存器IP和程序段寄存器CS在中断服务程序中通常要保护CPU内部有关通用寄存器的内容(保存现场),开中断;中断服务程序运行结束后要恢复现场,返回被中断的程序继续执行下条指令。,56,10.2.4

32、可编程中断控制器8259A简介,1、功能:允许8个外部中断源.可二级级联,最多可控制64个中断源(9片)片内可编程,自动选择不同的优先级判定方式(固定优先级和循环优先级)选择控制中断方式对某个中断可进行屏蔽设置2、逻辑结构图:,57,图10.7 可编程中断控制器8259A逻辑结构图,D7D0,INTA,INTR,中断请求锁存器,中断屏蔽寄存器,数据总线缓冲器,IR0,IR7,读/写控制逻辑,级联缓冲器比较器,CAS0,CSA1,CAS2,SP/EN,优先权判别电路,正在服务寄存器,控制逻辑,58,Intel 8259A中断控制器件的内部结构 如图 I0.7所示。它由八个部分组成;中断请求寄存器

33、、中断状态寄存器、优先级判断器、中断屏蔽寄存器、中断控制逻辑、数据缓冲器、级联缓冲器比较器和读写逻辑。八位中断请求寄存器接受外设来的中断请求(IR0IR7),每一位表示一个外部设备的中断请求。中断寄存器的各位送入优先级判断器,根据中断屏蔽寄存器和中断状态寄存器的状态决定最高优先级的中断请求并将判优结果送入中断状态寄存器。如果中断请求被接受,则由控制逻辑向CPU发中断请求INT。D0D7为双向数据线、数据缓冲器暂时保存在内部总线和系统数据总线间进行传送的数据。读写逻辑将决定数据的传送方向。RD为读命令,而WR为写命令。,59,/CS为8259A芯片的选择信号,A0与8259A中被选的寄存器地址有

34、关。在8259A中,为每一个外设的中断请求(IR0IR7)设置一个中断类型码(8位),当其中一个外设的中断请求被CPU响应后,8259A送出与该中断所对应的中断类型码作为寻找中断服务程序入口的依据。中断类型码(8位)由两部分组成,其高5位是由计算机初始化程序设置的,保存在8259A中以后不再改变;低3位由被响应的中断请求序号提供。例如,IR3的中断请求被响应,中断类型码的低3位即为011。在同一个8259A中,高5位为8个中断请求共用(类型地址高位编号)。假设与IR0对应的中断类型码为40H,那么与IR1IR7对应的中断类型码为4lH47H。每个8259A最多能控制8个外部中断信号,但可将多个

35、8259A级联以处理多达64个中断请求、它允许有一个主单元和多个(不超过8个)从单元,称为主从系统。如下图所示。,60,8259级联工作示意图,61,8259允许采用多种中断优先级选择方式和屏蔽方式。8259A的中断优先级选择方式具有完全嵌套方式、轮换优先级A,轮换优先级B和查询方式。完全嵌套方式是一种固定优先级方式,连至IR0的外围设备优先权最高,而连至IR7的优先权最低。这种固定优先级方式对级别低的中断不利,在某些情况下,最低级别的中断请求可能一直不能被处理。轮换优先级方式A,每个级别的中断保证有机会被处理。它把给定的中断级别处理完后,立即把它放到最低级别的位置上去。轮换优先级方式B要求C

36、PU可在任何时间规定最低优先级,然后按顺序规定其他IR线上的优先级。查询方式由8259给出一个状态字表示出正在请求中断的最高忧先级IR线,并能表示出中断请求是否有效。,62,设备1,接口,菊花链逻辑电路,设备2,接口,菊花链逻辑电路,设备3,接口,菊花链逻辑电路,CPU以及总线控制逻辑 INTA INTR,中断回答,中断请求,菊花链式判优法,+5v,63,8259A单元提供了两种屏蔽方式,简单屏蔽方式和特殊屏蔽方式。简单屏蔽方式提供了8位的屏蔽字,每位对应着各自的IR线被置位的任何一位就禁止了相应IR线上的中断。特殊屏蔽方式允许CPU让来自低优先级外设的中断去中断高优先级的服务程序。当8位屏蔽

37、位的某一位被置0时,则对应此位的IR线上的外设中断可中断比它高优先级别的服务程序。例如,若屏蔽字为1110 1111,说明IR4线上的中断可中断任何高级别的中断服务程序。8259A单元的不同工作方式是通过编程来进行选择的,CPU送出一系列的初始化控制字和操作控制字来执行选定的操作。CPU将8259当作两个IO端口或两个存储单元来寻址,由A0端确定这些控制字存入读写逻辑中哪个控制字寄存器。,64,10.3 DMA(Direct Memory Access)输入输出方式 高速大容量存储器和主存之间交换时,若采用程序直接传送或程序中断传送的方式,则会有如下问题发生。1)采用程序直接传送,主机工作效率

38、受到限制。2)采用中断控制数据传送可以提高主机效率,但用于高速外设和主机交换信息,会使主机处于频繁的中断与返回过程中,从而加重了与中断有关的额外负担(即保护旧现场,恢复新现场),这样降低了CPU的性能,还有丢失数据的可能。所以对高速I/O设备,用中断传送控制方式也是不合适的。应采用直接存储器访问方式传送,即DMA方式较为合适。,65,66,DMA是l/O设备与主存储器之间由硬件组成的直接数据通路,主要用于高速IO设备与主存之间的成组数据传送。数据传送时是在DMA控制器控制下进行的,由DMA控制器给出当前正在传送的数据字的主存地址,并统计传送数据的个数以确定一组数据的传送是否已结束。在主存中要开

39、辟连续地址的专用缓冲器,用来提供或接收传送的数据。在数据传送之前和结束后要通过程序或中断方式对缓冲器和DMA控制器进行预处理和后处理。对磁盘的读写是以数据块为单位进行的,一旦找到数据块的起始位置就将连续地读写。而计算机通过通信设备与外部通信时,常以数据帧为单位进行批量传送。但在大批量数据采集系统中,也可以采用DMA方式。,67,1.CPU暂停方式 主机响应DMA请求后让出存储总线,直到一组数据传送完毕后,DMA控制器才把总线控制权交还给CPU。采用这种工作方式的IO设备,在其接口中一般设置有存取速度较快的小容量存储器。IO设备与小容量存储器先交换数据,然后小容量存储器再与主机交换数据,这样可减

40、少DMA传送占用存储总线的时间,也即减少CPU暂停工作时间。这种方式也称为成组连续传送方式,它可减少系统总线控制权的交换次数,有利于提高输入输出速度。适用于高速外设或单用户状态下的个人计算机。2.CPU周期窃取方式 DMA控制器与主存储器之间传送一个数据占用(窃取)一个CPU周期即CPU暂停工作一个周期,然后继续执行程序。这种方式也称为单字传送方式。,10.3.1 DMA三种工作方式,68,3.直接访问存储器工作方式 这是标准的 DMA工作方式。如传送数据时CPU正好不占用存储总线,则对 CPU不产生任何影响。如同时需要访问存储总线,则DMA的优先级高于CPU。10.3.2 DMA控制器组成

41、DMA控制器基本组成如图10.8所示。它包括多个设备寄存器、中断控制和DMA控制逻辑等。DMA控制器中包含多个寄存器,主要的寄存器有:(1)主存地址寄存器(MAR):该寄存器初始值为主在缓冲区的首地址,在传送前要由程序送入。主存缓冲区地址是连续的。在DMA传迭期间,每交换一个字由硬件逻辑将其自动加1而成为下一次数据传送的主存地址。(2)外围设备地址寄存器(ADR):该寄存器存放IO设备的设备码或者表示设备信息存储区的寻址信息,如磁盘数据所在的区号、盘面号和柱面号等。具体内容取决于I/O设备的数据格式和地址字编址方式。,69,(3)字数计数器(WC):该计数器对传送数据的总字数进行统计,在传送开

42、始前,由程序将要传送的一组数据的字数送入 WC,以后每传送一个字(或字节)计数器自动减 1,当WC内容为零时表示数据已全部传送完毕。(4)控制与状态寄存器(CSR):该寄存器用来存放控制率和状态字,有的接口中使用两个寄存器分别存放控制字和状态字。(5)数据缓冲寄存器(DBR):该寄存器用来暂存IO设备与主存传送的数据。通常DMA与主存之间是按字传送的,而DMA与设备之间时能是按字节或块传送的。因此,DMA还可能要包括装配和拆卸字信息的硬件。如数据移位缓冲寄存器、字节计数器等。各寄存器均有自己的总线地址,它们是主存的指定单元或IO设备号,CPU可对这些寄存器进行读写。,70,DMA控制器结构,7

43、1,此外还有中断控制逻辑 DMA中断控制逻辑负责申请CPU对DMA进行预处理和后处理。DMA控制逻辑 一般包括设备码选择电路;DMA优先排队电路,产生DMA请求的线路等;在DMA取得总线控制权后控制主存和设备之间的数据传送;DMA接口与主机和IO设备两个方向的数据线、地址线和控制信号线以及有关收发与驱动线路。DMA传送是直接依靠硬件实现的,这是它不同于程序查询方式、中断传送访时之处。原理方框图如下:,72,数据总线,控制总线,地址译码器,地址总线,总线请求,总线允许,控制寄存器,状态寄存器,地址寄存器,字节计数器,DMA请求,DMA回答,计数结束信号,DMA控制器框图,73,10.3.3 DM

44、A的数据传送过程 DMA的数据传送过程可分为三个阶段。DMA传送前预处理、数据传送及传送后处理。1.DMA预处理 在进行DMA数据传送之前要用程序做一些必要的准备工作。先由CPU执行几条输入输出指令测试设备状态;向DMA控制器的设备地址寄存器中送入设备地址并启动设备;在主存地址寄存器中送入交换数据的主存起始地址;在数据字数寄存器中送入交换的数据个数。在这些工作完成之后,CPU继续执行原来的程序等待设备发出DMA申请。,N,CPU预处理,数据传送,后处理,DMA请求,图10.9 DMA数据传送过程,N,Y,Y,75,2.DMA控制I0设备与主存之间的数据交换 IO设备启动后,若为输入数据,则要进

45、行以下操作(1)从输入介质读入一个字到数据缓冲寄存器 DBR中,如 I0设备是面向字符的,也就是一次读入的数据为一个字节,则组成一个字需经装配。(2)向CPU发DMA请求,在取得总线控制权后将DBR中的数据送入主存的数据寄存器。(3)将DMA中的MAR内容送主存的地址寄存器,启动写操作将数据写入主存。(4)将WC内容减1;将MAR的内容加1,给出下一个字的地址。(5)判断WC是否为“0”,若不是,说明还有数据需要传送,检查无错后准备下一字的输入。若WC为“0”,表明一组数据已传送完毕,此时应置结束标志向CPU发中断请求。,76,若为输出数据应进行以下操作(1)将MAR的内容送主存的地址寄存器。

46、(2)启动主存读操作,将对应单元的内容读入主存的数据寄存器(3)将主存数据寄存器的内容送到DMA的DBR中。(4)将DBR的内容送到输出设备,若为字符设备则需将DBR内容拆成字符输出。(5)将 WC内容减 1,MAR内容加 1,为下一个字的输出做好准备。(6)判断WC的内容是否为0。如不为0,说明还需继续传送。输出设备处理完数据后,发DMA请求。如 WC为0或检验有错则停止传送,向 CPU发结束中断请求或出错中断请求。3.CPU中断原程序进行后处理 若需继续交换数据,则又要对DMA控制器进行初始化。若不需交换数据,则停止外设;若为出错,则转错误诊断及处理程序。,77,数据传送过程(输入),78

47、,数据传送过程(输出),79,10.3.4 磁盘存储器接口举例 为方便设计,并减少设备控制器所需器件数目。半导体厂家设计了DMA控制器如Intel 8237、8257、82285。在磁盘调用过程中,既有DMA方式也有程序中断方式的具体应用。微机中的磁盘适配器,即是外围接口,又是磁盘设备控制器。该适配器的组成是一种典型的智能控制器性结构,即采用微处理器与局部存储器的接口。整个PC机系统中有两级DMA控制器。其中一级DMA控制器8237安装在系统板上,作为全机的公共DMA 控制逻辑。管理软盘、硬盘、DRAM刷新、同步通信四个通道。在磁盘适配器上还有一级DMA控制器,这块8237芯片的任务是管理磁盘

48、驱动器与适配器之间的传送。1.磁盘适配器的组成 它的组成可分为三个部分:一侧面向系统总线的接口,80,逻辑,称为处理机接口;另一侧面象磁盘驱动器的接口逻辑,称为驱动器接口;其中心是由微处理器、局部存储器和一块8237DMA控制器组成的智能主控器。智能主控器的功能包括:对CPU送来的命令进行译码,通过驱动器接口驱动设备完成指定的操作;通过状态缓冲器检测磁盘驱动器的有关状态;通过处理器接口中的状态缓冲器,向主机报告命令的执行情况;将写入数据进行并串转换,按MMF制编码送磁盘驱动器;有磁盘驱动器读出数据,通过数据、式中分离电路,在经串并转换形成并行的数据字节;进行错误检验与纠错;对磁道进行格式化。,

49、81,例如在写盘时,从适配器扇区缓冲器RAM中取得写入数据,作并串转换,经编码器形成FFM制代码,送往磁盘驱动器。当有一个扇区缓冲区为空时,适配器向主机提出DMA请求,请求主机送来写入数据。在读盘时,驱动器送来串行读出序列,分离电路时数据与时钟信号分离。获得的数据信号经串并转换,送入扇区缓冲器。当有一个扇区缓冲区装满时,适配器向主机提出DMA请求,请求主机取走数据。磁盘调用过程涉及到许多细节,如CPU应对DMA控制器及适配器发出哪些命令、命令格式、发命令的时间、在调用过程中需做哪些状态检测、发现错误如何处理、主机为磁盘控制器设置哪些操作命令和磁盘驱动程序中包括哪些功能模块等等。,82,2.硬磁

50、盘调用举例 PC-DOS的温盘驱动程序以软中断INT13H调用,它包含一个主程序框架和21个功能子程序模块,可向磁盘控制器发出22种操作命令。主程序的功能包括测试驱动器参数,判断可否调用;设置命令块,给出圆柱面号、磁头号、扇区号、传送扇区个数、寻道的步进速率、功能子程序模块号;转入某个功能子程序;在传送完毕后判调用是否成功等。21个功能子程序模块可供选用,如磁盘复位,读磁盘状态,读、写盘,检验指定的扇区,格式化指定磁道,设置故障扇区的标志,初始化驱动器性能参数,磁道寻找,测试驱动器准备状态等。,83,下面说明磁盘调用的大致过程,其间略去了一些细节。1)以软中断INT13调用温盘驱动程序,并在寄

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号