计算机组成原理(华科版)第七章输入输出系统.ppt

上传人:小飞机 文档编号:6023911 上传时间:2023-09-15 格式:PPT 页数:79 大小:563.50KB
返回 下载 相关 举报
计算机组成原理(华科版)第七章输入输出系统.ppt_第1页
第1页 / 共79页
计算机组成原理(华科版)第七章输入输出系统.ppt_第2页
第2页 / 共79页
计算机组成原理(华科版)第七章输入输出系统.ppt_第3页
第3页 / 共79页
计算机组成原理(华科版)第七章输入输出系统.ppt_第4页
第4页 / 共79页
计算机组成原理(华科版)第七章输入输出系统.ppt_第5页
第5页 / 共79页
点击查看更多>>
资源描述

《计算机组成原理(华科版)第七章输入输出系统.ppt》由会员分享,可在线阅读,更多相关《计算机组成原理(华科版)第七章输入输出系统.ppt(79页珍藏版)》请在三一办公上搜索。

1、,第七章 输出/输入系统,现代电子计算机系统可以分为3个部分:运算处理子系统,I/O子系统和通信网络子系统。计算机的I/O系统包括I/O接口、I/O管理部件及有关软件。一个计算机系统的综合处理能力,系统的可扩展性、兼容性和性能价格比,都和I/O系统有密切关系。,7.1 信息交换的控制方式,信息交换的控制方式一般分为5种类型。1.程序查询方式(Programmed Direct Control)这种方式又称为程序直接控制方式,是指信息交换的控制完全由主机执行程序来实现。当主机执行到某条指令时,发出询问信号,读取设备的状态,并根据设备状态,决定下一步操作,这样要花费很多时间用于查询和等待,效率大大

2、降低。这种控制方式用于早期的计算机。现在,除了在微处理器或微型机的特殊应用场合,为了求得简单而采用外,一般不采用了。,2.程序中断控制方式(Program Interrupt Transfer)在程序中断控制方式中,外部设备在完成了数据传送的准备工作后,主动向CPU提出传送请求,CPU暂停原执行的程序,转向信息交换服务。在这种方式下,CPU的效率得到提高,这是因为设备在数据传送准备阶段时,CPU仍在执行原程序;此外,CPU不再像程序直接控制方式下那样被一台外设独占,它可以同时与多台设备进行数据传送。这种方式的缺点是,在信息传送阶段,CPU仍要执行一段程序控制,还没有完全摆脱对I/O操作的具体管

3、理。,3.直接内存访问方式(Direct Memory AccessDMA)DMA方式是一种完全由硬件进行成组信息传送的控制方式。它具有程序中断控制方式的优点,即在设备准备数据阶段,CPU与外设能并行工作。它降低了CPU在数据传送时的开销,这是因为DMA接替了CPU对I/O中间过程的具体干预,信息传送不再经过CPU,而在内存和外设之间直接进行,因此,称为直接内存访问方式。由于在数据传送过程中不使用CPU,也就不存在保护CPU现场,恢复CPU现场等繁琐操作,因此数据传送速度很高。这种方式适用于磁盘机、磁带机等高速设备大批量数据的传送。它的硬件开销比较大。DMA接口中,中断处理逻辑还要保留。不同的

4、是,DMA接口中的中断处理逻辑,仅用于故障中断和正常传送结束中断时的处理。,4.通道方式(Channel Control)通道方式利用了DMA技术,再加上软件,形成一种新的控制方式。通道是一种简单的处理机,它有指令系统,能执行程序。它的独立工作的能力比DMA强,能对多台不同类型的设备统一管理,对多个设备同时传送信息。,5.外围处理机方式(Peripheral Processor UnitPPU)外围处理机的结构更接近于一般的处理机,甚至就是一般小型通用计算机。它可完成I/O通道所要完成的I/O控制,还可完成码制变换、格式处理、数据块的检错、纠错等操作。它可具有相应的运算处理部件、缓冲部件,还可

5、形成I/O程序所必须的程序转移等操作。它可简化设备控制器,而且可用它作为维护、诊断、通信控制、系统工作情况显示和人机联系的工具。外围处理机基本上独立于主机工作。在多数系统中,设置多台外围处理机,分别承担I/O控制、通信、维护诊断等任务。有了外围处理机后,计算机系统结构有了质的飞跃,由功能集中式发展为功能分散的分布式系统。,7.2 程序查询方式 程序查询方式又叫程序控制I/O方式。在这种方式中,数据在CPU和外围设备之间的传送完全靠计算机程序控制,是在CPU主动控制下进行的。当执行I/O时,CPU暂停执行主程序,转去执行I/O的服务程序,根据服务程序中的I/O指令进行数据传送。,1.设备编址 用

