DMA控制器的学习

来源:互联网 发布:淘宝套现店铺 编辑:程序博客网 时间:2024/05/16 14:35

1.含义           DMA控制器 即 direct memory access直接内存访问控制器,可以独立于CPU,直接对内存数据进行访问,达到内存数据和外围设备的数据传送。传送速度较快。

2.DMA控制器工作时和CPU之间的关系

                    ①DMA工作时,CPU停止工作。DMA工作期间,CPU处于关闭或者状态保持情况。

                    ②DMA工作时,CPU正常工作,但是在两者同时对内存进行访问时,CPU要让位于DMA。CPU工作要延时一定的周期

                    ③DMA工作时,CPU正常工作,对内存的访问也是互不干扰。这种情况多应用于内存访问周期较短的情况。即对一个内存数据的读写马上完成了,但是DMA工作的一个周期还没完成,cpu的一个工作周期还没完成。此时那么内存控制器就处于空闲状态。为了使内存控制器的效率提高,可以在一个较大的周期内,前半时间内存控制器为CPU服务,后半时间为DMA服务。这样DMA和CPU都完成了对内存的访问,但是两者并没有感觉到对方的干扰。

3.DMA控制器相关的寄存器

                   ①数据存放的内存地址的寄存器。该寄存器存放着,将要传送的数据的所在内存的首地址。

                   ②字计数器。存放着将要传送的数据的个数

                   ③缓冲寄存器。用于存放所要传送的数据的缓冲。

                   ④“DMA"请求标志位。当一外围设备准备好数据传送工作。向CPU发出"DMA"请求,进行数据传送时,此位用作请求的标志。

                   ⑤中断机构。当字计数器溢出时,表明数据传送完毕,这时会产生一个中断,告之CPU数据传送完毕了。

                   ⑥”控制/状态“逻辑。用于对DMA请求,溢出中断的标志。对地址寄存器,字计数器数值的改变。以及CPU与DMA信号之间的同步等。

4。DMA数据传送的工作路程:

                   ①CPU预处理  CPU发出几条指令监测外围设备的状态,将一些寄存器的数据进行装入。

                   ②正式传送 外围设备准备好数据后,向CPU发出DMA请求,然后就开始数据的传输了

                   ③传送结束后CPU的一些后处理工作  当数据传送结束后,溢出中断得到响应。则CPU停止当前工作,进入相应的中断服务子程序,进行后处理工作。包括数据传送的正确性;继续用DMA进行数据传送,还是停止传送等等

 

5。 DMA控制器种类

                   ①选择型DMA控制器,一个逻辑结构用于选择哪个外围设备,一次只对一个外围设备服务。

                   ②多路型DMA控制器。多个外围设备可同时工作,数据进行交叉方式传送。适用于数据传送较慢的情况。

 

 

参考资料:http://jpkc.bupt.edu.cn:4213/jsjzcyl/resource/cai/0804.htm