一种基于时间局部性的DRAM缓存管理方法及系统技术方案

技术编号:15938473 阅读:30 留言:0更新日期:2017-08-04 21:32
本发明专利技术公开了一种基于时间局部性的DRAM缓存管理方法及系统,属于计算机缓存技术领域。本发明专利技术系统包括时间局部性监测模块、动态决策模块和调度管理模块:时间局部性监测模块用于对用户请求的时间局部性进行监测,根据监控结果计算写回和填充的概率并提交给调度管理模块;动态决策模块采用组决斗的方法以核为单位动态的决定下一阶段是否部署时间局部性管理策略,避免了由于写回和填充过滤带来的DRAM缓存命中率下降的问题,使系统性能更加的稳定;调度管理模块根据监测模块和动态决策模块的结果来管理写回和填充到DRAM缓存的请求。本发明专利技术在工作过程中,对用户层完全透明,同时由于监控不在请求访问的关键路径上,因此对系统性能几乎没有任何影响。

DRAM buffer management method and system based on time locality

The invention discloses a DRAM buffer management method and a system based on time locality, belonging to the technical field of computer caching. The system of the invention includes local time monitoring module, dynamic decision module and scheduling management module: local time monitoring module is used for monitoring the user request time locality, probability according to the monitoring results of calculation of write back and fill and submit to the dispatching management module; method of dynamic decision module used to group as a unit of dynamic nuclear duel the decision whether to deploy the next phase of local time management strategy, to avoid the write back and fill the filter to bring the DRAM cache hit rate of decline, the performance of the system more stable; scheduling management module according to the monitoring module and dynamic decision module to manage the result write back and fill the request to the DRAM cache. The invention is completely transparent to the user layer in the course of operation, and has little influence on the system performance because the monitoring is not on the critical path required to request access.