6、程序实现I/O传送的机器,根据其结构特点,外围设备有两种不同的编址方法:统一编址法和单独编址法。所谓统一编址法,是将I/O设备中的控制寄存器、数据寄存器、状态寄存器等也和内存单元一样看待,将它们和内存单元一起编排地址。这样就可用访问内存的指令(读/写指令)去访问I/O设备的某个寄存器,因而不需要专门的I/O指令组。比如,用访问存储器的读/写指令就能实现I/O设备与CPU之间的数据传送。又如,比较指令可以用来比较I/O设备中某个寄存器的值,以此判断I/O操作的执行情况。,图7.2(a)所示的是统一编址的单总线结构,所有的I/O设备、内存和CPU共用一条总线。其中地址总线传送CPU要访问内存的地址

7、或I/O设备的地址;数据总线传送数据、指令和状态信息;控制总线传送定时信号和各种控制信号。,在图7.2(b)所示的机器结构中,内存地址和 I/O设备的地址是分开的。当访问内存时,由内存读、内存写两条控制线控制;当访问I/O设备时,由I/O读、I/O写两条控制线控制,这种方法将为单独编址法。,7.2.1 程序查询I/O方式,其基本思想是,CPU要执行一段I/O程序,则用其中一条指令查询设备状态,如果设备的数据传送没有准备好,就重复执行询问指令,一直等到设备准备好为止。,程序查询方式是利用程序控制来实现CPU和I/O设备之间的数据传送的方法。程序执行的动作如下:先向I/O设备发出命令字,请求进行数

8、据传送;从I/O接口读入状态字;检查状态字中的标志,看看数据交换是否可以进行;假如这个设备没有准备就绪,则重复进行第步、第步,一直到这个设备准备好交换数据,发出准备就绪信号“Ready”为止;CPU从I/O接口的数据缓冲寄存器输入数据,或者将数据从CPU输出至接口的数据缓冲寄存器中。与此同时,CPU将接口中的状态标志复位。,为此在实际应用中做如下改进:CPU在执行主程序的过程中可周期性地调用各I/O设备查询子程序,依次测试各I/O设备的状态触发器“Ready”。如果某设备的Ready为“0”,则依次测试下一个设备。图7.4所示的是典型的程序查询流程图。,设备服务子程序的主要功能是:实现数据传送

9、。输入时,由I/O指令将设备的数据送到CPU的某寄存器中,再由访内指令把寄存器中的数据存入内存某单元;输出时,其过程正好相反。修改内存地址,为下一次数据传送做准备。修改传送字节数,以便修改传送长度。进行状态分析或其他控制功能。.,图7.5 用SKP询问I/O设备的示意图,程序查询方式的优点是简单、经济,CPU 和I/O设备接口只需配备少量的硬设备。它的缺点是系统效率低,为了询问I/O设备是否有数据传送,CPU要周期性地停止主程序运行而转向查询子程序。如果有很多设备,查询程序所花费的时间是相当长的。,7.2.2 程序查询方式的接口,程序查询方式的接口电路包括设备选择电路、数据缓冲寄存器、设备状态

10、位和有关逻辑部件等。有的计算机采用统一编址,访问接口中的数据缓冲寄存器和设备状态字寄存器就像访问主存的存储单元一样。有的计算机不采用统一编址,也没有设备状态字寄存器,设备状态用分散的触发器表示.,1.设备选择电路 对于接到总线上的每个设备,已预先给定了设备地址码。CPU执行I/O指令时,需要把指令中的设备地址送到地址总线上,用以指示CPU要选择的设备。每个设备接口电路都有一个设备选择电路,用它判别地址总线上呼叫的设备是不是本设备。如果是,则本设备就进入工作状态,否则不予理睬。设备选择电路实际上是设备地址的译码器。2.数据缓冲寄存器 当进行输入操作时,用数据缓冲寄存器来存放从I/O设备读出的数据

11、,然后送往CPU;当进行输出操作时,用数据缓冲寄存器来存放CPU送来的数据,以便需要时经过I/O设备输出。3.设备状态位 设备状态位是接口中的标志触发器,如“忙”、“准备就绪”、“错误”等,用来标志设备的工作状态,以便接口对外设进行监视。一旦CPU用程序询问I/O设备时,就可将状态位信息取至CPU进行分析。,7.3 程序中断方式,7.3.1 中断的基本概念,中断(Interrupt)的概念是在20世纪50年代中期提出的,目前,它不仅在I/O过程中,而且在多道程序、分时操作、实时处理、人机联系、事故处理、程序的监视和跟踪、目态程序和操作系统的联系以及多处理机系统中各机的联系等方面都起着重要作用。

