CN108319556B - 一种新的面向刷新的内存预取控制器及方法 - Google Patents

一种新的面向刷新的内存预取控制器及方法 Download PDF

Info

Publication number
CN108319556B
CN108319556B CN201711454661.1A CN201711454661A CN108319556B CN 108319556 B CN108319556 B CN 108319556B CN 201711454661 A CN201711454661 A CN 201711454661A CN 108319556 B CN108319556 B CN 108319556B
Authority
CN
China
Prior art keywords
cache lines
probability
memory
access
address
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
Application number
CN201711454661.1A
Other languages
English (en)
Other versions
CN108319556A (zh
Inventor
李红艳
高刃
�田�浩
汪波
彭芸
桂超
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
HUBEI UNIVERSITY OF ECONOMICS
Original Assignee
HUBEI UNIVERSITY OF ECONOMICS
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by HUBEI UNIVERSITY OF ECONOMICS filed Critical HUBEI UNIVERSITY OF ECONOMICS
Priority to CN201711454661.1A priority Critical patent/CN108319556B/zh
Publication of CN108319556A publication Critical patent/CN108319556A/zh
Application granted granted Critical
Publication of CN108319556B publication Critical patent/CN108319556B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0862Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0804Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0842Multiuser, multiprocessor or multiprocessing cache systems for multiprocessing or multitasking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/22Employing cache memory using specific memory technology
    • G06F2212/221Static RAM
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/6022Using a prefetch buffer or dedicated prefetch cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/6024History based prefetching

Landscapes

  • Engineering & Computer Science (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

本发明公开了一种新的面向刷新的内存预取控制器及方法,所述内存预取控制器包括刷新管理器和请求调度器、模式识别器、预取器、SRAM缓存;刷新管理器:用于周期性地发出刷新请求;请求调度器:用于根据刷新管理器的刷新时序信息调度内存请求;模式识别器:用于收集一段时间内内存访问的统计信息,并输出发生概率值T和不发生概率值F,并预测缓存行,预取器:用于根据模式识别器输出的发生概率值T和不发生概率值F决定是否将预测的缓存行放入全相联的SRAM缓冲器;SRAM缓冲器:用于保存预取的缓存行。本发明通过预测刷新周期内可能被访问的数据块提前预取至指定内存空间,使得在刷新周期内,内存仍然可以服务内存请求,这样可以有效降低内存刷新开销。

Description

一种新的面向刷新的内存预取控制器及方法
技术领域
本发明涉及计算机系统结构技术领域,具体地指一种新的面向刷新的内存预取控制器及方法。
背景技术
DRAM内存一直被用作主要的主存储器部件。随着DRAM密度的急剧增加,它的成本变得更加低廉,DRAM不仅在台式电脑内存系统中使用,也用来部署构建大型高性能的DRAM存储系统。DRAM(Dynamic Random Access Memory),即动态随机存取存储器是最为常见的内存系统。DRAM只能保存数据很短时间,DRAM使用电容器存储信息,因此必须每隔一段时间进行刷新操作。如果存储单元没有被及时刷新,存储的信息就会丢失。然而,周期性地执行刷新操作会带来两个负面影响:(1)刷新操作会阻碍正常访存的执行,造成性能上的开销;(2)刷新操作会消耗额外的能耗,带来能耗上的开销。大量的研究工作一直致力于解决“内存墙”问题,特别是随着内存容量增加和3D堆叠技术的出现,解决该问题已越来越具有挑战性。
发明内容
基于背景技术存在的技术问题,本发明提出了一种新的面向刷新的内存预取控制器及方法,通过预测刷新周期内可能被访问的数据块并提前预取出被锁住的内存空间,使得在刷新周期内,内存仍然可以服务内存请求,这样可以有效降低内存刷新开销。
为达到上述目的,本发明提及的一种新的面向刷新的内存预取的内存控制器,包括刷新管理器和请求调度器,其特殊之处在于,还包括模式识别器、预取器、SRAM缓存;
所述刷新管理器:用于周期性地发出刷新请求;
所述请求调度器:用于根据刷新管理器的刷新时序信息调度内存请求;
所述模式识别器:用于根据刷新管理器的刷新时序信息收集一段时间内每次刷新操作开始前后发生的内存访问的统计信息,并输出发生概率值T和不发生概率值F用以进行后续的预取决策,并预测缓存行,所述发生概率值T表示指定周期内发生内存访问请求并且继续发生内存访问请求的概率值,所述不发生概率值F为指定周期内未发生内存访问请求并且继续不发生内存访问请求的概率值;
所述预取器:用于根据模式识别器输出的发生概率值T和不发生概率值F决定是否将预测的缓存行放入全相联的SRAM缓冲器;
所述SRAM缓冲器:用于保存预取的缓存行。
进一步地,所述内存预取控制器还包括基于RANK的映射模块,所述基于RANK的映射模块用于将不同应用程序映射到不同的rank以尽可能地减少并发运行应用程序的交错访问。
更进一步地,所述预取器通过模式识别器构建的预测表来确定预取指定的缓存行,所述预测表在rank刷新时被更新。
更进一步地,所述预测表中的条目包含以下字段:bankid,lastaddr,A1、b1、A2、b2、A3、b3;其中bankid是被观察存取模式的bank的标识符,lastaddr是上次访问的bank地址,A1、A2、A3分别表示第一、第二、第三连续缓存行访问状态的地址差,b1、b2、b3分别表示第一、第二、第三连续缓存行访问状态的访问请求频率。
更进一步地,所述预测表中的条目数与bank数相等。
本发明还提出一种新的面向刷新的内存预取方法,其特殊之处在于,所述方法包括如下步骤:
1)训练:收集指定周期内每次刷新操作开始前后发生的内存访问的统计信息,输出发生概率值T和不发生概率值F,所述发生概率值T表示指定周期内发生内存访问请求并且继续发生内存访问请求的概率值,所述不发生概率值F为指定周期内未发生内存访问请求并且继续不发生内存访问请求的概率值;
2)观察:观察指定周期内,在每个刷新操作前,一个观察窗口内的内存请求,然后基于发生概率值T和不发生概率值F是否执行预取,如果观察窗口内出现过请求,则以发生概率值T执行预取,构建预测表,预测最新被访问的地址,转步骤3);如果没有请求,则以不发生概率值F不执行预取,重复本步骤;
3)预取:内存转换到预取状态,在刷新开始之前,根据预测的最新被访问的地址将预测的缓存行预取入SRAM缓冲区;
4)缓存:产生内存请求以将这些缓存行预取到缓冲区内。
优选地,所述发生概率值T和不发生概率值F的计算方法为T=P{x>0/y>0}、F=P{x=0/y=0},其中x、y分别表示在刷新之前和之后在观察窗口中观察到的请求量。
优选地,所述步骤2)中,构建预测表的过程包括:
a1)当一个缓存行被访问时,计算新地址newaddr1与存储的最新被访问的地址lastaddr之间的地址差D1,将D1与第一连续缓存行访问状态的地址差A1相比较,如果D1与A1相等,则该访问为第一连续缓存行访问状态,令第一连续缓存行访问频率b1递增1,前往下一步;否则,令第一连续缓存行访问状态的地址差A1=D1,循环本步骤;
a2)当两个缓存行被访问时,计算两个新地址newaddr1、newaddr2与存储的前两个最新被访问的地址lastaddr1、lastaddr2之间的地址差D1=newaddr1-lastaddr2,D2=newaddr2-lastaddr1,如果D1与A1相等且D2与第二连续缓存行访问状态的地址差A2相等,则该访问为第二连续缓存行访问状态,令第二连续缓存行访问频率b2递增1,前往下一步;否则,令第一连续缓存行访问状态的地址差A1=D1,第二连续缓存行访问状态的地址差A2=D2,循环本步骤;
a3)当三个缓存行被访问时,计算三个新地址newaddr1、newaddr2、newaddr3与存储的前三个最新被访问的地址lastaddr1、lastaddr2、lastaddr3之间的地址差D1=newaddr1-lastaddr3,D2=newaddr2-lastaddr2,D1=newaddr3-lastaddr1,如果D1与A1相等且D2与A2相等且D3与第三连续缓存行访问状态的地址差A3相等,则该访问为第三连续缓存行访问状态,令第三连续缓存行访问频率b3递增1,前往下一步;否则,令第一连续缓存行访问状态的地址差A1=D1,A2=D2,A3=D3循环本步骤。
优选地,所述当第一、第二、第三连续缓存行访问频率b1、b2、b3的任何一个溢出时,所有的频率都降低一半,此时,输出lastaddr为最新被访问的地址。
优选地,所述步骤3)中当SRAM缓冲区的缓存行被访问的命中率低于阈值时,则返回步骤1)。
本发明的优点在于:通过提出一种面向刷新的预取控制器及方法来降低内存刷新开销。每次开始刷新操作前,内存控制器从要刷新的列(rank)中将某些行预取到一个新增的SRAM缓冲区。这样,当一个rank正在刷新时,内存请求仍然可以进行,而不被阻塞。与自动刷新的内存系统相比,采用该方法的的内存性能可以提高9.2%(平均3.3%),同时减少高达6.7%的整体存储能耗(平均3.6%)。此外,通过对四核多程序模拟实验,采用该方法的内存系统性能提高了2.22倍(1.32倍平均),同时减少了48.8%的能耗(平均24.4%)。
附图说明
图1为本发明一种新的面向刷新的内存预取控制器的流程图。
图2为预测表条目的数据字段。
具体实施方式
下面结合附图及实施例对本发明作进一步的详细描述,但该实施例不应理解为对本发明的限制。
如图1所示,本发明提出的一种新的面向刷新的内存预取控制器,包括刷新管理器1、请求调度器2、模式识别器3、预取器4、SRAM缓存5、基于RANK的映射模块6。
其中,刷新管理器1:用于周期性地发出刷新请求。
请求调度器2:用于根据刷新管理器的刷新时序信息调度内存请求。
模式识别器3:用于根据刷新管理器的刷新时序信息收集一段时间内每次刷新操作开始前后发生的内存访问的统计信息,并输出发生概率值T和不发生概率值F用以进行后续的预取决策,并预测缓存行,发生概率值T表示指定周期内发生内存访问请求并且继续发生内存访问请求的概率值,不发生概率值F为指定周期内未发生内存访问请求并且继续不发生内存访问请求的概率值。
预取器4:用于根据模式识别器输出的发生概率值T和不发生概率值F决定是否将预测的缓存行放入全相联的SRAM缓冲器。
SRAM缓冲器5:用于保存预取的缓存行。
基于RANK的映射模块6:用于将不同应用程序映射到不同的rank以尽可能地减少并发运行应用程序的交错访问。
本发明提出一种面向刷新的预取控制器及方法来降低内存刷新开销。每次开始刷新操作前,从要刷新的列(rank)中将某些行预取到一个新增的SRAM缓冲区。这样,当一个rank正在刷新时,内存请求仍然可以进行,而不被阻塞。模式识别器收集在一段时间内每次刷新操作开始前后发生的内存访问的统计信息,并输出两个条件概率用以进行后续的预取决策。预取器通过一张预测表来确定出现在刷新操作前后的访问模式。预测表在每次要访问的是下一个要刷新的rank时被更新,并作为参考来决定预取哪些缓存行。
系统结构:在内存控制器中增加了四个新模块来实现面向刷新的预取:模式识别器3、预取器4、SRAM缓存5和基于Rank的映射6。模式识别器3的功能是观察刷新操作前后发生的应用程序内存行为。作为模式分析的结果,它输出多个概率值从而帮助预取器4以概率模式进行预取决策。预取器4用预取算法根据在下一个刷新期间到达rank的请求预测哪些缓存行将被用到,基于访问模式进行预测。最后,当刷新要启动时,预取器4根据模式识别器3的概率值决定是否将预测的缓存行放入全相联的SRAM缓冲器5。模式识别器3和预取器4都依赖刷新管理器中的刷新时序信息。所有rank在内存系统中共享同一刷新电路(如在同一存储器通道中的rank),轮流利用SRAM缓冲区5来保存预取的缓存行。将不同应用程序映射到不同的rank则尽可能地减少并发运行应用程序的交错访问。它通过将应用程序分配到不同的rank来避免干扰,这样对相同rank的内存访问将呈现出更可预测的模式。
概率预取模型:模式识别器3根据概率预取模型是决定哪些缓存行是在刷新周期内最有可能被访问。首先,由于需要预测的是在内存rank范围内访问的缓存行,而不是在同一页中访问的缓存行,因此需要记录每个单独rank的访问历史。其次,只使用一个预测表来记录内存访问历史。每个表条目将观察到的访问模式记录到rank的一个bank中。预测表中的条目数与bank数相等。许多应用程序都有bank的局部性特征,这样的表格组织可以提高预测精度。每个条目包含以下字段:bankid,lastaddr,A1、b1、A2、b2、A3、b3,如图2所示。
bankid指被观察存取模式的bank的标识符。lastaddr是上次访问的bank地址。A1、A2、A3分别被定义为三种状态下两个连续缓存行访问的地址差。三个A字段和相关的频率b被用来记住三种不同的状态及各状态出现的次数。观测期间,当一个缓存行被访问时,模式识别器3计算新地址newaddr1和存储的lastaddr之间的地址差(记为D1)。如果D1等于(上一次计算出的)第一连续缓存行访问状态的地址差A1,那么第一连续缓存行访问状态的频率b1递增1;否则,A1被D1取代,b1重置为零。当两个缓存行被访问时,生成两个地址差、频率的元组。模式识别器3将新的两个地址差变量D1、D2与以前的A1、A2进行比较。如果都相同,表示观察到的是第二连续缓存行访问状态,则b2递增1。否则,D1、D2替换A1、A2,f2重置为零。同样,当三个缓存行被访问时,生成三个地址差、频率元祖,A1、A2、A3和b3都以类似的方式每三个访问更新一次。当三个频率中的任何一个溢出时,所有的频率都降低一半。最后,更新lastaddr为最新被访问的地址。如图2所示,每个表项需要204个比特位。因此,对于包含8个bank的rank,预取算法只需要204B的存储开销。
当目标rank即将进行刷新时,预取器4根据预测表确定的模式读取缓存行到SRAM缓冲器5。假设SRAM缓冲器5的容量为C(缓存行),bank i中的三个频率值分别是b1i,b2i和b3i。从banki中预取的缓存行(Hi)由公式3(N为一个rank中包含的bank数)给出。在banki中,三种模式下相对于LastAddr,缓存行的数量分别是
其中
基于上述新的面向刷新的内存预取控制器,本发明提出的面向刷新的内存预取方法,包括训练、观察、预取、缓存四个步骤:
1)训练:收集指定周期内每次刷新操作开始前后发生的内存访问的统计信息,输出发生概率值T和不发生概率值F,所述发生概率值T表示指定周期内发生内存访问请求并且继续发生内存访问请求的概率值,所述不发生概率值F为指定周期内未发生内存访问请求并且继续不发生内存访问请求的概率值。所述发生概率值T和不发生概率值F的计算方法为T=P{x>0/y>0}、F=P{x=0/y=0},其中x、y分别表示在刷新之前和之后在观察窗口中观察到的请求量。
2)观察:观察指定周期内,在每个刷新操作前,一个观察窗口内的内存请求,然后基于发生概率值T和不发生概率值F是否执行预取,如果观察窗口内出现过请求,则以发生概率值T执行预取,构建预测表,预测最新被访问的地址,转步骤3);如果没有请求,则以不发生概率值F不执行预取,重复本步骤。
构建预测表的过程包括:
a1)当一个缓存行被访问时,计算新地址newaddr1与存储的最新被访问的地址lastaddr之间的地址差D1,将D1与第一连续缓存行访问状态的地址差A1相比较,如果D1与A1相等,则该访问为第一连续缓存行访问状态,令第一连续缓存行访问频率b1递增1,前往下一步;否则,令第一连续缓存行访问状态的地址差A1=D1,循环本步骤;
a2)当两个缓存行被访问时,计算两个新地址newaddr1、newaddr2与存储的前两个最新被访问的地址lastaddr1、lastaddr2之间的地址差D1=newaddr1-lastaddr2,D2=newaddr2-lastaddr1,如果D1与A1相等且D2与第二连续缓存行访问状态的地址差A2相等,则该访问为第二连续缓存行访问状态,令第二连续缓存行访问频率b2递增1,前往下一步;否则,令第一连续缓存行访问状态的地址差A1=D1,第二连续缓存行访问状态的地址差A2=D2,循环本步骤;
a3)当三个缓存行被访问时,计算三个新地址newaddr1、newaddr2、newaddr3与存储的前三个最新被访问的地址lastaddr1、lastaddr2、lastaddr3之间的地址差D1=newaddr1-lastaddr3,D2=newaddr2-lastaddr2,D1=newaddr3-lastaddr1,如果D1与A1相等且D2与A2相等且D3与第三连续缓存行访问状态的地址差A3相等,则该访问为第三连续缓存行访问状态,令第三连续缓存行访问频率b3递增1,前往下一步;否则,令第一连续缓存行访问状态的地址差A1=D1,A2=D2,A3=D3循环本步骤。
3)预取:内存转换到预取状态,在刷新开始之前,根据预测的最新被访问的地址将预测的缓存行预取入SRAM缓冲区;
4)缓存:产生内存请求以将这些缓存行预取到缓冲区内。
总之,在任何特定的时间,内存处于三个状态之一,即训练,观察和预取。训练状态,模式分析器3分析每次刷新操作前后出现的内存请求,并在训练期结束时输出发生概率值T和不发生概率值F,内存转到观察状态。训练状态的持续时间可以由训练期间应包括的刷新操作数量表示。在观察状态,预取器4观察在每个刷新操作前一个观察窗口内的内存请求,然后基于观测和发生概率值T和不发生概率值F决定是否执行预取。具体来说,如果观察窗口内出现过请求,则以概率T执行预取;如果没有请求,则以概率F不执行预取。如果决定预取,内存转换到预取状态,在刷新开始之前将预测的缓存行预取入SRAM缓冲区5。否则继续处于观察状态。最后,如果SRAM缓冲区5的命中率低于一个阈值,内存状态再回到训练状态。
当预取器4决定将预测的缓存行预取到缓冲区后,将产生内存请求以将这些缓存行预取到缓冲区内。然而,盲目地发出预取请求可能导致性能退化,为了尽量减少冲突,做了以下两个优化。首先,内存请求在下一个被刷新的rank被刷新锁定之前寻址到,由于刷新需要一段较长的连续时间,所以在刷新操作之前清空队列中的内存请求可以避免请求内务资源占用整个刷新周期。其次,预取请求放在一个专用的队列,如果他们访问的是同一行,则与内存耗尽的请求一起发出。这样做,因为行缓冲命中访问可以更快地完成使得预取开销最小化。剩余的请求在刷新开始之前下发到内存中。
面向刷新的预取方法的预取器在处理器端不同于传统的处理器。首先,预取器位于内存控制器,目的是减轻刷新开销,而其他预取位于处理器中从而隐藏访问底层内存结构的延迟(例如,L2、LLC或DRAM)。甚至可能这些预取器的预取请求不幸被内存刷新阻塞,浪费处理器和片外存储器的内存带宽。第二,传统的预取器不断执行预取,而面向刷新的预取方法只在刷新前短暂时间预取。最后,面向刷新的预取方法可以进一步减轻刷新开销提高内存性能。与自动刷新的内存系统相比,采用该方法的的内存性能可以提高9.2%(平均3.3%),同时减少高达6.7%的整体存储能耗(平均3.6%)。此外,通过对四核多程序模拟实验,采用该方法的内存系统性能提高了2.22倍(1.32倍平均),同时减少了48.8%的能耗(平均24.4%)。
尽管上面结合附图对本发明的优选实施例进行了描述,但是本发明并不局限于上述的具体实方式,上述的具体实施方式仅仅是示意性的,并不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可以作出很多形式的具体变换,这些均属于本发明的保护范围内。

