📜  计算机体系结构中的直接访问媒体(DMA)控制器(1)

📅  最后修改于: 2023-12-03 15:12:03.164000             🧑  作者: Mango

计算机体系结构中的直接访问媒体(DMA)控制器

概述

计算机中,主处理器(CPU)负责控制所有I/O设备的数据传输。这意味着主处理器需要在每次I/O传输时执行一系列的I/O指令,从而占用了大量的处理器时间。为了解决这一问题,人们发明了DMA控制器。

DMA控制器是一种能够控制计算机与外围设备之间数据传输的设备,它可以直接访问主存储器(Main Memory),绕过CPU,从而大大减少了CPU的介入,提高了I/O传输的效率,使CPU得到更多的时间去处理其他的任务(如运算、分支、跳转等)。

原理

DMA技术的基本思路是:通过对CPU发出的指令及其控制的总线进行拦截和控制,使得DMA控制器可以直接访问I/O设备和存储器,从而避免CPU在I/O传输过程中的直接参与,以达到提高系统效率的目的。

在传统的I/O传输过程中,CPU控制总线,在数据传输过程中,通过in/out等指令周期性地检测设备发送来的标志位,一旦发现外设有数据发送到CPU的存储器区域,CPU就会立即执行data in操作,而此时CPU还需执行I/O操作期间所具有的数据传送和控制流程,I/O延迟较大,开销较高。

通过DMA控制器,I/O传输时可以绕过CPU而直接连接总线和存储器,DMA控制器作为独立的外设执行直接内存访问(Direct Memory Access, DMA)的功能。DMA控制器可以根据CPU所规定的要求,自主地对存储器进行读写操作,并且在数据传输完成后,通过中断向CPU发送读写结束的信号。

实现

通过Direct Memory Access(DMA)控制器,数据传输时可以绕过CPU而直接连接总线和存储器。在实现上,必须先将DMA控制器与主处理器(CPU)连接起来,再将DMA控制器与I/O控制器相连。I/O控制器负责与外设交换数据,从而实现系统和外设之间的数据交换。

在实际应用时,DMA控制器可以通过多种方式来实现数据传输。例如:

  • 同步传输:DMA控制器将主存中的数据传输给I/O设备,直到传输结束再从I/O设备将数据写入主存。这种方式实现简单,但需要等待数据传输结束后才能继续执行下一条指令。
  • 异步传输:DMA控制器将数据同时传输到I/O设备和主存,并且在数据传输过程中允许执行其他指令。这种方式通常需要一个缓冲区,用于存储传输的数据。

无论采用何种方式,DMA控制器都可以大大提高系统效率,减少CPU的参与度,让CPU有更多的时间来处理其他的任务,从而加快整个系统的运行速度。

结论

直接访问存储器的DMA控制器是现代计算机中广泛使用的一种技术,它可以在不影响系统性能的前提下实现高效的I/O数据传输,并且充分发挥了计算机硬件的并发性,是现代计算机体系结构中不可缺少的一部分。