12、从更广泛的含义上来理解,所谓中断是指计算机由任何非寻常的或非预期的急需处理的事件引起CPU暂时中断现行程序的执行,而转向运行另一服务程序,去处理这些事件,等处理完后又返回原程序,这一整个执行过程。,1.CPU与I/O设备并行工作 引入中断系统后,可实现CPU与I/O设备的并行运行,大大提高了计算机的效率。,图7.7 CPU与打印机并行工作,2.提高了机器的可靠性 在计算机工作时,当运行的程序发生错误,或者硬设备出现某些故障时,机器中断系统可以自动进行处理,避免某些偶然故障引起的计算错误或停机,提高了机器的可靠性。3.便于实现人机联系 在计算机工作过程中,人要随机地干预机器,如抽查计算的中间结果

13、、了解机器的工作状态、给机器下达临时性的命令等。在没有中断系统的机器里,这些工作几乎是无法完成的。利用中断系统实现人机通信是很方便、很有效的。4.实现多道程序 计算机实现多道程序运行是提高机器效率的有效手段。多道程序的切换运行需借助于中断系统。在一道程序的运行中,可以由I/O中断系统切换到另外一道程序运行,也可以通过分配给每道程序一个固定时间片,利用时钟定时发送中断进行程序切换。,5.实现实时处理 所谓实时处理,是指在某个事件或现象出现时及时地进行处理,而不是集中起来再进行批处理。6.实现目态程序和操作系统的联系 在现代计算机中,用户程序往往可以安排一条“访问管理程序”指令来调用操作系统的管理

14、程序,这种调用是通过中断来实现的。通常称机器在执行用户程序时为目态,称机器执行管理程序时为管态。通过中断可以实现目态和管态之间的变换。7.多处理机系统各处理机间的联系 在多处理机系统中,处理机和处理机间的信息交流和任务切换都是通过中断来实现的。,7.3.2 CPU响应中断的条件,CPU要响应中断必须满足如下3个条件:中断源有中断请求;CPU允许接受中断请求;一般情况下,都要等到一条指令执行完毕后才能响 应中断,除非遇到特殊的长指令才允许中途打断它们。引起中断的事件,或者发出中断请求的来源统称为中断源。CPU停止执行现行程序,转去处理中断请求称为中断响应。若CPU进入可中断方式,即允许接受中断请

15、求,则称为“开中断”,否则,CPU处于不可中断状态,称为“关中断”,或称为禁止中断。中断请求、中断允许、禁止和中断的响应都是由硬件实现的。,1.中断源的种类 由外围设备引起的中断,要求CPU介入I/O操作。例如,慢速设备的缓冲寄存器准备好接收或发送数据;信息块传送的前、后处理;设备的启动或非数据控制动作(如磁带、磁盘定位)的完成;I/O的任一环节出错等。由运算器产生的中断,由存储器产生的中断,控制器产生的中断,过程控制产生的中断,时钟定时中断。电源故障中断。,发生在主机内部的中断称为内中断。内中断有强迫中断和自愿中断两种。强迫中断产生的原因有硬件故障和软件出错等。强迫中断是在CPU没有事先预料

16、的情况下发生的,此时CPU不得不停下现行的工作。自愿中断是出于计算机系统管理的需要,自愿地进入中断。,上述中断类型如下所示:,2.中断源的建立 为了记录中断事件是否发生,利用了具有存储功能的触发器,一般称为中断触发器。当一个中断源有中断请求时,其相应的中断触发器置成“1”状态。此时,该中断源向CPU发出中断请求信号。多位中断触发器构成一个中断寄存器,其中每一位对应一种中断请求源。这每一位称为一个中断位,中断寄存器的内容称为中断字或中断码。CPU在进行中断处理时,根据中断字和中断位确定中断源,以便用相应的服务程序来处理。3.中断的分级与中断优先权 在设计中断系统时,要把全部中断源按中断性质和处理

17、的轻重缓急进行排队并给予优先权。所谓优先权是指有多个中断同时发生时,对中断响应的优先次序。,4.禁止中断和中断屏蔽(1)禁止中断 产生中断源后,由于某种条件的存在,CPU不能中止现行程序的执行,称为禁止中断。一般在CPU内部设有一个“中断允许”触发器。只有该触发器置“1”状态,才允许中断源等待CPU响应;如果该触发器被清除,则不允许所有中断源申请中断。前者称为允许中断,后者称为禁止中断。“中断允许”触发器通过“开中断”、“关中断”指令来置位或复位。(2)中断屏蔽 当产生中断请求后,用程序方式有选择地封锁部分中断,而允许其余的中断仍得到响应,称为中断屏蔽。实现方法是为每一个中断源设置一个中断屏蔽

