[发明专利]高速缓存替换策略的动态选择方法有效
申请号: | 200810057172.7 | 申请日: | 2008-01-30 |
公开(公告)号: | CN101236530A | 公开(公告)日: | 2008-08-06 |
发明(设计)人: | 郑纬民;舒继武;薛巍;汪旸 | 申请(专利权)人: | 清华大学 |
主分类号: | G06F12/12 | 分类号: | G06F12/12 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 100084北*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 高速缓存 替换 策略 动态 选择 方法 | ||
技术领域
高速缓存替换策略的动态选择方法属于存储系统领域,尤其涉及其中的高速缓存领域。
背景技术
高速缓存替换策略的动态选择方法是指:目前已有的高速缓存替换策略很多,不同的策略在不同的负载上有不同的效果;本方法根据负载的变化动态地选择最适合当前负载的高速缓存替换策略,并进行在线切换,从而提高存储系统高速缓存的命中率,最终提高存储系统的整体性能。传统的高速缓存替换策略有的专门针对某些特征的负载或环境,如智能写(WOW)策略针对写操作比较昂贵的RAID5等设备,而双局部性策略(DULO)在顺序写为主的负载上有较好的效果。对于未知的或变化的负载来说,很难从这些策略中进行选择。另外一些高速缓存替换策略可以根据负载的变化自适应地调整自身,如自适应低负载策略(ARC),多队列策略(MQ)等,这些策略可以取得普遍比较好的效果,但在特定负载上无法得到最好的效果。于是有人提出了从多个高速缓存替换策略中选择的思想,自适应多专家策略(ACME)提出了多专家系统用于高速缓存替换策略的选择,但它的CPU和内存开销都比较大,且缺少实现验证。
本发明提出了一种新的高速缓存替换策略的动态选择方法,通过异步策略选择将策略选择的过程和普通的高速缓存访问流程分离开来,从而降低了CPU和内存开销,通过在线策略切换将选择结果立即投入使用,以尽快提高性能。
发明内容
本发明的目的在于提供一种能适用于多种高速缓存系统的替换策略选择方法,能够从多个候选高速缓存替换策略中选择最适合当前负载的策略并进行在线切换,从而提高系统的性能。同时尽量减小选择过程带来的CPU和内存开销。本发明的重点在于高速缓存替换策略的模块化设计和在线切换,以及最优高速缓存替换策略的动态选择过程。
本发明的特征在于:所述方法是在高速缓存存储器系统内的一个数字集成电路上依次按以下步骤实现的:
步骤(1).初始化,设置以下模块:
高速缓存替换策略模块,高速缓存服务模块,访问记录采集器模块以及访问记录分析器模块,其中:
1)高速缓存替换策略模块,设立以下接口描述命中和替换时的逻辑:
a.初始化接口,为用户指定的或第一次运行时确定的或切换后的当前高速缓存策略模块分配内存,初始化数据结构;
b.释放用接口,释放即将被替换的高速缓存替换策略模块,包括释放数据结构和内存,供被替换的高速缓存替换策略模块卸载时用;
c.更新用接口,当高速缓存数据块被命中时,更新该块的优先级;
d.插入用接口,当插入新的高速缓存数据块时,设置该块的优先级;
e.替换用接口,取优先级最低的高速缓存数据块为被替换块时用;
所述高速缓存替换策略模块共有以下五种:最近被使用,双队列,多队列,自适应低负载和低最近相关度,各有一个固定的入口函数register,以便把自己的接口实现注册给所述高速缓存服务模块,
在所述各高速缓存替换策略模块中,处于运行状态的为当前高速缓存替换策略模块,其余则为候选高速缓存替换策略模块;
2)高速缓存服务模块,把包括磁盘在内的低速存储设备的数据缓存在内存中,当用户防问数据时直接进行内存访问,该高速缓存服务模块设有:高速缓存数据、高速缓存元数据以及哈希表,其中
a.高速缓存数据,是缓存好的磁盘数据,被分成多个固定大小的高速缓存块,块的大小为4KB,
b.高速缓存元数据,用于维护和管理所述高速缓存数据,其中包括:
1)所述每个高速缓存块的物理地址;
2)所述每个高速缓存块符号位用于标志该块是否已被写入磁盘;
3)一个最近被使用队列,用于记录所述高速缓存块的优先级顺序;
c.哈希表,以所述高速缓存块的地址作为关键字,对应的高速缓存元数据为数据,构成一个数据查找表,用于确定一个高速缓存数据块是否在所述高速缓存存储器中;
所述高速缓存服务模块依次按以下顺序实现高速缓存服务:
a.当用户访问数据时,该高速缓存服务模块首先根据其中数据给定的高速缓存块的地址查找哈希表;
b.若所述地址已在哈希表中,则高数缓存命中,通过更新用接口,调用所述当前高速缓存替换策略模块的命中功能,直接访问高速缓存,读出数据返回给用户;
c.若地址不存在于哈希表中,则为高速缓存缺失,判断高速缓存块是否已全部被占用:
若未全部被占用,则取出一个未占用的高速缓存块,通过所述插入用接口,调用所述当前高速缓存替换策略模块的插入功能,把数据调入所述未被占用的高速缓存块,
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于清华大学,未经清华大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200810057172.7/2.html,转载请声明来源钻瓜专利网。