目录

  • 1 两课设计和教学资源
    • 1.1 教学大纲
    • 1.2 课程教案设计
    • 1.3 教材电子书
    • 1.4 教学课件及推荐书目
    • 1.5 高阶课堂安排
    • 1.6 课程反思
  • 2 计算机系统概论
    • 2.1 第1章PPT
    • 2.2 计算机系统组成和工作步骤
  • 3 系统总线
    • 3.1 第3章PPT
    • 3.2 总线的基本概念、分类、特性及性能指标(第1次翻转课)
    • 3.3 总线结构及总线判优(第2次翻转课)
    • 3.4 总线的通信控制(第3次翻转课)
  • 4 存储器
    • 4.1 第4章PPT
    • 4.2 存储器的分类与层次结构
    • 4.3 主存储器
    • 4.4 RAM和ROM
    • 4.5 存储器与CPU的连接(第4、5次翻转课)
    • 4.6 Cache和辅助存储器
  • 5 输入输出系统
    • 5.1 第5章PPT
    • 5.2 概述与I/O设备
    • 5.3 I/O接口和程序查询方式(第6次翻转课)
    • 5.4 程序中断方式 和DMA方式(第7次翻转课)
  • 6 复习+讨论+答疑
    • 6.1 1·5章 复习+讨论+答疑
  • 7 计算机的运算方法
    • 7.1 第6章PPT
    • 7.2 无符号数和有符号数
    • 7.3 数的表示(第8次翻转课)
    • 7.4 定点的加法与减法运算、ALU单元
  • 8 指令系统
    • 8.1 第7章PPT
    • 8.2 指令的一般格式、操作数的类型
    • 8.3 各种寻址方式(第9次翻转课)
    • 8.4 指令格式(第10次翻转课)
  • 9 CPU的结构和功能
    • 9.1 第8章PPT
    • 9.2 CPU的功能和结构、寄存器、指令周期
    • 9.3 指令流水原理、性能和结构、中断系统工作原理
  • 10 实验1:汉字国标码转区位码实验(第11次翻转课)
    • 10.1 汉字国标码转区位码实验内容简介
    • 10.2 汉字机内码获取实验内容简介
    • 10.3 实验资料
  • 11 实验2:8位可控加减法电路设计实验(第12次翻转课)
    • 11.1 实验内容简介
    • 11.2 实验资料
  • 12 实验3:CLA182四位先行进位电路设计实验(第13次翻转课)
    • 12.1 实验内容简介
    • 12.2 实验资料
  • 13 实验4:4位快速加法器设计实验(第14次翻转课)
    • 13.1 实验内容简介
    • 13.2 实验资料
  • 14 实验5:汉字字库存储芯片扩展实验(第15次翻转课)
    • 14.1 实验内容简介
    • 14.2 实验资料
程序中断方式 和DMA方式(第7次翻转课)
  • 1 教学内容
  • 2 教学视频
  • 3 翻转课堂教学任务单

本节教学内容:

1、程序中断方式

2、DMA方式


教学目的和要求:

1、理解I/O中断处理过程;

2、掌握I/O中断服务程序的流程;

3、了解DMA接口的功能和组成;

4、理解DMA的工作过程。


重点:1、程序中断方式;

         2DMA方式。

难点:程序中断方式


1I/O中断处理过程、中断服务程序流程

一、知识要点

1CPU响应中断的条件和时间

2I/O中断处理过程

3、中断服务程序的流程

二、教学安排

首先详细介绍I/O中断的处理过程,包括了CPU响应中断的条件和时间,处理过程结合硬件图来讲解,因为中断处理过程由中断接口的硬件决定,然后讲解中断服务程序的流程,不同的设备虽然服务程序不同,但是程序流程都是类似的。

三、教学内容

1CPU响应中断的条件和时间

CPU响应I/O设备提出中断请求的条件是必须满足CPU中的允许中断触发器EINT为“1”。该触发器可用开中断指令置位(称为开中断);也可用关中断指令或硬件自动使其复位(称为关中断)。

由上图分析可知,I/O设备准备就绪的时间(即D=1)是随机的,而CPU是在统一的时刻(每条指令执行阶段结束前)向接口发中断查询信号,以获取I/O的中断请求。因此,CPU响应中断的时间一定是在每条指令执行阶段的结束时刻。

