CN109189592B - 基于混合式内存结构的共享缓存替换算法及装置 - Google Patents
基于混合式内存结构的共享缓存替换算法及装置 Download PDFInfo
- Publication number
- CN109189592B CN109189592B CN201811008502.3A CN201811008502A CN109189592B CN 109189592 B CN109189592 B CN 109189592B CN 201811008502 A CN201811008502 A CN 201811008502A CN 109189592 B CN109189592 B CN 109189592B
- Authority
- CN
- China
- Prior art keywords
- data
- nvm
- llc
- dram
- lru
- 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.)
- Expired - Fee Related
Links
- 238000004422 calculation algorithm Methods 0.000 title claims abstract description 54
- 230000015654 memory Effects 0.000 title claims abstract description 48
- 238000005192 partition Methods 0.000 claims abstract description 18
- 230000001960 triggered effect Effects 0.000 claims description 6
- 238000004513 sizing Methods 0.000 claims description 2
- 238000000034 method Methods 0.000 abstract description 7
- 230000007246 mechanism Effects 0.000 description 9
- 230000001133 acceleration Effects 0.000 description 8
- 238000000638 solvent extraction Methods 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000011156 evaluation Methods 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 101100498818 Arabidopsis thaliana DDR4 gene Proteins 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 230000008447 perception Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5038—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明公开了两种基于混合式内存结构的共享缓存替换算法,所述缓存包括NVM分区和DRAM分区,包括以下步骤:判断L1cache发送请求的数据是否在LLC中,若请求的数据在LLC中,则返回数据至L1请求者;若请求的数据不在LLC中,则判断请求的数据是否在NVM中,若请求的数据在NVM中,则将其***共享缓存的LRU位置,若请求的数据不在NVM中,则将其***共享缓存的MRU位置。
Description
技术领域
本发明涉及计算机领域,具体涉及一种基于混合式内存结构的共享缓存替换算法及装置。
背景技术
随着互联网不断发展的需求,数据中心服务器(IDC)迅速发展起来,成为了新世纪中国乃至世界互联网中不可或缺的重要一环,随着数据中心服务器中CPU核心数量的增加,并发运行线程数也在增加,数据中心服务器需要大容量的内存来同时提供给多个线程的工作集。然而,现行的DDR4及LPDDR4存储器都是以既有的DRAM设计为基础,其中许多技术已沿用长达十余年,而今无论是***总带宽或是处理器等工作环境都不可同日而语,并且众所周知的DRAM缺点,高刷新能耗和有限的可扩展性,使得仅仅采用DRAM的解决方案对于构建大容量存储器***起不了太大作用。
而缓存的工作原理是当CPU读取数据时,首先要从高速缓存中寻找,找到后就立即读取后送给CPU处理,如果寻找失败,就从内存中读取后送往CPU进行处理,只是内存的速度相对于高速缓存会慢许多,与此同时将这个数据所在的数据块调入高速缓存中,这样以便于对数据的读取都从缓存中进行,不用再调用内存,正因为这样的读取机制使得CPU读取缓存的命中率很高,同时CPU下一次要读取的数据90%都在高速缓存中,只有小部分需要再次去内存中读取,然后重复以上的工作,这在很大程度上节约了CPU直接去访问内存进行读取的时间,因此CPU的读取速率也相当快,总体上看,CPU读取数据的顺序是先读取高速缓存,然后再读取内存。
有鉴于此,发展新的解决方案成为眼下业界的共识,混合存储器遂成业界关注重点,但混合内存对共享缓存也带来了新的问题,因为NVM的延迟时间过长,所以NVM数据的高速缓存未命中的成本就高于DRAM数据高速缓存未命中成本。因此,如果有大量的NVM数据未命中,则会大大降低共享缓存的性能,并且缓存的高命中率也是提升混合存储器性能的关键。
发明内容
有鉴于此,为了解决上述问题,本发明提供一种基于混合式内存结构的共享缓存替换算法及装置,该算法针对利用DRAM和NVM的优点所构建的混合存储***,采取混合内存感知缓存划分技术来调整共享缓存空间
为实现上述目的及其他目的,本发明提供一种基于混合式内存结构的共享缓存替换算法,所述缓存包括NVM区,包括以下步骤:
判断L1cache发送请求的数据是否在LLC中,若请求的数据在LLC中,则返回数据至L1请求者;
若请求的数据不在LLC中,则判断请求的数据是否在NVM中,若请求的数据在NVM中,则将其***共享缓存的LRU位置,若请求的数据不在NVM中,则将其***共享缓存的MRU位置。
为实现上述目的及其他目的,本发明还提供一种基于混合式内存结构的共享缓存替换装置,所述缓存包括NVM区,包括:
接收模块,接收L1cache发送的请求;
第一判断模块,用于判断请求的数据是否在LLC中,若请求的数据在LLC中,则返回数据至L1请求者;
第二判断模块,用于在请求的数据不在LLC中时,判断请求的数据是否在NVM中;
数据***模块,用于在第二判断模块判定请求数据在NVM中时,将其***共享缓存的LRU位置;在第二判断模块判定请求数据不在NVM中时,将其***共享缓存的MRU位置。
为实现上述目的及其他目的,本发明还提供一种基于混合式内存结构的共享缓存替换算法,所述缓存包括NVM区和DRAM区,包括以下步骤:
判断L1cache发送请求的数据是否在LLC中,若请求的数据在LLC中,则返回数据至L1请求者;
若请求的数据不在LLC中,则判断LLC中的NVM行计数器是否大于Thigh,若NVM行计数器大于Thigh则判断请求的数据是否属于NVM,若请求的数据属于NVM,则从NVM区中采取LRU策略来挑选替换的块,若请求的数据不属于,则从LLC上采取LRU策略来挑选替换的块,并返回数据至L1请求者;
若LLC中的NVM行计数器小于Thigh,则判断LLC中的NVM行计数器是否小于Tlow,若NVM行计数器小于Tlow,则判断请求的数据是否属于DRAM,若请求的数据属于DRAM,则从DRAM区中采取LRU策略来挑选替换的块,并返回数据至L1请求者,若请求的数据不属于DRAM,则从LLC上采取LRU策略来挑选替换的块,并返回数据至L1请求者;若NVM行计数器大于Tlow,则在LLC上采用LRU策略来挑选替换块,并返回数据至L1请求者。
可选地,通过来自不同类型存储器的数据来调整NVM分区大小;当数据不命中发生并触发替换时,选择适当类型的缓存块位置的数据作为被替换的数据。
为实现上述目的及其他目的,本发明还提供一种基于混合式内存结构的共享缓存替换装置,所述缓存包括NVM区和DRAM区,包括:
接收模块,接收L1cache发送的请求;
第三判断模块,用于判断请求的数据是否在LLC中,若请求的数据在LLC中,则返回数据至L1请求者;
第四判断模块,用于在第三判断模块判定请求的数据不在LLC中,判断LLC中的NVM行计数器是否大于Thigh;
第五判断模块,用于在第四判断模块判定LLC中的NVM行计数器大于Thigh时判定请求的数据是否属于NVM;
第一执行模块,用于在第五判断模块判定请求的数据属于NVM时,从NVM区中采取LRU策略来挑选替换的块;
第二执行模块,用于在第五判断模块判定请求的数据不属于NVM时,从LLC上采取LRU策略来挑选替换的块,并返回数据至L1请求者;
第六判断模块,用于在第四判断模块判定LLC中的NVM行计数器小于Thigh时判定LLC中的NVM行计数器是否小于Tlow;
第七判断模块,用于在第六判断模块判定NVM行计数器小于Tlow时判断请求的数据是否属于DRAM;
第三执行模块,用于在第七判断模块判定请求的数据属于DRAM时,从DRAM区中采取LRU策略来挑选替换的块,并返回数据至L1请求者;
第四执行模块,用于在第七判断模块判定请求的数据不属于DRAM时,从LLC区中采取LRU策略来挑选替换的块,并返回数据至L1请求者;
第五执行模块,用于在第六判断模块判定NVM行计数器大于Tlow时,在LLC上采用LRU策略来挑选替换块,并返回数据至L1请求者。
可选地,通过来自不同类型存储器的数据来调整NVM分区大小;当数据不命中发生并触发替换时,选择适当类型的缓存块位置的数据作为被替换的数据。
由于采用了上述技术方案,本发明具有如下的优点:
随着目前数据发展的速度,以及人们对存储器的要求日渐提高的现状,服务器需要大容量的主内存来容纳大量的工作集。DRAM和NVM相结合的混合存储器是相对比较完善的候选者,这种混合式存储器利用了DRAM的低延迟与NVM良好的扩展性的优点,从而克服了单个使用DRAM和NVM的局限性。但是混合内存也带来了新的问题,因为NVM的延迟时间过长,所以NVM数据的高速缓存未命中的成本就高于DRAM数据的高速缓存未命中成本,因此本发明实现的两种算法改进了缓存的划分,更有效力地利用存储器,为共享缓存技术提供了参考。
本发明的其他优点、目标和特征在某种程度上将在随后的说明书中进行阐述,并且在某种程度上,基于对下文的考察研究对本领域技术人员而言将是显而易见的,或者可以从本发明的实践中得到教导。本发明的目标和其他优点可以通过下面的说明书来实现和获得。
附图说明
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步的详细描述:
图1是HAPBypass算法流程图;
图2是HAPStatic算法流程图;
图3是HAPBypass不同缓存机制下各benchmark加速比;
图4是HAPBypass不同缓存机制下各benchmark的IPC值;
图5是HAPBypass不同缓存机制下各benchmark的共享缓存缺失率;
图6是HAPBypass不同缓存机制下各benchmark加速比;
图7是HAPBypass不同缓存机制下各benchmark的IPC值;
图8是HAPBypass不同缓存机制下各benchmark的共享缓存缺失率。
具体实施方式
以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。
需要说明的是,本实施例中所提供的图示仅以示意方式说明本发明的基本构想,遂图式中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
本发明在了解各种存储器的利弊后,针对利用DRAM和NVM的优点所构建的混合存储***,采取混合内存感知缓存划分技术HAP来调整共享缓存空间。
HAP技术是将高速缓存块与NVM和DRAM区分开来,它将缓存空间逻辑划分为DRAM和NVM两个分区,分区中的行数表示分区大小。例如,如果NVM进入LLC,则HAP认为NVM分区大小增加。HAP将NVM分区大小限制在适当的范围内(Tlow~Thigh)。当NVM的行数小于Tlow时,由于NVM数据未命中次数显著提高,相应地,性能就显著降低。同样地,当NVM的行数大于Thigh时,则由于DRAM数据未命中次数的显著提高,相应地,性能也显著降低。因此,HAP技术根据工作负载行为调整阈值。
具体地,在一实施例中,一种基于混合式内存结构的共享缓存替换算法(HAPBypass算法),所述缓存包括NVM区,包括以下步骤:
判断L1cache发送请求的数据是否在LLC中,若请求的数据在LLC中,则返回数据至L1请求者;
若请求的数据不在LLC中,则判断请求的数据是否在NVM中,若请求的数据在NVM中,则将其***共享缓存的LRU位置,若请求的数据不在NVM中,则将其***共享缓存的MRU位置。
更加具体地,在本实施例中,通过在gem5多核模拟器中运行SPEC CPU2006,作为多线程应用程序,根据性能评估参数给出实验的统计数据。HAPBypass算法包括:
1、gem5的前序工作:使用Ubuntu版本是15.04或者是更高的版本,安装必要的软件包,检测和构建gem5,下载磁盘映象和Linux内核文件作为在gem5中ALPHA全***仿真的所需的文件,最后运行gem5。
2、gem5中实现细节:首先在gem5/src/mem/cache/tags中添加了脚本hap_bypass.cc。主要是在LRU算法中的***缓存块部分进行设计,以下介绍了该脚本的核心算法。
1)将NVM数据移到MRU位置
2)将DRAM数据移到LRU位置
3、分别在gem5/src/mem/cache/tags目录下的SConscipt和Tags.py中添加hap_bypass的相关信息,在gem5/configs/common/CacheConfig.py中也添加hap_bypass的相关信息。
在一实施例中,本发明还提供一种基于混合式内存结构的共享缓存替换装置,所述缓存包括NVM区,包括:
接收模块,接收L1cache发送的请求;
第一判断模块,用于判断请求的数据是否在LLC中,若请求的数据在LLC中,则返回数据至L1请求者;
第二判断模块,用于在请求的数据不在LLC中时,判断请求的数据是否在NVM中;
数据***模块,用于在第二判断模块判定请求数据在NVM中时,将其***共享缓存的LRU位置;在第二判断模块判定请求数据不在NVM中时,将其***共享缓存的MRU位置。
在另一实施例中,本发明提供一种基于混合式内存结构的共享缓存替换算法(HAPStatic算法),所述缓存包括NVM区和DRAM区。
HAPStatic算法通过来自不同类型存储器的数据来调整NVM分区大小。当数据不命中发生并触发替换时,HAPStatic必须选择适当类型的缓存块位置的数据作为被替换的数据。本发明提出的HAPStatic算法是在LRU替换算法基础上进行改进,这是一种静态划分缓存空间的算法,是在算法中运行共享缓存划分DRAM与NVM为不同比例。
HAPStatic算法分为以下三种情况:
1)NVM缓存行计数器numNvmLines的当前值大于Thigh。这意味着LLC中具有的NVM数据比它应有的数量更多。在这种情况下,不应该拥有更多的NVM数据。因此,如果未命中的数据是属于NVM,则HAPStatic从NVM中采用传统的LRU算法来挑选替换的行。
2)NVM缓存行计数器numNvmLines的当前值小于Tlow。这意味着LLC种具有的NVM数据比它应有的数量更少。在这种情况下,不应该再容纳更多的DRAM数据。因此,如果未命中的数据属于DRAM,则HAPStatic从DRAM中采用传统的LRU算法来挑选替换的行。
3)除了这两种情况,HAPStatic总是直接在LLC种采用LRU算法来选择所要替换的行,而不用区分其类型。在这样的做法中,HAP可以调整分区大小,同时尽量排除最近最少使用的行。例如,假设NVM线路计数器超过Thigh,并且DRAM数据发生未命中。在这种情况下,即使线路是DRAM,HAP也会排除LRU位置上的缓存行,而不是驱逐不在LRU位置的NVM。HAPStatic算法流程图如下图2所示。
包括以下步骤:
判断L1cache发送请求的数据是否在LLC中,若请求的数据在LLC中,则返回数据至L1请求者;
若请求的数据不在LLC中,则判断LLC中的NVM行计数器是否大于Thigh,若NVM行计数器大于Thigh则判断请求的数据是否属于NVM,若请求的数据属于NVM,则从NVM区中采取LRU策略来挑选替换的块,若请求的数据不属于,则从LLC上采取LRU策略来挑选替换的块,并返回数据至L1请求者;
若LLC中的NVM行计数器小于Thigh,则判断LLC中的NVM行计数器是否小于Tlow,若NVM行计数器小于Tlow,则判断请求的数据是否属于DRAM,若请求的数据属于DRAM,则从DRAM区中采取LRU策略来挑选替换的块,并返回数据至L1请求者,若请求的数据不属于DRAM,则从LLC上采取LRU策略来挑选替换的块,并返回数据至L1请求者;若NVM行计数器大于Tlow,则在LLC上采用LRU策略来挑选替换块,并返回数据至L1请求者。
在本实施例中,通过在gem5多核模拟器中运行SPEC CPU2006,作为多线程应用程序,根据性能评估参数给出实验的统计数据。HAPBypass算法包括:
1、gem5实现细节:在gem5/src/mem/cache/tags/目录下添加新的脚本文件,hap_static.py。主要是在LRU算法中的寻找替换缓存块部分进行设计。
2、分别在gem5/src/mem/cache/tags目录下的SConscipt和Tags.py中添加hap_static的相关信息,在gem5/configs/common/CacheConfig.py中也添加hap_static的相关信息。
python脚本需要一层一层的调用,对于上述的src文件和configs文件都是gem5中的配置文件,所以需一层一层的对它们进行修改,再将参数一层一层传入运行测试程序,这些操作都是为了确保运行测试程序时正确调用,以保证最后测试结果不会出错。
HAPStatic算法是将共享缓存划分为NVM和DRAM两个分区,通过设定两个分区的不同比例来提高程序性能。通过来自不同类型存储器的数据来调整NVM分区大小;当数据不命中发生并触发替换时,选择适当类型的缓存块位置的数据作为被替换的数据。
在另一实施例中,本发明还提供一种基于混合式内存结构的共享缓存替换装置,所述缓存包括NVM区和DRAM区,包括:
接收模块,接收L1cache发送的请求;
第三判断模块,用于判断请求的数据是否在LLC中,若请求的数据在LLC中,则返回数据至L1请求者;
第四判断模块,用于在第三判断模块判定请求的数据不在LLC中,判断LLC中的NVM行计数器是否大于Thigh;
第五判断模块,用于在第四判断模块判定LLC中的NVM行计数器大于Thigh时判定请求的数据是否属于NVM;
第一执行模块,用于在第五判断模块判定请求的数据属于NVM时,从NVM区中采取LRU策略来挑选替换的块;
第二执行模块,用于在第五判断模块判定请求的数据不属于NVM时,从LLC上采取LRU策略来挑选替换的块,并返回数据至L1请求者;
第六判断模块,用于在第四判断模块判定LLC中的NVM行计数器小于Thigh时判定LLC中的NVM行计数器是否小于Tlow;
第七判断模块,用于在第六判断模块判定NVM行计数器小于Tlow时判断请求的数据是否属于DRAM;
第三执行模块,用于在第七判断模块判定请求的数据属于DRAM时,从DRAM区中采取LRU策略来挑选替换的块,并返回数据至L1请求者;
第四执行模块,用于在第七判断模块判定请求的数据不属于DRAM时,从LLC区中采取LRU策略来挑选替换的块,并返回数据至L1请求者;
第五执行模块,用于在第六判断模块判定NVM行计数器大于Tlow时,在LLC上采用LRU策略来挑选替换块,并返回数据至L1请求者。
于本实施例中,基于传统的LRU替换建立LLC缓存,并将其集成到gem5中。修改主内存模块来建立模型模拟2GB混合内存:第一个512MB的容量是作为DRAM,剩下的1536MB是NVM。将HAP与传统LRU替换策略的实现进行比较。
在本发明中在SPEC CPU2006整点和浮点基准测试程序中挑选了16个作为本次的工作负载。SPEC CPU2006年的基准是SPEC的下一代,是一种产业标准化、CPU密集型基准测试套件,强调***的处理器、内存子***和编译器。
分别从加速比、IPC和共享缓存的未命中率这三个角度进行分析研究。
1)加速比:加速比是用来衡量在不同缓存划分机制下的性能提升效果。计算公式为:
2)IPC:IPC是指CPU每个时钟周期内所执行的指令数。IPC的值越高,表明性能越好。从IPC角度来看,不同的benchmark在采用LRU和HAPBypass是不同的。
3)缺失率:从命中率和缺失率的角度来看,缺失率越高性能越差,用HAPBypass和HAPStatic和LRU算法在不同benchmark情况下会有所不同。
下面通过在gem5多核模拟器中运行SPEC CPU2006,作为多线程应用程序,根据性能评估参数评测HAPBypass和HAPStatic算法的有效性。
表1模拟器基本配置
表2 SPEC CPU2006整点基准测试程序
表3 SPEC CPU2006浮点基准测试程序
HAPBypass算法性能分析:
从加速比的角度来看,如图3所示,横坐标为benchmark的类型,纵坐标为加速比,此图展现了不同benchmark在不同共享缓存机制的加速比。显而易见,对于gcc来说,采用HAPBypass算法明显比传统LRU算法更优,加速比为1.177,也就是在速度层面来看,HAPBypass算法提高了大约17.7%。其次是omnetpp,加速比接近1.1,HAPBypass算法提高了大约10%,对于namd、hmmer、sjeng、GemsFDTD、libquantum、astar、sphinx3来说,HAPBypass算法提高了不到1%。
从IPC角度看,如图4所示,可看出,gcc、hmmer、sjeng、GemsFDTD、omnetpp、astar、sphinx3的IPC在使用HAPBypass算法时,每个时钟周期执行的指令数得到了提升,意味着在HAPBypass算法在LRU算法基础上有了改进,最高的是omnetpp,采用HAPBypass时IPC较LRU时提升了17.72%。
从命中率和缺失率的角度来看,用HAPBypass算法和LRU算法在不同benchmark情况下会有所不同,如图5所示,横坐标表示benchmark类型,纵坐标是共享缓存缺失率,显而易见,gcc与omnetpp采用了HAPBypass算法后缓存命中率有所提高,gcc提高了20%,omnetpp提高了40%左右。
HAPStatic算法性能分析:
从加速比的角度看,如图6所示,采用HAPStatic算法在不同的DRAM与NVM比例时,加速比是不同,明显看出,对于gcc来说,当DRAM与NVM比例为5:7时加速比得到最大值,同时对于hmmer来说,DRAM与NVM比例为3:5时加速比得到最大值,因此对不不同的测试程序,当采取不同DRAM与NVM比例所达到的效果是不同的,看其他benchmark也可知,HAPStatic算法中总有一种比例划分会使得其加速比大于1,也就是性能较LRU相比会有所提高。
从IPC角度来看,不同的benchmark的在采用LRU和HAPStatic是不同的。IPC的值越高,表示性能越好,如图7所示,可看出,除了gromacs外别的benchmark的IPC都有所提高,不同的DRAM,NVM不同划分比例下IPC会有所不同。
从命中率和缺失率的角度来看,用HAPStatic算法和LRU算法在不同benchmark情况下会有所不同,并且DRAM,NVM不同划分比例时缺失率也会有所差别,如图8所示,横坐标表示benchmark类型,纵坐标是共享缓存缺失率,显而易见,gcc与libquantum采用了HAPStatic算法后与之前LRU算法缺失率并没有太大变化,都居高不下,h264ref采用HAPBypass算法后缓存命中率有所提高,不管DRAM,NVM划分比例为多少,缺失率都降低了。DRAM,NVM不同划分比例影响最大的有6个,分别是namd、soplex、hmmer、h264ref、omnetpp、sphinx3,在不同的划分比例时,除了h264ref缺失率都降低外,其他几个都忽高忽低。
最后说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本技术方案的宗旨和范围,其均应涵盖在本发明的保护范围当中。
Claims (4)
1.基于混合式内存结构的共享缓存替换算法,所述缓存包括NVM区和DRAM区,其特征在于,包括以下步骤:
判断L1cache发送请求的数据是否在LLC中,若请求的数据在LLC中,则返回数据至L1请求者;
若请求的数据不在LLC中,则判断LLC中的NVM行计数器是否大于Thigh,若NVM行计数器大于Thigh则判断请求的数据是否属于NVM,若请求的数据属于NVM,则从NVM区中采取LRU策略来挑选替换的块,若请求的数据不属于NVM,则从LLC上采取LRU策略来挑选替换的块,并返回数据至L1请求者;
若LLC中的NVM行计数器小于Thigh,则判断LLC中的NVM行计数器是否小于Tlow,若NVM行计数器小于Tlow,则判断请求的数据是否属于DRAM,若请求的数据属于DRAM,则从DRAM区中采取LRU策略来挑选替换的块,并返回数据至L1请求者,若请求的数据不属于DRAM,则从LLC上采取LRU策略来挑选替换的块,并返回数据至L1请求者;若NVM行计数器大于Tlow,则在LLC上采用LRU策略来挑选替换块,并返回数据至L1请求者。
2.根据权利要求1所述的基于混合式内存结构的共享缓存替换算法,其特征在于:通过来自不同类型存储器的数据来调整NVM分区大小;当数据不命中发生并触发替换时,选择适当类型的缓存块位置的数据作为被替换的数据。
3.基于混合式内存结构的共享缓存替换装置,所述缓存包括NVM区和DRAM区,其特征在于,包括:
接收模块,接收L1cache发送的请求;
第三判断模块,用于判断请求的数据是否在LLC中,若请求的数据在LLC中,则返回数据至L1请求者;
第四判断模块,用于在第三判断模块判定请求的数据不在LLC中,判断LLC中的NVM行计数器是否大于Thigh;
第五判断模块,用于在第四判断模块判定LLC中的NVM行计数器大于Thigh时判定请求的数据是否属于NVM;
第一执行模块,用于在第五判断模块判定请求的数据属于NVM时,从NVM区中采取LRU策略来挑选替换的块;
第二执行模块,用于在第五判断模块判定请求的数据不属于NVM时,从LLC上采取LRU策略来挑选替换的块,并返回数据至L1请求者;
第六判断模块,用于在第四判断模块判定LLC中的NVM行计数器小于Thigh时判定LLC中的NVM行计数器是否小于Tlow;
第七判断模块,用于在第六判断模块判定NVM行计数器小于Tlow时判断请求的数据是否属于DRAM;
第三执行模块,用于在第七判断模块判定请求的数据属于DRAM时,从DRAM区中采取LRU策略来挑选替换的块,并返回数据至L1请求者;
第四执行模块,用于在第七判断模块判定请求的数据不属于DRAM时,从LLC区中采取LRU策略来挑选替换的块,并返回数据至L1请求者;
第五执行模块,用于在第六判断模块判定NVM行计数器大于Tlow时,在LLC上采用LRU策略来挑选替换块,并返回数据至L1请求者。
4.根据权利要求3所述的基于混合式内存结构的共享缓存替换装置,其特征在于,通过来自不同类型存储器的数据来调整NVM分区大小;当数据不命中发生并触发替换时,选择适当类型的缓存块位置的数据作为被替换的数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811008502.3A CN109189592B (zh) | 2018-08-31 | 2018-08-31 | 基于混合式内存结构的共享缓存替换算法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811008502.3A CN109189592B (zh) | 2018-08-31 | 2018-08-31 | 基于混合式内存结构的共享缓存替换算法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109189592A CN109189592A (zh) | 2019-01-11 |
CN109189592B true CN109189592B (zh) | 2022-03-25 |
Family
ID=64917645
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811008502.3A Expired - Fee Related CN109189592B (zh) | 2018-08-31 | 2018-08-31 | 基于混合式内存结构的共享缓存替换算法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109189592B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112230964A (zh) * | 2020-10-29 | 2021-01-15 | Oppo广东移动通信有限公司 | 应用程序开发、应用程序运行方法、装置、设备及介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6327644B1 (en) * | 1998-08-18 | 2001-12-04 | International Business Machines Corporation | Method and system for managing data in cache |
CN101944068A (zh) * | 2010-08-23 | 2011-01-12 | 中国科学技术大学苏州研究院 | 一种共享高速缓存的性能优化方法 |
CN106569960A (zh) * | 2016-11-08 | 2017-04-19 | 郑州云海信息技术有限公司 | 一种混合主存的末级缓存管理方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070067575A1 (en) * | 2005-09-20 | 2007-03-22 | Morris John M | Method of managing cache memory based on data temperature |
US8364898B2 (en) * | 2009-01-23 | 2013-01-29 | International Business Machines Corporation | Optimizing a cache back invalidation policy |
-
2018
- 2018-08-31 CN CN201811008502.3A patent/CN109189592B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6327644B1 (en) * | 1998-08-18 | 2001-12-04 | International Business Machines Corporation | Method and system for managing data in cache |
CN101944068A (zh) * | 2010-08-23 | 2011-01-12 | 中国科学技术大学苏州研究院 | 一种共享高速缓存的性能优化方法 |
CN106569960A (zh) * | 2016-11-08 | 2017-04-19 | 郑州云海信息技术有限公司 | 一种混合主存的末级缓存管理方法 |
Non-Patent Citations (1)
Title |
---|
《混合主存感知的末级缓存管理策略研究》;张德闪;《中国优秀硕士学位论文全文数据库(电子期刊)信息科技辑》;20170215;第2017年卷(第2期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN109189592A (zh) | 2019-01-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Zhang et al. | A permutation-based page interleaving scheme to reduce row-buffer conflicts and exploit data locality | |
Pichai et al. | Architectural support for address translation on gpus: Designing memory management units for cpu/gpus with unified address spaces | |
Loh | Extending the effectiveness of 3D-stacked DRAM caches with an adaptive multi-queue policy | |
Choukse et al. | Buddy compression: Enabling larger memory for deep learning and hpc workloads on gpus | |
US20080016297A1 (en) | Multi-Level Memory Architecture With Data Prioritization | |
Franey et al. | Tag tables | |
US8793434B2 (en) | Spatial locality monitor for thread accesses of a memory resource | |
Karnagel et al. | Big data causing big (TLB) problems: Taming random memory accesses on the GPU | |
Gaur et al. | Base-victim compression: An opportunistic cache compression architecture | |
CN103019955A (zh) | 基于pcram主存应用的内存管理方法 | |
Wu et al. | Joint management of CPU and NVDIMM for breaking down the great memory wall | |
Pan et al. | Tintmalloc: Reducing memory access divergence via controller-aware coloring | |
CN109189592B (zh) | 基于混合式内存结构的共享缓存替换算法及装置 | |
Chang et al. | To move or not to move? page migration for irregular applications in over-subscribed gpu memory systems with dynamap | |
Zhang et al. | Design and optimization of large size and low overhead off-chip caches | |
Lee et al. | Characterization of Android memory references and implication to hybrid memory management | |
Rai et al. | Exploiting Dynamic Reuse Probability to Manage Shared Last-level Caches in CPU-GPU Heterogeneous Processors | |
US11599470B2 (en) | Last-level collective hardware prefetching | |
Stuecheli et al. | Coordinating DRAM and last-level-cache policies with the virtual write queue | |
Jia et al. | Coordinate channel-aware page mapping policy and memory scheduling for reducing memory interference among multimedia applications | |
Yoon et al. | Self-learnable cluster-based prefetching method for DRAM-flash hybrid main memory architecture | |
Chen et al. | Scattered superpage: A case for bridging the gap between superpage and page coloring | |
CN108509151B (zh) | 一种基于dram内存控制器的行缓存方法和*** | |
Zhang et al. | Locality protected dynamic cache allocation scheme on GPUs | |
Pan et al. | Lsp: Collective cross-page prefetching for nvm |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for 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: 20220325 |
|
CF01 | Termination of patent right due to non-payment of annual fee |