TMS320C6678存储器访问性能 (下)

时间:2015-06-27来源:网络

  1.3.3 地址偏移的考虑

  地址偏移会显著地影响EDMA 的吞吐量。

  图 9说明了地址偏移对EDMA 吞吐量的影响,它是在1GHz C6678 EVM(64-bit 1333MTS DDR)上从 SL2 到 DDR 传输1024 行(BCNT= 1024) 2D 数据时测得的。

  

 

  图9 偏移量对EDMA 带宽的影响

  从测试结果可以看出,线性传输 (Index= ACNT)能充分利用带宽;其它Index 设置会降低EDMA性能。最坏的情况是地址偏移为奇数时。如果地址偏移大于8 并且是2 的幂次方,性能的下降则比较小。

  请注意,Index= ACNT,并且ACNT 是2 的幂次方时,2D 传输被优化为1D 传输,因此性能比其它情况好很多。

  除非特殊说明,本文列出的所有性能数据都是在Index= ACNT 的情况下测得的。

  1.3.4 地址对齐

  地址对齐对EDMA 效率稍有影响。EDMA3 缺省突发数据块大小是64 bytes 或128 bytes,如果传输跨越64 或128 bytes 边界,EDMA3 TC 会把大小为ACNT 数据块分割成64 或128 bytes 的突发数据块。这对1~256 bytes 的数据传输影响会比较明显,而对更大块数据的传输的影响则不明显。

  除非特殊说明,本文所有性能数据都是在地址对齐的情况下测得的。

  2. 多个主模块共享存储器的性能

  由于C6678 有8 个核和很多DMA 主模块,它们可能会同时访问存储器。本节讨论多个主模块共享存储器的性能。

  2.1 多个主模块共享SL2 的性能

  图10 列出了数据在SL2 中的组织结构。

  

 

  图10 SL2 bank 组织结构

  所有主模块都可以通过MSMC (Multicore Shared Memory Controller)独立地访问4 个SL2 bank中的任一个。多个主模块可以并行地访问不同的bank;如果多个主模块要同时访问相同的bank,那就需要根据优先级仲裁。

  表8 列出了在1GHz C6678 上测得的多个主模块同时访问SL2 的性能数据。每个主模块反复访问自己在SL2 中的数据buffer,在相同的时间内(大概2 秒),每个主模块传输的数据量被统计;而每个主模块获得的带宽则由数据量除以时间计算出来。

  在这个测试中,每个核的L1D cache 大小是32KB,没有使用L2 cached,prefetch buffer 被使能。

  在下面的表中,每列是一个测试场景的结果,不同测试场景的主要区别是同时访问存储器的主模块的个数,格子中的数据代表相应的主模块在这个测试场景下获得的带宽,一列中的空格代表对应的主模块在这个测试场景下未被使用。最后一行中的数据是在这个测试场景下所有主模块获得的带宽的总和。

  

 

  表8 多个DSP 核共享SL2 的性能

  以上测试结果证明SL2 不会成为多个DSP 核同时访问的瓶颈。SL2 有足够的带宽 (500M x 32 x 4 = 64000MB/s)来支持所有DSP 核的同时访问。每个DSP 核的吞吐量受限于它自己。

  由于SL2 的带宽足够支持所有核同时访问,所以核的优先级在这种情况下基本不起作用。

  

 

  

 

  表9 多个EDMA 共享SL2 的性能

1 2 3 4

关键词: TMS320C6678 存储器

加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW

或用微信扫描左侧二维码

相关文章

查看电脑版