【软考】DMA技术

1. 说明
  • 1.直接主存存取(Direct Memory Access,DMA)是指数据在主存IO 设备间直接成块传送,即在主存与 IO设备间传送一个数据块的过程中不需要 CPU 的任何干涉,只需要 CPU 在过程开始启动(即向设备发出“传送一块数据”的命令)与过程结束(CPU通过轮询中断得知过程是否结束和下次操作是否准备就绪)时的处理,实际操作由 DMA 硬件直接执行完成,CPU 在此传送过程中可做别的事情。
  • 2.DMA技术允许不同速度的硬件设备(如外设到内存、内存到外设、内存到内存、外设到外设)进行直接沟通,而无需依赖中央处理器(CPU)的中断负载。
  • 3.在数据传输过程中,CPU可以执行其他任务,从而节省CPU资源并提高系统效率。
2. 工作原理
  • 1.请求阶段:当IO设备需要进行数据传输时,它会通过DMA控制器向CPU提出DMA传输请求。
  • 2.响应阶段:CPU响应请求后,DMA控制器接管总线进行数据传输,进入DMA操作周期。
  • 3.传输阶段:DMA控制器确定传送数据的主存单元地址及长度,并自动修改主存地址计数和传送长度计数。同时,规定数据在主存和外设间的传送方向,并发出读写等控制信号,执行数据传送操作。
  • 4.完成阶段:数据传输完成后,DMA控制器向CPU发出一个中断,通知处理器DMA传输已完成。
3. 传输模式
  • 1.单字节传输模式:DMA请求获得批准后,CPU让出一个总线周期用于字或字节的传送。结束后,DMA控制器归还总线控制权,CPU再重新判断下一个总线周期的总线控制权是CPU保留,还是继续响应一次新的DMA请求。
  • 2.块传输模式:DMA控制器掌管总线控制权,连续占用若干个总线周期,连续传送多个字节,直到所要求的字节数传输完成(当前字节计数器减至0),然后释放总线。
  • 3.请求传输模式:DMA控制器要询问外设,当外设请求信号无效时暂停传输(不释放总线);当请求信号再次有效后,继续进行传输。
  • 4.级联传输模式:多片DMA控制器级联,构成主从式DMA系统,以实现更复杂的数据传输任务。
4. 优点与应用
  • 1.DMA技术的优点在于它能够显著提高数据传输的效率和系统的吞吐率,同时减少CPU的负载
  • 2.这一技术在许多领域都有广泛的应用,如视频处理、音频传输、网络通信等,这些领域通常需要高速、大量的数据传输。
5. 技术细节
  • 1.地址与长度:DMA控制器需要知道数据的源地址、目的地址以及传输长度,以便正确地进行数据传输。
  • 2.中断与信号:在数据传输过程中,DMA控制器会使用中断信号与CPU进行通信,以通知CPU数据传输的状态和结果。
  • 3.硬件支持:DMA技术通常需要专门的硬件支持,如DMA控制器芯片或内建在处理器芯片内部的DMA控制器。
6. 例题
6.1 例题1
  • 1.题目
1.下面关于在I/O设备与主机间交换数据的叙述(C)是错误的。
A.中断方式下,CPU需要执行程序来实现数据传送任务
B.中断方式和DMA方式下,CPU与I/O设备都可同步工作
C.中断方式和DMA方式中,快速I/O设备更适合采用中断方式传递数据
D.若同时接到DMA请求和中断请求,CPU优先响应DMA请求
  • 2.分析
1.I/O设备与主机间进行数据输入输出主要有直接程序控制方式、中断方式、DMA方式和通道控制方式。
2.直接程序控制方式的主要特点是:CPU直接通过I/O指令对I/O接口进行访问操作,主机与外设之间交换信息的每个步骤均在
程序中表示出来,整个输入输出过程是由CPU执行程序来完成的。
3.中断方式的特点是:当I/O接口准备好接收数据或向CPU传送数据时,就发出中断信号通知CPU。
对中断信号进行确认后,CPU保存正在执行的程序的现场,转而执行提前设置好的I/O中断服务程序,完成一次数据传送的处理。
CPU就不需要主动查询外设的状态,在等待数据期间可以执行其他程序,从而提高了CPU的利用率。
采用中断方式管理I/O设备,CPU和外设可以并行地工作。
4.虽然中断方式可以提高CPU的利用率,能处理随机事件和实时任务,但一次中断处理过程需要经历保存现场、
中断处理和恢复现场等阶段,需要执行若干条指令才能处理一次中断事件,因此这种方式无法满足高速的批量数据传送要求。
5.直接内存存取(DirecE Memory Access, DMA)方式的基本思想是:通过硬件控制实现主存与I/O设备间的直接数据传送,
数据的传送过程由DMA控制器( DMAC)进行控制,不需要CPU的干预。在DMA方式下,需要CPU启动传送过程,即向设备
发出“传送一块数据”的命令。在传送过程结束时,DMA通过中断方式通知CPU进行一些后续处理工作。
6.DMA方式简化了CPU对数据传送的控制,提高了主机与外设并行工作的程度,实现了快速外设和主存之间成批的数据传送,
使系统的效率明显提高。
7.通道是一种专用控制器,它通过执行通道程序进行I/O操作的管理,为主机与I/O设备提供一种数据传输通道。用通道指令编制
的程序存放在存储器中,当需要进行I/O操作时,CPU只要按约定格式准备好命令和数据,然后启动通道即可;通道则执行相应
的通道程序,完成所要求的操作。用通道程序也可完成较复杂的I/O管理和预处理,从而在很大程度上将主机从繁重的I/O管理工
作中解脱出来,提高了系统的效率。
6.2 例题2
  • 1.题目
