您好!
我现在在用TMS320C6670,在用到cache的时候有一些疑惑,希望您能给予解答。
1.L1 cache的数据位宽为64位,而6670里有32个16位乘法单元,那么当调用乘法单元的时候一次最多只能够给4个乘法单元提供数据,那么怎么才能把32个同时调用起来呢?
2.我看C6670手册里提到,在1.2GHz的情况下,定点可以达到38.4GMacs/Core,浮点可以达到19.2GFlops/Core的性能,可是在实现的时候发现根本无法达到这个数值,而且按照目前cache的位宽也没法达到这个数值啊,这个数值是怎么来的,怎么做才能把性能提高到实现标称值呢?
希望能尽快得到您的回答,谢谢!!
Andy Yin1:
需要将load store及运算单元拍流水并行起来,使得所有的运算单元能够并行起来,但是由于受限于load/Store单元的总线位宽,一般很难达到理论速率。
Allen35065:
一些特定的指令需要全部使用32个乘法单元,如CCMATMPY,一次做一个2×2矩阵和2×1复数矩阵的计算,要求使用16个16位乘法单元,AB两侧每cycle都可以做一次这样的计算,因此是32个乘法单元。