This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

C674x中cache的加载问题



Hi,everybody~我在C674x中进行sinx+cosy运算,sin和cos都用查表来做,没通过数学库中的函数直接进行计算,因此我针对这两个函数分别做了两个表,各占100Kb(因为精确到小数点后的位数有点多),而我的核内L2级cache大小为256Kb,因此我想请教下该级cache在进行sinx+cosy运算时是如何加载两个表项的,以下是我解决这个问题中所碰到的具体问题:

1、每当cache在进行sinx+cosy运算时,把这两个表的所有表项数据地址全部加载到cache中吗?不知道会不会分次,比如先加载sin的表,加载完了再清除加载cos的表。

2、这两个表项都是用数组存储的,cache在加载数组时会不会将整个数组的首地址到尾地址一起加载(没找到资料证明会加载整个数组还是加载其一部分)。

  • 对整个数组整体操作,CPU要操作哪个数组,就把整个数组cache进来。

  •  你好,那sin+cos的两个表是不是可以同时加载进去呢,虽然两个表相加接近200K,不到cache的最大容量256K,但我在找资料时显示L2级cache是存放指令和数据的,除表外的数据和指令应该不占多少空间吧

  • L2 RAM不够放其他数据的话,可以考虑放到片外DDR。

  • Liming Ao 说:

    1、每当cache在进行sinx+cosy运算时,把这两个表的所有表项数据地址全部加载到cache中吗?不知道会不会分次,比如先加载sin的表,加载完了再清除加载cos的表。

    2、这两个表项都是用数组存储的,cache在加载数组时会不会将整个数组的首地址到尾地址一起加载(没找到资料证明会加载整个数组还是加载其一部分)。

    建议看一下下面的文档,Cache的机制是按line size Cache的。

    http://www.ti.com/lit/pdf/sprug82