单选题
(1)简述DMA的工作原理。
(2)在引入DMA后对Cache的设计产生了什么影响?相应问题应如何解决?
(3)假定磁盘通过使用DMA每次向内存传输8×103B,磁盘的存取速度为4×106B/s,假定每次初始化设置DMA,需要花费CPU 1000个时钟周期,CPU处理中断需要500个时钟周期。CPU的时钟频率为500×106Hz。问CPU的使用效率是多少?
【正确答案】(1)DMA直接存储器存取方式,是指在存储器和I/O设备之间直接传送数据,是一种完全由硬件完成I/O操作的方式。DMA的工作原理为:当外设向DMA控制器发出DMA请求后,DMA控制器向CPU发出总线请求信号。在CPU执行完现行的总线周期后,向DMA控制器发出响应请求的回答信号.随后CPU将控制总线,地址总线及数据总线让出,由DMA控制器进行控制。DMA控制器向外部设备发出DMA请求回答信号,进行DMA传送,数据传送完毕后CPU重新控制总线。
(2)在有DMA控制器的系统中,会产生主存中的数据被某个总线部件更新过,而CACHE中的内容未更新,造成数据过时。解决方法:可以使用具有总线监听能力的硬件。将CACHE、DMA设备和其它所有的总线主控设备都连到一个物理总线上,以使CACHE可以对该总线上的总线交互过程进行监听。当CACHE中的一项被一个异步操作修改时,该CACHE项就会被标为无效。如果处理器对一个已经被标为无效的CACHE项进行访问时,CACHE就会从RAM中重新载入有效数据。
(3)磁盘的存取速度为4×106B/s,磁盘通过使用DMA每次向内存传输8×103B,1秒钟内需产生的DMA次数:
[*]
CPU用于DMA处理的总开销:(1000+500)×500=750 OOO=0.75M个时钟周期
CPU的时钟频率为500×106Hz,CPU的使用效率为:0.75M/500M=0.15%
【答案解析】