CN103729309B - 一种目录Cache一致性方法 - Google Patents
一种目录Cache一致性方法 Download PDFInfo
- Publication number
- CN103729309B CN103729309B CN201410017448.4A CN201410017448A CN103729309B CN 103729309 B CN103729309 B CN 103729309B CN 201410017448 A CN201410017448 A CN 201410017448A CN 103729309 B CN103729309 B CN 103729309B
- Authority
- CN
- China
- Prior art keywords
- cache
- catalogue
- memory
- directory
- shared
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 26
- 238000013507 mapping Methods 0.000 claims abstract description 24
- 238000003860 storage Methods 0.000 claims abstract description 20
- 230000008520 organization Effects 0.000 claims abstract description 8
- 230000008569 process Effects 0.000 claims abstract description 4
- 230000004048 modification Effects 0.000 claims description 3
- 238000012986 modification Methods 0.000 claims description 3
- 230000003111 delayed effect Effects 0.000 claims 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 235000015170 shellfish Nutrition 0.000 description 1
- 230000009897 systematic effect Effects 0.000 description 1
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明提供一种目录Cache一致性方法,其实现过程为:结合有限目录与全映射目录,在使用了存储器Cache的基础上设置双协议的两级目录存储结构;并在存储器层和存储器Cache层之间的替换算法使用一种共享数加权的伪最近最少使用算法来保证。该一种目录Cache一致性方法和现有技术相比,解决了全映射目录占用过大的存储开销,有限目录会受目录项溢出的限制,链式目录的时间有效性较低等问题,实用性强,易于推广。
Description
技术领域
本发明涉及计算机技术领域,更具体地说是目录Cache一致性方法。
背景技术
在多级网络中,高速缓存目录存放了有关高速缓存行拷贝驻留在哪里的信息,以支持高速缓存一致性。各种目录方法的主要差别是目录如何维护信息和存放什么信息。第一个目录方案是用一个中心目录存放所有高速缓存目录的拷贝,中心目录能提供为保证一致性所需要的全部信息。因此,其容量非常大且必须采用联想方法进行检索,这和单个高速缓存的目录类似。大型多处理机***采用中心目录会有冲突和检索时间过长两个缺点。分布式目录方案是由Censier和Feautrier提出来的。在分布式目录中每个存储器模块维护各自的目录,目录中记录着每个存储器块的状态和当前的信息,其中状态信息是本地的,而当前信息指明哪些高速缓存中有该存储器块的拷贝。不同类型的目录方法可分为全映射目录、有限目录和链式目录三类。其中全映射目录占用过大的存储开销,有限目录会受目录项溢出的限制,链式目录的时间有效性较低等问题。基于此,本发明提供一种改进的目录Cache一致性方法,将有限目录与全映射目录结合在一起来解决上述问题。
发明内容
本发明的技术任务是解决现有技术的不足,提供一种操作简单、易于实现、改进的目录Cache一致性方法。
本发明的技术方案是按以下方式实现的,该一种目录Cache一致性方法,其具体实现过程为:
一、设置两级目录存储结构,即全映射目录和有限目录,其中全映射目录存放与全局存储器中每个块有关的数据,使得***中的每个高速缓存可以同时存储任何数据块的拷贝,每个目录项包含N个指针,N是***中处理器的数目;有限目录与全映射目录不同之处为其每个目录项均含有固定数目的指针;
二、在存储器层和存储器Cache层之间使用的共享数加权的伪最近最少使用算法:假定存储器层的每个目录项使用Q个指针,则替换时只对共享数小于Q的高速缓存行使用该算法进行替换;当存储器Cache中所有高速缓存行的共享数皆大于Q时,将共享数最小的高速缓存行替换出存储器Cache并且进行相应作废处理。
所述的两级目录存储结构中,用全映射方法实现的目录项中有一个处理器位和一个脏位:前者表示相应处理器的高速缓存块存在或不存在的状态;后者如果为“1”,而且有一个也只有一个处理器位为“1”,则该处理器就可以对该块进行写操作,高速缓存的每个块均有两个状态位:一位表示块是否有效;另一位表示有效块是否允许写。
所述共享数加权的伪最近最少使用算法的详细内容为:
1)若高速缓存行在存储器Cache,则执行2,否则执行5;
2)从存储器Cache中读取数据;
3)若为新的共享节点,则执行4,否则执行14;
4)修改Cache目录项,执行14;
5)从存储器中读取数据;
6)若为新的共享节点,则执行7,否则执行9;
7)若存储器目录项溢出,则执行8,否则执行9;
8)记录溢出项;
9)若Cache中有空闲目录项,则执行10,否则执行11;
10)将数据加入Cache并根据存储器目录项修改Cache目录项,跳至14;
11)若Cache中有共享数小于Q的目录项,则执行12,否则执行13;
12)在共享数小于Q的高速缓存行中使用LRU算法选择一块数据替换出Cache,执行10;
13)选择一共享最小的高速缓存行进行共享作废的相应处理,执行10;
14)完成。
本发明与现有技术相比所产生的有益效果是:
本发明的一种目录Cache一致性方法将有限目录与全映射目录结合在一起,进而使用两级目录的Cache一致性方法,解决了全映射目录占用过大的存储开销,有限目录会受目录项溢出的限制,链式目录的时间有效性较低等问题。在存储器层使用有限目录,由于有限目录单个目录项占用空间小,因此能够使需要大量目录项的存储器层节省不少存储空间。同时,在存储器Cache层使用全映射目录,Cache容量有限,所以即使单个目录项占用空间大,总共占用的空间也不会多。不但解决了有限目录的目录项溢出问题,而且使用频率最高的数据及其目录项一直处于使用全映射目录的存储器Cache层中,因而这种两级式存储结构的访问速度可以与其第一级存储器即存储器Cache速度相当,实用性强,易于推广。
附图说明
附图1为两级目录存储结构示意图。
附图2为本发明中共享数加权的伪最近最少使用算法流程图。
具体实施方式
下面结合附图对本发明的一种目录Cache一致性方法作以下详细说明。
如附图1所示,本发明提出了一种目录Cache一致性方法,其具体实现过程为:
设置两级目录存储结构,将有限目录与全映射目录结合在一起,进而使用两级目录的Cache一致性方法,解决了全映射目录占用过大的存储开销,全映射目录存放与全局存储器中每个块有关的数据,使得***中的每个高速缓存可以同时存储任何数据块的拷贝,每个目录项包含N个指针,N是***中处理器的数目。有限目录与全映射目录不同之处是不管***规模有多大,其每个目录项均含有固定数目的指针。
在存储器层和存储器Cache层之间使用替换算法,即共享数加权的伪最近最少使用的LRU算法,所以共享数目超过存储器层有限目录指针数的高速缓存行都能保证在存储器Cache中,实现利用相对较少的存储空间保障高速缓存数据一致性。
在上述两级目录存储结构中,用全映射方法实现的目录项中有一个处理器位和一个脏位:前者表示相应处理器的高速缓存块存在或不存在的状态;后者如果为“1”,而且有一个也只有一个处理器位为“1”,则该处理器就可以对该块进行写操作。高速缓存的每块有两个状态位:一位表示块是否有效;另一位表示有效块是否允许写。高速缓存一致性方法必须保证存储器目录的状态位与高速缓存的状态位一致。有限目录方法可以缓解目录过大的问题,如果任一数据块同时在高速缓存中的拷贝数目有一定限制,那么目录的大小不会超过某个常数。
所述的共享数加权的伪最近最少使用LRU算法,共享数目超过存储器层有限目录指针数的高速缓存行都能保证在存储Cache中。假定存储器层的每个目录项使用Q个指针,则替换时只对共享数小于Q的高速缓存行使用LRU替换算法进行替换。只有当存储器Cache中所有高速缓存行的共享数皆大于Q时,才将一共享数最小的高速缓存行替换出存储器Cache并且进行相应作废处理。而这种目录项溢出的情况能够通过适当设置存储器Cache的大小来避免。
如附图2所示,所述共享数加权的伪最近最少使用算法的详细内容为:
1)若高速缓存行在存储器Cache,则执行2,否则执行5。
2)从存储器Cache中读取数据。
3)若为新的共享节点,则执行4,否则执行14。
4)修改Cache目录项,执行14。
5)从存储器中读取数据。
6)若为新的共享节点,则执行7,否则执行9。
7)若存储器目录项溢出,则执行8,否则执行9。
8)记录溢出项。
9)若Cache中有空闲目录项,则执行10,否则执行11。
10)将数据加入Cache并根据存储器目录项修改Cache目录项,跳至14。
11)若Cache中有共享数小于Q的目录项,则执行12,否则执行13。
12)在共享数小于Q的高速缓存行中使用LRU算法选择一块数据替换出Cache,执行10。
13)选择一共享最小的高速缓存行进行共享作废的相应处理,执行10。
14)完成。
至此,已经完整实现了一种改进的目录Cache一致性方法。在***性能方面,根据任务的粗细粒度和应用的时间局限性以及读写操作所占比例,合理设置存储器Cache和高速缓存行的大小并且使用适合的替换算法来保证存储器Cache获得较高的命中率。当存储器层的某一目录项发生溢出时,目录项信息将会复制到存储器Cache层中。而根据共享数加权的替换算法,此项目录信息将一直保持在存储器Cache中,直到其共享节点数小于存储器层的有限目录项指针数Q时,才可以被替换出存储器Cache。因此,不但解决了有限目录的目录项溢出问题,而且使用频率最高的数据及其目录项一直处于使用全映射目录的存储器Cache层中,因而这种两级式存储结构的访问速度可以与其第一级存储器即存储器Cache速度相当。
当然,本发明还可有其他多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明的权利要求的保护范围。
Claims (3)
1.一种目录Cache一致性方法,其特征在于其具体实现过程为:
一、设置两级目录存储结构,即全映射目录和有限目录,其中全映射目录存放与全局存储器中每个块有关的数据,使得***中的每个高速缓存可以同时存储任何数据块的拷贝,每个全映射目录的目录项包含N个指针,N是***中处理器的数目;有限目录与全映射目录不同之处为其每个目录项均含有固定数目的指针;
二、在存储器层和存储器Cache层之间使用的共享数加权的伪最近最少使用算法:假定存储器层的每个目录项使用Q个指针,则替换时只对共享数小于Q的高速缓存行使用该算法进行替换;当存储器Cache中所有高速缓存行的共享数皆大于Q时,将共享数最小的高速缓存行替换出存储器Cache并且进行相应作废处理。
2.根据权利要求1所述的一种目录Cache一致性方法,其特征在于:所述的两级目录存储结构中,用全映射方法实现的目录项中有一个处理器位和一个脏位:前者表示相应处理器的高速缓存块存在或不存在的状态;后者如果为“1”,而且有一个也只有一个处理器位为“1”,则该处理器就可以对该块进行写操作,高速缓存的每个块均有两个状态位:一位表示块是否有效;另一位表示有效块是否允许写。
3.根据权利要求2所述的一种目录Cache一致性方法,其特征在于:所述共享数加权的伪最近最少使用算法的详细内容为:
1)若高速缓存行在存储器Cache,则执行2,否则执行5;
2)从存储器Cache中读取数据;
3)若为新的共享节点,则执行4,否则执行14;
4)修改Cache目录项,执行14;
5)从存储器中读取数据;
6)若为新的共享节点,则执行7,否则执行9;
7)若存储器目录项溢出,则执行8,否则执行9;
8)记录溢出项;
9)若Cache中有空闲目录项,则执行10,否则执行11;
10)将数据加入Cache并根据存储器目录项修改Cache目录项,跳至14;
11)若Cache中有共享数小于Q的目录项,则执行12,否则执行13;
12)在共享数小于Q的高速缓存行中使用LRU算法选择一块数据替换出Cache,执行10;
13)选择一共享最小的高速缓存行进行共享作废的相应处理,执行10;
14)完成。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410017448.4A CN103729309B (zh) | 2014-01-15 | 2014-01-15 | 一种目录Cache一致性方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410017448.4A CN103729309B (zh) | 2014-01-15 | 2014-01-15 | 一种目录Cache一致性方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103729309A CN103729309A (zh) | 2014-04-16 |
CN103729309B true CN103729309B (zh) | 2017-06-30 |
Family
ID=50453390
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410017448.4A Active CN103729309B (zh) | 2014-01-15 | 2014-01-15 | 一种目录Cache一致性方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103729309B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104133785B (zh) * | 2014-07-30 | 2017-03-08 | 浪潮集团有限公司 | 采用混合目录的双控存储服务器的缓存一致性实现方法 |
WO2016049807A1 (zh) * | 2014-09-29 | 2016-04-07 | 华为技术有限公司 | 多核处理器***的缓存目录处理方法和目录控制器 |
CN104360982B (zh) * | 2014-11-21 | 2017-11-10 | 浪潮(北京)电子信息产业有限公司 | 一种基于可重构芯片技术的主机***目录结构实现方法和*** |
CN106095725A (zh) * | 2016-05-31 | 2016-11-09 | 浪潮(北京)电子信息产业有限公司 | 一种一致性目录构建方法、***及多处理器计算机*** |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6016529A (en) * | 1997-11-26 | 2000-01-18 | Digital Equipment Corporation | Memory allocation technique for maintaining an even distribution of cache page addresses within a data structure |
CN102063407A (zh) * | 2010-12-24 | 2011-05-18 | 清华大学 | 用于多核处理器的网络牺牲Cache及基于该Cache的数据请求方法 |
CN102708190A (zh) * | 2012-05-15 | 2012-10-03 | 浪潮电子信息产业股份有限公司 | 一种CC-NUMA***中结点控制芯片目录Cache的方法 |
CN103049422A (zh) * | 2012-12-17 | 2013-04-17 | 浪潮电子信息产业股份有限公司 | 一种具有多cache一致性域的多处理器节点***构建方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8812786B2 (en) * | 2011-10-18 | 2014-08-19 | Advanced Micro Devices, Inc. | Dual-granularity state tracking for directory-based cache coherence |
-
2014
- 2014-01-15 CN CN201410017448.4A patent/CN103729309B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6016529A (en) * | 1997-11-26 | 2000-01-18 | Digital Equipment Corporation | Memory allocation technique for maintaining an even distribution of cache page addresses within a data structure |
CN102063407A (zh) * | 2010-12-24 | 2011-05-18 | 清华大学 | 用于多核处理器的网络牺牲Cache及基于该Cache的数据请求方法 |
CN102708190A (zh) * | 2012-05-15 | 2012-10-03 | 浪潮电子信息产业股份有限公司 | 一种CC-NUMA***中结点控制芯片目录Cache的方法 |
CN103049422A (zh) * | 2012-12-17 | 2013-04-17 | 浪潮电子信息产业股份有限公司 | 一种具有多cache一致性域的多处理器节点***构建方法 |
Also Published As
Publication number | Publication date |
---|---|
CN103729309A (zh) | 2014-04-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102981963B (zh) | 一种固态盘的闪存转换层的实现方法 | |
CN103246616B (zh) | 一种长短周期访问频度的全局共享缓存替换方法 | |
CN104115133B (zh) | 用于复合非易失性存储设备的数据迁移的方法、***和设备 | |
US8782324B1 (en) | Techniques for managing placement of extents based on a history of active extents | |
CN105550155B (zh) | 用于多处理器***的探听过滤器以及相关探听过滤方法 | |
CN105095113B (zh) | 一种缓存管理方法和*** | |
CN103729309B (zh) | 一种目录Cache一致性方法 | |
US20180329712A1 (en) | File access predication using counter based eviction policies at the file and page level | |
CN100383792C (zh) | 缓存数据库数据组织方法 | |
US20110320720A1 (en) | Cache Line Replacement In A Symmetric Multiprocessing Computer | |
CN110795363B (zh) | 一种存储介质的热页预测方法和页面调度方法 | |
CN103942161B (zh) | 只读缓存的去冗余***及方法以及缓存的去冗余方法 | |
CN104598394A (zh) | 一种可动态分配的数据缓存方法及*** | |
CN110347338B (zh) | 混合内存数据交换处理方法、***及可读存储介质 | |
CN104461932B (zh) | 一种面向大数据应用的目录缓存管理方法 | |
US10275363B2 (en) | Cuckoo caching | |
US20210263862A1 (en) | Maintaining ghost cache statistics for demoted data elements | |
US20170364442A1 (en) | Method for accessing data visitor directory in multi-core system and device | |
CN106909323B (zh) | 适用于dram/pram混合主存架构的页缓存方法及混合主存架构*** | |
Zhou et al. | Hierarchical consistent hashing for heterogeneous object-based storage | |
RU2484520C2 (ru) | Адаптивная организация кэша для однокристальных мультипроцессоров | |
CN108664217A (zh) | 一种降低固态盘存储***写性能抖动的缓存方法及*** | |
JP2017027301A (ja) | ストレージ制御装置、階層化ストレージ制御プログラム、階層化ストレージ制御方法 | |
CN105988720A (zh) | 数据存储装置和方法 | |
CN104182281A (zh) | 一种gpgpu寄存器缓存的实现方法 |
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 |