《第10章输入输出系统课件.ppt》由会员分享,可在线阅读,更多相关《第10章输入输出系统课件.ppt(96页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第第1010章章 输入输出系统输入输出系统重点:重点:重点:重点:接口的概念;接口的概念;程序直接控制方式的基本接口及程序流程;程序直接控制方式的基本接口及程序流程;程程序序中中断断方方式式的的有有关关概概念念、中中断断优优先先权权排排队队电电路路、屏屏蔽蔽码码改变中断优先级、中断方式的接口;改变中断优先级、中断方式的接口;DMA传送方式、传送方式、DMA的周期挪用方式操作过程;的周期挪用方式操作过程;几种几种I0方式的比较。方式的比较。学时:学时:410.1 输入输出系统概述q1.输入输出的特性输入输出的特性q(1)异步性外设的工作速度与CPU相差很大。为了能使主机和外设充分提高工作效率,则
2、要求输入输出操作异步于CPU。q(2)实时性输入输出的操作必须按各设备实际工作速度,控制信息流量和信息交换的时刻,这就是输入输出的实时性。q(3)设备无关性输入输出与具体设备无关,具有独立性。q2.接口接口q接口是一种为主机和外设传送信息而设置的硬件线路。q3.接口的功能接口的功能q实现主机和外围设备之间的数据传输控制实现主机和外围设备之间的数据传输控制q实现数据缓冲实现数据缓冲,以达到主机同外围设备之间的速度匹配。以达到主机同外围设备之间的速度匹配。q接接受受主主机机的的命命令令,提提供供设设备备接接口口的的状状态态,并并按按照照主主机机的的命令控制设备。命令控制设备。q4.I0接口的主要组
3、成接口的主要组成q数据缓冲寄存器q设备地址识别线路q设备状态字寄存器q主机命令字寄存器q数据格式转换线路q数据地址寄存器。q控制逻辑。q5.接口的编址方式接口的编址方式q(1)统一编址方式是把I/0端口当做存储器的单元进行分配地址。q优点:不需要专门的输入输出指令,并使CPU访问I0的操作更灵活、更方便,此外还可使端口有较大的编址空间。q缺点:端口占用了存储器地址,使内存容量变小。再者,利用存储器编址的I/0设备进行数据输入输出操作执行速度较慢。q(2)单独编址方式是指I/0端口地址与存储器地址无关,是单独编址,CPU需要设置专门的输入输出指令访问端口。q优点:输入输出指令与存储器指令有明显区
4、别,程序编制清晰、利于理解。q缺点:输入输出指令少,一般只能对端口进行传送操作,尤其需要CPU提供存储器读/写、I/0设备读/写两组控制信号,增加了控制的复杂性。q6.信息交换的控制方式信息交换的控制方式(1)程序直接控制方式(2)程序中断控制方式(3)直接存储器存取控制方式(DMA)(4)通道方式(5)外围处理机方式q程序查询方式和程序中断方式适用于数据传输率比较低的外围设备,而DMA方式、通道方式和PPU方式适用于数据传输率比较高的设备。目前,小型机和微型机中大都采用程序查询方式、程序中断方式和DMA方式。通道方式和PPU方式大都用在中、大型计算机中。q7.接口的分类接口的分类q(1)串行
5、接口接口和设备之间是一位一位地串行传送信息,而接口和主机之间则是按字或字节并行传送。接口能完成“串”转“并”或“并”转“串”的转换。q(2)并行接口q不管是接口与设备,还是接口与主机之间都是按字或字节并行传送数据信息。10.2 程序直接控制方式q1.基本原理基本原理q程序直接控制方式的基本原理是用程序实现主机与外设间的信息交换。q2.程序查询方式的接口q程序查询方式基本接口示意图如图10.1所示。q传送一个数据的过程如下(见图10.1上的序号):qCPU通过接口启动外设工作,将BS触发器置1,请求传送数据,同时将RD触发器置0;q外设动作开始;q外设传送数据,同时CPU从I/O接口读入状态字;
6、q假如这个设备没有准备就绪,则第步重复进行,一直到这个设备准备好交换数据,将RD触发器置1;q向CPU发出准备就绪信号“Ready”;qCPU从IO接口的数据缓冲寄存器输入数据,或者将数据从CPU输出至接口的数据缓冲寄存器。与此同时,CPU将接口中的状态标志复位。q显然,这种方式的优点是CPU的操作可以和IO设备操作同步,且接口硬件比较简单。但缺点是,当程序进入循环时,CPU只能踏步等待,不能处理其他任务。10.3 程序中断方式q1031 中断的定义中断的定义q中断是指计算机系统运行时,出现来自处理机以外的任何现行程序不知道的事件,CPU暂停现行程序,转去处理这些事件,待处理完备,再返回原来的
7、程序继续执行,这个过程称为中断,这种控制方式称为中断控制方式。它有它有4个特点个特点:q数据的输入输出要经过CPU;q一般用来连接低速设备;中断的作用中断的作用(1 1)CPUCPU与与I/OI/O设备并行工作设备并行工作(2 2)硬件故障处理:)硬件故障处理:计算机运行时,如硬件出现某些故障,机器中断系统发出中断请求,计算机运行时,如硬件出现某些故障,机器中断系统发出中断请求,CPUCPU响应中断响应中断后自动进行处理。后自动进行处理。q(3 3)实现人机联系:)实现人机联系:q(4 4)实现多道程序和分时操作:)实现多道程序和分时操作:q 计算机实现多道程序运行是提高机器效率的有效手段。多
8、道程序的切换计算机实现多道程序运行是提高机器效率的有效手段。多道程序的切换运行需借助于中断系统。在一道程序的运行中,由运行需借助于中断系统。在一道程序的运行中,由I/OI/O中断系统切换到另外一中断系统切换到另外一道程序运行。也可以通过分配每道程序一个固定时间片,利用时钟定时发中道程序运行。也可以通过分配每道程序一个固定时间片,利用时钟定时发中断进行程序切换。断进行程序切换。q(5 5)实现实时处理:)实现实时处理:q 实时处理是指在某个事件或现象出现时及时地进行处理,而不是集中起实时处理是指在某个事件或现象出现时及时地进行处理,而不是集中起来再进行批处理。这些事件出现的时刻是随机的,而不是程
9、序本身所能预见来再进行批处理。这些事件出现的时刻是随机的,而不是程序本身所能预见的,因此,要求计算机中断正在执行的程序,转而去执行中断服务程序。的,因此,要求计算机中断正在执行的程序,转而去执行中断服务程序。q(6 6)实现应用程序和操作系统的联系:)实现应用程序和操作系统的联系:q(7 7)多处理机系统各处理机间的联系:)多处理机系统各处理机间的联系:q请求CPU中断的设备或事件称为中断源。根据中断源的不同类别,可以把中断分为内中断和外中断两种。q(1)内中断:发生在主机内部的中断称为内中断。内中断有强迫中断和自愿中断两种。q强迫中断产生的原因有硬件故障和软件出错等。q.硬件故障包括由部件中
10、的集成电路芯片、元件、器件、印刷线路板、导线及焊点引起的故障,电源电压的下降也属于硬件故障。q.软件出错包括指令出错、程序出错、地址出错、数据出错等。强迫中断是在CPU没有事先预料的情况下发生的,此时CPU不得不停下现行的工作。q自愿中断是出于计算机系统管理的需要,自愿地进入中断。计算机系统为了方便用户调试软件、检查程序、调用外部设备,设置了自中断指令、进管指令。CPU执行程序时遇到这类指令就进入中断。在中断中调出相应的管理程序,自愿中断是可以预料的。q(2)外中断:由主机外部事件引起的中断称为外中断,外中断均是强迫中断.q1033 中断源的建立与屏蔽中断源的建立与屏蔽q中断触发器q当中断源发
11、生引起中断的事件时,先将它保存在设备控制器的中断触发器中,即将“中断触发器”置“1”。当中断触发器为“1”时,向CPU发出“中断请求”信号。每个中断源有一个中断触发器,全机的多个中断触发器构成中断寄存器,其内容称为中断字或中断码。CPU进行中断处理时,根据中断字确定中断源,转入相应的服务程序。q中断屏蔽q为了便于控制中断请求信号的产生,也为了利用屏蔽码改变中断处理的优先级别,当产生中断请求后,用程序方式有选择地封锁部分中断,而允许其余部分中断仍得到响应,称为中断屏蔽。q实现方法是为每个中断源设置一个中断屏蔽触发器来屏蔽该设备的中断请求。具体说,用程序方法将该触发器置“1”,则对应的设备中断被封
12、锁,若将其置“0”,才允许该设备的中断请求得到响应,由各设备的中断屏蔽触发器组成中断屏蔽寄存器。q有些中断请求是不可屏蔽的。也就是说,不管中断系统是否开中断,这些中断源的中断请求一旦提出,CPU必须立即响应。例如,电源掉电就是不可屏蔽中断。所以,中断又分为可屏蔽中断和非屏蔽中断。非屏蔽中断具有最高优先权。q屏蔽中断请求的方法如图10.4所示,当中断屏蔽触发器的输入D为0时,能产生中断请求信号;D为1时,屏蔽中断请求信号。q1034 中断优先权中断优先权q所谓优先权是指有多个中断同时发生时,对各个中断响应的优先次序。中断的优先权由排队电路来裁决。q1035 CPU响应中断的条件响应中断的条件q(
13、1)在CPU内部设置的中断允许触发器必须是开放的,STI指令开中断;CLI指令关中断。q(2)外设有中断请求时,中断请求触发器必须处于“1”状态,保持中断请求信号。q(3)外设(接口)中断屏蔽触发器必须为“0”,这样才能把外设中断请求送至CPU。q(4)CPU在现行指令结束的最后一个状态周期。q(5)无DMA请求。一旦CPU响应中断的条件得到满足,CPU开始响应中断,转入中断服务程序,进行中断处理。q1036 程序中断的处理过程程序中断的处理过程q(1)关中断q进入不可再次响应中断的状态,由硬件自动实现。q(2)保存断点q为了在中断处理结束后能正确地返回到中断点,在响应中断时,必须把当前的程序
14、计数器PC中的内容(即断点)保存起来。q(3)保存现场、交换屏蔽字q进入中断服务程序后首先要保存现场,现场信息一般指的是程序状态字,中断屏蔽寄存器和CPU中某些寄存器的内容。保存旧的屏蔽字是为了中断返回前恢复屏蔽字,设置新的屏蔽字是为了实现屏蔽字改变中断优先级或控制中断的产生。q(4)识别中断源,转向中断服务程序。q在多个中断源同时请求中断的情况下,本次实际响应的只能是优先权最高的那个中断源。所以,需进一步判别中断源,并转入相应的中断服务程序入口。q(5)开中断。q因为接下去就要执行中断服务程序,开中断将允许更高级中断请求得到响应,实现中断嵌套。q(6)执行中断服务程序。q不同中断源的中断服务
15、程序是不同的,实际有效的中断处理工作是在此程序段中实现的。q(7)关中断q是为了在恢复现场和屏蔽字时不被中断打断。q(8)恢复现场和屏蔽字q将现场和屏蔽字恢复到进入中断前的状态。q(9)中断返回q中断返回是用一条IRET指令实现的,它完成恢复断点的功能,从而返回到原程序执行。q中断的处理过程如图10.6所示。图图10.3 10.3 中断处理过程中断处理过程q进入中断时执行的关中断、保存断点操作是由硬件实现的,它类似于一条指令,但它与一般的指令不同,不能被编写在程序中。因此,常常称为“中断隐指令”。q1037 中断识别的方法中断识别的方法q如何确定中断源,并转入被响应的中断服务程序入口,大致有三
16、种不同的方法。q1 程序查询法程序查询法q如图所示,每一个中断源都附带一个标志,该标志置位代表相应中断源请求中断,因此,判别中断条件只需用测试指令按一定优先次序检查这些标志,先遇到的第一个“1”标志即优先得到服务,在此之前,遇到“0”标志均跳过而继续检查下一个。中断查询法程序流程图如图所示。q在这种查询方式下,当有中断请求时,CPU就转向固定的中断查询程序入口,执行流程图的程序,程序查询的顺序决定了设备中断优先权。当确定了请求中断的最高优先设备后,立即转去执行该设备的中断服务程序。q这种软件查询方法适用于低速和中速设备。它的优点是中断条件标志的优先级可用程序任意改变,灵活性好。缺点是设备多时速
17、度太慢。q2 串行排队链法串行排队链法(硬件查询法硬件查询法)q硬件查询法的逻辑线路如图所示。每个中断请求信号保存在“中断请求”触发器中,经“中断屏蔽”触发器控制后,产生来自中断请求触发器的请求信号INTR。q中断屏蔽寄存器的作用是改变中断处理的优先级别,在此假设中断屏蔽寄存器是全“0”,即将所有中断全设为允许。q编码电路根据排队的中断源输出信号IRi产生一个预定的地址码,在微机中称中断类型号,采用中断向量法转向中断服务程序入口地址。用中断向量来识别中断源,从而产生中断服务程序入口的地址的中断称为向量中断。中断向量是中断源的中断服务程序入口地址的地址。在微机中一般是设一个中断向量表,中断向量表
18、是中断类型码与对应的中断服务程序之间的连接表。q中断向量表占用主存中从00000H003FFH共1K个字节的存储空间,表中内容分为256项,对应于中断类型号0255。每一项占四个字节,用来存放中断处理子程序的入口地址信息,高地址的两字节用来存放中断处理子程序所在段的段首址,低地址的两字节用来存放中断处理子程序入口处在段的偏移地址。其结构如图10.10所示。q从中断矢量表的结构可知,n号中断处理程序的入口地址存放在表中4n4n+3共四个字节。当CPU响应n号中断源的中断请求取出n号中断处理程序的入口地址送入IP和CS之中。q这种方法的优点是速度快,但是以增加线数为代价的。q1038 单级中断处理
19、和多重中断处理单级中断处理和多重中断处理q1 单级中断处理单级中断处理q单级中断处理是一种简单的处理方式。当不同优先等级的设备同时请求中断时,CPU按照优先级一个一个处理。当CPU正在处理某个中断时,不允许其它设备再中断CPU的程序,即使优先级高的设备也不能打断,只能等到中断处理完毕后,CPU才响应其它中断。例如,优先等级是:ABCCPU,B设备请求中断时,A、C设备还没有请求。在CPU处理B设备中断时,A、C同时提出了请求,此时CPU运行轨迹如图10.11所示。q2多重中断处理多重中断处理 q多重中断是指在处理某一个中断过程又发生了新的中断请求,从而中断该服务程序的执行,又转去进行新的中断处
20、理。这种重叠处理中断的现象又称为中断嵌套。一般情况下,在处理某级中的某个中断时,与它同级的或比它低级的新中断请求应不能中断它的处理,而在处理完该中断返回主程序后,再去响应和处理这些新中断。而比它优先级高的新中断请求却能中断它的处理。q图10.12所示为一个4级中断嵌套的例子。4级中断请求的优先级别由高到低为ABCD的顺序。在CPU执行主程序过程中同时出现了两个中断请求B和C,因B中断优先级高于C中断,应首先去执行B中断服务程序。若此时又出现了D中断请求,则CPU将不予理睬。B中断服务程序执行完返回主程序后,再转去执行C的中断服务程序,然后执行D中断服务程序。若在CPU再次执行B中断服务程序过程
21、中,出现了A中断请求,因其优先级高于B,则CPU暂停对B中断服务程序的执行,转去执行A中断服务程序。等A中断服务程序执行完后,再去执行B中断服务程序。在本例中,中 断 请 求 次 序 为 B,CDBA;而 中 断 完 成 次 序 为BCDAB,两者不相同。q3用屏蔽改变多重中断处理次序q中断级的响应次序是由硬件(排队判优线路)来决定的。但是,在有优先级中断屏蔽控制条件下,系统软件根据需要可以改变屏蔽位的状态,从而改变多重中断处理次序。q利用屏蔽技术可以改变各设备的优先等级,使计算机适应各种场合的需要。严格地说,优先级包含两层意思,第一层是响应优先级,第二层是处理优先级。q响应优先级是指CPU对
22、各设备中断请求进行响应,并准备好处理的先后次序,这种次序往往在硬件线路上已固定,不便于变动。q处理优先级是指CPU实际上对各中断请求处理的先后次序。如果不使用屏蔽技术,响应的优先次序就是处理的优先次序。q现代计算机一般都使用了屏蔽技术,即通过控制各设备接口的屏蔽触发器状态,达到改变处理次序的目的。qCPU送往各设备接口屏蔽触发器状态信息的集合,称为屏蔽码q例10.1设某机有四级中断A、B、C、D,其硬件排队优先次序为ABCD,现要求将中断处理次序改为DBAC:q(1)表10.1(a)中各级中断程序的屏蔽位应如何设置(设“0”为允许,“1”为屏蔽,CPU状态时屏蔽码为0000)?q(2)请按下图
23、所示时间轴给出的设备中断请求时刻,画出CPU执行程序的轨迹,A、B、C、D中断服务程序的时间宽度均为20us。q【例题答案】【例题答案】q(1)中断程序的屏蔽位应如何设置见表10.1(b)。q1039 中断服务程序中断服务程序q中断服务程序由3部分组成;即前处理部分、主体部分和后处理部分,如图10.15所示。q(1)前处理部分封锁优先级与本设备相同或比本设备低的中断请求。因为这些中断请求虽然没有得到响应,但请求信号依然存在,这样CPU每执行一条指令,就要判断一下是否响应,而因优先级不比本设备高,判断结果为不能响应,然后再转回执行服务程序。只要这些中断请求信号存在,就总是干扰着服务程序的执行。封
24、锁操作是通过对接口屏蔽触发器的重新设置来实现的,称这一操作为设置新屏蔽码。保护现场交换屏蔽字开中断中断服务关中断恢复现场恢复屏蔽字开中断中断返回前处理部分主体部分后处理部分图 10.15 中断服务程序流程图q保护中断时的CPU现场。除了PC和PSW外,如果服务程序中还要使用其它寄存器,那么必须将它们原来的内容也压入堆栈。一般来说,动用哪个寄存器,就保存哪个寄存器的内容,以尽量减少时间开销。q开放中断。在中断响应时,CPU内的中断允许触发器是自动关闭的,其目的是在替换新老屏蔽字和保护现场操作时禁止一切中断,以免引起CPU现场混乱。何时允许中断,要根据前处理指令条数而定。前处理的最后一条指令是开中
25、断指令,它将中断允许触发器置1。q(2)主体部分q中断服务程序的主体部分是根据中断源的要求编写的。q有的是进行数据传送,有的是检查设备,有的是数据传送完毕后的结束处理,根据不同情况,主体部分可以是一条指令,也可以是一段程序。q(3)后处理部分q关闭中断允许触发器(置0)。这时的关闭操作用指令实现。q恢复现场。把前处理中压入堆栈的数据送回原来的寄存器中。q恢复中断前的屏蔽码。q开放中断,将CPU中的中断允许触发器置1,允许设备请求中断。这里应指出,开放中断指令中的开中断操作在硬件上延时到下一条指令执行时才完成,这样可避免断点地址的混乱。q(4)中断返回q中断服务程序的最后一条指令是中断返回指令。
26、该指令将压入堆栈中的原PC和PSW送回相应的寄存器。原程序从断点开始又继续执行下去。中断时,哪一个程序被中止,则中断返回指令执行后,哪个程序就被恢复运行。q上面所述的操作过程是一个典型的过程,但并不是一种固定不变的程式,各种机器的设计方案和硬件结构各不相同,中断处理的具体操作也就各不相同。q10310 中断方式的接口中断方式的接口q中断控制接口见中断控制接口见P335图图10.6逻辑。逻辑。q它包括4个D型触发器,其中两个工作状态寄存器:完成触发器(DONE)和忙触发器(BUSY);还有一个中断请求触发器(1NTR)和一个中断屏蔽触发器(MASK)。q当该设备被选中,即选中信号(SEL)为高电
27、平时,置“1”触发器(BUSY),启动设备,同时使完成触发器(DONE)置“0”。q数据由外设传送到接口的缓冲寄存器或外设将接口缓冲寄存器中的数据取走;q当设备动作结束或缓冲寄存器数据填满时,设备向接口送出一控制信号,将数据“准备就绪”标志DONE置“1”;q如果此时屏蔽触发器为“0”态,则在CPU送来的指令结束信号RQENB的作用下,使中断请求触发器置“1”,向CPU发出中断请求信号INTR。但若中断屏蔽触发器处于“1”态,则即使DONE触发器为“1”,仍不能产生中断请求信号,直到中断屏蔽触发器为“0”态为止。中断屏蔽触发器是由IO指令利用MASK的上升边来置位或复位的。程序中断的工作过程:
28、程序中断的工作过程:q若CPU是开中断状态则向外设发出响应中断信号INTA,并关闭中断;q在中断向量逻辑中通过排队判优,将选中的设备地址或中断向量送CPU,CPU通过设备地址或中断向量形成中断程序入口地址,从而转向该设备的中断服务程序;q在中断服务程序通过输入/输出指令进行数据传送。q中断服务程序结束后CPU送来的复位(IO总清)信号IORST,将接口中的BUSY和DONE和INTR标志复位。程序中断的工作过程:程序中断的工作过程:q10311 程序中断程序中断I/0方式和程序方式和程序I/0方式的比较方式的比较q(1)在程序I/O中,何时对何设备进行输入或输出操作完全受CPU控制;在中断I/
29、0中,何时对设备操作由外围设备主动通知CPU。q(2)程序I/0方式中,CPU与外围设备不能并行工作;中断方式由于不需要CPU与外围设备的同步工作,所以它们可以并行操作。q(3)程序I/0方式中无法处理异常事件,如掉电、非法指令、地址越界等;中断I/0方式可以处理随机时间,所以可处理这些异常。q(4)程序查询方式,优点是硬件结构比较简单,缺点是CPU效率低且程序查询方式只能进行数据传送。中断方式硬件结构相对复杂一些。10.4 DMA方式q1.基本概念基本概念qDMA方式即直接存储器存取方式,它是完全由硬件执行I/0交换的工作方式。在这种方式下,DMA控制器从CPU完全接管对总线的控制,数据交换
30、不经过CPU,而直接在内存与设备之间进行。因此数据交换的速度高,适用于高速成组传送数据,目前,磁盘与主存之间的数据传送,都采用DMA方式。qDMA的优点和缺点:DMA方式的优点是速度快。由于CPU根本不参加传送操作,因此省略了CPU取指令、取数和送数等操作。在数据传送过程中也不需要像中断方式一样,执行现场保存、现场恢复等工作。内存地址的修改、传送字个数的计数也直接由硬件完成,而不是用软件实现。它的主要缺点是硬件线路比较复杂。q2.三种三种DMA传送方式传送方式qDMA技术的出现,使得外围设备可以通过DMA控制器直接访问内存,与此同时,CPU可以继续执行程序。那么DMA控制器与CPU怎样分时使用
31、内存呢?通常采用以下三种方法。q(1)停止CPU访问内存q当外围设备要求传送一批数据时,由DMA控制器发一个停止信号给CPU,要求CPU放弃对地址总线、数据总线和有关控制总线的使用权。DMA控制器获得总线控制权以后,开始进行数据传送。在一批数据传送完毕后,DMA控制器通知CPU可以使用内存,并把总线控制权交还给CPU,在这种DMA传送过程中,CPU基本处于不工作状态或者说保持状态。q这种传送方法的优点是控制简单,它适用于数据传输率很高的设备进行成组传送。缺点是在DMA控制器访内存阶段,内存的效能没有充分发挥,相当一部分内存工作周期是空闲的,这是因为,在外设传送一批数据时,CPU不能访问主存。因
32、主存的存取速度高于外设的工作速度,所以DMA工作期间,主存的效能没有充分发挥。如软盘读一字节约要32s,而RAM的存取周期只有1s,那么就有(32-1)s31s主存是空闲的,浪费较大。q(2)周期挪用q在这种DMA传送方法中,当IO设备没有DMA请求时,CPU按程序要求访问内存,一旦IO设备有DMA请求,则由IO设备挪用一个或几个内存周期。q与停止CPU访内的DMA方法比较,周期挪用的方法既实现了IO传送,又较好地发挥了内存和CPU的效率,是一种广泛采用的方法。q(3)DMA与CPU交替访内q这种方式是将CPU工作周期一分为二,一半由DMA使用,一半为CPU使用。时间上不会发生冲突,可以使DM
33、A传送和CPU同时发挥最高的效率。q这种方式不需要总线使用权的申请、建立和归还过程,总线使用权分时控制的。CPU和DMA控制器各自有自己的访内地址寄存器、数据寄存器和读写信号等控制寄存器。这种总线控制权的转移几乎不需要什么时间,所以对DMA传送来讲效率是很高的。但CPU的系统周期比存储周期长得多,且相应的硬件逻辑也就更加复杂。q3.基本的基本的DMA控制器控制器q图为一最简单的DMA控制器组成示意图,它由以下逻辑部件组成:q主存地址寄存器:用于存放在内存中要交换数据的地址。q外围设备地址寄存器:存放I/O设备的设备码,或者表示设备信息存储区的寻址信息。q字数计数器:用于记录传送数据块的长度。q
34、数据缓冲寄存器:用于暂存每次的数据(一个字)。q控制与状态寄存器:用来存放控制字和状态字。q控制逻辑:由控制和时序电路,以及状态标志组成,用来修改内存地址计数器和字计数器,指定传送类型(输入或输出),并对DMA请求信号和CPU响应信号进行协调和同步。q中断机构:当一组数据交换完毕时,由溢出信号触发中断机构,向CPU提出中断报告。外设准备好发送数据(输入)或接收数据(输出)时,向主机发DMA请求。CPU在本机器周期执行完毕后响应该请求并使CPU的总线驱动器处于高阻状态,让出主存使用权;DMA发送主存地址、读写命令;挪用一个存储周期,传送一个数据,主存地址加1,字计数器减1。判断数据是否传送完毕,
35、即:字计数器是否为0q若字计数器不为0,撤销DMA请求,返回q若字计数器为0,则传送完毕,进入结束阶段。qDMA数据传送的流程图如图10.18所示。传送阶段 q结束阶段:DMA向主机发出中断请求,报告结束。一旦DMA的中断请求得到响应,CPU将停止主程序的执行,转去执行中断服务程序进行DMA操作的后处理。包括校验送入内存的数据是否正确;决定使用DMA方式传送数据还是结束传送;测试传送过程中是否发生错误。10.5 通道方式qIO 通道是计算机系统中代替 CPU管理控制外设的独立部件,是一种能执行有限 IO 指令集合通道命令的 IO 处理机。q1.通道的基本功能通道的基本功能q(1)根据 CPU
36、要求选择某一指定外设与系统相连,向该外设发出操作命令,并进行初始化。q(2)指出外设读写信息的位置以及与外设交换信息的主存缓冲区地址。q(3)控制外设与主存之间的数据交换,并完成数据字的分拆与装配。q(4)指定数据传送结束时的操作内容,并检查外设的状态(良好或有故障)。q2.通道的类型通道的类型q(1)字节多路通道q字节多路通道主要用于连接大量的低速设备,这些设备的数据传输率很低,而通道从设备接收或发送一个字节只需要几百纳秒,因此通道在传送两个字节之间有很多空闲时间,字节多路通道正是利用这个空闲时间为其他设备服务。q(2)选择通道q选择通道又称高速通道,在物理上它可以连接多个设备,但是这些设备
37、不能同时工作,在某一段时间内通道只能选择一个设备进行工作,当这个设备的通道程序全部执行完毕后,才能执行其他设备的通道程序。q选择通道主要用于连接高速外围设备,如磁盘、磁带等,信息以成组方式高速传输。由于数据传输率很高,通道在传送两个字节之间已很少空闲,所以在数据传送期间只为一台设备服务。q(3)数组多路通道q数组多路通道是对选择通道的一种改进,它的基本思想是当某设备进行数据传送时,通道只为该设备服务;当设备在执行寻址等辅助性动作时,通道暂时断开与这个设备的连接,挂起该设备的通道程序,去为其他设备服务,即执行其他设备的通道程序。q由于数组多路通道既保留了选择通道高速传送数据的优点,又充分利用了辅
38、助性操作的时间间隔为其他设备服务,使通道效率充分得到发挥,因此数组多路通道在实际系统中得到较多应用。10.4.2 10.4.2 通道型通道型I/OI/O处理机处理机(IOP)(IOP)和外围处理机和外围处理机qIOP IOP 不是一台独立的计算机,而是计算机系统中的一个部件。不是一台独立的计算机,而是计算机系统中的一个部件。IOP IOP 可以和可以和CPUCPU并行工作,提供高速的并行工作,提供高速的 DMA DMA 处理能力,实现数处理能力,实现数据的高速传送。此外,有些据的高速传送。此外,有些 IOP IOP 还提供数据的变换、搜索和字还提供数据的变换、搜索和字装配分拆能力。装配分拆能力
39、。q例如,在例如,在8 8位和位和1616位微机中使用的位微机中使用的 Intel 8089 I Intel 8089 IO O 处理器就处理器就是这种通道型是这种通道型 I IO O 处理器。处理器。8089IOP 8089IOP 用以承担中央处理器中用以承担中央处理器中的的 I IO O 处理、控制和实现高速数据传送任务。它的主要功能处理、控制和实现高速数据传送任务。它的主要功能是预置和管理外围设备以及支持通常的是预置和管理外围设备以及支持通常的 DMA DMA 操作。操作。8089IOP 8089IOP 的的基本结构如图基本结构如图10.1210.12所示所示。8089IOP 8089I
40、OP 8089IOP 8089IOP 的基本结构的基本结构的基本结构的基本结构q外围处理机结构更接近于一般处理机,或者就是选用已有的通用机。外围处理机结构更接近于一般处理机,或者就是选用已有的通用机。外围机基本上是独立于主处理机工作的,应用于大型高效率的计算机外围机基本上是独立于主处理机工作的,应用于大型高效率的计算机系统中。系统中。10.6 几种I/0方式的比较 q在计算机系统中,CPU管理外围设备的方式有程序查询方式、程序中断方式、DMA方式、通道方式和外围处理机方式。其中前3种技术在现在的微型计算机系统中是非常常见的,后两种主要用于比较复杂的高档计算系统中,外围处理机方式可以看成是通道处
41、理机的进一步扩展。如图10.20所示是一个分类示意图。10.5 10.5 总线结构总线结构q计算机系统大多采用模块结构,一个模块就是具有专门功能的计算机系统大多采用模块结构,一个模块就是具有专门功能的插件板,或叫做部件、插件、插卡。随着集成电路集成度的提插件板,或叫做部件、插件、插卡。随着集成电路集成度的提高,一块板上可安装多个模块。各模块之间传送信息的通路称高,一块板上可安装多个模块。各模块之间传送信息的通路称为总线。为便于不同厂家生产的模块能灵活构成系统,形成了为总线。为便于不同厂家生产的模块能灵活构成系统,形成了总线标准。总线标准。q一般情况下有两类标准,即正式公布的标准和实际存在的工业
42、一般情况下有两类标准,即正式公布的标准和实际存在的工业标准。正式公布的标准由标准。正式公布的标准由 IEEE(IEEE(电气电子工程师学会电气电子工程师学会)或或 CCITT(CCITT(国际电报电话咨询委员会国际电报电话咨询委员会)等国际组织正式确定和承认,等国际组织正式确定和承认,并有严格的定义。并有严格的定义。q在标准中对插件引线的几何尺寸、引线数、各引线的定义、时在标准中对插件引线的几何尺寸、引线数、各引线的定义、时序及电气参数等都作出明确规定,这对子系统的设计和功能的序及电气参数等都作出明确规定,这对子系统的设计和功能的扩充都带来了方便。扩充都带来了方便。q总线有两类:总线有两类:q
43、一类是连接计算机内部各模块的总线,如连接一类是连接计算机内部各模块的总线,如连接 CPU CPU、存储、存储器和器和 I IO O 接口的总线。常用的有接口的总线。常用的有 ISA ISA 总线、总线、EISAEISA总线、总线、VMEVME总线、总线、STDSTD总线和总线和 PCI PCI 总线等。总线等。q另一类为系统之间或系统与外部设备之间连接的总线,常另一类为系统之间或系统与外部设备之间连接的总线,常用的有用的有 EIA-RS232C EIA-RS232C 串行总线和串行总线和 IEEE-488 IEEE-488 并行总线等。并行总线等。10.5.1 总线类型q1.1.单总线单总线q
44、所有模块都连接到单一总线上,如图所有模块都连接到单一总线上,如图10.14(a)10.14(a)所示。总线类型所示。总线类型有地址线、数据线、控制线和电源地线。有地址线、数据线、控制线和电源地线。q2.2.多总线多总线q将速度较低的将速度较低的 I IO O 设备从总线上分出去,而形成系统总线与设备从总线上分出去,而形成系统总线与 I IO O 总线分开的双总线结构如图总线分开的双总线结构如图10.14(b)10.14(b)所示。所示。q根据同一思想,可以组成三总线结构,如图根据同一思想,可以组成三总线结构,如图10.14(c)10.14(c)所示。所示。10.5.2 总线组成q总线是从两个或
45、两个以上源部件传送信息到一个或多个部件的总线是从两个或两个以上源部件传送信息到一个或多个部件的一组传输线,如一根传输线仅用于连接一个源部件一组传输线,如一根传输线仅用于连接一个源部件(输出输出)和一和一个或多个目的部件个或多个目的部件(输入输入),则不称为总线。,则不称为总线。q由于多个模块由于多个模块(或部件或部件)连接到一条共用总线上,必须对每个发连接到一条共用总线上,必须对每个发送的信息规定其信息类型和接收信息的部件,协调信息的传送;送的信息规定其信息类型和接收信息的部件,协调信息的传送;必须经过选择判优,避免多个部件同时发送信息的矛盾。还需必须经过选择判优,避免多个部件同时发送信息的矛
46、盾。还需要对信息的传送定时,防止信息的丢失。这就需要设置总线控要对信息的传送定时,防止信息的丢失。这就需要设置总线控制线路。总线控制线路包括总线判优或仲裁逻辑、驱动器和中制线路。总线控制线路包括总线判优或仲裁逻辑、驱动器和中断逻辑等。断逻辑等。q1.1.总线判优控制总线判优控制q由于存在多个设备或部件同时申请对总线的使用权,为保证在由于存在多个设备或部件同时申请对总线的使用权,为保证在同一时间内只能有一个申请者使用总线,需要设置同一时间内只能有一个申请者使用总线,需要设置总线判优控总线判优控制机构制机构。总线判优机构总线判优机构按照申请者的优先权选择可以控制总线按照申请者的优先权选择可以控制总
47、线的设备或部件。的设备或部件。q可以控制总线并启动数据传送的任何设备称做可以控制总线并启动数据传送的任何设备称做主控器或主设备主控器或主设备;能够响应总线主控器发出的总线命令的任何设备称做能够响应总线主控器发出的总线命令的任何设备称做受控器或受控器或从设备从设备。通常。通常 CPU CPU 为主设备,存储器为从设备,为主设备,存储器为从设备,I IO O 设备可设备可以为主设备或从设备。以为主设备或从设备。q总线判优控制按其仲裁控制机构的设置可分为集中式控制和分总线判优控制按其仲裁控制机构的设置可分为集中式控制和分布式控制两种。总线控制逻辑基本上集中于一个设备布式控制两种。总线控制逻辑基本上集
48、中于一个设备(如如 CPU)CPU)时,称为集中式控制;而总线控制逻辑分散在连接总线的各个时,称为集中式控制;而总线控制逻辑分散在连接总线的各个部件或设备中时,称为分布式总线控制。部件或设备中时,称为分布式总线控制。q常用的优先权仲裁方式为串行链接方式。常用的优先权仲裁方式为串行链接方式。串行链接判优线路串行链接判优线路q2.2.总线通信总线通信q信息在总线上的传送方式可分为同步和异步两种方式:信息在总线上的传送方式可分为同步和异步两种方式:q(1)(1)同步通信同步通信。在同步方式下,通信双方由统一的时钟控制数。在同步方式下,通信双方由统一的时钟控制数据的传送,时钟通常是由据的传送,时钟通常
49、是由 CPU CPU 发出的,并送到总线上的所有部发出的,并送到总线上的所有部件。经过一段固定时间,本次总线传送周期结束,开始下一个件。经过一段固定时间,本次总线传送周期结束,开始下一个新的总线传送周期。新的总线传送周期。q(2)(2)异步通信异步通信。利用数据发送部件和接收部件之间的相互。利用数据发送部件和接收部件之间的相互“握握手手”信号来实现总线数据传送的方式称作异步通信方式。信号来实现总线数据传送的方式称作异步通信方式。q3.3.出错处理出错处理q数据传送过程可能产生错误,有些接收部件有自动纠错能力,数据传送过程可能产生错误,有些接收部件有自动纠错能力,可以自动纠正错误;而有些部件无自动纠错能力但能发现错误,可以自动纠正错误;而有些部件无自动纠错能力但能发现错误,可发出可发出“数据出错数据出错”信号,通常向信号,通常向 CPU CPU 发出中断请求信号,发出中断请求信号,CPU CPU 响应中断后,转入出错处理程序。响应中断后,转入出错处理程序。q4.4.总线驱动总线驱动q总线上可连接多个部件,具有扩充灵活的优点,但总线的驱动总线上可连接多个部件,具有扩充灵活的优点,但总线的驱动能力总是有限制的,因此在扩充时要加以注意。通常一个模块能力总是有限制的,因此在扩充时要加以注意。通常一个模块或一个部件限制在或一个部件限制在1 12 2个负载以内。个负载以内。