18、触发器来屏蔽该设备的中断请求。具体来说,用程序方法将该触发器置“1”,则对应的设备中断被封锁,若将其置“0”,则允许该设备的中断请求得到响应。,7.3.3 中断处理,一旦CPU响应中断的条件得到满足,CPU便开始响应中断,转入中断服务程序,进行中断处理。按照中断处理方式可以把中断分为简单中断和程序中断两种。程序中断。如果主机在响应中断请求后,是通过执行一段服务程序来处理有关事项的,则称为程序中断,简称为中断。这种方式要求CPU响应中断后,暂停原程序的执行,并将断点(主程序返回地址)和现场情况(如程序状态字以及有关寄存器内容)保存起来,然后转入中断服务程序的执行。程序中断主要用于中、慢速I/O设

19、备的数据传送以及要求进行复杂处理的场合。简单中断。在DMA方式的 I/O过程中,主机响应中断后不要执行服务程序,而是让出一个或几个存取周期供I/O设备与主存直接交换数据。此时,CPU可以暂停运行,也可以执行非访问内存储器操作。这种中断只是暂停一个或几个存取周期,不破坏被中断的程序现场,因此,不需要进行现场保护工作。这种中断称为简单中断,一般称为DMA。,1中断处理步骤 计算机对中断的处理各具特色,就其多数而论,中断处理过程如图7.8所示。关中断。进入不可再次响应中断的状态。因为接下去要保存断点,保存现场。在保存现场过程中,即使有更高级的中断源申请中断,CPU也不应该响应,否则,如果把现场保存不

20、完整,在中断服务程序结束之后,也就不能正确地恢复现场并继续执行现行程序了。保存断点和现场。为了在中断处理结束后能正确地返回到中断点,在响应中断时,必须把当前的程序计数器PC中的内容(即断点)保存起来。,对现场信息的处理有两种方式:一种是由硬件对现场信息进行保存和恢复;另一种是由软件即中断服务程序对现场信息保存和恢复。对于由硬件保存现场信息的方式,各种不同的机器有不同的方案。有的机器把断点保存在主存固定的单元,中断屏蔽码也保存在固定单元中;有的机器则不然,它在每次响应中断后把CPU中程序状态字和指令计数器内容相继压入堆栈,再从指定的两个主存单元分别取出新的指令计数器内容和CPU中程序状态字来代替

21、,称为交换新、旧状态字方式。,判别中断条件,转向中断服务程序。在多个中断条件同时请求中断的情况下,本次实际响应的只能是优先权最高的那个中断源,所以,需进一步判别中断条件,并转入相应的中断服务程序入口。开中断。因为接下去就要执行中断服务程序,因此开中断允许更高级中断请求得到响应,实现中断嵌套。执行中断服务程序。退出中断。在退出时,又应进入不可中断状态,即关中断,恢复现场,恢复断点,然后开中断,返回原程序执行。,2.判别中断条件(1)查询法 这是最简单的实现方法。如图7.9所示,每一个中断源都附带一个标志,该标志置位代表相应中断源请求中断,因此,判别中断条件只需用测试指令按一定优先次序检查这些标志

22、,先遇到的第一个“1”标志即优先得到服务,在此之前,遇到“0”标志均跳过而继续检查下一个。,图7.9 中断请求逻辑图,图7.10 查询中断执行过程流程图,这种软件查询方法适用于低速和中速设备。它的优点是中断条件标志的优先级可用程序任意改变,灵活性好。缺点是设备多时速度太慢。,(2)串行排队链法与向量中断 串行排队链法是由硬件实现的具有公共请求线的判优选择方式,其逻辑线路如图7.11所示。,图7.11 串行排队链判优识别及中断向量产生逻辑线路,图中下半部分由门1门6组成一个串行的优先链,称做排队链。IRi是从各设备来的中断请求信号,优先顺序从高到低,依次是:IR1、IR2、IR3。若要扩充中断源

23、,则可根据其优先权的高低串接于优先链的左端和右端。图的上半部分是一个编码电路,它将产生请求中断的设备中优先权最高的设备码(中断向量)经总线送往CPU。图中,IS1、IS2、IS3为IR1、IR2、IR3对应的中断排队选中信号。INTA是由CPU送来的取中断设备码信号。为中断排队输入信号,为中断排队输出信号。总线标号由下而上为第0位至第5位。当没有更高优先权的请求时,=0,门1的输出为高电平,即IS1=1;若此时中断请求信号IR1为高(即有中断请求),且INTA为高电平,则IR1被选中,此时,为低,使得IS2、IS3全为低电平,则IR2、IR3中断请求被封锁。这时向CPU发出中断请求,并由译码电

24、路将设备码(001010)2送总线。CPU从总线取走该设备码,并执行其中断服务程序。,若此时IR1无中断请求,则为高电平,IR1为低电平,经过门2和门3,使IS2为高电平。如果IS2为高电平,则被选中。否则,将顺序选择请求中断的中断源优先权最高者。使用上述中断判优方式时,可以采用不同的转向中断服务程序入口地址的方法。一种是在中断总控程序中设一条专门接收中断指令INTA,得到设备号后,再由主存的跳跃表产生中断服务程序入口地址。另一种是目前应用更广泛的方法,叫做向量中断。向量中断方式是为每一个中断源设置一个中断向量的方式。中断向量包括了该中断源的中断服务程序入口地址。它完全由硬件直接产生中断响应信