Claims (8)

1.一种新的面向刷新的内存预取控制器,包括刷新管理器(1)和请求调度器(2),其特征在于:还包括模式识别器(3)、预取器(4)、SRAM缓存(5);
所述刷新管理器(1):用于周期性地发出刷新请求;
所述请求调度器(2):用于根据刷新管理器的刷新时序信息调度内存请求;
所述模式识别器(3):用于根据刷新管理器的刷新时序信息收集一段时间内每次刷新操作开始前后发生的内存访问的统计信息,并输出发生概率值T和不发生概率值F用以进行后续的预取决策,并预测缓存行,所述发生概率值T表示指定周期内发生内存访问请求并且继续发生内存访问请求的概率值,所述不发生概率值F为指定周期内未发生内存访问请求并且继续不发生内存访问请求的概率值;
所述预取器(4):用于根据模式识别器(3)输出的发生概率值T和不发生概率值F决定是否将预测的缓存行放入全相联的SRAM缓冲器;所述预取器(4)通过预测表来确定预取指定的缓存行,所述预测表在rank刷新时被更新;所述预测表中的条目包含以下字段:bankid,lastaddr,A1、b1、A2、b2、A3、b3;其中bankid是被观察存取模式的bank的标识符,lastaddr是上次访问的bank地址,A1、A2、A3分别表示第一、第二、第三连续缓存行访问状态的地址差,b1、b2、b3分别表示第一、第二、第三连续缓存行访问状态的访问请求频率;
所述SRAM缓冲器(5):用于保存预取的缓存行。
2.根据权利要求1所述的一种新的面向刷新的内存预取控制器,其特征在于:所述内存预取控制器还包括基于RANK的映射模块(6),所述基于RANK的映射模块(6):用于将不同应用程序映射到不同的rank以尽可能地减少并发运行应用程序的交错访问。
3.根据权利要求2所述的一种新的面向刷新的内存预取控制器,其特征在于:所述预测表中的条目数与bank数相等。
4.一种新的面向刷新的内存预取方法,其特征在于:所述方法包括如下步骤:
1)训练:收集指定周期内每次刷新操作开始前后发生的内存访问的统计信息,输出发生概率值T和不发生概率值F,所述发生概率值T表示指定周期内发生内存访问请求并且继续发生内存访问请求的概率值,所述不发生概率值F为指定周期内未发生内存访问请求并且继续不发生内存访问请求的概率值;
2)观察:观察指定周期内,在每个刷新操作前,一个观察窗口内的内存请求,然后基于发生概率值T和不发生概率值F是否执行预取,如果观察窗口内出现过请求,则以发生概率值T执行预取,构建预测表,预测最新被访问的地址,转步骤3);如果没有请求,则以不发生概率值F不执行预取,重复本步骤;
3)预取:内存转换到预取状态,在刷新开始之前,根据预测的最新被访问的地址将预测的缓存行预取入SRAM缓冲区;
4)缓存:产生内存请求以将这些缓存行预取到缓冲区内。
5.根据权利要求4所述的一种新的面向刷新的内存预取方法,其特征在于:所述发生概率值T和不发生概率值F的计算方法为T=P{x>0/y>0}、F=P{x=0/y=0},其中x、y分别表示在刷新之前和之后在观察窗口中观察到的请求量。
6.根据权利要求4所述的一种新的面向刷新的内存预取方法,其特征在于:所述步骤2)中,构建预测表的过程包括:
a1)当一个缓存行被访问时,计算新地址newaddr1与存储的最新被访问的地址lastaddr之间的地址差D1,将D1与第一连续缓存行访问状态的地址差A1相比较,如果D1与A1相等,则该访问为第一连续缓存行访问状态,令第一连续缓存行访问频率b1递增1,前往下一步;否则,令第一连续缓存行访问状态的地址差A1=D1,循环本步骤;
a2)当两个缓存行被访问时,计算两个新地址newaddr1、newaddr2与存储的前两个最新被访问的地址lastaddr1、lastaddr2之间的地址差D1=newaddr1-lastaddr2,D2=newaddr2-lastaddr1,如果D1与A1相等且D2与第二连续缓存行访问状态的地址差A2相等,则该访问为第二连续缓存行访问状态,令第二连续缓存行访问频率b2递增1,前往下一步;否则,令第一连续缓存行访问状态的地址差A1=D1,第二连续缓存行访问状态的地址差A2=D2,循环本步骤;
a3)当三个缓存行被访问时,计算三个新地址newaddr1、newaddr2、newaddr3与存储的前三个最新被访问的地址lastaddr1、lastaddr2、lastaddr3之间的地址差D1=newaddr1-lastaddr3,D2=newaddr2-lastaddr2,D3=newaddr3-lastaddr1,如果D1与A1相等且D2与A2相等且D3与第三连续缓存行访问状态的地址差A3相等,则该访问为第三连续缓存行访问状态,令第三连续缓存行访问频率b3递增1,前往下一步;否则,令第一连续缓存行访问状态的地址差A1=D1,A2=D2,A3=D3循环本步骤。
7.根据权利要求6所述的一种新的面向刷新的内存预取方法,其特征在于:当第一、第二、第三连续缓存行访问频率b1、b2、b3的任何一个溢出时,所有的频率都降低一半,此时,输出lastaddr为最新被访问的地址。
8.根据权利要求4所述的一种新的面向刷新的内存预取方法,其特征在于:所述步骤3)中当SRAM缓冲区的缓存行被访问的命中率低于阈值时,则返回步骤1)。
CN201711454661.1A 2017-12-28 2017-12-28 一种新的面向刷新的内存预取控制器及方法 Expired - Fee Related CN108319556B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201711454661.1A CN108319556B (zh) 2017-12-28 2017-12-28 一种新的面向刷新的内存预取控制器及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711454661.1A CN108319556B (zh) 2017-12-28 2017-12-28 一种新的面向刷新的内存预取控制器及方法

