外部DMA请求/应答协议

外部DMA请求/应答协议

 

  这里主要讲述4种类型的DMA请求/应答协议。

  (1)握手模式

  在握手模式下,一个单独的DMA请求信号对应一个DMA应答信号。而且在该模式下,一次DMA操作意味着在DMA操作中的一对或不可分的读和写周期。在DMA操作中,总线控制器不能把`总线的使用权分配给其他总线控制者。如果想在DMA操作中响应高优先级的总线控制,则必须用单步模式,单步模式是把一个DMA操作看成是分离的读和写操作周期。

  由nXDREQ产生的DMA请求引起一个字节、一个半字或者一个字被传送出去。在握手模式下,每一个数据的传送都需要DMA请求。

  (2)单步模式

  单步模式意味着有两个DMA应答周期,分别为DMA读和写周期。单步模式通常用于测试和调试,因为在读与写之间总线控制权可能会交给其他总线控制者。在nXDACK的非有效区,比如在读与写周期之间,总线控制器将再次评估总线优先级,以决定新的总线控制权。因此,单步模式下的数据传输将慢于握手模式下的数据传输。

  当DMA请求信号变低时,如果没有高优先级的总线请求,则总线通过降低DMA应答信号来表明对DMA操作的总线分配。在DMA应答信号的第一个低电平段,将有一个DMA的读周期。在DMA读周期后,DMA应答信号将有一个上升沿来表示DMA读周期的结束;同时,如果在DMA应答信号上升时DMA请求信号一直为低电平,则表明下面将是DMA写周期。但是如果在DMA应答信号上升时DMA请求信号也为高电平,则DMA写周期将会延迟到新的DMA请求信号被激活。

  (3)完整服务模式

  在完整服务模式下,一次DMA请求将产生连续的DMA传输,直到规定的DMA传输数据完成。

  在完整服务模式下,如果DMA传送操作的数量太大,DMA操作长时间占用总线,将引起一些问题,因为其他总线服务将无法进行。为了解决此问题,在完整服务模式下,每传送完一个单元,DMA将释放总线控制权。当DMA释放总线控制权后,其他总线就可以拥有总线控制权;如果其他总线拥有了总线控制权,则在完成该服务后将继续执行剩余的DMA操作,而且不需要再次激活nXDREQ。

  (4)需求模式

  需求模式表示,只要DMA请求信号有效,DMA传送周期将连续进行。不像完整服务模式,需求模式不允许将总线控制权交给高优先级的总线控制者,即使它在DMA操作中向总线控制器发出请求。也就是说,在需求模式下,DMA垄断总线控制权。

 

  来自于:http://blog.chinaunix.net/u2/72666/showart_1799697.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章