jjnoob

计组第八章

2019-01-11
jjnoob

第八章。en。明天开始刷题

一,外围设备与CPU交换信息的方式

1,程序传送方式:

包括无条件传送和程序查询传送。无条件传送不查询外设状态,认为外设已经准备就绪,直接与外设传送数据。程序查询传送在执行输入输出前,要先查询接口中状态寄存器的状态。

2,中断传送方式:

当外设作好传送准备后,主动向CPU请求中断,CPU响应中断后在中断处理程序中与外设交换数据。若外设未准备好,CPU可以执行其他程序,从而提高了CPU的利用率。

3,DMA传送方式:

DMA方式是一种由专门的硬件电路执行I/O的数据传送方式,它可以让外设接口直接与内存进行高速的数据传送,而不必经过CPU。这种专门的硬件电路称为DMA控制器,简称DMAC

二,查询方式的基本原理

  • 用I/O指令编程实现信息传送。
  • 优缺点:硬件开销小;实时处理能力差,并行程度低。
  • 应用场合: 对CPU效率要求不高的场合,或诊断、调试过程。
  • 有两个很简单的图,看一遍就行了。

三,程序中断方式(单级中断)的基本原理

程序中断是指计算机执行现行程序的过程中,出现某些急需处理的异常情况和特殊请求,cpu暂时终止现行程序,而转去对随机发生的更紧迫的事件进行处理,在处理完毕后,cpu将自动返回原来的程序继续执行。

由以下部分组成:
  • 中断的基本概念
  • 程序中断方式的基本I/O接口
  • 单级中断
  • 多级中断
  • 中断控制器
  • Pentium中断机制

三,程序中断工作流程

三的补充,不算三的正式内容,也不是总结的正式内容,ppt讲的太乱,无法总结。

1,中断请求

中断请求是指中断源向CPU发送中断请求信号。

内中断和外中断
  • 外中断是指来自处理器和内存以外的部件引起的中断,包括I/O设备发出的I/O中断、外部信号中断(如用户按 < ESC > 键),以及各种计时器引起的时钟中断等。外中断在狭义上一般被称为中断。

  • 内中断主要指在处理器和内存内部产生的中断。包括程序运算引起的各种错误,如地址非法、检验错、页面失效、存储访问控制错、算术操作溢出、数据格式非法、除数为0、非法指令、用户程序执行特权指令、分时操作系统中的时间片中断以及用户态到核心态的切换等。

硬件中断和软件中断
  • 硬件中断:通过外部的硬件产生的中断。硬件中断属于外中断。

  • 软件中断:通过某条指令产生的中断。这种中断可以编程实现,软件中断属于内中断。

非屏蔽中断和可屏蔽中断(全是外中断)
  • 非屏蔽中断:非屏蔽中断是一种硬件中断,此种中断通过不可屏蔽中断请求NMI控制,不受中断标志位IF的影响,即使关中断(IF=0)的情况下也会被响应。

  • 可屏蔽中断:可屏蔽中断也是一种硬件中断,此种中断通过中断请求标记触发器INTR控制,且受中断标志位IF的影响,在关中断情况下不接受中断请求。

2,中断判优

中断系统在任意瞬间只能响应一个中断源的请求,由于许多中断源提出中断请求的时间都是随机的,因此当多个中断源同时提出请求时,需通过中断判优逻辑确定哪个中断源的请求。如故障中断的优点级较高,然后是I/O中断。

中断判优既可以用硬件实现,也可以用软件实现。硬件实现是通过硬件排队器实现的,它既可以设置在CPU中,也可以分散在各个中断源中,软件实现是通过查询程序实现的。

一般来说,硬件故障中断属于最高级,其次是低速设备,输入设备优于输出设备,实时设备低于普通设备。

3,CPU响应中断的条件

CPU在满足一定的条件下响应中断源发出的中断请求,并经过一些特定的操作,专区执行中断服务程序。条件:

  • 中断源有中断请求。
  • CPU允许中断及开中断。
  • 一条指令执行完毕,没有更紧迫的任务。

注意:I/O设备的就绪时间是随机的,而CPU是在统一的时刻即每条指令执行阶段结束前后,接口发出中断查询信号,以获取I/O的中断请求,也就是说,CPI响应中断的时间是在每条执行阶段的结束时刻。这里说的中断仅指外中断,内中断不属于此类情况。

4,中断隐指令