2I/O中断处理过程

下面以输入设备为例,结合下图,说明I/O中断处理的全过程。当CPU通过I/O指令的地址码选中某设备后,则

①由CPU发启动I/O设备命令,将接口中的B置“1”,D置“0”。

②接口启动输入设备开始工作。

③输入设备将数据送人数据缓冲寄存器。

④输入设备向接口发出“设备工作结束”信号,将D置“1”,B置“0”,标志设备准备就绪。

⑤当设备准备就绪(D=l),且本设备未被屏蔽(MASK=0)时,在指令执行阶段的结束时刻,由CPU发出中断查询信号。

⑥设备中断请求触发器INTR被置“1”,标志设备向CPU提出中断请求。与此同时,INTR送至排队器,进行中断判优。

⑦若CPU允许中断(EINT=1),设备又被排队选中,即进入中断响应阶段,由中断响应信号INTA将排队器输出送至编码器形成向量地址。

⑧向量地址送至PC,作为下一条指令的地址。

⑨由于向量地址中存放的是一条无条件转移指令,故这条指令执行结束后,即无条件转至该设备的服务程序入口地址,开始执行中断服务程序,进入中断服务阶段,通过输入指令将数据缓冲寄存器的输入数据送至CPU的通用寄存器,再存入主存相关单元。

⑩中断服务程序的最后一条指令是中断返回指令,当其执行结束时,即中断返回至原程序的断点处。至此,一个完整的程序中断处理过程即告结束。

综上所述,可将一次中断处理过程简单地归纳为中断请求、中断判优、中断响应、中断服务和中断返回5个阶段。至于为什么能准确返回至原程序断点,CPU在中断响应阶段除了将向量地址送至PC外,还做了什么其他操作等问题,将在8.4节详细介绍。

3、中断服务程序的流程

不同设备的服务程序是不相同的,可它们的程序流程又是类似的,一般中断服务程序的流程分四大部分:保护现场、中断服务、恢复现场和中断返回。

1)保护现场

保护现场由两个含义,其一是保存程序的断电;其二是保存通用寄存器和状态寄存器的内容。前者由中断隐指令完成,后者由中断服务程序完成。具体而言,可在中断服务程序的起始部分安排若干条存数指令,将寄存器的内容存至存储器中保存,或用进栈指令(PUSH)将各寄存器的内容推入堆栈保存,即将程序中断时的现场保存起来。

2)中断服务(设备服务)

这是中断服务程序的主体部分,对于不同的中断请求源,其中断服务操作内容是不同的,例如,打印机要求CPU将需打印的一行字符代码,通过接口送人打印机的缓冲寄存器中以供打印机打印。又如,显示设备要求CPU将需显示的一屏字符代码通过接口送人显示器的显示存储器中。

3)恢复现场

这是中断服务程序的结尾部分,要求在退出服务程序前,将原程序中断时的现场恢复到原来的寄存器中。通常可用取数指令或出栈指令(POP),将保存在存储器(或堆栈)中的信息送回到原来的寄存器中。

4)中断返回

中断服务程序的最后一条指令通常时一条中断返回指令,使其返回到原程序的断电处,以便继续执行原程序。

计算机在处理中断的过程中,有可能出现新的中断请求,此时如果CPU暂停现行的中断服务程序,转去处理新的中断请求,这种现象称为中断嵌套,或多重中断。倘若CPU在执行中断服务程序时,对新的中断请求不予理睬,这种中断称为单重中断。这两种处理方式的中断服务程序略有区别。下图中两个流程分别为单重中断和多重中断服务程序流程。比较两图可以发泄,其区别在于开中断的设置时间不同。

CPU一旦响应了某中断源的中断请求后,便由硬件线路自动关中断,即中断允许触发器EINT被置“0”,以确保该中断服务程序的顺利执行。因此如果不用开中断指令将EINT“1”,则意味着CPU不能再响应其他任何一个中断源的中断请求。对于单重中断,开中断指令设置在最后中断返回之前,意味着在整个中断服务处理过程中,不能再响应其他中断源的请求。对于多重中断,开中断指令提前至保护现场之后,意味着着保护现场后,若有级别更高的中断源提出请求(这是实现多重中断的必要条件),CPU也可以响应,即再次中断现行的服务程序,转至新的中断服务程序,这是单重中断与多重中断的主要区别。有关多重中断的详细内容参见8.4.6节。

