打印

高速缓存问题

[复制链接]
1048|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
hsbjb|  楼主 | 2012-11-25 14:23 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
txcy| | 2012-11-25 14:49 | 只看该作者
可能当数据还在高速缓存中时,主存储器中的这个数据被修改了

使用特权

评论回复
板凳
pkat| | 2012-11-25 14:51 | 只看该作者
当CPU写主存储器中的一个数据时,会先在高速缓存中找这个数据所在的地址是否映射在高速缓存中,如果在,就改到高速缓存中,如果不在,就在主存储器中找这个数据所在的块,复制到高速缓冲中,然后改变该值,值改变后,这个数据地址块就置为dirty,表示这个地址的数据已经被修改过了,高速缓冲中的数据与主存储器中的数据不一致了。

当CPU这样就绪访问其他不再高速缓存中的数据时,也这样操作,这样访问着访问着高速缓冲就满了,然后CPU再访问这样的数据时,就把高速缓冲中很久都不用的数据块删掉了。但如果CPU发现这个待删掉的数据块已经dirty了,就得把这个数据块写回到主存储器中。

CPU高速缓冲好像还有超时机制,超过一定时间会把dirty的数据块写回主存储区

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

193

主题

2354

帖子

0

粉丝