当前位置: 首页 > 专利查询>清华大学专利>正文

高速缓存替换策略的动态选择方法技术

技术编号:2826905 阅读:691 留言:0更新日期:2012-04-11 18:40
高速缓存替换策略的动态选择方法属于存储系统高速缓存领域,其特征在于:通过统一的接口将高速缓存替换策略模块化,可以在任意两个高速缓存替换策略之间进行在线切换,可以部署新的高速缓存替换策略;异步进行访问记录采集和分析,CPU和内存开销较小,对应用影响较小;多轮策略选择可以尽快得到比较准确的决策结果,既保证快速将结果投入使用,也尽量减少方法的开销。

【技术实现步骤摘要】
髙速缓存替换策略的动态选择方法
属于存储系统领域,尤其涉及其中的高速缓存领域。技术背景是指目前已有的高速缓存替换策略很多,不同的策 略在不同的负载上有不同的效果;本方法根据负载的变化动态地选择最适合当前负载的高速 缓存替换策略,并进行在线切换,从而提高存储系统高速缓存的命中率,最终提高存储系统 的整体性能。传统的高速缓存替换策略有的专门针对某些特征的负载或环境,如智能写(WOW)策略针对写操作比较S贵的RAID5等设备,而双局部性策略(DULO)在顺序写 为主的负载上有较好的效果。对T未知的或变化的负载来说,很难从这些策略中进行选择。 另外一些高速缓存替换策略可以根据负载的变化自适应地调整自身,如自适应低负载策略(ARC),多队列策略(MQ)等,这些策略可以取得普遍比较好的效果,但在特定负载上无 法得到最好的效果。于是有人提出了从多个高速缓存替换策略中选择的思想,自适应多专家 策略(ACME)提出了多专家系统用于高速缓存替换策略的选择,但它的CPU和内存开销都 比较大,且缺少实现验证。木专利技术提出了一种新的,通过异步策略选择将策略选 择的过程和普通的高速缓存访问流程分离开来,从而降低了 CPU和内存开销,通过在线策略 切换将选择结果立即投入使用,以尽快提高性能。
技术实现思路
本专利技术的目的在于提供一种能适用于多种高速缓存系统的替换策略选择方法,能够从多 个候选高速缓存替换策略中选择最适合当前负载的策略并进行在线切换,从而提高系统的性 能。同时尽量减小选择过程带来的CPU和内存开销。本专利技术的重点在于高速缓存替换策略的 模块化设计和在线切换,以及最优高速缓存替换策略的动态选择过程。6本专利技术的特征在于所述方法是在高速缓存存储器系统内的一个数字集成电路上依次按以 下步骤实现的步骤(1).初始化,设置以下模块-高速缓存替换策略模块,高速缓存服务模块,访问记录采集器模块以及访问记录分析器模 块,其中1) 高速缓存替换策略模块,设立以下接口描述命中和替换时的逻辑a. 初始化接口,为用户指定的或第一次运行时确定的或切换后的当前高速缓存策略 模块分配内存,初始化数据结构;b. 释放用接口,释放即将被替换的高速缓存替换策略模块,包括释放数据结构和内 存,供被替换的高速缓存替换策略模块卸载时用C.更新用接口,当高速缓存数据块被命中时,更新该块的优先级d. 插入用接口, ^插入新的高速缓存数据块时,设置该块的优先级;e. 替换用接口,取优先级最低的高速缓存数据块为被替换块时用; 所述高速缓存替换策略模块共有以下五种最近被使用,双队列,多队列,白适应低负载和低最近相关度,各有一个固定的入口函数register,以便把自己的接口头'现注册给所述高 速缓存服务模块,在所述各高速缓存替换策略模块中,处丁运行状态的为当前高速缓存替换策略模块,其 余则为候选高速缓存替换策略模块2) 高速缓存服务模块,把包括磁盘在内的低速存储设备的数据缓存在内存中,当用户访 问数据时直接进行内存访问,该高速缓存服务模块设有高速缓存数据、高速缓存元 数据以及哈希表,其中a. 高速缓存数据,是缓存好的磁盘数据,被分成多个固定大小的高速缓存块,块的 大小为4KB,b. 高速缓存元数据,用于维护和管理所述高速缓存数据,其中包括 1)所述每个高速缓存块的物理地址;2) 所述每个高速缓存块符号位用于标志该块是否已被写入磁盘;3) —个最近被使用队列,用于记录所述高速缓存块的优先级顺序;c.哈希表,以所述高速缓存块的地址作为关键字,对应的高速缓存元数据为数据, 构成一个数据査找表,用于确定一个高速缓存数据块是否在所述高速缓存存储器 中;所述高速缓存服务模块依次按以下顺序实现高速缓存服务a. 当用户访问数据时,该高速缓存服务模块首先根据其中数据给定的高速缓存块 的地址査找哈希表;b. 若所述地址己在哈希表中,则高数缓存命中,通过更新用接n,调用所述当前高速缓存替换策略模块的命中功能,直接访问高速缓存,渎出数据返回给用户;c. 若地址不存在于哈希表中,则为高速缓存缺失,判断高速缓存块是否己全部被 占用若未全部被占用,则取出一个未占用的卨速缓存块,通过所述插入用接口,调 用所述当前高速缓存替换策略模块的插入功能,把数据调入所述未被占用的高速 缓存块,若高速缓存块已用完,则通过替换用接口,调用所述当前高速缓存替换策略模 块的替换功能,找到一个在所述最近被使用列表中优先级最低的高速缓存块作被 替换块,把数据读入替换出的高速缓存块,再返回给用户;3) 访问记录采集器模块,记录从所述高速缓存服务模块输入的访问信息,其中包括磁 盘号、访问地址和大小,先存储在内存缓冲区中,3存满时,把这些访问信息写入到 磁盘文件中;4) 访问记录分析器模块,从所述访问记录采集器模块收到已采集到设定的n条访问记录 的信息后,把各访问记录依次导入所述各候选高速缓存替换策略模块,记录所述各候 选高速缓存替换策略模块的命中次数,取命中次数最多的候选高速缓存替换策略模块 为最优,把结果通知所述高速缓存服务模块;步骤(2).依次按以下步骤执行 步骤(2.1).初始化高速缓存服务模块 分配和初始化所有高速缓存数据块;分配和初始化所有的通用高速缓存数据块描述符,所述高速缓存数据块用于记录 该高速缓存数据块的地址和符号位,通用两字是指各高速缓存替换策略模块 都需用到的;初始化哈希表和最近被使用队列; 步骤(2.2).当前高速缓存替换策略模块的初始化歩骤(2.2.1).确定一个高速缓存替换策略模块为当前高速缓存替换策略模块 当由用户指定时,默认取上次运行结束时所用的模块; 当第一次运行时取所述最近被使用策略模块 步骤(2.2.2).高速缓存服务模块调用所述register函数注册该当前高速缓存替换策 略模块,再通过初始化接口初始化所述当前高速缓存替换策略模块; 步骤(2.3).再用户访问数据时,高速缓存服务模块按歩骤(l)所述方法插入用户访问数据为高速缓存块; 歩骤(2.4).访问记录采集器采集用户访问记录; 步骤(2.5).访问记录分析 当访问记录采集器采集到所述n条访问记录后,由访问记录分析器模块通过自己设定的 一个虚拟的高速缓存服务模块来记录当访问记录依次访f。j各候选高速缓存替换策略模块时的 记录命中次数,挑选命中次数最高的候选高速缓存替换策略模块为最优策略模块; 步骤(2.6).切换高速缓存替换策略模块, 首先高速缓存服务模块通过当前正处于运行状态的高速缓存替换策略模块的释放用接口 释放策略元数据,所述策略元数据是指各高速缓存替换策略模块所特有的元数据;然后,高速缓存服务模块通过访问记录命中次数最高的那个新的高速缓存替换策略模块 的初始化接口分配新的策略元数据空间;最后,高速缓存服务模块通过新的高速缓存替换策略模块的插入用接口把高速缓存中已 有的高速缓存数据块依次导入新的高速缓存替换策略模块以重建新的策略元数据。所述的访问记录采集次数n-l,OOO,OOO。在执行完步骤(2.6)后,若本轮为第一轮,则返回 歩骤(2.4)。若本轮策略选择得出的与上一轮相同,则结束,否则,转步骤(2.4)。在执行完步 骤P.6)后,执行高速缓存服务卸载的步骤。本专利技术的优点如下(1) 卨速缓存服务模块通过固定接口使本文档来自技高网...