25、号,经过中断排队和编码逻辑,由被选中的设备直接送回中断向量。,(3)独立请求法独立请求方式优先排队线路如图7.12所示。其中每个中断请求信号保存在“中断请求”触发器中,经“中断屏蔽”触发器控制后,产生来自中断请求触发器的请求信号IR1、IR2、IR3、IR4。而IR1、IR2、IR3、IR4是经过优先排队后送给CPU的中断请求信号。IR1的优先权最高,IR2、IR3、IR4的优先权依次降低。具有较高优先权的中断请求自动封锁比它优先权低的所有中断请求。编码电路根据排队的中断源输出信号IRi产生一个预定的地址码,转向中断服务程序入口地址。这种方法的优点是速度快,但是连线多,逻辑线路复杂。,7.3.

26、4 单级中断与多级中断,1.单级中断 单级中断系统是中断结构中最基本的形式。在单级中断系统中,所有的中断源都属于同一级,所有中断源触发器排成一行,其优先次序是离CPU近的优先权高。当CPU响应某一中断请求时,执行该中断源的中断服务程序而不允许其他中断源打断中断服务程序,即使优先权比它高的中断源也不允许。只有该中断服务程序执行完毕后,才能响应其他中断。,(a)(b)图7.13 单级中断(a)单级中断示意图;(b)单级中断系统结构图,2.多级中断 多级中断系统是指计算机系统中有相当多的中断源,根据各中断事件的轻重缓急程度不同而分成若干级别,每一中断级分配给一个优先权。一般说来,优先权高的中断级可以

27、打断优先权低的中断服务程序,以程序嵌套方式进行工作。如图7.14所示,三级中断的优先权高于二级的,而二级中断的优先权又高于一级的。,例7.1 图7.14所示的是一个二维的中断系统,请问:在中断情况下,CPU和设备的优先级如何考虑?请按降序排列各设备的中断优先级。若CPU现正执行设备B的中断服务程序,则IM2、IM1、IM0的状态是什么?如果CPU正执行设备D的中断服务程序,则IM2、IM1、IM0的状态又是什么?每一级的IM能否对某个优先级的个别设备单独进行屏蔽?如果不能,则采取什么办法才能达到目的?假如要求设备C一提出中断请求,CPU就立即进行响应,如何调整才能满足此要求?,解 在中断情况下

28、,CPU的优先级最低,各设备的优先次序是:ABCDEFGHICPU。执行设备B的中断服务程序时,IM2、IM1、IM0=111;执行设备D的中断服务程序时,IM2、IM1、IM0=011。每一级的IM标志不能对某个优先级的个别设备进行单独屏蔽,可将接口中的EI(中断允许)标志清“0”,它禁止设备发出中断请求。要使设备C的中断请求及时得到响应,可将设备C从第2级取出来,单独放在第3级上,使第3级的优先级最高,即令IM3=0。,7.3.5 程序中断方式的基本接口,程序中断由外设接口的状态和CPU两方面来控制。在接口方面,有决定是否向CPU发出中断请求的机构,主要是接口中的“准备就绪”标志(RD)和

29、“允许中断”标志(EI)两个触发器。在CPU方面,有决定是否受理中断请求的机构,主要是“中断请求”标志(IR)和“中断屏蔽”标志(IM)两个触发器。上述4个标志触发器的具体功能如下:,准备就绪的标志(RD)一旦设备做好一次数据的接收或发送工作,便发出一个设备动作完毕信号,使RD标志为“1”,它就是程序查询方式中的Ready(就绪)标志。在中断方式中,该标志用作为中断源触发器,简称中断触发器。允许中断触发器(EI)可以用程序指令来置位。EI 为“1”时,某设备可以向CPU发出中断请求;EI为“0”时,不能向CPU发出中断请求,这意味着某中断的中断请求被禁止。设置EI标志的目的就是通过程序来控制是

30、否允许某设备发出中断请求。中断请求触发器(IR)它暂存中断请求线上由设备发出的中断请求信号。当IR标志为“1”时,表示设备发出了中断请求。中断屏蔽触发器(IM)CPU是否受理中断的标志。IM标志为“0”时,CPU可以受理外界的中断请求,反之,IM标志为“1”时,CPU不受理外界的中断请求。,图7.15中,标号表示由某一外设输入数据的控制过程。表示由程序启动外设,将该外设接口的“忙”标志BS置“1”,“准备就绪”标志RD清“0”;表示接口向外设发出启动信号;表示数据由外设传送到接口的缓冲寄存器;表示当设备动作结束或缓冲寄存器数据填满时,设备向接口送出一控制信号,将数据“准备就绪”标志RD置“1”

