处理器运行速度比存储器的访问速度快很多,以Hexagon DSP为例(下面数据来源于参考资料):
DDR memory access: ~250 ns
L2 read latency: 6 thread cycles
通常来说,访存优化的收益比计算优化的收益要高。对于DSP而言,访存优化的核心问题,就是如何高效利用以下概念:
- Intermediate Buffer
- L1 Cache
- L2 Cache
- VTCM
Intermediate Buffer是一块临时内存,用于存储少量的数据,在VTCM不够用时,可以充当VTCM。
L2 Cache既可以被Scalar Unit,也可以被Vetcor Unit访问。
L1 Cache只能被Scalar Unit访问。
VTCM和L2 Cache类似,但是相比L2 Cache有以下优点:数据可以常驻,不会被刷掉;访问速度更快;功耗更低等
在实际应用中,我们应该尽可能多地利用VTCM的特性,同时满足以下两个条件,使用VTCM可以大大提升访存性能:
- 拷贝到VTCM上的数据长度不超过VTCM的尺寸限制(V65和V66架构中,VTCM均为256KB)
- 使用vmem或vmemu指令访问VTCM上的数据