借助BCM2835 VideoCore,我们为GPU提供了二级缓存,ARM内核也可以使用该二级缓存。高速缓存的操作模式通过以下方式从内存地址的前两位开始选择(在BCM2835的情况下,这是总线地址):
0x0 L1 and L2 cache allocating and coherent
0x4 L1 non-allocating, but coherent. L2 allocating and coherent
0x8 L1 non-allocating, but coherent. L2 non-allocating, but coherent
0xc SDRAM alias. Cache is bypassed. Not L1 or L2 allocating or coherent
我难以理解别名4-L2缓存一致性选项。在这种情况下,L2缓存相对于什么是一致的? SDRAM?如果是这样,这是否意味着当SDRAM中的该内存位置成为更改的对象时,L2高速缓存中的每个条目都会失效吗?
在这种情况下,让我们看一下别名8,我们以一种非分配但连贯的方式使用L2缓存。这意味着什么?如果我们不首先分配L2缓存条目,如何在SDRAM和L2缓存之间保持一致性?