CN109117388B - 针对内存端缓存的数据动态旁路装置及方法 - Google Patents
针对内存端缓存的数据动态旁路装置及方法 Download PDFInfo
- Publication number
- CN109117388B CN109117388B CN201810799294.7A CN201810799294A CN109117388B CN 109117388 B CN109117388 B CN 109117388B CN 201810799294 A CN201810799294 A CN 201810799294A CN 109117388 B CN109117388 B CN 109117388B
- Authority
- CN
- China
- Prior art keywords
- bypass
- signal
- hit rate
- dynamic
- data
- 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
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/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/0888—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using selective caching, e.g. bypass
-
- 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
-
- 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
-
- 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
- G06F2212/1021—Hit rate improvement
Abstract
本发明提供了一种针对内存端缓存的数据动态旁路装置,硬件计数器模块、命中率监测模块、旁路寄存器以及旁路决策器。本发明还提出一种针对内存端缓存的数据动态旁路方法,包括以下步骤:访存控制器单元在收到3D‑DRAM缓存的访问结果后,向数据动态旁路装置发送地址映射信息及请求类型;数据动态旁路装置接收并根据地址映射信息及请求类型记录和统计命中/缺失数,并生成旁路信号返回至访存控制器单元;读缺失时,访存控制器单元根据数据动态旁路装置返回的旁路信号进行缺失填充操作。本发明能够能够显著减少内存端缓存缺失填充操作引起的带宽开销,同时还能避免引起内存端缓存命中率恶化。
Description
技术领域
本发明涉及计算机多核存储系统领域,具体涉及一种基于内存端缓存的高速缓存的数据动态旁路装置及方法。
背景技术
在计算机领域,长期以来存在的问题是内存的存取速度严重滞后于处理器的计算速度,内存瓶颈导致高性能处理器难以发挥出应有的功效,从而对日益增长的高性能计算需求形成了极大的制约。这种阻碍处理器性能发挥的内存瓶颈被称为“内存墙”。近年来,存储器制造商研发出新型的3D存储器件来解决这一挑战。3D存储器件通过3D封装技术,将多层DRAM堆叠而成。其中,混合存储立方体(HybridMemory Cube,HMC)和高带宽存储(HighBandwidth Memory,HBM)是两种新型的3D存储器技术。3D存储芯片在带宽性能方面具有显著优势,然而由于容量相对较小且成本高,并不能取代传统DIMM。目前已有的解决方案是将3D存储器件和传统双列直插式存储模块(DIMM)结合使用,将3D存储器件构建为传统DIMM的内存端缓存,分别利用3D存储器件的高带宽、低延迟,以及传统DRAM大容量、低成本的优势,寻求性能和成本上的最优化存储系统的解决方案。
与传统存储系统相比,采用3D存储芯片构建的内存端缓存混合存储系统,其优势在于提供更高带宽,缩短访问延迟;缺点在于缓存一致性维护机制降低了系统带宽的利用率。由于DRAM缓存不具备SRAM缓存特定的访问端口(如标签/数据端口,读/写端口),所有的操作都需要共享同一个接口,所以3D存储器件用作内存端缓存时,维护缓存一致性所需的次级操作会引起传输链路高额的带宽开销,降低了系统带宽的利用率。维护缓存一致性的次级操作包括:缺失探测(为了检测缺失,需要查询DRAM缓存中的标签存储),写回探测(当片上末级高速缓存中的脏块被驱逐出时需要检测其是否存在DRAM缓存中),写回更新(如果写回探测命中,则更新DRAM缓存中的内容),写回填充(如果写回检测缺失,将主存中的数据填写进DRAM缓存)。其中较为显著的是当DRAM缓存发生读请求缺失时,访存控制器需要向主存请求数据,并将数据填回至缓存中,这一操作被称为缺失填充。缺失填充的带宽开销可达数据传输的60%-70%,但填充数据很多情况下并不会被后续应用程序所访问,因此对这一缺失填充操作进行优化从而降低带宽开销尤为必要。
通常采用旁路机制来减少缺失填充操作引起的带宽开销,其原理为改变数据传输通路,当读请求发生缺失时,直接从主存获取数据,取回的数据并不填回内存端缓存,从而减少3D存储器件的请求数量,提高器件的命中延迟,降低带宽开销。已有的旁路机制需要设定旁路概率,即不进行缺失填充操作的请求比例,这种方式存在两个明显缺陷:一是无法适应程序运行的各个阶段,如运行初期旁路缺失填充操作导致缓存无法快速装载数据;二是带宽优化效果与旁路概率呈正相关,旁路概率越高,优化效果越明显,但高的旁路概率会导致缓存中的内容无法及时更新造成后续访问缺失,恶化缓存命中率,降低系统性能。
发明内容
本发明要解决的技术问题是提供一种能够实现旁路机制的动态开启的针对内存端缓存的数据动态旁路装置及利用该装置进行的动态旁路方法,从而避免恶化缓存命中率,减少缺失填充操作引起的链路带宽开销。
为解决上述技术问题,本发明提出一种针对内存端缓存的数据动态旁路装置:
所述数据动态旁路装置(即,动态旁路装置)包括硬件计数器模块、命中率监测模块、旁路寄存器以及旁路决策器;
所述旁路决策器分别与硬件计数器模块、命中率监测模块和旁路寄存器信号相连,且旁路决策器、硬件计数器模块、命中率监测模块和旁路寄存器依次信号相连;
所述旁路决策器与外部的访存控制器单元信号相连。
注:本发明数据动态旁路装置集成与现有多核处理器中,上述访存控制器单元为对应多核处理器的访存控制器单元,具体内容见具体实施方式。
作为本发明针对内存端缓存的数据动态旁路装置的改进:
所述旁路决策器用于接收访存控制器单元发送的地址映射信息和请求类型,并根据所接收的信息产生计数使能信号和命中率检测使能信号,并将计数使能信号发送至硬件计数器模块,命中率检测使能信号发送至命中率监测模块;
所述硬件计数器模块用于接收旁路决策器所发送的计数使能信号,统计命中/缺失数;
所述命中率监测模块用于接收旁路决策器所发送的检测使能信号,读取硬件计数器模块中的命中缺失信息,计算缓存命中率,进行旁路策略判断并将旁路策略信息存放至旁路寄存器;
所述旁路寄存器用于存放旁路策略信息;
所述旁路决策器还根据地址映射信息和请求类型,以及读取旁路寄存器所获得的旁路策略信息,生成旁路信号并将其返回至访存控制器单元。
作为本发明针对内存端缓存的数据动态旁路装置的进一步改进:
所述硬件计数器模块由N组硬件计数器组成;
所述N为外部的3D-DRAM缓存的通道数;
所述3D-DRAM缓存中N个通道与N组硬件计数器一一对应,N个通道与N比特寄存器一一对应;
所述旁路寄存器为N比特寄存器,用于储存各通道的旁路策略信息。
注:现有内存端缓存包括信号依次相连的多核处理器、存储总线和存储系统,存储系统包括3D-DRAM缓存和DIMM主存,本发明数据动态旁路装置通过多核处理器的访存控制器单元与3D-DRAM缓存信号相连。
为解决上述技术问题,本发明还提出一种利用上述装置进行的针对内存端缓存的数据动态旁路方法,包括以下步骤:
S1、访存控制器单元在收到3D-DRAM缓存的访问结果后,向数据动态旁路装置发送地址映射信息及请求类型;
S2、数据动态旁路装置接收并根据地址映射信息及请求类型记录和统计命中/缺失数,并生成旁路信号返回至访存控制器单元;
S3、读缺失时,访存控制器单元根据数据动态旁路装置返回的旁路信号进行缺失填充操作。
注:数据动态旁路装置的具体结构及信号传递关系已于上文详细告知,即,所述数据动态旁路装置包括硬件计数器模块、命中率监测模块、旁路寄存器以及旁路决策器;
所述旁路决策器分别与硬件计数器模块、命中率监测模块和旁路寄存器信号相连,且旁路决策器、硬件计数器模块、命中率监测模块和旁路寄存器依次信号相连;
所述旁路决策器与外部的访存控制器单元信号相连。
作为本发明针对内存端缓存的数据动态旁路方法的改进:
所述步骤S2中统计命中/缺失数的方法如下:
1.1、产生通道的计数使能信号:
所述旁路决策器接收地址映射信息和请求类型,并通过地址映射信息判断其所属组别,最后结合请求类型产生计数使能信号;
所述旁路决策器将所产生计数使能信号发送至硬件计数器模块;
1.2、统计命中/缺失数:
所述硬件计数器模块接收步骤1.1旁路决策器所发送的计数使能信号,统计命中/缺失数。
作为本发明针对内存端缓存的数据动态旁路方法的进一步改进:
所述步骤1.1中旁路决策器通过地址映射信息判断其所属组别的方法如下:
将每个通道的Bank单元按照物理地址(即,Bank地址)的地址映射关系,由低至高分为参照组、采样组和跟随组;
所述参照组:不采用旁路策略,其命中率信息作为动态旁路方法的参照;
所述采样组:采用动态旁路策略,其命中率信息与参照组进行对比以获得旁路决策;
所述跟随组:采用动态旁路策略,不统计命中率,通过查询旁路寄存器以获得旁路决策;
所述请求类型包括读命中、读缺失、写命中和写缺失;
每组硬件计数器包括与该通道中参照组相对应的命中数计数器和缺失数计数器,以及与该通道中采样组相对应的命中数计数器和缺失数计数器;
所述步骤1.1中旁路决策器通过地址映射信息和请求类型产生对应硬件计数器的计数使能信号,规则如下:
地址映射信息对应参照组时:
读命中,旁路决策器产生该通道参照组所对应命中数计数器的计数使能信号,统计其命中数;
读缺失,旁路决策器产生该通道参照组所对应缺失数计数器的计数使能信号,统计其缺失数;
地址映射信息对应采样组时:
读命中,旁路决策器产生该通道采样组所对应命中数计数器的计数使能信号,统计其命中数;
读缺失,旁路决策器产生该通道采样组所对应缺失数计数器的计数使能信号,统计其缺失数。
作为本发明针对内存端缓存的数据动态旁路方法的进一步改进:
所述步骤S2中旁路决策器生成旁路信号方法如下;
2.1、若请求类型非读缺失,则旁路信号为0;
2.2、若请求类型为读缺失,则根据地址映射信息进行组别判断;
2.2.1、若为参照组,则旁路信号为0;
2.2.2、若为采样组,则依次进行以下步骤:
(1)、产生对应通道的检测使能信号,并将其发送至命中率监测模块132;
(2)、命中率监测模块132接收旁路决策器产生的检测使能信号,判断旁路策略并将旁路策略存放至旁路寄存器;
(3)、旁路决策器读取旁路寄存器中存放的旁路策略,生成对应的旁路信号;
2.2.3、若为跟随组,则读取旁路寄存器存放的旁路策略,生成对应的旁路信号。
作为本发明针对内存端缓存的数据动态旁路方法的进一步改进:
所述步骤(2)中命中率监测模块132接收旁路决策器产生的检测使能信号,判断旁路策略并将旁路策略存放至旁路寄存器的具体步骤如下:
(2.1)、读取与该通道相对应的一组硬件计数器;
(2.2)、判断步骤(2.1)中各硬件计数器是否溢出;若有溢出则右移一位;
(2.3)、根据步骤(2.2)各硬件计数器的数据信息,计算缓存命中率;
所述缓存命中率包括参照组命中率Rref和采样组命中率Rsamp;
(2.4)、设置旁路寄存器:若Rref,Rsamp均大于下限T且Rref-Rsamp<λRref,则将该通道对应的旁路寄存器置“1”,否则置“0”;其中系数λ经验值为1/20~1/10;
所述旁路寄存器置“0”,旁路信号为0,旁路寄存器置“1”,旁路信号为1。
作为本发明针对内存端缓存的数据动态旁路方法的进一步改进:
所述步骤S3中,采样组和跟随组读缺失时,访存控制器单元根据旁路决策器返回的旁路信号进行缺失填充操作的方法如下:
当旁路信号为0,则进行缺失填充操作;旁路信号为1,则不进行缺失填充操作。
本发明与现有技术相比,具有如下技术优势:
1、本发明所提出的动态旁路方法能够显著减少内存端缓存缺失填充操作引起的带宽开销,与不采取旁路机制相比减少50%。与概率性旁路机制相比,DRAM缓存缺失填充操作带宽消耗减少21%,次级操作整体开销减少30%。
2、本发明能够避免引起内存端缓存命中率恶化,与不采取旁路机制相比下降不超过5%。
3、本发明所提出的动态旁路方法所需硬件开销小,需要硬件计数器模块64字节,旁路寄存器1字节,控制方法简单有效。
附图说明
下面结合附图对本发明的具体实施方式作进一步详细说明。
图1为实施例1所示多核处理器100的结构示意图;
图2为图1中动态旁路装置130的结构示意图;
图3为图2中3D-DRAM缓存31的结构及分组采样示意图;
图4为图3中Bank地址映射示意图;
图5为图2中硬件计数器模块131结构示意图;
图6为图2中旁路寄存器133结构示意图;
图7为读缺失处理流程图,其中A图为常规读缺失处理流程图,B图为本发明动态旁路机制下读缺失处理流程图;
图8为本发明针对内存端缓存的数据动态旁路方法的流程示意图;
图9为图8中命中率监测模块132算法示意图;
图10为图8中旁路决策器134算法示意图。
具体实施方式
下面结合具体实施例对本发明进行进一步描述,但本发明的保护范围并不仅限于此。
多核处理器100包括处理器核110(多个)和访存控制器单元120,访存控制器单元120分别与每个处理器核110信号相连;每个处理器核110包括处理单元111,缓存112和网络接口113。
处理单元111用于实现对数据的处理。缓存112用于存储处理器核110频繁访问的数据块,一般作为该处理器核110的私有缓存。网络接口113作为该处理器核110链接处理器芯片100中片上网络的接口。
存储系统3包括3D-DRAM缓存31和DIMM主存32。
访存控制器单元120通过存储总线2分别与3D-DRAM缓存31和DIMM主存32信号相连,即每个处理器核110可通过访存控制器单元120对3D-DRAM缓存31及DIMM主存32进行访问。
注:上述内容均属于现有技术,故不对其进行详细介绍。
实施例1、针对内存端缓存的数据动态旁路装置,如图1~6所示,针对内存端缓存的数据动态旁路装置(下文中简称为动态旁路装置130)集成与多核处理器100中,与访存控制器单元120信号相连。
如图2所示,动态旁路装置130包括硬件计数器模块131、命中率监测模块132、旁路寄存器133以及旁路决策器134;旁路决策器134分别与访存控制器单元120、硬件计数器模块131、命中率监测模块132和旁路寄存器133信号相连,且旁路决策器134、硬件计数器模块131、命中率监测模块132和旁路寄存器133依次信号相连。
注:图2中箭头表示信号传递关系。
旁路决策器134为控制电路单元,接收访存控制器单元120所发送的地址映射信息和请求类型,产生硬件计数器模块131的计数使能信号、命中率监测模块132的检测使能信号,旁路决策器134还返回旁路信号至访存控制器单元120。
硬件计数器模块131用于接收旁路决策器134所生成的计数使能信号统计命中/缺失数。硬件计数器模块131由N组4×16比特硬件计数器组成。
命中率监测模块132为计算电路单元,用于接收旁路决策器134所生成的检测使能信号,读取硬件计数器模块131中统计的命中/缺失数,计算缓存命中率,进行旁路策略判断并将旁路策略信息存放至旁路寄存器133。
旁路寄存器133为N比特寄存器。用于存放旁路策略信息(“1”/“0”)。
注:上述旁路决策器134根据地址映射信息和请求类型,以及读取旁路寄存器133所获得的旁路策略信息,生成旁路信号并将其返回至访存控制器单元120。
上述N由3D-DRAM缓存31中通道数决定。
本实施例所采用的多核处理器100包含16个处理器核110,即,图1中所示核0~核15。其中各处理器核110之间通过片上网络互连(如图1中空心箭头所示)。每个处理器核110通过访存控制器单元120与存储系统3信号相连(如图1中实心箭头所示)。
如图3所示,本实施例中3D-DRAM缓存31为HBM标准,包含四个DRAM层和一个逻辑层(Logic Base)。不同层之间使用硅通孔(TSV)进行连接,通过高速高位宽IO接口与存储总线3相连。其中每个DRAM层中包含2个通道311,本实施例中3D-DRAM缓存31共有8个通道311,每个通道311中包含16个Bank单元;
本发明采用分组采样的方式实现动态旁路,将每个通道311的Bank单元分为参照组、采样组和跟随组,分组规则如下:
根据内存端缓存中采用的3D-DRAM缓存31结构,将3D-DRAM缓存31每个通道311的Bank单元按照物理地址的地址映射关系,由低至高分为参照组、采样组和跟随组。
如图4所示,物理地址中BA3:BA0为Bank地址,RA13:RA0为行地址,CA5:CA0为列地址(此处仅需Bank地址,故图4省略其他信号)。按照Bank地址由低至高分组,具体如表1所示。
表1
Bank地址 | 分组 |
0 | 参照组 |
1 | 采样组 |
2~15 | 跟随组 |
参照组、采样组和跟随组区别在于:
参照组:不采用动态旁路策略,其命中率信息作为动态旁路方法的参照。
采样组:采用动态旁路策略,其命中率信息与参照组进行对比以获得旁路决策。
跟随组:采用动态旁路策略,不统计命中率,通过查询旁路寄存器133以获得旁路决策。
如图5所示,本实施例硬件计数器模块141由N组4×16比特硬件计数器组成。每个通道311的参照组和采样组分别具有一个命中数计数器和一个缺失数计数器,每个命中数计数器和缺失数计数器均分别与旁路决策器144和命中率监测模块142信号相连;硬件计数器溢出的处理方法为右移一位。
如图6所示,旁路寄存器143包含N比特位信息(即N组旁路标识位),用于存放各通道311的旁路策略信息。
注:上述N由3D-DRAM缓存31中通道311的个数决定,故本实施例中N为8,即8个通道311分别与8组4×16比特硬件计数器一一对应,8个通道311还分别与8组旁路标识位一一对应。
由于每个DRAM层中每个2个通道311的工作内容完全相同,故本发明仅对一个通道311及其相对应的命中数计数器和缺失数计数器以及旁路标识位进行相应介绍。
实施例2、本发明利用上述动态旁路装置进行针对内存端缓存的数据动态旁路方法(下文中简称为动态旁路方法)如图7~10所示,通过实现旁路机制的动态开启,避免恶化缓存命中率,并减少缺失填充操作引起的链路带宽开销。
现有读缺失处理方式如下(即,无动态旁路装置130时读缺失处理方式):
根据图7A中箭头所示,访存控制器单元120在处理读请求时优先将请求通过存储总线2发送至3D-DRAM缓存31;若命中,3D-DRAM缓存31则通过存储总线2向访存控制器单元120返回数据,否则3D-DRAM缓存31通过存储总线2向访存控制器单元120返回读缺失信息。
若发生读缺失,访存控制器单元120将再次通过存储总线2向DIMM主存32发送读请求(即,主存请求),DIMM主存32通过存储总线2向访存控制器单元120返回数据。
最后访存控制器单元120向3D-DRAM缓存31发送缺失填充请求,将数据写回至3D-DRAM缓存31中。
上述缺失填充的带宽开销可达数据传输的60%-70%,但填充数据很多情况下并不会被后续应用程序所访问,因此本发明利用上述动态旁路装置优化缺失填充操作,从而降低带宽开销。
利用动态旁路装置130进行动态旁路机制下读缺失处理方式,即,动态旁路方法如下:
根据图7B中箭头所示,访存控制器单元120在处理读请求时优先将读请求通过存储总线2发送至3D-DRAM缓存31;访存控制器单元120在得知3D-DRAM访问结果后向动态旁路装置130发送地址映射信息及请求类型。请求类型包括读命中、读缺失、写命中和写缺失。
若命中,3D-DRAM缓存31则通过存储总线2向访存控制器单元120返回数据,访存控制器单元120向动态旁路装置130发送地址映射信息及请求类型(读命中),动态旁路装置130接收并向访存控制器单元120返回旁路信号。
若缺失,3D-DRAM缓存31通过存储总线2向访存控制器单元120返回读缺失信息;此时访存控制器单元120进行以下步骤:
1)、访存控制器单元120向动态旁路装置130发送地址映射信息及请求类型(读缺失);
动态旁路装置130接收并处理访存控制器单元120所发送的地址映射信息及请求类型(读缺失),并向访存控制器单元120返回旁路信号;
2)、访存控制器单元120再次通过存储总线2向DIMM主存32发送读请求(即,主存请求)。
当访存控制器单元120从DIMM主存32中获取数据后,访存控制器单元120根据旁路信号,选择是否进行填充请求。
注:读命中时,访存控制器单元120向动态旁路装置130发送地址映射信息及请求类型,主要用于统计缓存命中率,因为旁路信号仅在读缺失时有意义,故动态旁路装置130返回的旁路信号为0。写请求同理,因不涉及缺失填充操作,故不再进行详述。
如图8所示,上述动态旁路方法中动态旁路装置130具体工作内容如下:
1、统计命中/缺失数:
1.1、产生通道311的计数使能信号:
访存控制器单元120在收到3D-DRAM缓存31访问结果后向旁路决策器134发送地址映射信息及请求类型,旁路决策器134接收并根据地址映射信息和请求类型产生计数使能信号。
旁路决策器134根据地址映射信息判断其所属组别(参照组、采样组和跟随组),并结合请求类型产生计数使能信号。
旁路决策器134将所产生计数使能信号发送至硬件计数器模块131。
注:旁路决策器134还可根据地址映射信息和请求类型产生检测使能信号。旁路决策器134产生计数使能信号和检测使能信号的规则如表2所示:
表2
注:非读缺失请求包括写命中、写缺失及读缺失。
1.2、硬件计数器模块131接收步骤1.1旁路决策器134所发送的计数使能信号,统计命中/缺失数。
硬件计数器模块131中各命中数计数器和缺失数计数器的工作流程如下:
对于每个通道311,地址映射信息Bank[3:0]分别与参照组、采样组和跟随组相对应;请求类型包括读命中、写命中和读缺失、写缺失,分别对应命中数计数器和缺失数计数器。旁路决策器134根据二者产生对应硬件计数器的计数使能信号,如表3所示。
表3
2、旁路决策器134根据地址映射信息及请求类型生成旁路信号:
2.1、若请求类型非读缺失,则旁路信号为0;
注:当请求类型非读缺失请求(包括读命中、写命中、写缺失)时,访存控制器单元120向动态旁路装置130发送地址映射信息及请求类型,主要用于统计缓存命中率,因为旁路信号仅在读缺失时有意义,故动态旁路装置130返回的旁路信号为0。
2.2、若请求类型为读缺失,则根据地址映射信息进行组别判断。
2.2.1、若为参照组,则旁路信号为0。
2.2.2、若为采样组:
(1)、产生对应通道311的检测使能信号,并将其发送至命中率监测模块132。
(2)、命中率监测模块132接收旁路决策器134产生的检测使能信号,判断旁路策略并设置旁路寄存器133,具体步骤如下:
(2.1)、读取与该通道311相对应的一组硬件计数器;
(2.2)、判断步骤(2.1)中每个硬件计数器是否溢出;若有溢出则右移一位;
(2.3)、根据步骤(2.2)各硬件计数器的数据信息,计算缓存命中率:
缓存命中率包括参照组命中率Rref和采样组命中率Rsamp;
参照组命中率Rref根据该通道311参照组所对应的硬件计数器统计的命中/缺失数计算命中率。
采样组命中率Rref根据该通道311采样组的所对应的硬件计数器统计的命中/缺失数计算命中率。
上述计算参照组命中率Rref和采样组命中率Rsamp为现有技术,故不详细介绍。
(2.4)、判断旁路策略并将旁路策略存放至旁路寄存器133:
若Rref,Rsamp均大于下限T且Rref-Rsamp<λRref,则将该通道311对应的旁路寄存器133置“1”,否则置“0”。
(3)、旁路决策器134读取旁路寄存器133中存放的旁路策略,生成对应的旁路信号。
旁路寄存器133置“0”,旁路信号为0;旁路寄存器133置“1”,旁路信号为1;
下限T的作用:确保程序运行初期或缓存命中率较低的情况下,不开启旁路机制。若命中率Rref,Rsamp均大于下限T,表示缓存命中率已达到预期,此时再进行参照组和采样组的命中率比较;否则说明缓存命中率并未达到预期,不适合再开启旁路机制。本实施例中下限T为0.2,即旁路机制开启的缓存命中率下限为20%。
系数λ的作用:保证旁路机制不会对缓存命中率造成恶化。由于缓存命中率与应用程序的访存特性直接相关,因此以固定数值作为命中率比较阈值会导致本发明不具有适用性。因此引入系数λ来进行参照组和采样组命中率比较。系数λ可根据使用者对命中率的期望进行选择,经验值为1/20~1/10,本实施例中系数λ的取值为1/16。
2.2.3、若为跟随组,则读取旁路寄存器133,根据旁路寄存器133对应通道311的比特位返回旁路信号。
若旁路寄存器133对应比特位为1则旁路信号为1,否则为0。
3、返回旁路信号:
旁路决策器134将步骤2所得旁路信号返回至访存控制器单元120。
当发生读缺失时,访存控制器单元120根据旁路信号判断是否进行缺失填充操作,若旁路信号为0,则进行缺失填充操作;旁路信号为1,则不进行缺失填充操作。
A、设第一次运行时读缺失:地址映射信息(采样组)及请求类型(读缺失);
此时命中率Rref,Rsamp均为0,即,Rref,Rsamp均小于下限T(如运行初期),对应旁路寄存器133置“0”,旁路信号为0,即判定为不旁路,进行缺失填充操作。随着程序运行,DRAM缓存内容进行装载,缓存命中率逐渐增加。
B、设第n次运行时读缺失,且Rref,Rsamp均大于(/等于)下限T:地址映射信息(采样组)及请求类型(读缺失);
此时判断Rref-Rsamp<λRref是否成立,若成立则说明采样组命中率Rsamp与参照组命中率Rref接近,对应旁路寄存器133置“1”旁路信号为1,即判定为旁路,不进行缺失填充操作。
C、设第n+1次运行时读缺失:地址映射信息(跟随组)及请求类型(读缺失);
读取旁路寄存器133。即,步骤B中旁路寄存器133置“1”,则此时旁路信号为1,判定为旁路,不进行缺失填充操作。
注:由于开启旁路可能会造成后续访问缺失,因此采样组命中率将会逐步低于参照组,直至使得Rref-Rsamp<λRref不成立,对应旁路寄存器133置“0”,旁路信号为0,即判定为不旁路,进行缺失填充操作,后续跟随组也直接进缺失填充操作。
为了验证本发明的有益效果,我们通过软件仿真的方法对分别对本发明所采用的分组采样式动态旁路方法(即,分组采样式旁路机制),以及现有无旁路机制和概率性旁路机制(旁路概率50%)分别进行测试。
软件仿真平台由Gem5系统模拟器和NVMain内存模拟器构成,仿真程序为SPEC2006评测集中的访存密集型应用(bwaves,sphinx3,lbm,mcf,libquantum,omnetpp,milc,soplex),在程序特征阶段运行10亿条指令并统计结果。
本发明分组采样式旁路机制与无旁路机制相比,3D-DRAM缓存31缺失填充操作的带宽开销减少50%,命中率下降不超过5%。
概率性旁路机制与无旁路机制相比命中率下降为28%,3D-DRAM缓存31缺失填充操作带宽消耗减少29%,另外命中率下降还引起了缺失探测及写缺失填充操作开销的增加。
通过以上对比结果可知,本发明分组采样式旁路机制与概率性旁路机制相比,可以保证命中率下降不超过5%,3D-DRAM缓存31缺失填充操作带宽消耗减少21%,次级操作整体开销减少30%。
最后,还需要注意的是,以上列举的仅是本发明的若干个具体实施例。显然,本发明不限于以上实施例,还可以有许多变形。本领域的普通技术人员能从本发明公开的内容直接导出或联想到的所有变形,均应认为是本发明的保护范围。
Claims (8)
1.针对内存端缓存的数据动态旁路装置,其特征在于:
所述数据动态旁路装置包括硬件计数器模块(131)、命中率监测模块(132)、旁路寄存器(133)以及旁路决策器(134);
所述旁路决策器(134)分别与硬件计数器模块(131)、命中率监测模块(132)和旁路寄存器(133)信号相连,且旁路决策器(134)、硬件计数器模块(131)、命中率监测模块(132)和旁路寄存器(133)依次信号相连;
所述旁路决策器(134)与外部的访存控制器单元(120)信号相连;
所述旁路决策器(134)用于接收访存控制器单元(120)发送的地址映射信息和请求类型,并根据所接收的信息产生计数使能信号和命中率检测使能信号,并将计数使能信号发送至硬件计数器模块(131),命中率检测使能信号发送至命中率监测模块(132);
所述硬件计数器模块(131)用于接收旁路决策器(134)所发送的计数使能信号,统计命中数和缺失数;
所述命中率监测模块(132)用于接收旁路决策器(134)所发送的检测使能信号,读取硬件计数器模块(131)中的命中缺失信息,计算缓存命中率,进行旁路策略判断并将旁路策略信息存放至旁路寄存器(133);
所述旁路寄存器(133)用于存放旁路策略信息;
所述旁路决策器(134)还根据地址映射信息和请求类型,以及读取旁路寄存器(133)所获得的旁路策略信息,生成旁路信号并将其返回至访存控制器单元(120)。
2.根据权利要求1所述的针对内存端缓存的数据动态旁路装置,其特征在于:
所述硬件计数器模块(131)由N组硬件计数器组成;
所述N为外部的3D-DRAM缓存(31)的通道数;
所述3D-DRAM缓存(31)中N个通道(311)与N组硬件计数器一一对应,N个通道(311)与N比特寄存器一一对应;
所述旁路寄存器(133)为N比特寄存器,用于储存各通道(311)的旁路策略信息。
3.利用如权利要求1或2所述装置进行的针对内存端缓存的数据动态旁路方法,其特征包括以下步骤:
S1、访存控制器单元(120)在收到3D-DRAM缓存(31)的访问结果后,向数据动态旁路装置发送地址映射信息及请求类型;
S2、数据动态旁路装置接收并根据地址映射信息及请求类型记录和统计命中数和缺失数,并生成旁路信号返回至访存控制器单元(120);
S3、读缺失时,访存控制器单元(120)根据数据动态旁路装置返回的旁路信号进行缺失填充操作。
4.根据权利要求3所述的针对内存端缓存的数据动态旁路方法,其特征在于:
所述步骤S2中统计命中数和缺失数的方法如下:
1.1、产生通道(311)的计数使能信号:
所述旁路决策器(134)接收地址映射信息和请求类型,并通过地址映射信息判断其所属组别,最后结合请求类型产生计数使能信号;
所述旁路决策器(134)将所产生计数使能信号发送至硬件计数器模块(131);
1.2、统计命中数和缺失数:所述硬件计数器模块(131)接收步骤1.1旁路决策器(134)所发送的计数使能信号,统计命中数和缺失数。
5.根据权利要求4所述的针对内存端缓存的数据动态旁路方法,其特征在于:
所述步骤1.1中旁路决策器(134)通过地址映射信息判断其所属组别的方法如下:
将每个通道(311)的Bank单元按照物理地址的地址映射关系,由低至高分为参照组、采样组和跟随组;
所述参照组:不采用旁路策略,其命中率信息作为动态旁路方法的参照;
所述采样组:采用动态旁路策略,其命中率信息与参照组进行对比以获得旁路决策;
所述跟随组:采用动态旁路策略,不统计命中率,通过查询旁路寄存器以获得旁路决策;
所述请求类型包括读命中、读缺失、写命中和写缺失;
每组硬件计数器包括与该通道(311)中参照组相对应的命中数计数器和缺失数计数器,以及与该通道(311)中采样组相对应的命中数计数器和缺失数计数器;
所述步骤1.1中旁路决策器(134)通过地址映射信息和请求类型产生对应硬件计数器的计数使能信号,规则如下:
地址映射信息对应参照组时:
读命中,旁路决策器(134)产生该通道(311)参照组所对应命中数计数器的计数使能信号,统计其命中数;
读缺失,旁路决策器(134)产生该通道(311)参照组所对应缺失数计数器的计数使能信号,统计其缺失数;
地址映射信息对应采样组时:
读命中,旁路决策器(134)产生该通道(311)采样组所对应命中数计数器的计数使能信号,统计其命中数;
读缺失,旁路决策器(134)产生该通道(311)采样组所对应缺失数计数器的计数使能信号,统计其缺失数。
6.根据权利要求5所述的针对内存端缓存的数据动态旁路方法,其特征在于:
所述步骤S2中旁路决策器(134)生成旁路信号方法如下;
2.1、若请求类型非读缺失,则旁路信号为0;
2.2、若请求类型为读缺失,则根据地址映射信息进行组别判断;
2.2.1、若为参照组,则旁路信号为0;
2.2.2、若为采样组,则依次进行以下步骤:
(1)、产生对应通道(311)的检测使能信号,并将其发送至命中率监测模块(132);
(2)、命中率监测模块(132)接收旁路决策器(134)产生的检测使能信号,判断旁路策略并将旁路策略存放至旁路寄存器(133);
(3)、旁路决策器(134)读取旁路寄存器(133)中存放的旁路策略,生成对应的旁路信号;
2.2.3、若为跟随组,则读取旁路寄存器(133)存放的旁路策略,生成对应的旁路信号。
7.根据权利要求6所述的针对内存端缓存的数据动态旁路方法,其特征在于:
所述步骤(2)中命中率监测模块(132)接收旁路决策器(134)产生的检测使能信号,判断旁路策略并将旁路策略存放至旁路寄存器(133)的具体步骤如下:
(2.1)、读取与该通道(311)相对应的一组硬件计数器;
(2.2)、判断步骤(2.1)中每个硬件计数器是否溢出;若有溢出则右移一位;
(2.3)、根据步骤(2.2)各硬件计数器的数据信息,计算缓存命中率;
所述缓存命中率包括参照组命中率Rref和采样组命中率Rsamp;
(2.4)、判断旁路策略并将旁路策略存放至旁路寄存器(133):
若Rref,Rsamp均大于下限T且Rref -Rsamp<λRref,则将该通道(311)对应的旁路寄存器(133)置“1”,否则置“0”;所述系数λ经验值为1/20~1/10;
所述旁路寄存器(133)置“0”,旁路信号为0,旁路寄存器(133)置“1”,旁路信号为1。
8.根据权利要求3~7任一所述的针对内存端缓存的数据动态旁路方法,其特征在于:
所述步骤S3中,读缺失时,访存控制器单元(120)根据旁路决策器(134)返回的旁路信号进行缺失填充操作的方法如下:
当旁路信号为0,则进行缺失填充操作;旁路信号为1,则不进行缺失填充操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810799294.7A CN109117388B (zh) | 2018-07-19 | 2018-07-19 | 针对内存端缓存的数据动态旁路装置及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810799294.7A CN109117388B (zh) | 2018-07-19 | 2018-07-19 | 针对内存端缓存的数据动态旁路装置及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109117388A CN109117388A (zh) | 2019-01-01 |
CN109117388B true CN109117388B (zh) | 2020-10-16 |
Family
ID=64863045
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810799294.7A Active CN109117388B (zh) | 2018-07-19 | 2018-07-19 | 针对内存端缓存的数据动态旁路装置及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109117388B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113505087B (zh) * | 2021-06-29 | 2023-08-22 | 中国科学院计算技术研究所 | 一种兼顾服务质量和利用率的缓存动态划分方法及系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102110073A (zh) * | 2011-02-01 | 2011-06-29 | 中国科学院计算技术研究所 | 一种片上共享高速缓存的替换装置和方法以及相应处理器 |
CN104978282A (zh) * | 2014-04-04 | 2015-10-14 | 上海芯豪微电子有限公司 | 一种缓存系统和方法 |
CN106844232A (zh) * | 2016-12-23 | 2017-06-13 | 北京北大众志微系统科技有限责任公司 | 一种面向多核处理器的共享末级高速缓存访存方法和装置 |
CN106844231A (zh) * | 2016-12-23 | 2017-06-13 | 北京北大众志微系统科技有限责任公司 | 末级高速缓存软硬件协作分区域管理系统及管理方法 |
CN107111555A (zh) * | 2015-01-15 | 2017-08-29 | 高通股份有限公司 | 用于改进便携式计算设备中的牺牲(victim)缓存模式的系统和方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10296465B2 (en) * | 2016-11-29 | 2019-05-21 | Board Of Regents, The University Of Texas System | Processor using a level 3 translation lookaside buffer implemented in off-chip or die-stacked dynamic random-access memory |
-
2018
- 2018-07-19 CN CN201810799294.7A patent/CN109117388B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102110073A (zh) * | 2011-02-01 | 2011-06-29 | 中国科学院计算技术研究所 | 一种片上共享高速缓存的替换装置和方法以及相应处理器 |
CN104978282A (zh) * | 2014-04-04 | 2015-10-14 | 上海芯豪微电子有限公司 | 一种缓存系统和方法 |
CN107111555A (zh) * | 2015-01-15 | 2017-08-29 | 高通股份有限公司 | 用于改进便携式计算设备中的牺牲(victim)缓存模式的系统和方法 |
CN106844232A (zh) * | 2016-12-23 | 2017-06-13 | 北京北大众志微系统科技有限责任公司 | 一种面向多核处理器的共享末级高速缓存访存方法和装置 |
CN106844231A (zh) * | 2016-12-23 | 2017-06-13 | 北京北大众志微系统科技有限责任公司 | 末级高速缓存软硬件协作分区域管理系统及管理方法 |
Non-Patent Citations (1)
Title |
---|
一种面向包含式缓存的共享末级缓存管理策略;娄冕 等;《北京理工大学学报》;20160131;第36卷(第1期);第75-80页 * |
Also Published As
Publication number | Publication date |
---|---|
CN109117388A (zh) | 2019-01-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9384072B2 (en) | Distributed queue pair state on a host channel adapter | |
WO2022178998A1 (zh) | 一种基于SEDRAM的堆叠式Cache系统、控制方法和Cache装置 | |
US9256555B2 (en) | Method and system for queue descriptor cache management for a host channel adapter | |
WO2019127104A1 (zh) | 高速缓存中资源调整方法、数据访问方法及装置 | |
US10929308B2 (en) | Performing maintenance operations | |
CN113424160A (zh) | 一种处理方法、装置及相关设备 | |
TW201439897A (zh) | 適應性粒度列緩衝器快取記憶體 | |
WO2009111971A1 (zh) | 缓存数据写入系统及方法和缓存数据读取系统及方法 | |
US7032068B2 (en) | Disk cache management method of disk array device | |
US20190004968A1 (en) | Cache management method, storage system and computer program product | |
CN113760787B (zh) | 多级高速缓存数据推送系统、方法、设备和计算机介质 | |
CN110297787A (zh) | I/o设备访问内存的方法、装置及设备 | |
CN109117388B (zh) | 针对内存端缓存的数据动态旁路装置及方法 | |
CN108694133A (zh) | 用于即时高速缓存关联性的装置、方法和系统 | |
US20080016282A1 (en) | Cache memory system | |
US10831673B2 (en) | Memory address translation | |
US6792498B2 (en) | Memory system with mechanism for assisting a cache memory | |
US10853262B2 (en) | Memory address translation using stored key entries | |
WO2013184855A1 (en) | Memory with bank-conflict-resolution (bcr) module including cache | |
CN107861819B (zh) | 一种缓存组负载均衡的方法、装置和计算机可读存储介质 | |
WO2021008552A1 (zh) | 数据读取方法和装置、计算机可读存储介质 | |
US11354246B2 (en) | Memory-side transaction context memory interface systems and methods based on clock cycles and wires | |
TW202020674A (zh) | 數據處理系統 | |
US11954037B2 (en) | Memory address allocation and cache mapping to retain data in cache | |
CN112559401B (zh) | 一种基于pim技术的稀疏矩阵链式访问系统 |
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 |