【技术实现步骤摘要】
一种基于时间局部性的DRAM缓存管理方法及系统
本专利技术属于计算机缓存
,更具体地,涉及一种基于时间局部性的DRAM缓存管理方法及系统。
技术介绍
随着处理器核数的不断增加,现代应用所需的缓存容量也越来越大,传统的基于SRAM的缓存已无法满足需求,SRAM的低密度、高功耗特点使得进一步增大SRAM容量变得不切实际。虽然DRAM能够提供相对于SRAM几倍的带宽,但是由于它的高延迟特点,DRAM一直以来仅仅被用作主存。然而,最近采用一些新技术,如die-stacking技术大大提高了DRAM的性能,堆叠DRAM可以提供片外DRAM几倍的带宽优势,同时延迟降为原来的一半甚至三分之一。要想更好的利用DRAM缓存,需要解决一些挑战。由于SRAM与DRAM性质存在很大区别,DRAM缓存的设计主要分为细粒度和粗粒度,细粒度一般是以64B的块进行组织的,粗粒度则是以KB级的页进行组织的:细粒度的设计会导致很高的标签存储开销,这个开销远大于最后一级SRAM缓存,这强迫设计者将标签存放在DRAM缓存之中,串行化标签、数据访问和使用组相连缓存会进一步增大命中延迟开销,目前,主要有两个方案来解决标签和数据串行化访问带来的延时问题:一是将标签和数据放置在同一行,通过行缓冲命中来降低DRAM缓存的命中时延;另一个通过直接组相连的方式,将标签和数据紧紧的放置在一起,通过一次访问将标签和数据同时流出从而完全消除标签、数据串行化的问题;细粒度的设计无法利用应用的空间局部性,这使得其命中率相对较低,细粒度是优势在于有效的使用片外主存带宽和缓存容量;粗粒度的设计使标签的存储开销大大降低,这使得标签可以存放在SRAM之中,进而加快访问时间。通过利用空间局部性,它可以较细粒度提高命中率。粗粒度设计的限制在于带宽浪费和排队竞争的问题。同时,粗粒度的缓存块会降低缓存的有效容量,使多线程应用性能下降。随着DRAM缓存容量的不断提高,所需的标签存储不断加大,即使使用粗粒度技术,也无法将标签存储在SRAM之中。盲目的将优秀的SRAM缓存管理策略应用到DRAM缓存上可能会导致性能下降。因此,应该根据DRAM的特性,使用新奇的技术应用在DRAM缓存之上:对于几十兆和几百兆的DRAM缓存,可以提供片外主存2倍的带宽和低于一半的命中延时,然而DRAM缓存的设计需要执行一些附加的操作,这些附加操作包括:写回更新、写回填充、不命中填充等。这些附加操作会导致大量的带宽消耗,而带宽消耗带来的最直接影响就是DRAM缓存的排队时延增大。对于DRAM缓存,它的命中时延由两部分组成,DRAM缓存的访问时延和排队时延,当DRAM缓存的带宽消耗过大时,排队时延甚至要超过访问时延成为决定DRAM缓存命中时延的主要因素。现有的一些DRAM缓存管理策略虽然可在一定程序上缓解该问题,但存在硬件开销过大、没有考虑CPU上各个核之间的差异性等问题,目前还缺乏一种在通用计算机上的在线低开销的堆叠DRAM缓存管理机制。
技术实现思路
针对现有技术的以上缺陷或改进需求,本专利技术提供了一种基于时间局部性的DRAM缓存管理方法及系统,其目的在于实时监测用户请求的时间局部性,根据监测结果计算写回和填充概率,之后采用组决斗的方法以核为单位动态的决定下一阶段是否部署时间局部性管理策略,避免了由于写回和填充过滤带来的DRAM缓存命中率下降的问题,使系统性能更加的稳定,由此解决现有方法中存在的开销过大、没有考虑CPU上各个核之间的差异性等技术问题。为实现上述目的,按照本专利技术的一个方面,提供了一种基于时间局部性的DRAM缓存管理方法,该方法包括:(1)监测时间局部性:每个核都分别部署读监控器和写监控器,实时对片上缓存的读和写请求的命中情况进行采样监控,根据监控结果计算填充概率和写回概率;(2)动态决策:以设定的时间间隔对DRAM缓存进行抽样,对每个抽样组采用不同的概率过滤策略进行填充或写回,以CPU核为单位对抽样组进行命中率对比;(3)调度管理:根据时间局部性监测结果和动态决策结果来管理数据写回和填充到DRAM缓存的请求。进一步地,所述步骤(1)中填充概率或写回概率的计算方法为:Pi=(N1×W1+N2×W2+…+Nk×Wk)/N,其中,Pi为填充概率或写回概率;Nk为第k路的命中数量;Wk为第k路的权重;N为命中数量与未命中数量的和。进一步地,所述步骤(2)具体包括:(21)以设定的时间间隔对DRAM缓存进行抽样,获得(CPU核数+1)×2个抽样组;(22)一个CPU核i对应2个抽样组:一组设为Ci,其中核i采用步骤(1)所得填充概率或写回概率进行填充或写回,其他核采用当前概率进行填充或写回;另一组设为Fi,其中核i采用全填充或全写回,其他核采用当前概率进行填充或写回;(23)剩下其中1个抽样组设为PBS,采用当前概率进行填充或写回,另1个抽样组设为CS,采用全填充或全写回;(24)计算对比,若(PBS未命中率-CS未命中率)≤第一设定阈值,则设定标记modebit=0;否则modebit=1;(25)若CPU核i对应的两个抽样组Ci未命中率-Fi未命中率≤第二设定阈值,则设定标记corebiti=0;否则corebiti=1。进一步地,所述步骤(3)具体包括:(31)对于写回和填充到DRAM缓存的请求,若modebit=0,则跳转步骤(33);若modebit=1,则跳转步骤(32);(32)若corebiti=0,则跳转步骤(33);若corebiti=1,则生成一个0到1之间的随机数R,若R<Pi,则跳转步骤(33),否则,若是填充请求则跳转步骤(35),若是写回请求则跳转步骤(34);(33)写回或填充到DRAM缓存,跳转步骤(36);(34)写回到片外主存,跳转步骤(36);(35)填充到片上缓存,跳转步骤(36);(36)调度结束。按照本专利技术的另一方面,提供了一种基于时间局部性的DRAM缓存管理系统,该系统包括:时间局部性监测模块,用于在每个核上都分别部署读监控器和写监控器,实时对片上缓存的读和写请求的命中情况进行采样监控,根据监控结果计算填充概率和写回概率;动态决策模块,用于以设定的时间间隔对DRAM缓存进行抽样,对每个抽样组采用不同的概率过滤策略进行填充或写回,以CPU核为单位对抽样组进行命中率对比;调度管理模块,用于根据时间局部性监测结果和动态决策结果来管理数据写回和填充到DRAM缓存的请求。进一步地,所述时间局部性监测模块中填充概率或写回概率的计算方法为:Pi=(N1×W1+N2×W2+…+Nk×Wk)/N,其中,Pi为填充概率或写回概率;Nk为第k路的命中数量;Wk为第k路的权重;N为命中数量与未命中数量的和。进一步地,所述动态决策模块具体包括:抽样单元,用于以设定的时间间隔对DRAM缓存进行抽样,获得(CPU核数+1)×2个抽样组;核抽样组分配单元,用于分配一个CPU核i对应2个抽样组:一组设为Ci,其中核i采用时间局部性监测模块所得填充概率或写回概率进行填充或写回,其他核采用当前概率进行填充或写回;另一组设为Fi,其中核i采用全填充或全写回,其他核采用当前概率进行填充或写回;其他抽样组分配单元,用于将剩下其中1个抽样组设为PBS,采用当前概率进行填充或写回,另1个抽样本文档来自技高网
...
一种基于时间局部性的DRAM缓存管理方法及系统