CPU响应中断后,经过某些操作,转去执行中断服务程序。这些操作是由硬件直接实现的,把它称为中断隐指令。中断隐指令并不是指令系统中的一条真正的指令,它没有操作码。所以中断隐指令是一种不允许、也不可能为用户使用的特殊指令。它完成的操作是:

  • 关中断。在中断服务程序中,为了保护中断现场(即CPU主要寄存器的内容)期间不被新的中断所打断,必须关中断,从而保证被中断的程序在中断程序服务程序完毕之后能接着正确地执行下去。
  • 保存断点。为了保证在中断服务程序执行完毕后能正确地返回到原来的程序,必须将原来程序的断点(即程序计数器(PC)的内容)保存起来。

  • 引出中断服务程序。取出中断服务程序的入口地址(中断向量)并传送给程序计数器(PC).

5,中断向量

不同的设备有不同的中断服务程序,每个中断服务程序都有一个入口地址,CPU必须找到这个入口地址,即中断向量,把系统的全部中断向量存放到存储器的某一区域内,这个存放中断向量的存储区就叫中断向量表,即中断服务程序入口地址表。

当CPU响应中断后,中断硬件会自动将中断向量地址传动到CPU,由CPU实现程序的切换,这种方法称为中断向量法,采用中断向量法的中断称为向量中断。

注意:中断向量是中断服务程序的入口地址,中断向量地址是指中断服务程序的入口地址的地址。

6,中断处理过程

①关中断。处理器响应中断后,首先要保护程序的现场状态,在保护现场过程张,CPU不应该响应更高级中断源的中断请求。否则,如果现场保存不完整,在中断服务程序结束后,就不能正确地恢复并继续执行现行程序。

②保存断点。为了保证中断服务程序执行完毕后正确地返回到原来的程序,必须将原来程序的断点保存起来。断点可以压入堆栈,也可以存入主存的特定单元中。

③引出中断服务程序。取出中断服务程序的入口地址(中断向量)并传送给程序计数器(PC).

通常由两种方法寻址中断服务程序的入口地址:硬件向量法和软件查询法。

硬件向量法是通过引荐产生中断向量地址,再由中断向量地址找到中断服务的入口地址,软件查询法是用软件编程的办法找到入口地址。

注意:硬件产生的实际是中断类型号。而中断服务程序后首先要保存现场,现场信息一般指的是程序状态字、中断屏蔽寄存器和CPU中某些寄存器的内容。

④保护现场和屏蔽字。进入中断服务程序后首先要保存现场,现场信息一般指的是程序状态字,中断屏蔽寄存器和CPU中某些寄存器的内容。

⑤开中断。这将允许更高级中断请求得到响应,实现中断嵌套。

⑥执行中断服务程序。这是中断系统的核心。

⑦关中断。保证在恢复现场和屏蔽字时不被中断。

⑧恢复现场和屏蔽字。将现场和屏蔽字恢复到原来的状态。

⑨开中断、中断返回。中断服务程序的最后一条指令通常是一条中断返回指令,使其返回到源程序的断点处,以便继续执行远程序。

其中,(1)-(3)在CPU进入中断周期后,由中断隐指令(硬件自动)完成;(4)-(9)由中断服务程序完成。

注意:恢复现场是指在中断返回前,必须将寄存器的内容恢复到中断处理前的状态,这部分工作由中断服务程序完成,中断返回由中断服务程序的最后一条中断返回指令完成。

另:多重中断和中断屏蔽技术

如果CPU在执行中断服务程序的过程中,又出现了新的更高的优先级的中断请求,而CPU对新的中断请求不予响应,这种中断为单重中断。

如果CPU在执行现行的中断服务程序,转去处理新的中断请求,这种中断为多重中断,又称中断嵌套。

中断屏蔽技术主要用于多重中断,CPU要具备多重中断的功能,必须满足下列条件。

  • 在中断服务程序中提前设置开中断指令。
  • 优先级别高的中断源有权中断优先级别低的中断源。每个中断源都有一个屏蔽触发器1表示屏蔽该中断源的请求,0表示可以正常申请,所有屏蔽触发器组合在一起,便构成一个屏蔽字寄存器,屏蔽字寄存器的内容称为屏蔽字。

四,DMA方式的基本原理与3种传送方式的特点

这个小姐姐写得真好orz

1,DMA方式的特点

主存和DMA接口之间有一条直接数据通路。由于DMA方式传送数据不需要经过CPU,因此不必中断现行程序,I/O与主机并行工作,程序和传送并行工作。

DMA方式具有下列特点:

  • 它使主存与CPU的固定联系脱钩,主存既可被CPU访问,又可被外存访问。
  • 在数据块传送时,主存地址的确定、传送数据的计数等由硬件电路直接实现。
  • 主存中要开辟专用缓冲区,及时供给和接受外设的数据。
  • DMA传送数据块,CPU和外设并行工作,提高了系统效率。
  • DMA在传送开始前要通过程序进行预处理,结束后要通过中断方式进行后处理。

