环境:TCI6614, 32K L1P, 32K L1D, 512K L2. 1 GB DDR3, 部分DDR3 通过 MAR 关闭 Cache
有几个问题想请教一下:
1. MSMCSRAM 使用默认配置,地址0x0c000000 – 0x0c200000. 读写这段内存时,使用调试器观察这段内存,并没有L1D, L2 Cache的颜色标记。但是当我在两个DSP核之间通过0x0c0000xx 这段内存交换数据的时候,必须刷cache(我刷的是L2 cache)。不刷cache,数据是全部错的。所以想请教:MSMCSRAM这段内存默认是有L2 Cache的吗。如果是,调试器查看memory怎么会没有颜色区分。如果不是,为什么核间读写共享,刷L2 Cache,就数据正确了?
2. 通过MAR寄存器关闭Cache后的 DDR3 RAM 区域,是L1,L2全部关闭了吗?如果只关闭了L2 Cache是否还需要考虑刷L1 Cache
谢谢
Jane Lu:
Tim,
1 MSMCSRAM默认是会进L1D cache的. 刷L2cache会一并刷L1D。 多核共享MSMC必须刷cache。 至于颜色问题不是很清楚原因。
2 通过MAR是关闭数据进L1和L2 cache。