【技术保护点】
一种基于时间局部性的DRAM缓存管理方法,其特征在于,该方法包括:(1)监测时间局部性:实时对片上缓存的读和写请求的命中情况进行采样监控,根据监控结果计算填充概率和写回概率;(2)动态决策:以设定的时间间隔对DRAM缓存进行抽样,对每个抽样组采用不同的概率过滤策略进行填充或写回,以CPU核为单位对抽样组进行命中率对比;(3)调度管理:根据时间局部性监测结果和动态决策结果来管理数据写回和填充到DRAM缓存的请求。

【技术特征摘要】
1.一种基于时间局部性的DRAM缓存管理方法,其特征在于,该方法包括:(1)监测时间局部性:实时对片上缓存的读和写请求的命中情况进行采样监控,根据监控结果计算填充概率和写回概率;(2)动态决策:以设定的时间间隔对DRAM缓存进行抽样,对每个抽样组采用不同的概率过滤策略进行填充或写回,以CPU核为单位对抽样组进行命中率对比;(3)调度管理:根据时间局部性监测结果和动态决策结果来管理数据写回和填充到DRAM缓存的请求。2.根据权利要求1所述的一种基于时间局部性的DRAM缓存管理方法,其特征在于,所述步骤(1)中填充概率或写回概率的计算方法为:Pi=(N1×W1+N2×W2+…+Nk×Wk)/N,其中,Pi为填充概率或写回概率;Nk为第k路的命中数量;Wk为第k路的权重;N为命中数量与未命中数量的和。3.根据权利要求1所述的一种基于时间局部性的DRAM缓存管理方法,其特征在于,所述步骤(2)具体包括:(21)以设定的时间间隔对DRAM缓存进行抽样,获得(CPU核数+1)×2个抽样组;(22)一个CPU核i对应2个抽样组:一组设为Ci,其中核i采用步骤(1)所得填充概率或写回概率进行填充或写回,其他核采用当前概率进行填充或写回;另一组设为Fi,其中核i采用全填充或全写回,其他核采用当前概率进行填充或写回;(23)剩下其中1个抽样组设为PBS,采用当前概率进行填充或写回,另1个抽样组设为CS,采用全填充或全写回;(24)进行对比,若(PBS未命中率-CS未命中率)≤第一设定阈值,则设定标记modebit=0;否则modebit=1;(25)若CPU核i对应的两个抽样组Ci未命中率-Fi未命中率≤第二设定阈值,则设定标记corebiti=0;否则corebiti=1。4.根据权利要求1、2或3所述的一种基于时间局部性的DRAM缓存管理方法,其特征在于,步骤(3)具体包括:(31)对于写回和填充到DRAM缓存的请求,若modebit=0,则跳转步骤(33);若modebit=1,则跳转步骤(32);(32)若corebiti=0,则跳转步骤(33);若corebiti=1,则生成一个0到1之间的随机数R,若R<Pi,则跳转步骤(33),否则,若是填充请求则跳转步骤(35),若是写回请求则跳转步骤(34);(33)写回或填充到DRAM缓存,跳转步骤(36);(34)写回到片外主存,跳转步骤(36);(35)填充到片上缓存,跳转步骤(36);(36)调度结束。5.一种基于时间局部性的DRAM缓存管理系统,其特征在于,该系统包括:时间局部性监测模块,用...

【专利技术属性】
技术研发人员:廖小飞陈湃金海吕新桥
申请(专利权)人:华中科技大学
类型:发明
国别省市:湖北,42

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1