31、;表示允许中断标志EI为“1”时,接口向CPU发出中断请求信号;表示在一条指令执行末尾CPU检查中断请求线,将中断请求线的请求信号送到中断请求触发器IR;表示如果中断屏蔽触发器IM为“0”,则CPU在一条指令结束后受理外设的中断请求,向外设发出响应中断信号并关闭中断;表示转向该设备的中断服务程序入口;表示中断服务程序用输入指令把接口中数据缓冲寄存器的数据读至CPU中的累加器或寄存器中;表示CPU发出控制信号C将接口中的BS和RD标志复位,一次中断处理结束。,7.4 DMA方式,7.4.1 DMA方式的基本概念与传送方式,1.DMA方式的基本概念 在这种方式中,DMA控制器从CPU中接管了对总线

32、的控制,数据传送不经过CPU,而直接在内存和I/O设备之间进行。DMA方式一般用于高速传送成组数据的场合。DMA控制器种类很多,但各种DMA控制器至少能执行以下一些基本操作:从外围设备接收DMA请求并传送到CPU;CPU响应DMA请求,DMA控制器从CPU接管总线的控制权;DMA控制器对内存寻址、计数数据传送个数,并执行数据传送操作;DMA向CPU报告DMA操作的结束,CPU以中断方式响应DMA结束请求,由CPU在中断程序中进行结束后的处理工作。如数据缓冲区的处理、数据的校验等简单操作。,DMA传送与中断传送相比有如下不同之处:中断传送需要保存CPU现场并执行中断服务程序,时间开销较大。而DM

33、A由硬件实现,不需要保存CPU的现场,时间开销较小;中断传送只能在一个指令周期结束后进行,而传送则可以在两个机器周期之间进行。,2.DMA传送方式 根据DMA控制器与CPU分时访问主存的方式不同,DMA传送方式有以下三种。(1)停止CPU访问内存 当外围设备要求传送一批数据时,由DMA控制器发一DMA请求信号给CPU,要求CPU放弃对地址总线、数据总线和有关控制总线的使用权。CPU收到DMA请求后,无条件放弃总线控制权。DMA控制器获得总线控制权以后,开始进行数据传送。在一批数据传送完毕后,DMA控制器通知CPU可以使用内存,并把总线控制权交还给CPU。图7.16(a)所示的是这种传送方式的时

34、间图,这种方式控制比较简单,用于高速I/O的成批数据传送是比较合适的。缺点是CPU的工作会受到明显的延误,当I/O数据传送时间大于主存周期时,主存的利用不够充分。,(2)周期挪用方式 图7.16(b)是DMA的周期挪用方式时间图。在这种方式中,当I/O设备无DMA传送请求时,CPU正常访问主存;当I/O设备产生DMA请求时,则CPU给出1个或几个存储周期,由I/O设备与主存占用总线传送数据。此时CPU可能有两种状况:一种是此时CPU正巧不需要访问主存,那么就不存在访问主存的冲突,I/O设备占用总线对CPU处理程序不产生影响;另一种则是I/O设备与CPU同时都要访问主存而出现访问主存的冲突,此时

35、I/O访问的优先权高于CPU访问的优先权,所以暂时封锁CPU的访问,等待I/O的周期挪用结束。周期挪用方式能够充分发挥CPU与I/O设备的利用率,是当前普遍采用的方式。其缺点是,每传送一个数据,DMA都要产生访问请求,待到CPU响应后才能传送,操作频繁,花费时间较多,该方法适合于I/O设备读/写周期大于主存存储周期的情况。,(3)CPU与DMA交替访问内存 这种方式是当CPU周期大于两个以上的主存周期时,才能合理传送,如主存周期为t,而CPU周期为2t,那么在2t内,一个t供CPU访问,另一个t供DMA访问,其过程如图7.16(c)所示。这种方式比较好地解决了设备冲突及设备利用不充分的问题,而

36、且不需要请求总线使用权的过程,总线的使用是通过分时控制的,此时DMA的传送对CPU没有影响。,7.4.2 DMA控制器的基本组成,DMA控制器是采用DMA方式的外围设备与系统总线之间的接口电路,它是在中断接口的基础上再加上DMA机构组成的。图7.17是一个简单的DMA控制器组成原理图。,它由以下几个逻辑部分组成:内存地址计数器。由CPU在初始化时预置其内容,保存内存数据缓冲区的首地址,每传送一个字节或字后,该地址计数器就进行加1操作,使其总是指向要访问的内存地址。字计数器。由CPU在初始化时将数据长度预置在其中,每完成一个字或一个字节的传送后,该计数器减“1”。计数器为全“0”时,传送结束,发