2.在由高速缓存、主存和硬盘构成的三级存储体系中,CPU执行指令时需要读取数据,那么DMA控制器和中断CPU发出的数据地址是(B)。

A.高速缓存地址
B.主存物理地址
C.硬盘的扇区地址
D.虚拟地址
  • 2.分析
1.程序中用到的是虚拟地址,硬件中访问的通常是物理地址。
2.高速缓存地址:高速缓存(Cache)是CPU和主存之间的一个高速数据存储器,它用于存储CPU最近访问过的数据。
当CPU需要读取数据时,它会首先检查高速缓存中是否有所需数据。
3.DMA控制器和中断CPU通常不会直接与高速缓存交豆,而是与主存交互。
4.主存物理地址:主存(或称为RAM)是计算机中的主要存储设备,用于存储程序和数据。
5.当高速缓存中不存在所需数据时,CPU会从主存中读取数据。
6.DMA控制器负责在IO设备和主存之间传输数据,而不需要CPU的干预,因此,DMA控制器和中断CPU在涉及数据传输时,会引用主存的物理地址。
7.硬盘的扇区地址:硬盘是计算机中的长期存储设备,用于存储大量数据。
8.在CPU执行指令需要读取数据时,它通常首先会检查高速缓存和主存,而不是直接从硬盘中读取。
9.DMA控制器通常不会直接与硬盘的扇区地址交互,而是通过文件系统等中间三来访问硬盘上的数据。
10.虚拟地址:虚拟地址是操作系统为应用程序提供的一种内存抽象,使得应用程序可以访问比实际物理内存更大的内存空间。
11.在DMA和中断操作中,通常涉及的是物理内存地址,而不是虚拟地址。
6.3 例题3
  • 1.题目
3.以下关于中断方式与DMA方式的叙述中,正确的是(A)。

A.中断方式与DMA方式都可实现外设与CPU之间的并行工作
B.程序中断方式和DMA方式在数据传输过程中都不需要CPU的干预
C.采用DMA方式传输数据的速度比程序中断方式的速度慢
D.程序中断方式和DMA方式都不需要CPU保护现场
  • 2.分析
1.输入/输出技术的三种方式:
2.直接查询控制:有无条件传送和程序查询方式,都需要通过CPU执行程序来查询外设的状态,
判断外设是否准备好接收数据或准备好了向CPU输入的数据。在这种情况下CPU不做别的事情,只是不停地对外设的状态进行查询。
3.中断方式:当I/O系统与外设交换数据时,CPU无须等待也不必查询I/O的状态,而可以抽身来处理其他任务。
当I/O系统准备好以后,则发出中断请求信号通知CPU,CPU接到中断请求信号后,保存正在执行的程序的现场,
转入I/O中断服务程序的执行,完成与I/O系统的数据交换,然后再返回被打断的程序继续执行。与程序控制方式相比,
中断方式因为CPU无需等待而提高了效率。
4.DMA:直接寄存器存取方式,是指数据在内存与I/O设备间的直接成块传送,即在内存与I/O设备间传送一个数据块的过程中,
不需要CPU的任何干涉,只需要CPU在过程开始启动与过程结束时的处理,实际操作由DMA硬件直接执行完成。
5.所以中断方式与DMA方式都可实现外设与CPU之间的并行工作。
6.4 例题4
  • 1.题目
4.采用DMA方式传送数据时,每传送一个数据都需要占用一个(B)。

A.指令周期
B.总线周期
C.存储周期
D.机器周期
  • 2.分析
