首页 > 试题广场 >

CPU响应DMA请求是在( )。

[单选题]
CPU响应DMA请求是在(      )。
  • 一个时钟周期结束时
  • 一个总线周期结束时
  • 一条指令结束时
  • 一段程序结束时
DMA请求的是总线的使用权,如果这个题目有一个选项是“机器周期”,也可以考虑选机器周期,在没有机器周期可选的情况下,毋庸置疑是只能选总线周期的。

个人感觉这个题目是很棒的,因为DMA响应的时刻是“机器周期”还是“总线周期”是有争议的,有的教材上写的是“机器周期”,至少在考研的范围内,即使有“总线周期”这个选项,标准答案还是“机器周期”。

1.理解两个周期
机器周期:完成一个基本操作的周期,比如说取址,间址
总线周期:使用总线的周期,有的机器周期包含总线周期,比如说"取址周期",要利用总线来传送地址,但是有的机器周期与总线周期无关,比如加法指令的执行周期,只要在运算器中运算,不占用总线,此时这个机器周期执行的时候,总线是空闲的,DMA当然可以使用总线。

2.理解"总线周期后响应"
从传送方式的角度来理解,DMA的传送方式是“周期窃取”,书中有提到,采用周期窃取方式,cpu不使用总线的时候,DMA控制器可以直接使用,并不需要等到cpu机器周期结束。

3.理解“机器周期后响应”:
从中断的角度来理解,在预处理时刻CPU响应DMA请求中断,这种中断的优先级比外中断高,要求CPU尽快响应,但是cpu总得把手里面最基本的事情做完才能响应这个很着急的特殊中断,也就是机器周期后响应DMA

4.总结:
考研范围内:
周期窃取:存取周期
DMA中断响应时刻:机器周期结束时刻
外中断响应时刻:一条指令执行结束时刻
DMA中断优先级>外中断优先级
没有机器周期就选总线周期

以上是个人理解,不保证正确,欢迎讨论~
编辑于 2020-09-17 11:01:35 回复(6)

DMA控制器在需要的时候代替CPU作为总线主设备,在不受CPU干预的情况下, 控制I/O设备与系统主存之间的直接数据传输。DMA操作占用的资源是系统总线,而CPU并非在整个指令执行期间即指令周期内都会使用总线,故DMA请求的检测点设置在每个机器周期也即总线周期结束时执行,这样使得总线利用率最高。

发表于 2019-10-22 19:06:09 回复(1)