Hi,everybody~我在C674x中进行sinx+cosy运算,sin和cos都用查表来做,没通过数学库中的函数直接进行计算,因此我针对这两个函数分别做了两个表,各占100Kb(因为精确到小数点后的位数有点多),而我的核内L2级cache大小为256Kb,因此我想请教下该级cache在进行sinx+cosy运算时是如何加载两个表项的,以下是我解决这个问题中所碰到的具体问题:
1、每当cache在进行sinx+cosy运算时,把这两个表的所有表项数据地址全部加载到cache中吗?不知道会不会分次,比如先加载sin的表,加载完了再清除加载cos的表。
2、这两个表项都是用数组存储的,cache在加载数组时会不会将整个数组的首地址到尾地址一起加载(没找到资料证明会加载整个数组还是加载其一部分)。
user5117350:
回复 Shine:
你好,那sin+cos的两个表是不是可以同时加载进去呢,虽然两个表相加接近200K,不到cache的最大容量256K,但我在找资料时显示L2级cache是存放指令和数据的,除表外的数据和指令应该不占多少空间吧
Shine:
回复 user5117350:
L2 RAM不够放其他数据的话,可以考虑放到片外DDR。
Tony Tang:
Liming Ao
1、每当cache在进行sinx+cosy运算时,把这两个表的所有表项数据地址全部加载到cache中吗?不知道会不会分次,比如先加载sin的表,加载完了再清除加载cos的表。
2、这两个表项都是用数组存储的,cache在加载数组时会不会将整个数组的首地址到尾地址一起加载(没找到资料证明会加载整个数组还是加载其一部分)。
建议看一下下面的文档,Cache的机制是按line size Cache的。
http://www.ti.com/lit/pdf/sprug82