1.DMA方式传送数据时,CPU不直接参与数据的传输过程,而是由DMA控制器接管总线,
直接从源地址取数据并送到目的地址,或者将数据从源地址送到I/O设备。这种传输方式减少了CPU的干预,提高了数据传输的效率。  
2.机器周期:在计算机中,为了便于管理,常把一条指令的执行过程划分为若干个阶段,每一阶段完成一项工作。
3.指令周期:取出一条指令并执行这条指令的时间。一般由若干个机器周期组成,是从取指令、分析指令到执行完所需的全部时间。
4.一个机器执行一条指令的时间叫作指令的周期,而机器周期是将指令划分为若干个阶段,完成某一个操作所需要的时间称为机器周期。
5.总线周期:CPU对存储器和I/O接口的访问,是通过总线实现的。通常把CPU通过总线对微处理器外部(存储器或I/O接口)进行一次访问所需时间称为一个总线周期。
6.存储周期:通常指连续启动两次操作所需间隔的最小时间,体现主存的速度。
7.DMA传输会占用总线周期,因为DMA控制器需要接管总线来完成数据传输。但严格来说,“每传送一个数据都需要占用一个总线周期”
这一说法可能过于简化。
6.5 例题5
  • 1.题目
5.DMA控制方式是在(C)之间直接建立数据通路进行数据的交换处理。
A.CPU与主存
B.CPU与外设
C.主存与外设
D.外设与外设
  • 2.分析
1.直接主存存取(Direct Memory Access,DMA)是指数据在主存与I/O设备间(即主存与外设之间)直接成块传送。
2.CPU与外设之间是程序直接控制传送方式。
3.CPU与主存之间是总线,外设不直接与其他外设进行数据交换。
6.6 例题6
  • 1.题目
6.计算机系统中常用的输入输出控制方式有无条件传送、中断、程序査询和 DMA方式等。当采用(D)方式时,不需要 CPU 执行程序指令来传送数据。

A.中断
B.程序查询
C.无条件传送
D.DMA
  • 2.分析
1.在计算机中,实现计算机与外部设备之间数据交换经常使用的方式有无条件传送、程序查询、中断和直接存储器存取(DMA)。
2.其中前三种都是通过CPU执行某一段程序,实现计算机内存与外设间的数据交换。
3.只有DMA方式下,CPU交出计算机系统总线的控制权,不参与内存与外设间的数据交换。
4.而DMA方式工作时,是在DMA控制硬件的控制下,实现内存与外设间数据的直接传送,并不需要CPU参与工作。
5.由于DMA方式是在DMA控制器硬件的控制下实现数据的传送,不需要CPU执行程序,故这种方式传送的速度最快。
6.7 例题7
  • 1.题目
7.CPU是在(D)结束时响应DMA请求的。

A.一条指令执行
B.一段程序
C.一个时钟周期
D.一个总线周期
  • 2.分析
1.指令周期(Instruction Cycle):取出并执行一条指令的时间。
2.总线周期(BUS Cycle):也就是一个访存储器或I/O端口操作所用的时间。
3.时钟周期(Clock Cycle):又称震荡周期,是处理操作的最基本单位。
4.指令周期、总线周期和时钟周期之间的关系:一个指令周期由若干个总线周期组成,而一个总线周期时间又包含有若干个时钟周期。
一个总线周期包含一个(只有取址周期)或多个机器周期。
5.机器周期:在计算机中,为了便于管理,常把一条指令的执行过程划分为若干个阶段,每一阶段完成一项工作。例如,取指令、
存储器读、存储器写等,这每一项工作称为一个基本操作。完成一个基本操作所需要的时间称为机器周期。
6.DMA响应过程为:DMA控制器对DMA请求判别优先级及屏蔽,向总线裁决逻辑提出总线请求。当CPU执行完当前总线周期即可
释放总线控制权。此时总线裁决逻辑输出总线应答,表示DMA已经响应,通过DMA控制器通知I/O接口开始DMA传输。
6.8 例题8
  • 1.题目
8.DMA工作方式下,在(C)之间建立了直接的数据通路。

A.CPU与外设
B.CPU与主存
C.主存与外设
D.外设与外设
  • 2.分析
1.DMA控制外设和主存之间的数据传送,无须CPU的干预。因此DMA工作方式下,在主存和外设之间建立了直接的数据通路。
6.9 例题9
  • 1.题目
9.对于以下关于中断方式与直接存储器存取DMA方式说法不正确的是(C)

A.中断方式中,I/O和主存数据传送需要CPU处理;而在DMA方式下,I/0和主存数据传送不需要CPU处理。
B.中断方式需要保护执行现场,而DMA方式不需要。
C.中断方式处理异常的能力比DMA方式弱。
D.中断方式的响应时间是在一条指令结束后,而DMA方式的响应时间是在CPU周期结束后
  • 2.分析
    在这里插入图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

王佑辉

老板,赏点吧

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值