CN102314397A - 缓存数据块的处理方法 - Google Patents
缓存数据块的处理方法 Download PDFInfo
- Publication number
- CN102314397A CN102314397A CN201110287376A CN201110287376A CN102314397A CN 102314397 A CN102314397 A CN 102314397A CN 201110287376 A CN201110287376 A CN 201110287376A CN 201110287376 A CN201110287376 A CN 201110287376A CN 102314397 A CN102314397 A CN 102314397A
- Authority
- CN
- China
- Prior art keywords
- data block
- caching data
- interval
- record
- double
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
Abstract
本发明公开了一种缓存数据块的处理方法,包括如下步骤:新增缓存数据块信息位:增加记录缓存数据块连续两次被访问的间隔的缓存数据块信息位,用2个比特位来表示连续两次被访问的间隔;新增一个历史访问间隔记录表,存储缓存数据块连续两次被访问的间隔,每条记录用5个比特位来存储数据块的连续两次被访问间隔;查找历史访问间隔记录表,根据缓存数据块连续两次被访问的间隔,过滤掉那些连续访问间隔较大的的缓存数据块。本发明将访问较频繁的缓存数据块保存在缓存中,而将访问频率较低的缓存数据块移到主存,过滤掉一些访问频率较低的缓存数据块,可以减少缓存的替换和读写操,从而提高缓存访问命中率,提高系统性能。
Description
技术领域
本发明属于存储技术领域,涉及大容量缓存及多核架构下缓存的缓存数据块的处理方法。
背景技术
目前大多数计算机系统的性能在很大程度上是受内存平均访问延迟来决定的,提高缓存的命中率就能减少内存的访问次数,也就能提高系统性能。当前的处理器都使用缓存机制,缓存的作用主要是缓解调整处理器与低速主存之间速度及性能上的不匹配。缓存实行分级机制,目前的处理器大多采用三级缓存(L1,L2,L3),其最后一级缓存(L3)靠近主存。随着最后一级缓存的容量不断增加,相应的管理策略也要不断改进,以提高缓存的利用率,减少主存的访问次数。
缓存的管理策略包括插入算法和替换算法。插入算法是从主存中读入到缓存的一个缓存数据块应该放置到缓存的什么位置上。而替换算法是由于缓存空间容量有限,当有新的缓存块要进来时,需要将缓存中的一个缓存数据块从缓存移到主存中,以便腾出空间给新的缓存数据块。目前大多数处理器使用的缓存管理策略是最近最少使用算法(LRU)。LRU是将一组缓存看成是一个链表,当有新的缓存数据块要插入的缓存中时,将表尾的缓存数据块移到主存中,表中其他缓存数据块相应地往后移一个位置,将新的缓存数据块放在表头。在缓存访问过程中,如果一个缓存数据块被命中了,那么LRU算法就会将这个缓存数据块移到表头位置。LRU算法对于管理小容量的缓存是很有效的,但是对于管理容量较大的缓存,却显得有些低效,目前的最后一级缓存容量比较大,如何管理这个大容量缓存,是很多科研工作者都在思考的一个问题。故,实有必要进行研究,提供一种方法以解决目前存在的问题。
发明内容
本发明实施例的目的在于提供一种缓存数据块的处理方法,以提高缓存访问命中率,提高系统性能。
本发明实施例是这样实现的,一种缓存数据块的处理方法,包括如下步骤:
新增缓存数据块信息位,增加记录缓存数据块连续两次被访问的间隔的缓存数据块信息位,用2个比特位来表示连续两次被访问的间隔;
新增一个历史访问间隔记录表,存储缓存数据块连续两次被访问的间隔,每条记录用5个比特位来存储数据块的连续两次被访问间隔;
查找历史访问间隔记录表,根据缓存数据块连续两次被访问的间隔,过滤掉那些连续访问间隔较大的的缓存数据块。
进一步地,缓存数据块信息位中不需要LRU位,其用2个比特位来表示缓存数据块连续两次被访问的间隔,记为RRI。
进一步地,当把一个缓存数据块从主存读入到缓存中时,需要对缓存数据块的RRI值初始化。
进一步地,根据缓存数据块的地址查找间隔表,读取表中记录的数值,并返回该数的以2为基数的对数值,记为PRRI;如果PRRI值小于3,则就用PRRI值来初始化这个缓存数据块的RRI值。
进一步地,间隔记录表是通过缓存数据块的RRI信息位来表示,地址空间上连续的缓存数据块,这个记录表只需要记录一部分缓存数据块的连续两次访问间隔,从而减少额外的空间需求。
进一步地,间隔记录表的大小跟缓存的配置有关。
进一步地,对记录表的索引查找是通过缓存数据块的地址来完成的,每一个缓存数据块地址都对应到一个记录项
本发明提出一种缓存数据块过滤方法来提高最后一级缓存的使用效率和系统性能。其主要是针对大容量最后一级缓存,通过改进缓存的管理策略,将访问较频繁的缓存数据块保存在缓存中,而将访问频率较低的缓存数据块移到主存,过滤掉那些连续访问间隔较大的的缓存数据块,可以减少缓存的替换和读写操,从而提高缓存访问命中率,提高系统性能。
附图说明
图1是本发明的流程图示。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
目前缓存容量都比较大,而大部分程序的访问缓存规律则是有许多缓存数据块的访问次数很少,一般都少于3次,它们的访问频率很低。将这些访问频率较低的缓存数据块从缓存中过滤出去,以腾出更多的缓存空间给访问较频繁的缓存数据块,从而提高缓存利用率。这是目前大多数缓存管理策略的目标。
请参照图1所示,本发明缓存数据块的处理方法根据缓存数据块连续被访问两次的间隔,过滤掉那些访问频率较低的缓存数据块,包括如下步骤:
新增缓存数据块信息位,增加记录缓存数据块连续两次被访问的间隔的缓存数据块信息位,用2个比特位来表示连续两次被访问的间隔;
新增一个历史访问间隔记录表,存储缓存数据块连续两次被访问的间隔,每条记录用5个比特位来存储数据块的连续两次被访问间隔;
查找历史访问间隔记录表,根据缓存数据块连续两次被访问的间隔,过滤掉那些连续访问间隔较大的的缓存数据块。
每一个缓存数据块都有一些信息位,主要包括标记位,有效位,LRU位,读写位。本发明创作在原有的基础上用2个比特位来表示缓存数据块连续两次被访问的间隔,简称为RRI,但是不需要LRU位。当前的缓存数据块都有信息位,根据不同的缓存替换算法,需要不同的信息位。例如,一个16路组相联的缓存,采用最近最少使用替换算法(LRU),那么每一个缓存数据块就需要4个比特位来存储LRU信息。本发明创作需只要2个比特位来记录缓存数据块下次被访问的间隔,比LRU信息位少2个比特位。缓存数据块在被访问过程中,RRI值需要更新,它的取值范围是0~3。
对缓存数据块的RRI值有初始化和更新操作,当把一个缓存数据块从主存读入到缓存中时,需要对它的RRI值初始化。根据缓存数据块的地址查找间隔表,读取表中记录的数值,并返回该数的以2为基数的对数值,简称为PRRI。如果PRRI小于3,那么就用PRRI来初始化这个缓存数据块的RRI值。
程序运行过程中,如果需要访问的缓存数据块在缓存中,也就是命中了,那么,它的RRI值就设置成0。如果某一路缓存发生缓存数据块替换,那么,先查找RRI值最大的缓存数据块,简称为victim。将victim替换出去,并把新的经过初始化的缓存数据块读入进来。其他缓存数据块的RRI值都加1。
新增一个缓存数据块连续两次被访问间隔记录表,这个表存储的是缓存数据块连续两次访问的间隔,简称间隔表,这个间隔是通过缓存数据块的RRI信息位来表示的。本发明的基本理论是,连续的缓存数据块具有相同的访问规律。也就是说,地址空间上连续的缓存数据块,它们具有相同的RRI信息值。这样,这个记录表只需要记录一部分缓存数据块的连续两次访问间隔,从而减少额外的空间需求。
这个记录表的大小(记录条数)跟缓存的配置有关,每条记录用5个比特位来存储数据块的连续两次访问间隔,称为历史访问间隔,简称为HRRI,它的取值范围是0~31。例如,对于这样的缓存,大小为2MB,16路组相联,缓存数据块大小为64B,这个表需要128条记录空间。这里的M表示2^20,B表示字节。对记录表的操作主要是索引和更新。
对记录表的索引查找是通过缓存数据块的地址来完成的。每一个缓存数据块地址都对应到一个记录项。索引过程如下,表的记录条数容量为R,一个缓存数据块地址为n位,前面m位表示组地址,后面的n-m位表示标记位,那么表的索引值就是后面的(n-m-5)位同(R-1)的算术与值。
查找操作是在新的缓存数据块要移至缓存时进行的,根据查得的PRRI值来判断是否要过滤掉这个缓存数据块,在不过滤的情况下,用PRRI来初始化它的RRI值。当一个缓存数据块victim被移至主存时,通过victim的地址索引表中的记录项,将该HRRI值加1。当一个缓存数据块block命中了,则通过block的地址索引表中的记录,将该HRRI值减1。
当一个缓存数据块被访问,那么记录表相应的记录信息值需要更新。当把一个新的缓存数据块从主存中移至缓存时,需要查找这个记录表,以确定这个缓存数据块的RRI值,然后再做过滤操作。
以一处理器的最后一级缓存(L3)为例,其配置如下:容量为2MB,16路组相联,缓内存地址为42位,缓存数据块大小为64B。那么这个缓存总共有32K个缓存数据块,2K组缓存,缓存数据块地址位数n为36(n=42-6),组地址位数m为11,间隔记录表总记录数R为128。间隔记录表记录的索引过程是缓存数据块地址的n位右移16位(m+5),得到的结果再与(R-1)进行算术与操作,即可得到缓存数据块对应的记录索引号。其中,单位M表示2^20,K表示2^10,B表示字节。
目前最后一级缓存空间容量比较大,但是仍然无法满足当前大多数程序对缓存空间容量的需求。现在的应用程序都比较大,但是,很多程序都有一个共同的特点,那就是它们的很多缓存数据块访问次数较少,访问频率很低。这里的访问频率是通过记录缓存数据块连续两次访问的间隔,是通过缓存数据块中的RRI信息位来表示的。本发明创造过滤掉那些访问频率较低的缓存数据块,减少缓存的替换和读写操,提高系统性能。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (7)
1.一种缓存数据块的处理方法,其特征在于,包括如下步骤:
新增缓存数据块信息位:增加记录缓存数据块连续两次被访问的间隔的缓存数据块信息位,用2个比特位来表示连续两次被访问的间隔;
新增一个历史访问间隔记录表,存储缓存数据块连续两次被访问的间隔,每条记录用5个比特位来存储数据块的连续两次被访问间隔;
查找历史访问间隔记录表,根据缓存数据块连续两次被访问的间隔,过滤掉那些连续访问间隔较大的的缓存数据块。
2.如权利要求1所述的缓存数据块的处理方法,其特征在于:缓存数据块信息位中不需要LRU位,其用2个比特位来表示缓存数据块连续两次被访问的间隔,记为RRI。
3.如权利要求1和2所述的缓存数据块的处理方法,其特征在于:当把一个缓存数据块从主存读入到缓存中时,需要对缓存数据块的RRI值初始化。
4.如权利要求3所述的缓存数据块的处理方法,其特征在于:根据缓存数据块的地址查找间隔表,读取表中记录的数值,并返回该数的以2为基数的对数值,记为PRRI;如果PRRI值小于3,则就用PRRI值来初始化这个缓存数据块的RRI值。
5.如权利要求4所述的缓存数据块的处理方法,其特征在于:间隔记录表是通过缓存数据块的RRI信息位来表示,地址空间上连续的缓存数据块,这个记录表只需要记录一部分缓存数据块的连续两次访问间隔,从而减少额外的空间需求。
6.如权利要求5所述的缓存数据块的处理方法,其特征在于:间隔记录表的大小跟缓存的配置有关。
7.如权利要求6所述的缓存数据块的处理方法,其特征在于:对记录表的索引查找是通过缓存数据块的地址来完成的,每一个缓存数据块地址都对应到一个记录项。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110287376.1A CN102314397B (zh) | 2011-09-23 | 2011-09-23 | 缓存数据块的处理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110287376.1A CN102314397B (zh) | 2011-09-23 | 2011-09-23 | 缓存数据块的处理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102314397A true CN102314397A (zh) | 2012-01-11 |
CN102314397B CN102314397B (zh) | 2014-03-19 |
Family
ID=45427582
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110287376.1A Expired - Fee Related CN102314397B (zh) | 2011-09-23 | 2011-09-23 | 缓存数据块的处理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102314397B (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103870393A (zh) * | 2013-07-09 | 2014-06-18 | 携程计算机技术(上海)有限公司 | 缓存管理方法及系统 |
CN103902473A (zh) * | 2012-12-31 | 2014-07-02 | 华为技术有限公司 | 一种数据处理方法及数据缓存系统 |
WO2015018350A1 (zh) * | 2013-08-09 | 2015-02-12 | 华为技术有限公司 | 一种缓存刷新方法和装置 |
CN104809179A (zh) * | 2015-04-16 | 2015-07-29 | 华为技术有限公司 | 访问哈希表的装置和方法 |
CN104866433A (zh) * | 2015-05-31 | 2015-08-26 | 上海交通大学 | 基于历史信息的多级缓存方法 |
CN106354666A (zh) * | 2016-08-30 | 2017-01-25 | 兆讯恒达微电子技术(北京)有限公司 | Cache替换算法 |
CN106569733A (zh) * | 2015-10-12 | 2017-04-19 | 北京国双科技有限公司 | 缓存数据的处理方法和装置 |
CN106909518A (zh) * | 2017-01-24 | 2017-06-30 | 朗坤智慧科技股份有限公司 | 一种实时数据缓存机制 |
CN107291920A (zh) * | 2017-06-28 | 2017-10-24 | 南京途牛科技有限公司 | 一种机票查询缓存方法 |
CN107577618A (zh) * | 2017-09-13 | 2018-01-12 | 武大吉奥信息技术有限公司 | 一种三路均衡缓存淘汰方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6393525B1 (en) * | 1999-05-18 | 2002-05-21 | Intel Corporation | Least recently used replacement method with protection |
CN101520751A (zh) * | 2009-03-26 | 2009-09-02 | 浙江大学 | Cache的自适应插入策略的实现方法 |
CN101694640A (zh) * | 2009-10-22 | 2010-04-14 | 浙江大学 | 多核架构下共享二级Cache的替换策略的实现方法 |
CN102110073A (zh) * | 2011-02-01 | 2011-06-29 | 中国科学院计算技术研究所 | 一种片上共享高速缓存的替换装置和方法以及相应处理器 |
-
2011
- 2011-09-23 CN CN201110287376.1A patent/CN102314397B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6393525B1 (en) * | 1999-05-18 | 2002-05-21 | Intel Corporation | Least recently used replacement method with protection |
CN101520751A (zh) * | 2009-03-26 | 2009-09-02 | 浙江大学 | Cache的自适应插入策略的实现方法 |
CN101694640A (zh) * | 2009-10-22 | 2010-04-14 | 浙江大学 | 多核架构下共享二级Cache的替换策略的实现方法 |
CN102110073A (zh) * | 2011-02-01 | 2011-06-29 | 中国科学院计算技术研究所 | 一种片上共享高速缓存的替换装置和方法以及相应处理器 |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103902473B (zh) * | 2012-12-31 | 2018-07-03 | 华为技术有限公司 | 一种数据处理方法及数据缓存系统 |
CN103902473A (zh) * | 2012-12-31 | 2014-07-02 | 华为技术有限公司 | 一种数据处理方法及数据缓存系统 |
CN103870393A (zh) * | 2013-07-09 | 2014-06-18 | 携程计算机技术(上海)有限公司 | 缓存管理方法及系统 |
WO2015018350A1 (zh) * | 2013-08-09 | 2015-02-12 | 华为技术有限公司 | 一种缓存刷新方法和装置 |
CN104809179A (zh) * | 2015-04-16 | 2015-07-29 | 华为技术有限公司 | 访问哈希表的装置和方法 |
CN104809179B (zh) * | 2015-04-16 | 2018-10-02 | 华为技术有限公司 | 访问哈希表的装置和方法 |
CN104866433A (zh) * | 2015-05-31 | 2015-08-26 | 上海交通大学 | 基于历史信息的多级缓存方法 |
CN106569733A (zh) * | 2015-10-12 | 2017-04-19 | 北京国双科技有限公司 | 缓存数据的处理方法和装置 |
CN106354666A (zh) * | 2016-08-30 | 2017-01-25 | 兆讯恒达微电子技术(北京)有限公司 | Cache替换算法 |
CN106909518A (zh) * | 2017-01-24 | 2017-06-30 | 朗坤智慧科技股份有限公司 | 一种实时数据缓存机制 |
CN107291920A (zh) * | 2017-06-28 | 2017-10-24 | 南京途牛科技有限公司 | 一种机票查询缓存方法 |
CN107291920B (zh) * | 2017-06-28 | 2021-02-02 | 南京途牛科技有限公司 | 一种机票查询缓存方法 |
CN107577618A (zh) * | 2017-09-13 | 2018-01-12 | 武大吉奥信息技术有限公司 | 一种三路均衡缓存淘汰方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN102314397B (zh) | 2014-03-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102314397B (zh) | 缓存数据块的处理方法 | |
CN100498740C (zh) | 一种数据缓存处理方法、系统及数据缓存装置 | |
CN103577339B (zh) | 一种数据存储方法及系统 | |
CN102760101B (zh) | 一种基于ssd 的缓存管理方法及系统 | |
CN107066393A (zh) | 提高地址映射表中映射信息密度的方法 | |
CN101799783A (zh) | 一种数据存储处理方法、查找方法及其装置 | |
US20130198453A1 (en) | Hybrid storage device inclucing non-volatile memory cache having ring structure | |
CN108845957B (zh) | 一种置换和回写自适应的缓冲区管理方法 | |
CN102354301B (zh) | 缓存分区方法 | |
CN103019887A (zh) | 数据备份方法及装置 | |
CN108762671A (zh) | 基于pcm和dram的混合内存系统及其管理方法 | |
CN109240944B (zh) | 一种基于可变长缓存行的数据读写方法 | |
US8719235B2 (en) | Controlling tape layout for de-duplication | |
Park et al. | A lookahead read cache: improving read performance for deduplication backup storage | |
CN110262982A (zh) | 一种固态硬盘地址映射的方法 | |
CN108089825A (zh) | 一种基于分布式集群的存储系统 | |
CN108304259A (zh) | 内存管理方法及系统 | |
CN111580754A (zh) | 一种写友好的闪存固态盘缓存管理方法 | |
CN104050057B (zh) | 一种历史感知的数据去重碎片消除方法与系统 | |
Fevgas et al. | LB-Grid: An SSD efficient grid file | |
CN109478164A (zh) | 用于存储用于高速缓存条目传输的高速缓存位置信息的系统和方法 | |
CN102521161B (zh) | 一种数据的缓存方法、装置和服务器 | |
CN103823634A (zh) | 一种支持无随机写模式的数据处理方法及系统 | |
CN108664217A (zh) | 一种降低固态盘存储系统写性能抖动的缓存方法及系统 | |
Cheng et al. | AMC: an adaptive multi‐level cache algorithm in hybrid storage systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20140319 Termination date: 20180923 |
|
CF01 | Termination of patent right due to non-payment of annual fee |