内存CACHE中invaild、clean、flush的作用

内存CACHE中invaild、clean、flush的作用

这里说的内存,主要是指主存。它的读写速度虽然比磁盘快很多。但是相对于CPU的速度依旧还是慢。为加快cpu访问内存的速度,CPU和主存储器之前都会增加一级乃至三级高速缓存,cpu访问cache时,如果能到找到匹配的地址,会直接从缓存中取数据或将写入数据,而无需访问主存。
在这里插入图片描述

缓存cache被平均分成了多个cache line, cache line是cache和cpu之间数据传输的最小单位 如果系统上的cache line大小是64 bytes,在cache缺失后,CPU即使读取一个byte,cache也会从主存中load 64字节填充整个cache line。
在这里插入图片描述

cache的3种操作:

1.clean

检查对应内存cache line 的dirty bit。如果dirty bit为1,将cache line的内容写回下一级存储,并将dirty bit置为0;
在这里插入图片描述

CPU先读了内存中某块地址中的内容, DMA/其他硬件改写了这段DDR后,要将这段cache置为invalid,即OSIDcaheInvalidata ,目的是检查内存cahe line 的valid 位是否为1,为1则置为0,这样后续CPU访问此内存时,就不会使用cache中的数据,保证cpu访问的是改写后的数据,而不是cache中的旧数据。

2.invalid

检查对应内存cache line 的valid bit.如果valid bit 为1,置为0;
在这里插入图片描述
CPU写入新内容到内存的某块地址中,如果cache存储器中修改的部分被写入的主存位置的cache行有效,那么代码有可能只会被写入到cache中,而没有写入主存,程序跳转执行该处指令代码时,可能会导致执行主存中的原代码,而不是修改后的代码,OSIDcaheClean的意思是把脏的(即被改写过,dirty bit 为1)cache line强制写回到主存,并把cache行中的dirty位清零。这样便可以重建cache与主存之间的一致性。

3.flush

每条cache line 先clean,之后再invalid(如果能确认数据访问的流向,可以只使用clean或者invalid,而不必使用flush)

  • 8
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Cleanflush是与缓存一致性相关的操作。 Clean操作是将缓存的脏数据(即被修改过的数据)强制写回到主存,并将缓存的dirty位清零。这样可以确保缓存的数据与主存的数据保持一致。在CPU改写了一段内存后,调用clean操作可以将缓存的脏数据写回主存,以保证后续访问该内存时使用的是最新的数据。\[2\] Flush操作是将缓存行的valid位设置为无效。当CPU写入新内容到内存的某个地址时,如果缓存被修改的部分被写入的主存位置的缓存行是有效的,那么代码可能只会被写入到缓存,而没有写入主存。这可能导致程序在执行该处指令代码时,执行的是主存的原代码,而不是修改后的代码。通过调用flush操作,可以强制将缓存行的valid位设置为无效,从而重建缓存与主存之间的一致性。\[2\] 总结起来,clean操作是将脏数据写回主存,flush操作是将缓存行的valid位设置为无效。这两个操作都是为了保持缓存与主存之间的一致性。 #### 引用[.reference_title] - *1* *3* [刷cache的3种操作:clean/invalid/flush](https://blog.csdn.net/weixin_37515325/article/details/118496921)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [内存CACHEinvaildcleanflush作用](https://blog.csdn.net/qq_44760112/article/details/126573416)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值