综上所述,从宏观上分析,程序中断方式客服了程序查询方式中的CPU“踏步现象,实现了CPUI/O的并行工作,提高了CPU的资源利用率。但从微观操作分析,发现CPU在处理中断服务程序时仍需暂停原程序的正常运行,尤其是当高速I/O设备或辅助存储器频繁地、成批地与主存交换信息时,需不断地打断CPU执行主程序而执行中断服务程序。下图是主程序和服务程序抢占CPU的示意图。为此,人们探索出使CPU效率更高的DMA控制方式。

四、互动及练习

本次课采用提问的互动方式:

1、执行中断服务程序的流程。

请同学们先讨论谈自己的看法,然后由讨论出来的内容来分析,引出执行中断服务程序的流程。

2、程序中断方式是否与CPU的工作完全并行?

请同学们谈谈自己的看法,分析程序中断方式中中断服务程序的流程,看在执行中断服务程序时,CPU是否可以继续工作,由此得出中断方式实现了CPUI/O宏观上并行工作和微观上串行工作的特点。

 

 

2DMA方式

一、知识要点

1DMA方式的特点

2DMA接口的功能和组成

3DMA的工作过程

二、教学安排

首先,介绍DMA方式与主存交换数据时采用的三种方法,然后介绍DMA接口的功能及基本组成电路,通过接口电路再分析DMA方式的工作流程,让学生把工作流程跟硬件结构联系起来,要注意区分DMA方式与中断方式、程序查询方式的区别。

三、教学内容

1DMA方式的特点

下图示意了DMA方式与程序中断方式的数据通路。


由图中可见,由于主存和DMA接口之间有一条数据通路,因此主存和设备交换信息时,不通过CPU,也不需要CPU暂停现行程序为设备服务,省去了保护现场和恢复现场,因此工作速度比程序中断方式的工作速度高。这一特点特别适合于高速I/O或辅存与主存之间的信息交换。因为高速I/O设备若每次申请与主机交换信息时,都要等待CPU作出中断响应后再进行,很可能因此使数据丢失。

值得注意的是,若出现高速I/O(通过DMA接口)和CPU同时访问主存,CPU必须将总线(如地址线、数据线)占有权让给DMA接口使用,即DMA采用周期窃取的方式占用一个存取周期。

DMA方式中,由于DMA接口与CPU共享主存,这就有可能出现两者争用主存的冲突。为了有效地分时使用主存,通常DMA与主存交换数据时采用如下三种方法。

1)停止CPU访问内存

当外围设备要求传送一批数据时,由DMA控制器发一个停止信号给CPU,要求CPU放弃对地址总线、数据总线和有关控制总线的使用权。DMA控制器获得总线控制权以后,开始进行数据传送。在一批数据传送完毕后,DMA控制器通知CPU可以使用内存,并把总线控制权交还给CPU。在这种DMA传送过程中,CPU基本处于不工作状态或者说保持状态。

优点:控制简单,它适用于数据传输率很高的设备进行成组传送。

缺点:在DMA控制器访内阶段,内存的效能没有充分发挥,相当一部分内存工作周期是空闲的。这是因为,外围设备传送两个数据之间的间隔一般总是大于内存存储周期,即使高速I/O设备也是如此。

该方式的时间示意图如下图所示。

 

2)周期挪用

I/O设备没有DMA请求时,CPU按程序要求访问内存;一旦I/O设备有DMA请求,则由I/O设备挪用一个或几个内存周期。

I/O设备要求DMA传送时可能遇到两种情况:

1)此时CPU不需要访内,如CPU正在执行乘法指令。由于乘法指令执行时间较长,此时I/O访内与CPU访内没有冲突,即I/O设备挪用一二个内存周期对CPU执行程序没有任何影响。

2I/O设备要求访内时CPU也要求访内,这就产生了访内冲突,在这种情况下I/O设备访内优先,因为I/O访内有时间要求,前一个I/O数据必须在下一个访内请求到来之前存取完毕。显然,在这种情况下I/O设备挪用一二个内存周期,意味着CPU延缓了对指令的执行,或者更明确地说,在CPU执行访内指令的过程中插入DMA请求,挪用了一二个内存周期。

