2.2 定义cache state
我们照着例子讲吧,搞一个简单点的例子:
假设现在所有的cache都没有数据
–cpu0从DDRC读了一个数据到L00,这个数据地址是0x0010,数据是0x1111。那么L00有这个数据了!
2.2.1 先定义一下cache state model,在一个cache,有一个数据,这个数据给定义了这几种属性:
1)valid跟invalid:这个好理解呀,你读回来一个数据,你这个cache这个数据就是valid的,如果这个数据在其他cache修改了,你这就是个旧数据,那就是invalid。
比如说cpu1也读到这个数据了,也就是L01也有这个数据。然后cpu0改写了这个地址的数据,那你L01里面的就是旧数据,就是invalid的了。
2)Unique跟Shared:Unique的意思是这个地址的数据,只在我这个cache里面有,其他的cache都没有这个数据。Shared的意思,请注意!!!,Shared表示可能有其他cache里面有这个