Publications (2)

Publication Number Publication Date
CN108319556A CN108319556A (zh) 2018-07-24
CN108319556B true CN108319556B (zh) 2019-01-18

Family

ID=62893873

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711454661.1A Expired - Fee Related CN108319556B (zh) 2017-12-28 2017-12-28 一种新的面向刷新的内存预取控制器及方法

Country Status (1)

Country Link
CN (1) CN108319556B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112567351B (zh) * 2018-11-15 2024-04-09 华为技术有限公司 控制从动态随机存储器中预取数据的方法、装置及系统
CN109788305B (zh) * 2018-12-10 2021-03-02 北京爱奇艺科技有限公司 一种缓存数据的刷新方法及装置
US11238916B2 (en) 2019-12-31 2022-02-01 Winbond Electronics Corp. Method for refreshing a memory device, in which the victim row refresh operation is hidden in the normal refresh operation without affecting the time allocated for the normal refresh operation
WO2021184141A1 (en) 2020-03-15 2021-09-23 Micron Technology, Inc. Pre-load techniques for improved sequential read
CN115809208B (zh) * 2023-01-19 2023-07-21 北京象帝先计算技术有限公司 缓存数据刷新方法、装置、图形处理系统及电子设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103019974A (zh) * 2012-12-18 2013-04-03 北京华为数字技术有限公司 存储器访问处理方法及控制器
CN103246853A (zh) * 2012-02-06 2013-08-14 Arm有限公司 用于控制dram中的数据刷新的装置和方法
CN105404595A (zh) * 2014-09-10 2016-03-16 阿里巴巴集团控股有限公司 缓存管理方法及装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8630418B2 (en) * 2011-01-05 2014-01-14 International Business Machines Corporation Secure management of keys in a key repository

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103246853A (zh) * 2012-02-06 2013-08-14 Arm有限公司 用于控制dram中的数据刷新的装置和方法
CN103019974A (zh) * 2012-12-18 2013-04-03 北京华为数字技术有限公司 存储器访问处理方法及控制器
CN105404595A (zh) * 2014-09-10 2016-03-16 阿里巴巴集团控股有限公司 缓存管理方法及装置