与停止CPU访内的DMA方法比较,周期挪用的方法既实现了I/O传送,又较好地发挥了内存和CPU的效率,是一种广泛采用的方法。但是I/O设备每一次周期挪用都有申请总线控制权、建立总线控制权和归还总线控制权的过程,所以传送一个字对内存来说要占用一个周期,但对DMA控制器来说一般要25内存周期(视逻辑线路的延迟而定)。因此,周期挪用的方法适用于I/O设备读写周期大于内存存储周期的情况。

方式的时间示意图如下图所示。

3DMACPU交替访内

如果CPU的工作周期比内存存取周期长很多,此时采用交替访内的方法可以使DMA传送和CPU同时发挥最高的效率。假设CPU工作周期为1.2μs,内存存取周期小于0.6μs,那么一个CPU周期可分为C1C2两个分周期,其中C1DMA控制器访内,C2专供CPU访内。

这种方式不需要总线使用权的申请、建立和归还过程,总线使用权是通过C1C2分时进行的。CPUDMA控制器各自有自己的访内地址寄存器、数据寄存器和读/写信号等控制寄存器。在C1周期中,如果DMA控制器有访内请求,可将地址、数据等信号送到总线上。在C2周期中,如CPU有访内请求,同样传送地址、数据等信号。事实上,对于总线,这是用C1C2控制的一个多路转换器,这种总线控制权的转移几乎不需要什么时间,所以对DMA传送来讲效率是很高的。

这种传送方式又称为“透明的DMA”方式,其来由是这种DMA传送对CPU来说,如同透明的玻璃一般,没有任何感觉或影响。在透明的DMA方式下工作,CPU既不停止主程序的运行,也不进入等待状态,是一种高效率的工作方式。当然,相应的硬件逻辑也就更加复杂。

方式的时间示意图如下图所示。

2DMA接口的功能

利用DMA方式传送数据时,数据的传输过程完全由DMA接口电路控制,故DMA接口又有DMA控制器之称。DMA接口应具有如下几个功能。

CPU申请DMA传送。

‚CPU允许DMA工作时,处理总线控制权的转交,避免因进入DMA工作而影响CPU正常活动或引起总线竞争。

ƒDMA期间管理系统总线,控制数据传送。

„确定数据传送的起始地址和数据长度,修正数据传送过程中的数据地址和数据长度。

…在数据块传送结束时,给出DMA操作完成的信号。

3DMA接口基本组成

最简单的DMA接口组成原理如下图所示,它由以下几个逻辑部件组成。

1)主存地址寄存器(AR

AR用于存放主存中需要交换数据的地址。在DMA传送数据前,必须通过程序将数据在主存中的首地址送到主存地址寄存器。在DMA传送过程中,每交换一次数据,将地址寄存器内容加1,直到一批数据传送完毕为止。

2)字计数器(WC

WC用于记录传送数据的总字数,通常以交换字数的补码值预置。在DMA传送过程中,每传送一个字,字计数器加1,直到计数器为0,即最高位产生进位时,表示该批数据传送完毕(若交换字数以原码值预置,则每传送一个字,字计数器减1,直到计数器为0时,表示该批数据传送结束)。于是DMA接口向CPU发中断请求信号。

3)数据缓冲寄存器(BR

BR用于暂存每次传送的数据。通常DMA接口与主存之间采用字传送,而DMA与设备之间可能是字节或位传送。因此DMA接口中还可能包括有装配或拆卸字信息的硬件逻辑,如数据移位缓冲寄存器、字节计数器等。

4DMA控制逻辑

DMA控制逻辑负责管理DMA的传送过程,由控制电路、时序电路及命令状态控制寄存器等组成。每当设备准备好一个数据字(或一个字传送结束),就向DMA接口提出申请(DREQ),DMA控制逻辑便向CPU请求DMA服务,发出总线使用权的请求信号(HRQ)。待收到CPU发出的响应信号HLDA后,DMA控制逻辑便开始负责管理DMA传送的全过程,包括对主存地址寄存器和字计数器的修改、识别总线地址、指定传送类型(输入或输出)以及通知设备已被授予一个DMA周期(DACK)等。

5)中断机构