37、一个信号到中断机构。中断机构。当字计数器溢出(全0)时,意味着一组数据传送完毕,由溢出信号触发中断机构,再由中断机构向CPU提出中断请求,以作为数据传送后的结束处理信号。,控制/状态逻辑。由控制和时序电路以及状态标志等组成。用于修改内存地址计数器和字计数器,指定传送方向,并对DMA请求信号和CPU响应信号进行同步和协调处理。数据缓冲寄存器。用于暂存每次输入或输出传送的数据。DMA请求标志。每当设备准备好一个数据字后便给出一个传送信号,使DMA请求置“1”。DMA请求标志再向控制/状态逻辑发出DMA请求,该逻辑再向CPU发出总线使用权请求(HOLD),CPU响应此请求后发回响应信号(HLDA),

38、经控制/状态逻辑后形成DMA响应,置DMA请求标志为“0”,为传送下一个字作好准备。,DMA数据传送过程可分为三个阶段:初始化DMA控制器、正式传送、传送后的处理。在初始化阶段,CPU执行几条I/O指令,向DMA控制器中的地址寄存器送入设备号,向内存地址计数器中送入起始地址,向字计数器中送入传送的数据字个数并启动外设,CPU继续执行原来的主程序。,经CPU启动的外部设备准备好数据(输入)或接收数据(输出)时,它向DMA控制器发出DMA请求,使DMA控制器进入数据传送阶段。该阶段的DMA控制器传送数据的工作流程如图7.18所示(设DMA控制器以停止CPU访问内存方式工作),当外设发出DMA请求时

39、,CPU在本机器周期结束后响应该请求,并使CPU放弃系统总线的控制权,而DMA控制器接管系统总线并向内存提供地址,使内存与外设进行数据传送,每传送一个字,地址计数器和字计数器就加“1”。当计数到“0”时,DMA控制器向CPU发出中断请求,DMA操作结束。DMA数据传送后的处理工作是:CPU接到DMA中断请求后,转去执行中断服务程序,而执行中断服务程序的工作包括:数据校验及数据缓冲区的处理等工作。,7.4.3 选择型和多路型DMA控制器,1.选择型DMA控制器 选择型DMA控制器在物理上可以连接多台外设,但在逻辑上只允许接一台外设,即在某一时间内只能选择某一台设备工作的DMA控制器。图7.19是

40、选择型DMA控制器逻辑框图。,选择型DMA控制器的工作原理与上节介绍的简单DMA控制器的工作原理基本相同,只是在基本逻辑部件外增加了一个设备号寄存器用以存放当前工作的设备号,设备号可用I/O指令来控制,设备号寄存器相当于一个开关。当设备号确定后,DMA控制器在初始化、数据传送、结束处理的整个过程中都只能为该台外设服务,在选择型DMA控制器中只需增加少量的硬件便可达到为多台外设服务的目的,它适合于在快速的外设与内存之间传送大批数据。,2.多路型DMA控制器 多路型DMA控制器适合于同时为多台慢速的外设服务,它不仅在物理上可连接多台外设,而且在逻辑上也允许这些外设同时工作。各设备以字节交叉方式通过

41、DMA控制器进行数据传送。图7.20是多路型DMA控制器示意图。图7.20(a)所示的是链式多路型DMA控制器。外设与DMA是链式连接的,设备的连接次序决定了DMA控制器响应设备的DMA请求的优先级。而图7.20(b)所示的是独立请求多路型 DMA,所有设备的DMA请求送入DMA控制器中,由DMA控制器决定响应时的优先级。由于多路型DMA同时要为多台外设服务,因此,在多路型DMA控制器中,就要为每台外设准备一组寄存器来存放它的参数。一般是:DMA控制器有多少个DMA通路(可带设备)就有多少组寄存器。,7.5 通道控制方式,7.5.1 通道的基本概念,通道控制方式是大、中型计算机中常用的一种I/

42、O形式,这种方式中,通道执行由操作系统“编制”的通道程序来实现外部设备与内存的数据传送,因此,通道是一种特殊的处理机,它有自己的指令和程序,但通道程序不是由用户编写的,而是由操作系统按照用户的请求及计算机系统的状态“编制”而成的,它放入内存中。当通道需要工作时,将通道程序从内存取回到通道并执行,从而完成用户的I/O操作。,图7.22 具有通道机器的I/O结构,图7.22所示的是通道与主机的连接,其中通道与CPU在内存管理部件的控制下分时发使用内存,系统中的总线分为两级:一级是存储总线(系统总线)承担通道与内存、CPU与内存之间的数据传送任务;另一级是通道总线,即I/O总线,它承担外围设备与通道

