hi, experts:
咨询一个flush L2 DCache by MVA问题:
对于Cortex-A7,它的Cache Line = 64 bytes.
那么,通过by MVA方式clean cache,它的最小单位就是Cache Line吗?
例如:
一个Cache Line有64 bytes,而只有1个byte被更改过,变为dirty了。
那么flush的时候,是整条cache line都被flush出去吗?
best wishes,
hi,
1. CA7的每个cacheline都会有标示状态的位。CA7的cache支持多核间一致性协议,至少需要3个bit用于标示 MOESI 状态,MOESI协议可以参考AMBA spec.
2. 只能确定set,无法知道对应的way
3. 由于A7的 I/D cache 容量都是可以配置的,所以这里只以32KB Dcache 为例,其他情况你可以自己算出来:
D cache为4-way,
32K = 4 * Nsets * 64 => Nsets = 128
所以从高到低位依次为:
19bit(tag) | 7bit(set) | 6bit(offset)
hi, yongfeng:
Got it!
Thanks a lot!