2,DMA的三种传送方式

停止CPU访问主存

这种方式是当外设需要传送组数据时,由DMA接口向CPU发送一个信号,要求CPU放弃地址线、数据线和有关控制线的使用权,DMA接口获得总线控制权后,开始进行数据传送,在数据传送结束后,DMA接口通知CPU可以使用主存,并把总线控制权交还给CPU。这种传送过程中,CPU基本处于不工作状态和保持原状态。

DMA与CPU交替访存

这种方式适用于CPU的工作周期比主存存取周期长的情况。例如,CPU的工作周期是1.2us,主存的存取周期小于0.6us,那么可将一个CPU周期分为C1和C2两个周期。其中C1专供DMA访存,C2专供CPU访存。这种方式不需要总线使用权的申请、建立和归还过程,总线使用权是通过C1和C2分时控制的。

周期挪用

这种方式是前两种方式的折中,当I/O设备没有DMA请求时,CPU按程序的要求访问主存,一旦I/O设备有了DMA请求,会遇到3种情况。第一种是此时CPU不在访存(如CPU正在执行乘法指令),故I/O的访存请求与CPU未发生冲突;第2种是CPU正在访存,则必须等待存取周期结束后,CPU再将总线占有权让出。第3种是I/O和CPU同时请求访存,出现了访存冲突,此时CPU要暂时放弃总线占用权,由I/O设备挪用一个或几个存取周期。

3,DMA的传送过程

DMA的数据传送分为预处理、数据传送和后处理3个阶段。

预处理

由CPU完成一些必要的准备工作。首先,CPU执行几条I/O指令,用以测试I/O设备状态,向DMA控制器的有关寄存器置初值,设置传送方向、启动该设备等。然后,CPU继续执行原来的程序,直到I/O设备准备好发送的数据(输入情况)或接受的数据(输出情况)时,I/O设备向DMA控制器发送DMA请求,再由DMA控制器向CPU发送总线请求(有时将这两个过程统称为DMA请求),用以传输数据。

数据传送

DMA的数据传输可以以单字节(或字)为基本单位,对于以数据块为单位的传送(如硬盘),DMA占用总线后的数据输入和输出操作都是通过循环来实现的。需要指出的是,这一循环也是由DMA控制器(而不是通过CPU执行程序)实现的,也就是说,数据传送阶段是完全由DMA(硬件)来控制的。

后处理

DMA控制器向CPU发送中断请求,CPU执行中断服务程序做DMA结束处理,包括检验送入主存的数据是否正确,测试传送过程中是否出错(错误则转入诊断程序)和决定是否继续使用DMA传送其他数据块等。

4,DMA方式和中断方式的区别

DMA方式和中断方式的重要区别:

  • 中断方式是程序的切换,需要保护和恢复现场,而DMA方式除了预处理和后处理,其他时候不占用CPU的任何资源。
  • 对中断请求的响应只能发生在每条指令执行完毕时(即指令的执行周期之后),而对DMA请求的响应可以发生在每个机器周期的结束时(在取值周期,间址周期,执行周期之后均可),只要CPU不占用总线就可以被响应。
  • 中断传输过程需要CPU的干预;而DMA传输过程不需要CPU的干预,故数据传输速率非常高,适合高速外设的成组数据传送。
  • DMA请求的优先级高于中断请求。
  • 中断方式具有对异常事件的处理能力,而DMA方式仅局限于传输数据块的I/O操作。
  • 从数据传送来看,中断方式靠程序传送,DMA方式靠硬件传送。

五,通道方式

1,通道的功能:

  • 接受CPU的指令。
  • 读取并执行通道程序。
  • 控制数据传送。
  • 读取外设的状态信息,提供给CPU。
  • 发出中断请求。

2,通道的类型

字节多路通道
  • 用于多台低速或中速的外围设备
  • 采用分时方式工作
选择通道
  • 用于高速外围设备
  • 工作方式:一旦选中某一设备,通道就进入“忙”状态,直到该设备的数据传输工作全部结束为止。
数组多路通道
  • 字节多路通道和选择通道的结合

END

Thanks!

https://blog.csdn.net/csx348952485/article/details/79436756

https://blog.csdn.net/jxq0816/article/details/52623797

https://blog.csdn.net/jxq0816/article/details/52634702


上一篇 计组第五章

下一篇 计组第六章

Content