CN113297098B - 一种面向高性能的适应预取的智能缓存替换策略 - Google Patents
一种面向高性能的适应预取的智能缓存替换策略 Download PDFInfo
- Publication number
- CN113297098B CN113297098B CN202110606031.1A CN202110606031A CN113297098B CN 113297098 B CN113297098 B CN 113297098B CN 202110606031 A CN202110606031 A CN 202110606031A CN 113297098 B CN113297098 B CN 113297098B
- Authority
- CN
- China
- Prior art keywords
- cache
- line
- isvm
- predictor
- demand
- 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
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/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0811—Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
-
- 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/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0646—Configuration or reconfiguration
-
- 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/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
- G06F12/0871—Allocation or management of cache space
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Biology (AREA)
- Evolutionary Computation (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Bioinformatics & Computational Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明公开一种面向高性能的适应预取的智能缓存替换策略,在存在硬件预取器的情况下,区分预取和需求请求,利用基于ISVM(Integer Support Vector Machines)的预取预测器对预取访问加载的缓存行进行重引用间隔预测,利用基于ISVM的需求预测器对需求访问加载的缓存行进行重引用间隔预测。输入当前访存的load指令的PC地址和访存历史记录中过去load指令的PC地址,针对预取和需求请求设计不同的ISVM预测器,以请求类型为粒度对加载的缓存行进行重用预测,改善存在预取时缓存行重用预测的准确度,更好的融合了硬件预取和缓存替换带来的性能提升。
Description
技术领域
本发明属于计算机体系缓存系统结构领域,具体涉及一种面向高性能的适应预取的智能缓存替换策略。
背景技术
计算机内存的性能提升速度远远落后于处理器性能提升的速度,形成了阻碍处理器性能提升的“存储墙”,从而使得内存系统成为整个计算机系统的性能瓶颈之一。末级缓存(LLC)缓解了CPU和DRAM之间的延迟和带宽方面的巨大差异,改善处理器的内存子系统是缓解“存储墙”问题的关键。一种方法依赖于设计合理的高速缓存替换策略来有效地管理片上末级高速缓存,这些方法通过动态修改高速缓存插入,以对数据的重用性和重要性进行优先级排序,从而减少插入缓存行对LLC的干扰。另一种缓解“存储墙”问题的主流方法是使用硬件预取器,在实际引用之前将数据预取到缓存层次结构中,尽管预取可以隐藏内存延迟并显着提高性能,但是错误的预取会造成缓存污染,可能会严重降低处理器性能。
随着处理器核数的增加以及工作负载多样性和复杂性的增加,CPU处理器上的替换策略已经从越来越复杂的基于启发式的解决方案发展到基于学习的解决方案。基于学习的缓存替换策略是从过去的缓存行为中学习数据的重用性,以预测未来缓存行插入的优先级。例如,某个load指令在过去引入了产生缓存命中的缓存行,那么将来同一load指令很可能引入也将产生缓存命中的缓存行。
缓存替换策略通过预测高速缓存行的重引用间隔(Re-Reference PredictionValue,RRPV)来模拟最佳替换决策,重用间隔表示缓存行的相对重要性,重用间隔小的缓存行表示即将被重用,因此以高优先级在缓存中插入该行,保证该行可以保留在缓存中。重用间隔大的缓存行则以低优先级插入,保证尽快被驱逐。基于学习的缓存替换策略中,常见的是基于引起缓存访问的内存指令的程序计数器(Program Counter,PC)预测缓存行的重用间隔,如果来自同一个PC的大多数缓存访问具有相似的重用行为,则基于PC可以准确预测缓存行的重用间隔。例如,SHiP提出了一种基于PC的重用预测算法,以预测高速缓存的重用行为并使用该预测来指导高速缓存的插入位置。Hawkeye根据过去的缓存访问来重建Belady-MIN算法,训练一个基于PC的预测器,从MIN算法对过去的内存访问进行的决策中学习,然后Hawkeye根据预测器所学的内容做出替换决策。
Zhan等人将缓存替换建模为序列标签问题,并采用长短时记忆网络模型(LongShort Term Memory,LSTM)训练离线预测器,由于输入长期的过去load指令的历史记录,提高了预测的准确率。进一步提出了在线缓存替换策略Glider,在硬件上设计了可以紧凑地表示程序长期的load指令历史记录的特征,输入到在线ISVM,硬件上使用ISVM表跟踪每个PC的ISVM的权重。基于ISVM的在线预测器提供的准确性和性能优于前沿的缓存替换策略中使用的预测器。然而上述的研究没有考虑存在预取器的情况,存在预取时,由于没有区分预取和需求请求,导致预测的准确率下降,预取造成的缓存污染也会干扰缓存空间的管理,降低内存子系统性能。从缓存管理的角度来看,预取请求具有与需求请求不同的属性,通常由需求请求插入LLC的缓存行比预取请求对程序的性能更重要。
本发明提出了一种适应预取的智能缓存替换策略,以请求类型为粒度对加载的缓存行进行重用预测,输入当前访存的load指令的PC地址和访存历史记录中过去load指令的PC地址,针对预取和需求请求设计不同的ISVM预测器,改善存在预取时缓存行重用预测的准确度,更好的融合硬件预取和缓存替换带来的性能提升。
发明内容
为了解决现代高性能处理器中普遍使用硬件预取器,但存在预取时最新的智能缓存替换策略表现出的性能增益下降的问题,本发明提出了适应预取的智能缓存替换策略,以请求类型(需求或预取)为粒度进行重用预测。首先,选取末级缓存中部分缓存组作为采样集,需求预测器的输入数据包括采样集中产生需求访问的load指令的PC地址,以及PCHR中存放的过去的PC地址;预取预测器的输入数据包括采样集中触发预取访问的load指令的PC地址,以及PCHR中存放的过去的PC地址;其次,增加组件DMINgen,在硬件上重构Demand-MIN算法为训练预测器的数据提供标签,标签分为正例标签和负例标签,正例标签表示当前访问的缓存行是缓存友好的,可以插入缓存中,负例标签表示当前访问的缓存行是缓存不友好的,不能插入缓存中。预测器训练阶段,基于ISVM的预取预测器和基于ISVM的需求预测器根据采样集的访存行为分别进行训练,训练方式相同,具体为:预测器读取输入数据后,在预测器对应的ISVM表中查找与当前输入数据PC和PCHR对应的权重,如果输入数据对应的标签为正例标签,则权重将增加1;否则,权重将减1。使用预测器进行预测时,两种预测器的预测过程相同,具体为:根据访问的请求类型选择需求预测器或预取预测器进行预测,预测器的每个ISVM表由16个权重组成,用于查找PCHR中不同PC对应的权重值,其中每个ISVM表对应一个PC,ISVM表中的权重由训练得到;首先,为PCHR中的每个PC创建一个4位哈希,用于找到与PCHR当前内容相对应的权重,并在相应的ISVM表中查找权重;然后,将这些权重相加,如果总和大于或等于阈值,则预测当前加载的缓存行是缓存友好,并以高优先级插入它;如果总和小于0,则预测该行不符合缓存要求,对应低优先级插入该行;对于其余情况,则预测该行对缓存友好,且置信度较低,并以中等优先级插入该行。高优先级插入的行在缓存中保留更长的时间,低优先级的行则尽快从缓存中驱逐。适应预取的智能缓存替换策略提高了存在预取器时缓存行重用预测的准确度,避免预取造成的缓存污染,在缓存中保留更多有用的数据,从而提升内存子系统的性能。
具体技术方案如下:
一种面向高性能的适应预取的智能缓存替换策略,区分预取和需求请求,利用基于ISVM的预取预测器对预取访问加载的缓存行进行重引用间隔预测,利用基于ISVM的需求预测器对需求访问加载的缓存行进行重引用间隔预测,根据预测结果,进行缓存替换,每个预测器对应一组ISVM表,ISVM表A对应一个PC地址B,ISVM表A由PC地址B和16个ISVM权重组成,其中16个ISVM权重对应除B之外的、PCHR中曾经出现过的、且出现次数最多的16个PC地址,权重的初值设定为0。
预测器的训练和预测过程包括以下步骤:
步骤1,选取末级缓存中部分缓存组作为采样集,需求预测器的输入数据包括产生需求访问的load指令的PC地址,以及PCHR中存放的过去的PC地址;
预取预测器的输入数据包括触发预取访问的load指令的PC地址,以及PCHR中存放的过去的PC地址;
步骤2,增加组件DMINgen,在硬件上重构Demand-MIN算法为训练预测器的输入数据提供训练标签,标签分为正例标签和负例标签,正例标签表示当前访问的缓存行是缓存友好的,可以插入缓存中,负例标签表示当前访问的缓存行是缓存不友好的,不能插入缓存中,具体产生方法如下:
对于以预取访问P结束的使用间隔,即D-P和P-P,DMINgen认定当前访问的缓存行不会产生需求命中,此时对上一次访问该缓存行的PC产生一个负例标签;以预取访问P结束的使用间隔不会增加需求命中次数,驱逐它们可以为产生需求命中的其他间隔提供空间,减少需求缺失次数;
对于以需求访问D结束的使用间隔,即P-D和D-D,DMINgen认定当前访问的缓存行会产生需求命中,在可以产生需求命中的情况下,如果使用间隔内任意时刻缓存空间都未满,则此时对上一次访问该缓存行的PC产生一个正例标签;如果使用间隔内存在某一时刻缓存空间已满,则此时对上一次访问该缓存行的PC产生一个负例标签;
所述的使用间隔指前一次访问行X到再次访问行X的时间间隔;行X的使用间隔表示行X对缓存的需求,用于确定对行X的引用是否会导致缓存命中;
步骤3,基于ISVM的预取预测器和基于ISVM的需求预测器根据采样集的访存行为分别进行训练,训练方式相同,具体为:预测器读取输入数据后,在预测器对应的ISVM表中查找与当前输入数据PC和PCHR对应的权重,如果输入数据对应的标签为正例标签,则权重将增加1;否则,权重将减1;如果ISVM表中当前输入数据PC和PCHR对应的权重之和大于阈值,则本次不再更新权重。
步骤4,为了进行以请求类型为粒度的缓存行重用间隔预测,当使用预测器进行预测时,根据访问的请求类型选择需求预测器或预取预测器进行预测,预测器的每个ISVM表由16个权重组成,用于查找PCHR中不同PC对应的权重值,其中每个ISVM表对应一个PC,ISVM表中的权重由训练得到;首先,为PCHR中的每个PC创建一个4位哈希,用于找到与PCHR当前内容相对应的权重,并在相应的ISVM表中查找权重;然后,将这些权重相加,如果总和大于或等于阈值,则预测当前加载的缓存行是缓存友好,并以高优先级插入它;如果总和小于0,则预测该行不符合缓存要求,对应低优先级插入该行;对于其余情况,则预测该行对缓存友好,且置信度较低,并以中等优先级插入该行,所述优先级代表行的重用性和重要性,高优先级的行在缓存中驻留更长时间,低优先级的行则尽早的被驱逐。
使用两个不同的预测器将需求和预取请求的预测分开,能够更好地了解导致需求和预取访问的load指令的缓存行为。例如,一个load指令,它加载对缓存友好的需求访问,但是触发不正确的预取,将被需求预测器分类为对缓存友好的行,而被预取预测器分类为对缓存不利的行。
步骤5,在替换高速缓存行时,将选择低优先级的缓存行作为驱逐候选对象;如果不存在这样的行,则从缓存友好的行中选出进入缓存最早的行逐出。
区分预取和需求请求提高了重用间隔预测的准确率,则可以保留更多有用的缓存行并避免预取造成的缓存污染,改善内存子系统的性能。
与现有技术相比,本发明具有以下优点:
硬件预取器通过预先获取有用的数据来提高性能,但缓存预取和替换策略之间会存在干扰,预取引起的缓存污染会降低处理器的性能,替换策略对预取和需求请求的处理方式相同会降低替换算法的性能增益。考虑到预取和需求请求性质的不同,适应预取的智能缓存替换策略对需求和预取请求训练不同的预测器,输入当前PC和访存历史记录中过去load指令的PC序列,预测需求和预取访问的缓存行插入的优先级。适应预取的智能缓存替换策略可以减轻预取对替换策略的干扰,提高重用间隔预测的准确率,保留有用的缓存行并避免预取造成的缓存污染,更好的融合硬件预取和缓存替换带来的性能优势。
附图说明
图1为适应预取的智能缓存替换策略框架图
图2为Demand-MIN算法如何减少需求缺失数的示意图
图3为基于ISVM的需求预测器和预取预测器的示意图
图4为适应预取的缓存替换策略与其它前沿替换算法的IPC对比图
图5为适应预取的缓存替换策略与其它前沿替换算法的LLC需求访问缺失率对比图。
具体实施方式
为使本发明的目的,技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。
本发明所涉及的是一种适应预取的智能缓存替换策略,如图1所示,它的主要组件是做出重用间隔预测的需求请求预测器和预取请求预测器,以及模拟Demand-MIN算法提供训练预测器输入标签的DMINgen。该设计主要包括需求预测器和预取预测器的训练和预测两部分。需求预测器的输入数据包括产生需求访问的load指令的PC地址,以及PCHR中存放的过去的PC地址;预取预测器的输入数据包括触发预取访问的load指令的PC地址,以及PCHR中存放的过去的PC地址;DMINgen模拟Demand-MIN算法为训练预测器的输入数据提供训练标签。并基于采样集的缓存访问行为训练两种预测器。在每次缓存访问时,利用基于ISVM的预取预测器对预取访问加载的缓存行进行重引用间隔预测,利用基于ISVM的需求预测器对需求访问加载的缓存行进行重引用间隔预测;通过区分预取和需求请求的预测,提高缓存行重用间隔预测的准确率。具体步骤如下:
步骤1,硬件上增加PC历史寄存器(PC History Register,PCHR),用于保存程序运行过程中过去的load指令的PC历史记录,较长的PC记录可以改善预测的准确率。选取末级缓存中部分缓存组作为采样集,需求预测器的输入数据包括产生需求访问的load指令的PC地址,以及PCHR中存放的过去的PC地址;预取预测器的输入数据包括触发预取访问的load指令的PC地址,以及PCHR中存放的过去的PC地址。
步骤2,DMINgen为训练预测器的输入数据提供训练标签。DMINgen扩展了Hawkeye中定义的使用间隔概念,细粒度标识使用间隔的端点为需求访问(D)或预取访问(P),区分请求类型后的使用间隔包括D-D,P-D,P-P,D-P;
对于以预取访问P结束的使用间隔,即D-P和P-P,DMINgen认定当前访问的缓存行不会产生需求命中,此时对上一次访问该缓存行的PC产生一个负例标签;DMINgen优先逐出这种不会产生需求命中的缓存行;
对于以需求访问D结束的使用间隔,即P-D和D-D,DMINgen认定当前访问的缓存行会产生需求命中,在可以产生需求命中的情况下,如果使用间隔内任意时刻缓存空间都未满,则此时对上一次访问该缓存行的PC产生一个正例标签;如果使用间隔内存在某一时刻缓存空间已满,则此时对上一次访问该缓存行的PC产生一个负例标签;
如图2所示,该图显示了一个访存序列,其中虚线框内的为预取访问,非虚线框内的为需求访问。对于可以容纳2个缓存行并最初保留A和B的缓存,当行C加载到空间已满的缓存中时,驱逐A或B会导致不同的需求缺失数。观察图中的访存序列,在时间t=1处,DMINgen选择驱逐B,由于B将在时间t=2时被预取,在t=3时对B的需求访问命中,随后A在t=4时同样需求命中。DMINgen驱逐当前访存序列中最远预取的B,同时对上一次访问B的PC产生一个负例标签,相对于在t=1时驱逐当前访存序列中最远重用的A,DMINgen减少了一次需求缺失次数,降低需求缺失数可以改善程序的性能。
步骤3,末级缓存中部分缓存组作为采样集,按照访问的请求类型,使用两个不同的预测器把需求和预取请求的训练分开。基于ISVM的预取预测器和基于ISVM的需求预测器根据采样集的访存行为分别进行训练,训练方式相同,具体为:预测器读取输入数据后,在预测器对应的ISVM表中查找与当前输入数据PC和PCHR对应的权重,如果输入数据对应的标签为正例标签,则权重将增加1;否则,权重将减1;如果ISVM表中当前输入数据PC和PCHR对应的权重之和大于阈值,则本次不再更新权重,超过阈值后不再更新权重可防止权重全部饱和到其极值,因此预测器可以对程序运行行为的变化做出快速响应来提高预测精度。本实例中的阈值会在一组固定的阈值(0、30、100、300和3000)中动态选择。
步骤4,为了进行以请求类型为粒度的缓存行重用间隔预测,如图3所示,两种预测器的预测过程相同,具体包括以下步骤:
根据访问的请求类型选择需求预测器或预取预测器进行预测,预测器的每个ISVM表由16个权重组成,用于查找PCHR中不同PC对应的权重值,其中每个ISVM表对应一个PC,ISVM表中的权重由训练得到;首先,为PCHR中的每个PC创建一个4位哈希,4位哈希所表示的16个数分别对应ISVM表中的16个权重,根据每次生成的数就可以在相应的ISVM表中查找权重;然后,将这些权重相加,如果总和大于或等于阈值,则预测当前加载的缓存行是缓存友好,并以高优先级插入它;如果总和小于0,则预测该行不符合缓存要求,对应低优先级插入该行;对于其余情况,则预测该行对缓存友好,且置信度较低,并以中等优先级插入该行;
例如,在图3中,PCHR中包含PC1,PC2,PC6,PC10和PC15,结合产生本次访问的当前PC和访存请求类型,我们在对应的ISVM表中查找PCHR中不同PC对应的权重值,即weight1,weight2,weight6,weight10,weight15,将这些权重相加,如果总和大于或等于阈值,我们预测当前访问的缓存行是缓存友好的,以高优先级(RRPV=0)插入它;如果总和小于0,则我们预测该行不符合缓存要求,并以低优先级(RRPV=7)插入该行;对于其余情况,我们确定该行对缓存友好,且置信度较低,并以中等优先级(RRPV=2)插入该行。本实施例中阈值取60。缓存行插入的优先级代表了行的重用性和重要性,高优先级的行在缓存中驻留更长时间,低优先级的行则尽早的被驱逐,从而在缓存中保留更多有用的缓存行。
步骤5,在替换高速缓存行时,将选择低优先级插入的行(RRPV=7)作为驱逐候选对象,如果不存在这样的行,则从缓存友好的行中选出进入缓存最早的行逐出;
由于预取请求和需求请求具有不同的性质,设计不同的预测器可以提高缓存行重用预测的准确率,在缓存行插入和驱逐时做出更准确的决策。在缓存中保留更多有用的缓存行,并避免预取造成的缓存污染,更好的融合硬件预取和缓存替换带来的性能优势。
本发明的适应预取的智能缓存替换策略,缓存预取和缓存替换作为缓存管理的两种独立的技术,它们之间的交互会造成应用程序的性能差异。尽管预取可以隐藏内存延迟并提高性能,但是错误的预取会造成缓存污染,无法适应预取的缓存替换策略会造成性能差异甚至下降。因此,我们提出了一种新的适应预取的智能缓存替换策略,区分预取和需求请求,为两种不同类型的请求设计不同的基于ISVM的预测器,将机器学习应用于支持预取的缓存管理,改善重用间隔预测的准确率,减轻缓存预取对替换策略的干扰,支持预取的智能替换策略可以更好的融合硬件预取和缓存替换带来的性能优势。本Cache管理策略使用第二届JILP缓存替换锦标赛(CRC2)发布的仿真框架对模型进行评估,该框架基于ChampSim,经过实验,得出相关数据。图4是适应预取的缓存替换策略(Prefetch-AdaptiveIntelligent Cache Replacement Policy,PAIC)与其它前沿替换算法相对LRU的IPC加速比对比图,图5是适应预取的缓存替换策略与其它前沿替换算法的LLC需求访问缺失率对比图,两个图都是在访存密集型SPEC2006和SPEC2017基准套件上进行评估得出的。通过计算,单核配置存在预取器的情况下,适应预取的智能缓存替换策略相对于基准LRU(不存在预取器的LRU)改善了37.22%,SHiP的提升为32.93%,Hawkeye的提升为34.56%,Glider的提升为34.43%。图5表明适应预取的智能缓存替换策略相对于基准LRU平均需求访存缺失率减少了17.41%,而SHiP,Hawkeye和Glider的需求访存缺失率分别减少了13.66%,15.46%和15.48%。适应预取的智能缓存替换策略有效的融合了硬件预取和缓存替换带来的性能优势,保证了存在硬件预取的情况下,智能缓存替换策略带来的性能增益,提高了系统的性能。
Claims (4)
1.一种面向高性能的适应预取的智能缓存替换策略,其特征在于,区分预取和需求请求,利用基于ISVM的预取预测器对预取访问加载的缓存行进行重引用间隔预测,利用基于ISVM的需求预测器对需求访问加载的缓存行进行重引用间隔预测,根据预测结果,进行缓存替换,其中,每个预测器对应一组ISVM表,其中,ISVM表A对应一个PC地址B,ISVM表A由PC地址B和16个ISVM权重组成,其中16个ISVM权重对应除B之外的、PCHR中曾经出现过的、且出现次数最多的16个PC地址,权重的初值设定为0。
2.根据权利要求1所述的一种面向高性能的适应预取的智能缓存替换策略,其特征在于,两种预测器的训练过程相同,具体包括以下步骤:
训练数据准备阶段
步骤1,选取末级缓存中部分缓存组作为采样集,需求预测器的输入数据包括产生需求访问的load指令的PC地址,以及PCHR中存放的过去的PC地址;
预取预测器的输入数据包括触发预取访问的load指令的PC地址,以及PCHR中存放的过去的PC地址;
硬件上增加的PCHR,用于保存程序运行过程中过去的load指令的PC历史记录;
步骤2,增加组件DMINgen,在硬件上重构Demand-MIN算法为训练预测器的数据提供标签,标签分为正例标签和负例标签,正例标签表示当前访问的缓存行是缓存友好的,可以插入缓存中,负例标签表示当前访问的缓存行是缓存不友好的,不能插入缓存中,具体产生方法如下:
对于以预取访问P结束的使用间隔,即D-P和P-P,DMINgen认定当前访问的缓存行不会产生需求命中,此时对上一次访问该缓存行的PC产生一个负例标签;
对于以需求访问D结束的使用间隔,即P-D和D-D,DMINgen认定当前访问的缓存行会产生需求命中,在可以产生需求命中的情况下,如果使用间隔内任意时刻缓存空间都未满,则此时对上一次访问该缓存行的PC产生一个正例标签;如果使用间隔内存在某一时刻缓存空间已满,则此时对上一次访问该缓存行的PC产生一个负例标签;
所述的使用间隔指前一次访问行X到再次访问行X的时间间隔;行X的使用间隔表示行X对缓存的需求,用于确定对行X的引用是否会导致缓存命中;
预测器训练阶段
基于ISVM的预取预测器和基于ISVM的需求预测器根据采样集的访存行为分别进行训练,训练方式相同,具体为:预测器读取输入数据后,在预测器对应的ISVM表中查找与当前输入数据PC和PCHR对应的权重,如果输入数据对应的标签为正例标签,则权重将增加1;否则,权重将减1;如果ISVM表中当前输入数据PC和PCHR对应的权重之和大于阈值,则本次不再更新权重。
3.根据权利要求1所述的一种面向高性能的适应预取的智能缓存替换策略,其特征在于,两种预测器的预测过程相同,具体包括以下步骤:
根据访问的请求类型选择需求预测器或预取预测器进行预测,首先,用哈希算法为PCHR中的每个PC地址生成一个四位的二进制值C,这16个值分别对应ISVM表中的16个权重,进而根据C在ISVM表中查找到PCHR中PC地址对应的权重;然后,将这些权重相加,如果总和大于或等于阈值,则预测当前加载的缓存行是缓存友好,并以高优先级插入它;如果总和小于0,则预测该行不符合缓存要求,对应低优先级插入该行;对于其余情况,则预测该行对缓存友好,且置信度较低,并以中等优先级插入该行,所述优先级代表行的重用性和重要性,高优先级的行在缓存中驻留更长时间,低优先级的行则尽早的被驱逐。
4.根据权利要求1所述的一种面向高性能的适应预取的智能缓存替换策略,其特征在于,缓存替换方法具体如下:
在替换高速缓存行时,将选择低优先级的缓存行作为驱逐候选对象;如果不存在这样的行,则从缓存友好的行中选出进入缓存最早的行逐出。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110606031.1A CN113297098B (zh) | 2021-05-24 | 2021-05-24 | 一种面向高性能的适应预取的智能缓存替换策略 |
PCT/CN2021/119290 WO2022247070A1 (zh) | 2021-05-24 | 2021-09-18 | 一种面向高性能的适应预取的智能缓存替换策略 |
US17/719,304 US12093188B2 (en) | 2021-05-24 | 2022-04-12 | Prefetch-adaptive intelligent cache replacement policy for high performance |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110606031.1A CN113297098B (zh) | 2021-05-24 | 2021-05-24 | 一种面向高性能的适应预取的智能缓存替换策略 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113297098A CN113297098A (zh) | 2021-08-24 |
CN113297098B true CN113297098B (zh) | 2023-09-01 |
Family
ID=77326496
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110606031.1A Active CN113297098B (zh) | 2021-05-24 | 2021-05-24 | 一种面向高性能的适应预取的智能缓存替换策略 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN113297098B (zh) |
WO (1) | WO2022247070A1 (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US12093188B2 (en) | 2021-05-24 | 2024-09-17 | Beijing University Of Technology | Prefetch-adaptive intelligent cache replacement policy for high performance |
CN113297098B (zh) * | 2021-05-24 | 2023-09-01 | 北京工业大学 | 一种面向高性能的适应预取的智能缓存替换策略 |
CN113760787B (zh) * | 2021-09-18 | 2022-08-26 | 成都海光微电子技术有限公司 | 多级高速缓存数据推送系统、方法、设备和计算机介质 |
CN114816734B (zh) * | 2022-03-28 | 2024-05-10 | 西安电子科技大学 | 一种基于访存特征的Cache旁路系统及其数据存储方法 |
CN116107926B (zh) * | 2023-02-03 | 2024-01-23 | 摩尔线程智能科技(北京)有限责任公司 | 缓存替换策略的管理方法、装置、设备、介质和程序产品 |
CN117573574B (zh) * | 2024-01-15 | 2024-04-05 | 北京开源芯片研究院 | 一种预取方法、装置、电子设备及可读存储介质 |
CN118035135B (zh) * | 2024-02-29 | 2024-08-09 | 北京开元维度科技有限公司 | 一种缓存替换方法及存储介质 |
CN118295936B (zh) * | 2024-06-06 | 2024-08-02 | 北京开源芯片研究院 | 高速缓存替换策略的管理方法、装置及电子设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH09330267A (ja) * | 1996-06-11 | 1997-12-22 | Sony Corp | メモリ制御装置およびメモリ制御方法、並びに画像生成装置 |
US7539608B1 (en) * | 2002-05-10 | 2009-05-26 | Oracle International Corporation | Techniques for determining effects on system performance of a memory management parameter |
US8626791B1 (en) * | 2011-06-14 | 2014-01-07 | Google Inc. | Predictive model caching |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10185668B2 (en) * | 2016-04-08 | 2019-01-22 | Qualcomm Incorporated | Cost-aware cache replacement |
US11003592B2 (en) * | 2017-04-24 | 2021-05-11 | Intel Corporation | System cache optimizations for deep learning compute engines |
US10261806B2 (en) * | 2017-04-28 | 2019-04-16 | International Business Machines Corporation | Adaptive hardware configuration for data analytics |
CN113297098B (zh) * | 2021-05-24 | 2023-09-01 | 北京工业大学 | 一种面向高性能的适应预取的智能缓存替换策略 |
-
2021
- 2021-05-24 CN CN202110606031.1A patent/CN113297098B/zh active Active
- 2021-09-18 WO PCT/CN2021/119290 patent/WO2022247070A1/zh active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH09330267A (ja) * | 1996-06-11 | 1997-12-22 | Sony Corp | メモリ制御装置およびメモリ制御方法、並びに画像生成装置 |
US7539608B1 (en) * | 2002-05-10 | 2009-05-26 | Oracle International Corporation | Techniques for determining effects on system performance of a memory management parameter |
US8626791B1 (en) * | 2011-06-14 | 2014-01-07 | Google Inc. | Predictive model caching |
Non-Patent Citations (1)
Title |
---|
面向Web系统热点数据预测及缓存管理的研究;韩兵;张转霞;方英兰;;信息技术与信息化(第12期) * |
Also Published As
Publication number | Publication date |
---|---|
WO2022247070A1 (zh) | 2022-12-01 |
CN113297098A (zh) | 2021-08-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113297098B (zh) | 一种面向高性能的适应预取的智能缓存替换策略 | |
US12093188B2 (en) | Prefetch-adaptive intelligent cache replacement policy for high performance | |
US7502890B2 (en) | Method and apparatus for dynamic priority-based cache replacement | |
CN107479860B (zh) | 一种处理器芯片以及指令缓存的预取方法 | |
US20180300258A1 (en) | Access rank aware cache replacement policy | |
US10684857B2 (en) | Data prefetching that stores memory addresses in a first table and responsive to the occurrence of loads corresponding to the memory addresses stores the memory addresses in a second table | |
Srivastava et al. | Proof of Optimality based on Greedy Algorithm for Offline Cache Replacement Algorithm. | |
US20210182214A1 (en) | Prefetch level demotion | |
US20140195771A1 (en) | Anticipatorily loading a page of memory | |
US6662273B1 (en) | Least critical used replacement with critical cache | |
US11880310B2 (en) | Cache access measurement deskew | |
US12066935B2 (en) | Cache line compression prediction and adaptive compression | |
Feng et al. | Dynamic access distance driven cache replacement | |
US9146870B2 (en) | Performance of accesses from multiple processors to a same memory location | |
US6760816B1 (en) | Critical loads guided data prefetching | |
US20150193348A1 (en) | High-performance data cache system and method | |
WO2008149348A2 (en) | Method architecture circuit & system for providing caching | |
Yang et al. | A prefetch-adaptive intelligent cache replacement policy based on machine learning | |
JP2007272681A (ja) | キャッシュメモリ装置及びそのキャッシュラインの入れ替え方法 | |
US20140136784A1 (en) | Enhanced cache coordination in a multi-level cache | |
US8191067B2 (en) | Method and apparatus for establishing a bound on the effect of task interference in a cache memory | |
CN107577517B (zh) | 一种面向NUMA内存架构的细粒度vCPU调度方法及系统 | |
US20100325361A1 (en) | Method for controlling cache | |
Anik et al. | Trace Characterization based Cache Replacement Policy | |
JP2004145780A (ja) | マルチプロセッサ・キャッシュ装置 |
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 |