【技术保护点】
高速缓存替换策略的动态选择方法,其特征在于:所述方法是在高速缓存存储器系统内的一个数字集成电路上依次按以下步骤实现的:步骤(1).初始化,设置以下模块:高速缓存替换策略模块,高速缓存服务模块,访问记录采集器模块以及访问记录分析器模块,其中:1)高速缓存替换策略模块,设立以下接口描述命中和替换时的逻辑:a.初始化接口,为用户指定的或第一次运行时确定的或切换后的当前高速缓存策略模块分配内存,初始化数据结构;b.释放用接口,释放即将被替换的高速缓存替换策略模块,包括释放数据结构和内存,供被替换的高速缓存替换策略模块卸载时用;c.更新用接口,当高速缓存数据块被命中时,更新该块的优先级;d.插入用接口,当插入新的高速缓存数据块时,设置该块的优先级;e.替换用接口,取优先级最低的高速缓存数据块为被替换块时用;所述高速缓存替换策略模块共有以下五种:最近被使用,双队列,多队列,自适应低负载和低最近相关度,各有一个固定的入口函数register,以便把自己的接口实现注册给所述高速缓存服务模块,在所述各高速缓存替换策略模块中,处于运行状态的为当前高速缓存替换策略模块,其余则为候选高速缓存替换策略模块;2)高速缓存服务模块,把包括磁盘在内的低速存储设备的数据缓存在内存中,当用户访问数据时直接进行内存访问,该高速缓存服务模块设有:高速缓存数据、高速缓存元数据以及哈希表,其中a.高速缓存数据,是缓存好的磁盘数据,被分成多个固定大小的高速缓存块,块的大小为4KB,b.高速缓存元数据,用于维护和管理所述高速缓存数据,其中包括:1)所述每个高速缓存块的物理地址;2)所述每个高速缓存块符号位用于标志该块是否已被写入磁盘;3)一个最近被使用队列,用于记录所述高速缓存块的优先级顺序;c.哈希表,以所述高速缓存块的地址作为关键字,对应的高速缓存元数据为数据,构成一个数据查找表,用于确定一个高速缓存数据块是否在所述高速缓存存储器中;所述高速缓存服务模块依次按以下顺序实现高速缓存服务:a.当用户访问数据时,该高速缓存服务模块首先根据其中数据给定的高速缓存块的地址查找哈希表;b.若所述地址已在哈希表中,则高数缓存命中,通过更新用接口,调用所述当前高速缓存替换策略模块的命中功能,直接访问高速缓存,读出数据返回给用户;c.若地址不存在于哈希表中,则为高速缓存缺失,判断高速缓存块是否已全部被占用:若未全部被占用,则取出一个未占用的高速缓存块,通过所述插入用接口,...

