cache的替换策略与写操作策略
来源:互联网 发布:pro软件下载 编辑:程序博客网 时间:2024/06/08 15:30
参考资料:《计算机组成原理》(第五版) 白中英等著
替换策略:
一、最不经常使用算法(Least Frequently Used,LFU):
LFU算法认为:应该将一段时间内被访问次数最少的那行数据替换出。
实现方法:每行设置一个计数器。新行建立后从0开始计数,每被访问一次,被访问行的计数器增1。当需要替换时,对这些特定行的计数值进行比较,将计数值最小的行换出,同时将这些特定行的计数器清零。
该算法不能严格反映近期访问情况。
二、近期最少使用算法(Least Recently Used,LRU):
LFU算法将近期内长久未被访问过的行换出。
实现方法:每行设置一个计数器,但它们是cache每命中一次,命中行计数器清零,其他各行计数器增1。当需要替换时,将计数值最大的行换出。
该算法保护了刚拷贝到cache中的新数据行,较为符合cache的工作原理,有效地提高了命中率。
三、随机替换:
不需要算法,从特定的行位置中随机地选取一行换出即可。
该策略在硬件上容易实现,速度较前两种策略快。但是会在一定程度上降低cache的效率。这些不足会随着cache容量增大而减小。
写操作策略:
一、写回法:
要求:当CPU写cache命中时,只修改cache中的内容,不立即写入主存,只有当此行被换出时才写回主存。当CPU写未命中时,为了包含欲写字的主存块在cache中分配一行,将此块拷贝到cache后再进行修改。主存的写修改操作统一地留到换出时再进行。
实现:每个cache行配置修改位,以反映CPU是否对该行修改过。该行被换出时,根据修改位的内容决定改行内容是写回主存还是简单弃去。
特点:写cache与写主存异步进行,可以减少访存次数,但是存在cache与主存不一致性的隐患。同时,还要设置修改位,相应的逻辑较为复杂。
二、全写法:
要求:当写cache命中时,cache与主存同步发生修改。当写cache未命中时,直接向主存进行写入,但是修改过的主存块是否拷贝到cache,有WTWA法(将修改后的主存块立即拷贝到cache),WTNWA法(不会将修改后的主存块立即拷贝到cache)。
特点:实现写cache与写主存同步,有效地保证了cache与主存内容的一致性。无需设置修改位,逻辑较为容易。但由于写cache未命中时,即cache对CPU向主存的写操作无高速缓冲功能,降低了cache的功效。
三、写一次法:
基于上述两种写策略的综合,第一次写命中时,采用全写法;后续采用写回法。
阅读全文
0 0
- cache的替换策略与写操作策略
- Cache 写操作策略
- Cache的替换策略
- Cache的替换策略
- Cache 替换策略
- (转)Cache的替换策略
- cache 写回策略
- Cache写策略 — write-through与 write-back
- Cache写策略——write-through与write-back
- cache的策略
- 缓存的替换策略
- nutch的cache策略及cache策略研究
- linux的page cache策略
- linux的page cache策略
- 图片的三级缓存cache策略
- 搜索引擎CACHE策略研究
- 搜索引擎CACHE策略研究
- 搜索引擎CACHE策略研究
- 插入排序 (图解+代码)
- 如何配置Tomcat不用输入项目直接访问你的web项目
- window.location.replace和window.location.href区别
- 控制ViewPager的滑动功能的开关
- Android Yuv图像转jpg方法
- cache的替换策略与写操作策略
- 欢迎使用CSDN-markdown编辑器
- 【学习笔记】Python中的正则表达式re
- Okhttp去除请求头user-agent
- Mysql之我见四(索引优化)
- 布局xml转bitmap
- 2017-12-05 DBA日记,mysql的datetime字段索引不能识别sysdate
- CentOS 7以RPM方式安装MySQL5.7
- Delphi中读写注册表