Also Published As

Publication number Publication date
CN108319556A (zh) 2018-07-24

Similar Documents

Publication Publication Date Title
CN108319556B (zh) 一种新的面向刷新的内存预取控制器及方法
CN105027211B (zh) 自适应粒度行缓冲器高速缓存
JP3962368B2 (ja) 共用リソースを動的に割り振るためのシステムおよび方法
US20040078541A1 (en) System and method for autonomically reallocating memory among buffer pools
CN111143243B (zh) 一种基于nvm混合内存的缓存预取方法及系统
CN103885728A (zh) 一种基于固态盘的磁盘缓存系统
Wang et al. Improving writeback efficiency with decoupled last-write prediction
CN105068940A (zh) 一种基于Bank划分的自适应页策略确定方法
US20160188209A1 (en) Apparatus and method for issuing access requests to a memory controller
CN105404595B (zh) 缓存管理方法及装置
US10719247B2 (en) Information processing device, information processing method, estimation device, estimation method, and computer program product
WO2014158154A1 (en) Regulating memory activation rates
CN110413545A (zh) 存储管理方法、电子设备和计算机程序产品
CN104035807A (zh) 一种云存储系统的元数据缓存替换方法
US20060143400A1 (en) Replacement in non-uniform access cache structure
CN111124297B (zh) 一种堆叠dram缓存的性能提升方法
CN1165000C (zh) 动态索引的微处理器高速缓存方法
CN106155923B (zh) 内存共享的方法和装置
CN110944050B (zh) 反向代理服务器缓存动态配置方法及系统
CN108509151B (zh) 一种基于dram内存控制器的行缓存方法和系统
Stuecheli et al. Coordinating DRAM and last-level-cache policies with the virtual write queue
Huang et al. ROP: Alleviating refresh overheads via reviving the memory system in frozen cycles
KR101976320B1 (ko) 라스트 레벨 캐시 메모리 및 이의 데이터 관리 방법
Chen et al. Research on tiered storage method for big data of virtual information based on cloud computing
Herter et al. Making dynamic memory allocation static to support WCET analysis

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: 20190118

Termination date: 20201228

CF01 Termination of patent right due to non-payment of annual fee