43、之间的数据传送任务。这两级总线可以分别使用各自的时序同时工作。一条通道总线可接若干个设备控制器,一个设备控制器可以接一个或多个设备,因此,从逻辑上看,I/O系统一般具有4级连接:CPU与内存通道设备控制器外围设备。对同一系列的机器,通道与设备控制器之间都有统一的标准接口,设备控制器与设备之间则根据设备的不同要求而采用专用接口。当通道与CPU同时访问内存时,通道优先级高于CPU;在多个通道有访问存储器请求时,选择通道和数组多路通道优先权高于字节多路通道。,7.5.2 通道的类型,通常将通道分为3种类型:选择通道,数组多路通道和字节多路通道。一个系统中可兼有3种类型的通道,也可只有一种或两种。1.

44、选择通道 在选择通道中,每一通道在物理上可以连接多个设备,但这些设备不能同时工作,在某一段时间内只能选择一个设备进行工作,即执行这台设备的通道程序,只有当这个设备的通道程序全部执行完后,才能执行其他设备的通道程序(选择其他通道)。,2.数组多路通道 数组多路通道是对选择通道的一种改进,它的基本思想是,当某设备进行数据传送时,通道只为该设备服务;当设备执行寻址等控制性动作时,通道暂时断开与这个设备的连接,挂起该设备的通道程序,去为其他设备服务,即执行其他设备的通道程序,所以数组多路通道很像一个多道程序的处理器。数组多路通道可分时地为多台高速外设服务,如为磁盘等块设备服务,它的传输率与选择通道一样

45、,取决于最快的那台设备。一般为12MB/s。,3.字节多路通道 字节多路通道用于连接多台慢速外设,如键盘、打印机等字符设备。这些设备的数据传输率很低,而通道从设备接收或发送一个字节相对较快,因此,通道在传送某台设备的两个字节之间有许多空闲时间,字节多路通道正是利用这空闲时间为其他设备服务的。字节多路通道传输率与各设备的传输率及所带设备数目有关。如果每一台设备的传输率为fi,而通道传输率为fc,则有,其中,p为所带设备台数,字节多路通道流量一般为1.5MB/s。字节多路通道和数组多路通道的共同之处是它们都是多路通道,在一段时间内能交替执行多个设备的通道程序,使这些设备同时工作。不同之处是两种通道

46、的数据传送的基本单位不同,字节多路通道是每次为一台设备传送一个字节,而数组多路通道每次为一台设备传送一个数据块。有些系统中使用“子通道”的概念,子通道是指每个通道程序所管理的硬设备或该通道逻辑上连接的设备(或者说同时执行的通道程序)。字节多路通道、数组多路通道在物理上可以连接多个设备,但在一段时间内只能执行一个设备的通道程序,即:逻辑上只能连接一台设备,所以只包含一个子通道。,7.5.3 通道的工作过程和内部逻辑结构,1.通道的工作过程,CPU在执行用户程序时,当执行到第K条指令时,发现它是一条访管指令,则根据指令中的设备号转入到操作系统对应的设备管理程序入口,开始执行该管理程序。管理程序的功

47、能是根据给出的参数编制好通道程序,并存放在主存某一区域,并将该区域的首址填入通道地址单元中,在IBM-370计算机中是内存72号单元。最后执行一条启动I/O指令。若启动成功,则经通道地址字取出内存中通道程序的第1条指令,送到通道控制器中开始执行,同时修改通道指令地址,为下一条指令做好准备。通道地址字此时已空闲,可记录其他通道程序地址。通道程序执行结束后,发出正常结束中断请求。CPU响应中断进入中断,服务程序进行传送结束后的处理。,2.通道内部逻辑结构,它是由下列几部分组成的。(1)通道指令首地址寄存器 存放通道指令的首地址。其输出送到主存地址寄存器中,取出通道指令后立即进行修改。形成下条通道指

48、令的首地址。在IBM-370中,通道指令格式如下:,每条通道指令长64位或8个字节,所以下条通道指令地址比当前指令地址要增加8个字节。,(2)通道指令寄存器存放当前执行通道指令中的命令码与标志码字段。(3)内存地址寄存器 存放通道指令各字节在内存中的地址。接收通道指令的首地址时,每传送完一个字节,就进行加“1”操作,形成通道指令的下一字节。(4)长度计数器 接收通道指令中的传送数据长度字段。在执行过程中,每传送一个字节则减“1”,当计数为“0”时,说明该条通道指令结束。(5)数据寄存器存放一个机器字长的数据,与主机进行数据传送。,(6)装配/拆卸部件 通道与主存的数据交换是按一个机器字长进行的,而通道与外设之间是按一个字节进行的。该部件用来进行机器字长与字节之间的转换。(7)状态寄存器存放通道与设备的工作状态。(8)中断逻辑根据工作状态产生数据传送结束中断请求,并接受CPU的响应信号。(9)标准接口I/O接口部件包括缓冲器、驱动器及检验电路。(10)通道控制部件是通道控制器的核心部件,根据通道指令产生通道工作中所需的控制信号。,

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

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


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号