RP2040 DMA设计用于以下系统:

  • 大型外围数据fifo的面积和电力成本令人望而却步
  • 单个外围设备的带宽需求可能很高,例如>在短时间内的50%总线注入率
  • 总线延迟很低,但多个主机可能会竞争总线访问

此外,DMA的传输fifo和双主结构允许对同一外设同时进行多个访问,以提高总吞吐量。因此,DREQ机制的选择至关重要:

  • 如果在TDF中备份了多个写操作,传统的“打开水龙头”方法可能会导致溢出。一些系统通过过度配置外围fifo和将DREQ阈值设置到完全水平以下来解决这个问题,但这浪费了宝贵的面积和功率
  • Arm风格的单次和突发握手不允许在当前请求被服务时注册额外的请求。当fifo非常浅时,这限制了性能。

RP2040 DMA使用基于信用的DREQ机制。对于每个外设,DMA尝试保持外设容量所能容纳的传输量。这使得在没有fabric延迟或争用的情况下,通过8深外围FIFO实现全总线吞吐量(每个时钟1个字),而不存在溢出或下流的可能性。