以下是大神的理解:
ref:https://blog.csdn.net/weixin_45415929/article/details/128152542
有效位:表示一个块是否在Cache中。(eg:当电脑开机时,Cache一定是空的,因此有效位是0。)
修改位:表示这个块是否被处理机修改(采用回写法时)
加深理解
用几个情况举例(这部分根据自己的理解写的,不保证正确,欢迎博友指正):
因此,有效位的重点在有效,修改位的重点在修改。
Q:有效位的作用是什么?
A:用来指出Cache行的信息是否有效
Q:修改位的作用是什么?
A:用来指出Cache行的信息是否被处理机修改过
我觉得大神说的很有道理,我再说说我的理解。
因为刚开机的时候cache是空的,但这个空不是啥也不放,而是放了0号块,但N多cache行都是0号块,是不对的。因此需要一个标记有效位。当真正需要将0号块内存调入cache的时候,调过来的这个cache line的valid位是1,其它的还是0.
其实呢,cache就是在管理内存的地址,最好是不用额外的空间管理地址。它需要想尽一切办法,降低地址的长度。因此有tag位,啥的。