计算机科学导论(4)DMA传输原理

DMA通过让硬件在无需CPU干预的情况下进行内存读写,提升了数据传输效率并减轻了CPU负担。文章详细解释了DMA的工作原理,介绍了其高效性和两种传输模式,并展示了在高速数据传输中的广泛应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

DMA(Direct Memory Access)直接内存访问是一种允许某些硬件子系统在不通过中央处理单元(CPU)的情况下,直接从内存读取或向内存写入数据的技术。这种方式可以显著提高数据传输的效率,减轻CPU的负担,使CPU能够同时处理其他计算任务。

在没有 DMA 技术前,全程数据拷贝都需要CPU来做,严重消耗CPU。
在这里插入图片描述
在引入了DMA后:
在这里插入图片描述

DMA的工作原理

在这里插入图片描述

  • 当外部设备有DMA使用需求时,会向DMAC(DMA控制器)发出DMA请求信号(DREQ)
  • DMAC控制器接收到外部设备的请求信号后,会向CPU发出一个总线请求信号(HOLD)
  • CPU在接收到DMAC控制器发送过来的总线请求信号后,如果允许DMA传输,则会在总线空闲后,发出DMA响应信号(HLDA)。然后CPU会将控制总线、数据总线和地址总线置高阻态,即放弃对总线的控制权;另一方面,CPU会将有效的DMA响应信号发送给DMAC控制器,通知DMAC控制器CPU已经放弃了对总线的控制权
  • DMAC控制器收到总线发来的DMA响应信号(HLDA)后,会获得总线的控制权,并向外部设备发送应答信号DACK,通知外设可以进行DMA传输了
  • DMAC还会向存储器发送地址信号,向存储器和外设发出读/写控制信号,控制数据按设定的方向传输,实现外设与内存的数据传输
  • 数据全部传输结束后,DMAC向CPU发送HOLD信号,要求撤销DMAC控制器对总线的控制权,CPU收到该信号后,会使HLDA(DMA请求)信号无效,收回总线控制权。

概括而言有两组信号:

  • DRQ:外设向DMA控制器(DMAC,DMA Controller)提出的要进行DMA操作的申请信号。
  • DACK:DMA控制器向发出DRQ信号的外设的回应,表示收到请求和正在进行处理。
  • HRQ:DMA控制器向CPU发出的要求接管总线的请求信号。
  • HLDA:CPU向DMA控制器发出的允许接管总线的应答信号。

DMA的优势

  • 高效性:通过减少CPU参与数据传输的次数,DMA可以显著提高数据传输速度,尤其是在处理大量数据时。
  • 减轻CPU负担:DMA允许CPU在数据传输期间执行其他任务,从而提高了整个系统的效率和响应速度。

DMA的类型

  • 单块传输模式:在这种模式下,每次传输一块数据。每次传输完成后,DMA控制器都会发送中断信号给CPU。
  • 突发传输模式:允许DMA控制器一次性传输一整组数据块,直到数据传输完成,只在最后发送一个中断信号给CPU。这种模式进一步提高了数据传输效率。

DMA的应用

DMA广泛应用于需要高速数据传输的场景,如硬盘驱动器、固态驱动器、网络卡、声卡等外围设备与内存之间的数据传输。

总之,DMA是一种有效提高数据传输效率、减轻CPU负担的关键技术,对于现代计算机系统的高性能运行至关重要。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值