购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

1.1.6 DMA控制器

如果在存储器和I/O设备之间开辟一条数据通道,专门用于数据传输,就可以将处理器从数据搬运中解放出来。这种方式就是直接存储器访问(Direct Memory Access,DMA)方式。DMA方式在存储器和外围设备之间开辟直接的数据传送通道,数据传送由专门的硬件来控制。控制DMA数据传送的硬件被称为DMA控制器。使用DMA方式进行传输的一般过程如下。

(1)CPU为DMA请求预先分配一段地址空间。

(2)CPU设置DMA控制器的参数。这些参数包括设备标识、数据传送的方向、内存中用于数据传送的源地址或目标地址、传输的字节数量等。

(3)DMA控制器进行数据传输。DMA控制器发起对内存和设备的读写操作,控制数据传输。DMA传输相当于用I/O设备直接读写内存。

(4)DMA控制器向CPU发起一个中断,通知CPU数据传送的结果,包括成功或者失败及错误信息等。

(5)CPU处理完本次DMA请求,可以开始处理新的DMA请求。

DMA方式对于存在大量数据传输的高速设备是一个很好的选择。硬盘、网络设备、显示设备等普遍采用DMA方式。DMA控制器的功能可以很简单,也可以很复杂。例如,DMA控制器可以仅支持对一段连续地址空间的读写,也可以支持对多段地址空间的读写以及执行其他的I/O操作。不同的I/O设备的DMA方式各不相同,因此现代的I/O设备大多会实现专用的DMA控制器,用于自身的数据传输。一个计算机系统中通常包含多个DMA控制器,如特定设备专用的串行高级技术总线附属(Serial Advanced Technology Attachment,SATA)接口DMA控制器、USB接口DMA控制器等,以及通用的DMA控制器(用于可编程的源地址与目标地址之间的数据传输)。 n0GSD6+PEBzR54s2O99hRN2ijP1+7yUpOsw/ymoIrf8tKNIqMIZY1WqzYdzYHYsz

点击中间区域
呼出菜单
上一章
目录
下一章
×