【技术特征摘要】
1.高速缓存替换策略的动态选择方法,其特征在于所述方法是在高速缓存存储器系统内的一个数字集成电路上依次按以下步骤实现的步骤(1).初始化,设置以下模块高速缓存替换策略模块,高速缓存服务模块,访问记录采集器模块以及访问记录分析器模块,其中1)高速缓存替换策略模块,设立以下接口描述命中和替换时的逻辑a.初始化接口,为用户指定的或第一次运行时确定的或切换后的当前高速缓存策略模块分配内存,初始化数据结构;b.释放用接口,释放即将被替换的高速缓存替换策略模块,包括释放数据结构和内存,供被替换的高速缓存替换策略模块卸载时用;c.更新用接口,当高速缓存数据块被命中时,更新该块的优先级;d.插入用接口,当插入新的高速缓存数据块时,设置该块的优先级;e.替换用接口,取优先级最低的高速缓存数据块为被替换块时用;所述高速缓存替换策略模块共有以下五种最近被使用,双队列,多队列,自适应低负载和低最近相关度,各有一个固定的入口函数register,以便把自己的接口实现注册给所述高速缓存服务模块,在所述各高速缓存替换策略模块中,处于运行状态的为当前高速缓存替换策略模块,其余则为候选高速缓存替换策略模块;2)高速缓存服务模块,把包括磁盘在内的低速存储设备的数据缓存在内存中,当用户访问数据时直接进行内存访问,该高速缓存服务模块设有高速缓存数据、高速缓存元数据以及哈希表,其中a.高速缓存数据,是缓存好的磁盘数据,被分成多个固定大小的高速缓存块,块的大小为4KB,b.高速缓存元数据,用于维护和管理所述高速缓存数据,其中包括1)所述每个高速缓存块的物理地址;2)所述每个高速缓存块符号位用于标志该块是否已被写入磁盘;3)一个最近被使用队列,用于记录所述高速缓存块的优先级顺序;c.哈希表,以所述高速缓存块的地址作为关键字,对应的高速缓存元数据为数据,构成一个数据查找表,用于确定一个高速缓存数据块是否在所述高速缓存存储器中;所述高速缓存服务模块依次按以下顺序实现高速缓存服务a.当用户访问数据时,该高速缓存服务模块首先根据其中数据给定的高速缓存块的地址查找哈希表;b.若所述地址已在哈希表中,则高数缓存命中,通过更新用接口,调用所述当前高速缓存替换策略模块的命中功能,直接访问高速缓存,读出数据返回给用户;c.若地址不存在于哈希表中,则为高速缓存缺失,判断高速缓存块是否已全部被占用若未全部被占用,则取出一个未占用的高速缓存块,通过所述插入用接口,调用所述当前高速缓存替换策略模块的插入功能,把数据调入所述未被占用的高速缓存块,若高速缓存块已用完,则通过替换用接口,调用所述当前高速缓存替换策略模块的替换功能,找到一个在所述最近被使用列表中优先级最低的高速缓存块作被替换块,把数据读入替换出的高速缓存块,再返回给用户;3)访问记录采集器模块,记录从所述高速缓存服务模块输入的访问信息,其中包括磁盘号、访问地址和大小,...

【专利技术属性】
技术研发人员:郑纬民舒继武薛巍汪旸
申请(专利权)人:清华大学
类型:发明
国别省市:11[中国|北京]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1