8.2、CPU控制IO中断和DMA控制IO中断

一、CPU控制IO中的中断

  中断是指CPU在正常运行程序时,由于内部/外部事件(或由程序)引起CPU中断正在运行的程序,而转到为中断事件服务的程序中去,服务完毕,再返回执行原程序的这一过程。中断具有随机性。
  中断可以实现主机与外设的并行工作、故障处理(中断系统能使计算机在运行过程中出现故障的时候调用相应的中断服务程序处理故障)和实时处理,如下所示:
image

①、在程序控制I/O的方式下,cpu始终要进行查询设备,从而占用了cpu的时间,在程序控制中断的方式下,cpu可以做其它工作,不需要浪费时间在I/O上面。因此,中断可以实现主机与外设的并行工作;
②、中断能够打断正常的工作去做其它处理,因此当计算机系统有故障发生的时候,就可以中断当前的工作,从而去对故障进行处理。

1.1、中断的类型

image
image

1.2、中断系统的基本功能

image

1.2.1、中断请求信号保持与清除

  来了中断信号后通过触发器(或寄存器)将中断信号保持起来,中断处理完以后,通过清零信号,将触发器(或寄存器)中的值进行清零,如下所示:
image

1.2.2、中断源识别

  中断源识别是通过中断号来实现的,因为我们的计算机只能处理数字信号,因此对于中断来说,必须给中断一个编号来识别它,这个编号就是终端号。中断号的获取可以通过硬件的方式(比如向量中断的获取),也可以通过软件的方式。

1.2.3、中断控制

  中断的触发方式分为2种:
①、边沿触发;
②、电平触发。
  中断的排队方式也有2种:
①、按优先级排队(根据任务的轻重缓急,给每个中断源指定CPU响应的优先级,任务紧急的先响应,可以暂缓的后响应。);
②、循环轮流排队(不分级别高低,CPU轮流响应各个中断源的中断请求);
  对于中断源排队的处理方式,可以一个一个处理,但是如果后续有任务更急的中断请求,可能会得不到响应,因此,需要采用中断嵌套的方式来处理中断,如下:
image

中断屏蔽的定义,如下:
image

中断优先级的定义,如下:
image

中断响应周期和中断响应的定义,如下:
image

中断处理的过程,如下:
image

①、单级中断处理的流程,如下:
image

②、多级中断处理的流程,如下:
image

二、DMA控制IO中的中断

  DMA控制IO设备后,数据的传送不经过CPU,由DMA控制器实现内存和外设、外设和外设之间的直接快速传送。有以下3种实现方式:
①、DMA作为主设备之一
image

②、DMA控制器与IO接口集成
image

③、DMA控制器提供专门IO总线
image

  DMA控制器的2种工作状态,如下:
image

2.1、DMA传输步骤(4步,申请阶段,响应阶段,数据传输阶段,传送结束阶段)

image
image

2.2、DMA操作类型(3种,数据传送、数据校验、数据检索)

image

2.3、DMA操作方式(4种,单字节传输模式、块传输模式、请求传输模式、级联传输模式)

image

2.4、DMA传输模式
2.4.1、停止CPU访问内存

  当需要传送一批数据时,DMA控制器首先要求CPU放弃对总线的控制权;然后开始进行数据传送。在一批数据传送完毕后,DMA控制器通知CPU可以使用内存并把总线控制权交还给CPU。在这种DMA传送过程中,CPU基本处于不工作状态或者说保持状态。
image

2.4.2、周期挪用

  当I/O设备没有DMA请求时,CPU按程序要求访问内存;一旦I/O设备有DMA请求,则由I/O设备挪用一个或几个内存周期。这种情况下,I/O设备要求DMA传送时可能遇到2种情况。
①、当CPU不需要访内时,此时I/O访内与CPU访内没有冲突,即I/O设备挪用1~2个内存周期对CPU执行程序没有任何影响;
②、CPU也同时要求访问内存,这就产生了访存冲突,在这种情况下I/O设备访存优先。
image

2.4.3、DMA与CPU交替访存

  如果CPU的工作周期比内存存取周期长很多,此时采用交替访存的方法,可以使DMA传送和CPU同时发挥最高的效率。这种方式不需要总线使用权的申请、建立和归还过程,总线使用权是通过分时进行的,这种总线控制权的转移几乎不需要什么时间,所以对DMA传送来讲效率是很高的。
  这种传送方式又称为"透明的DMA"方式,在透明的DMA方式下工作,CPU既不停止主程序的运行,也不进入等待状态,同样是一种高效率的工作方式。

posted @ 2026-05-21 10:48  Carey_ccl  阅读(11)  评论(0)    收藏  举报