当字计数器溢出(全“0”)时,表示一批数据交换完毕,由溢出信号通过中断机构向CPU提出中断请求,请求CPUDMA操作的后处理。必须注意,这里的中断与前面章节介绍的I/O中断的技术相同,但中断的目的不同,前面是为了数据的输入或输出,而这里是为了报告一批数据传送结束。它们是I/O系统中不同的中断事件。

6)设备地址寄存器(DAR

DAR存放I/O设备的设备码或表示设备信息存储区的寻址信息,如磁盘数据所在的区号、盘面号和柱面号。具体内容取决于设备的数据格式和地址的编址方式。

4DMA的工作过程

1)预处理阶段

测试设备状态;

  • DMA控制逻辑指明数据传送方向时输入(写主存)还是输出(读主存);

  • DMA控制器的设备地址寄存器中送入设备号,并启动设备;

  • 向主存地址计数器中送入欲交换数据的主存起始地址;

  • 向字计数器中送入欲交换的数据个数

上述工作由CPU执行几条输入输出指令完成,即程序的初始化阶段。这些工作完成后,CPU继续执行原来的程序,如下图所示。

外部设备准备好发送的数据(输入)或上次接收的数据已处理完毕(输出)时,将通知DMA控制器发出DMA请求,申请主存总线。

2)数据传送

输入操作 

.首先从外部设备读入一个字(设每字16位)到DMA数据缓冲寄存器IODR中(如果设备是面向字节的,一次读入一个字节,需要将两个字节装配成一个字)。

.外部设备发选通脉冲,使DMA控制器中的DMA请求标志触发器置“1”。

.DMA控制器向CPU发出总线请求信号(HOLD)。

.CPU在完成了现行机器周期后,即响应DMA请求,发出总线允许信号(HLDA),并由DMA控制器发出DMA响应信号,使DMA请求标记触发器复位。此时,由DMA控制器接管系统总线。

.DMA控制器中主存地址寄存器中的主存地址送地址总线,

.DMA数据缓冲寄存器中的内容送数据总线。

.在读/写控制信号线上发出写命令。

.DMA地址寄存器的内容加1,从而得到下一个地址,字计数器减1

.判断字计数器的值是否为“0”。若不为“0”,说明数据块没有传送完毕,返回⑤,传送下一个数据;若为“0”,说明数据块已经传送完毕,则向CPU申请中断处理。

输出操作

.DMA数据缓冲寄存器已将输出数据送至I/O设备后,表示数据缓冲寄存器为“空”;

.外部设备发选通脉冲,使DMA控制器中的DMA请求标志触发器置“1”;

.DMA控制器向CPU发出总线请求信号(HOLD);

.CPU在完成了现行机器周期后,即响应DMA请求,发出总线允许信号(HLDA),并由DMA控制器发出DMA响应信号,使DMA请求标记触发器复位。此时,由DMA控制器接管系统总线;

.DMA控制器中主存地址寄存器中的主存地址送地址总线,在读/写控制信号线上发出读命令;

.主存将相应地址单元的内容通过数据总线读入到DMA数据缓冲寄存器中;

.DMA数据缓冲寄存器的内容送到输出设备;

.DMA地址寄存器的内容加1,从而得到下一个地址,字计数器减1

.判断字计数器的值是否为“0”。若不为“0”,说明数据块没有传送完毕,返回到⑤,传送下一个数据;若为“0”,说明数据块已经传送完毕,则向CPU申请中断处理。

3)传送后处理

    DMA的中断请求得到响应后,CPU停止原程序的执行,转去执行中断服务程序,做一些DMA的结束工作,如上图的后处理部分。这包括:

  • 校验送入主存的数据是否正确。

  • 决定是否继续用DMA传送其他数据块。

  • 测试在传送过程中是否发生错误。


四、互动及练习

本次课采用提问的互动方式:

1DMA方式能够取代中断方式?

让同学先讨论DMA方式和中断方式的作用和优缺点,然后自己分析谈谈DMA方式能够取代中断方式,通过这个问题让学生清楚虽然DMA方式效率高,但是这两种方式各有用处,不能相互取代。