CN108073527B - 一种缓存替换的方法和设备 - Google Patents

一种缓存替换的方法和设备 Download PDF

Info

Publication number
CN108073527B
CN108073527B CN201610986946.9A CN201610986946A CN108073527B CN 108073527 B CN108073527 B CN 108073527B CN 201610986946 A CN201610986946 A CN 201610986946A CN 108073527 B CN108073527 B CN 108073527B
Authority
CN
China
Prior art keywords
data
area
memory
access request
memory controller
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
Application number
CN201610986946.9A
Other languages
English (en)
Other versions
CN108073527A (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.)
Huawei Technologies Co Ltd
Institute of Computing Technology of CAS
Original Assignee
Huawei Technologies Co Ltd
Institute of Computing Technology of CAS
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 Huawei Technologies Co Ltd, Institute of Computing Technology of CAS filed Critical Huawei Technologies Co Ltd
Priority to CN201610986946.9A priority Critical patent/CN108073527B/zh
Priority to PCT/CN2017/109553 priority patent/WO2018082695A1/zh
Publication of CN108073527A publication Critical patent/CN108073527A/zh
Application granted granted Critical
Publication of CN108073527B publication Critical patent/CN108073527B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/128Replacement control using replacement algorithms adapted to multidimensional cache systems, e.g. set-associative, multicache, multiset or multilevel
    • 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/12Replacement control

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

本发明公开一种缓存替换的方法和设备,应用于计算机系统,该计算机系统包括内存控制器、第一级存储器和第二级存储器,该方法包括:内存控制器接收携带有第一目标地址的第一访问请求,第一目标地址为第一访问请求待访问的第一数据在第二级存储器中的地址;当内存控制器根据第一目标地址确定第一访问请求未命中第一区和第二区时,从第二级存储器中获取第一数据,第一级存储器包括第一区、第二区和第三区,第一区用于缓存热数据,第二区用于缓存冷数据,第三区用于缓存从第二区被替换出的数据的在第二级存储器中的地址;当根据第一目标地址确定第一访问请求未命中第三区时,在第二区中确定待替换的第一缓存块;将第一缓存块中的数据替换为第一数据。

Description

一种缓存替换的方法和设备
技术领域
本发明涉及数据处理技术领域,尤其涉及一种缓存替换的方法和设备。
背景技术
计算机系统可以包括内存控制器、动态随机存取存储器(dynamic random accessmemory,DRAM)和非易失性存储器(non-volatile memory,NVM)。其中,DRAM包括一个或多个用于存储数据的缓存块。内存控制器接收到访问请求后,若该访问请求未命中DRAM且DRAM已满,则将从NVM中获取到待访问数据,并随机将DRAM中的一个缓存块作为待替换缓存块,并将待替换缓存块中的数据替换为待访问数据。
上述提供的缓存替换的方法中,内存控制器随机将DRAM中的一个缓存块作为待替换缓存块,这样,很可能替换掉访问频率高的数据,这样会减小缓存命中率。
发明内容
本发明的实施例提供一种缓存替换的方法和设备,用以提高缓存命中率。
为达到上述目的,本发明的实施例采用如下技术方案:
一方面,提供一种缓存替换的方法,应用于包括内存控制器和混合内存的计算机系统中。其中,混合内存包括第一级存储器以及第二级存储器。第一级存储器用于缓存第二级存储器中的数据,第一级存储器支持高速缓存访问,第二级存储器为NVM。该方法可以包括:内存控制器接收携带有第一目标地址的第一访问请求,其中,第一目标地址为第一访问请求待访问的第一数据在第二级存储器中的地址;然后,当内存控制器根据第一目标地址确定第一访问请求未命中第一级存储器中的第一区和第二区时,根据第一目标地址从第二级存储器中获取第一数据,其中,第一级存储器包括第一区、第二区以及第三区,第一区用于缓存热数据,第二区用于缓存冷数据,第三区用于缓存从第二区被替换出的数据的在第二级存储器中的地址;后续,当内存控制器根据第一目标地址确定第一访问请求未命中第三区时,在第二区中确定待替换的第一缓存块;最后,内存控制器将第一缓存块中的数据替换为第一数据。
在该技术方案中,当访问请求未命中第一级存储器时,内存控制器从第二级存储器中获取该访问请求所请求的第一数据,然后,内存控制器根据访问请求中携带的第一目标地址确定第一访问请求未命中第三区时,在第二区中确定待替换的第一缓存块。其中,第一区用于缓存热数据,第二区用于缓存冷数据,第三区用于记录从第二区被替换出的数据的在第二级存储器中的地址。也就是说,本发明实施例提供的技术方案中,若第三区未命中的概率较高时,可以使得第一区中缓存的冷数据被替换出去的概率提高,从而使得第一级缓存中缓存的热数据较多。因此,与现有技术中提供的在第一级缓存器中随机确定待替换的缓存块相比,能够提高缓存命中率。
在一种可能的设计中,所述第二级存储器为非易失性存储器NVM。
在一种可能的设计中,在内存控制器将第一缓存块中的数据替换为第一数据之后,该方法还可以包括:内存控制器将第一缓存块中的数据的地址存储在第三区中。该可能的设计用于在后续缓存替换过程中,确定从第一区中确定待替换的缓存块还是从第二区中确定待替换的缓存块。具体的,内存控制器若确定第三区中存储有第一目标地址,则认为第一数据是热数据,在第一区确定待替换的缓存块;若确定第三区中未存储该第一目标地址,则认为第一数据是冷数据,在第二区确定待替换的缓存块。
在一种可能的设计中,该方法还可以包括:内存控制器接收携带有第二目标地址的第二访问请求,第二目标地址为第二访问请求待访问的第二数据在第二级存储器中的地址;然后,当根据第二目标地址确定第二访问请求未命中第一级存储器中的第一区和第二区时,内存控制器根据第二目标地址从所述第二级存储器中获取第二数据;后续,当根据第二目标地址确定第二访问请求命中第三区时,内存控制器在第一区中确定待替换的第二缓存块;最后,内存控制器将第二缓存块中的数据替换为第二数据。
在一种可能的设计中,第一区大于第二区。第一区包括的缓存块的个数可以大于第二区包括的缓存块的个数,即存储热数据的区域可以大于存储冷数据的区域。由于热数据被访问的命中率高于冷数据被访问的命中率,因此,扩大热数据的区域可以提高缓存命中率。
在一种可能的设计中,内存控制器在第二区中确定待替换的第一缓存块,可以包括:内存控制器将第二区中的任一数据或最早被写入第一级存储器中的数据所在的缓存块确定为待替换的第一缓存块。
在一种可能的设计中,第三区小于或等于预设阈值。本发明实施例对预设阈值的取值不进行限定,一般地,预设阈值较小,即第三区的存储空间较小,以使尽可能多的存储于第二区的冷数据被替换掉,使存储于第一区的热数据尽可能少的被替换掉,从而提高缓存命中率。具体分析过程可参考下文。
另一方面,提供一种计算设备,该计算设备可以包括内存控制器和混合内存,混合内存包括第一级存储器以及第二级存储器,第一级存储器用于缓存第二级存储器中的数据,第一级存储器支持高速缓存访问,内存控制器可以用于:接收第一访问请求,第一访问请求中携带有第一目标地址,第一目标地址为第一访问请求待访问的第一数据在第二级存储器中的地址;当根据第一目标地址确定第一访问请求未命中第一级存储器中的第一区和第二区时,根据第一目标地址从第二级存储器中获取第一数据,其中,第一级存储器包括第一区、第二区以及第三区,第一区用于缓存热数据,第二区用于缓存冷数据,第三区用于缓存从第二区被替换出的数据的在第二级存储器中的地址;当根据第一目标地址确定第一访问请求未命中第三区时,在第二区中确定待替换的第一缓存块;将第一缓存块中的数据替换为第一数据。
在一种可能的设计中,内存控制器还用于:将第一缓存块中的数据的地址存储在第三区中。
在一种可能的设计中,内存控制器还用于:接收第二访问请求,第二访问请求中携带有第二目标地址,第二目标地址为第二访问请求待访问的第二数据在第二级存储器中的地址;当根据第二目标地址确定第二访问请求未命中第一级存储器中的第一区和第二区时,根据第二目标地址从内存中获取第二数据;当根据第二目标地址确定第二访问请求命中第三区时,在第一区中确定待替换的第二缓存块;将第二缓存块中的数据替换为第二数据。
在一种可能的设计中,第一区大于第二区。
在一种可能的设计中,所述第二级存储器为非易失性存储器NVM。
在一种可能的设计中,内存控制器具体用于:将第二区中的任一数据或最早被写入第一级存储器中的数据所在的缓存块确定为待替换的第一缓存块。
在一种可能的设计中,第三区小于或等于预设阈值。
又一方面,本发明实施例提供了一种内存控制器,所述内存控制器中包含有分别用于执行上述第一方面以及第一方面的各可能的实施方式中所示的方法的模块。
又一方面,提供一种计算机可读存储介质,计算机可读存储介质中存储有计算机执行指令,当计算设备的至少一个处理器执行该计算机执行指令时,计算设备执行上述方面或者上述方面的任一种可能的实现方式所提供的缓存替换的方法。
另一方面,提供一种计算机程序产品,该计算机程序产品包括计算机执行指令,该计算机执行指令存储在计算机可读存储介质中;计算设备的至少一个处理器可以从计算机可读存储介质读取该计算机执行指令,至少一个处理器执行该计算机执行指令使得计算设备实施上述方面或者上述方面的任一种可能的实现方式所提供的缓存替换的方法。
可以理解地,上述提供的任一种计算设备或计算机存储介质均用于执行上文所提供的缓存替换的方法,因此,其所能达到的有益效果可参考上文所提供的相应的缓存替换的方法中的有益效果,此处不再赘述。
附图说明
图1为本发明实施例所适用的一种计算机系统架构图;
图2为本发明实施例所适用的一种缓存系统架构图;
图3为本发明实施例提供的一种缓存替换的方法的流程图;
图4为本发明实施例提供的一种第一级存储器的结构图;
图5为本发明实施例提供的另一种第一级存储器的结构图;
图6为本发明实施例提供的一种缓存替换的方法的交互图;
图7为本发明实施例提供的一种内存控制器的结构示意图;
图8为本发明实施例提供的另一种内存控制器的结构示意图;
图9为本发明实施例提供的一种计算设备的结构示意图。
具体实施方式
本发明实施例提供的技术方案可以应用于如图1所示的计算机系统架构中,图1所示的计算机系统可以包括处理器、内存控制器和混合内存。其中,处理器是计算机系统的控制中心。混合内存包括第一级存储器和第二级存储器。第一级存储器用于缓存第二级存储器中的数据,还用于支持高速缓存访问。在DRAM-NVM内存系统中,DRAM可以作为图1提供的计算机系统中的第一级存储器,NVM可以作为图1提供的计算机系统中的第二级存储器。
本发明实施例提供的技术方案还可以应用于如图2所示的缓存系统架构中,图2所示的缓存系统可以包括处理器、缓存、缓存控制器、内存控制器和内存。其中,处理器是缓存系统的控制中心。缓存是介于处理器和内存之间的高速存储器,主要用于提升系统的读写性能。缓存控制器用于对缓存中的数据进行管理。缓存中的数据可以是内存中的一部分数据。进一步的,若缓存包含待访问数据,则处理器可以从缓存中获取待访问数据,而不用从内存中获取待访问数据,从而加快了读取速度。
需要说明的是,图1中的内存控制器执行的功能可以类比于图2中的缓存控制器执行的功能。图1中的第一级存储器可以类比于图2中的缓存。图1中的第二级存储器可以类比于图2中的内存。
本文中的术语“第一”和“第二”等是用于区别不同的对象,而不是用于描述对象的特定顺序。本文中的术语“多个”是指两个或两个以上。本文中字符“/”,表示前后关联对象是一种“或”的关系。
如图3所示,为本发明实施例提供的一种缓存替换的方法的流程图,可以应用于如图1所示的计算机系统架构中,计算机系统可以包括处理器、内存控制器、第一级存储器和第二级存储器。第一级存储器包括第一区、第二区和第三区。其中,第一区用于缓存热数据,第二区用于缓存冷数据,第三区用于缓存从第二区被替换出的数据的在第二级存储器中的地址。本发明实施例中认为存储在第一区内的数据为热数据,存储在第二区的数据为冷数据。第一区、第二区和第三区包括的缓存块的位置可以是连续的,也可以是不连续的。
基于此,该方法可以包括以下步骤S101~S104:
S101:内存控制器接收第一访问请求。其中,第一访问请求中携带有第一目标地址,第一目标地址为第一访问请求待访问的第一数据在第二级存储器中的地址。
具体的,S101可以包括:内存控制器接收处理器发送的第一访问请求。第一访问请求可以是处理器发送的任一次访问请求。
在S101之前,该方法还可以包括:内存控制器根据第一目标地址,判断第一访问请求是否命中第一级存储器中的第一区和第二区中的任一区。
S102:当根据第一目标地址确定第一访问请求未命中第一级存储器中的第一区和第二区时,内存控制器根据第一目标地址从第二级存储器中获取第一数据。
第一数据可以是混合内存中存储的任一数据;且第一数据可以是第一级存储器中存储的数据,也可以不是第一级存储器中存储的数据。
可选的,内存控制器将第一级存储器分区之后,第一区可以包括一个或多个缓存块,第二区可以包括一个或多个缓存块,第三区可以包括一个或多个缓存块。其中,第一区包括的缓存块的个数可以大于第二区包括的缓存块的个数,即存储热数据的区域可以大于存储冷数据的区域。由于热数据被访问的命中率高于冷数据被访问的命中率,因此,扩大热数据的区域可以提高缓存命中率。
S102中的从第二级存储器中获取第一数据,可以包括:内存控制器向第二级存储器发送该第一访问请求;第二级存储器接收该第一访问请求,并向内存控制器发送访问响应消息,其中,访问响应消息携带第一数据;内存控制器接收该访问响应消息。
S103:当根据第一目标地址确定第一访问请求未命中第三区时,内存控制器在第二区中确定待替换的第一缓存块。
若内存控制器根据第一目标地址确定第一访问请求未命中第三区,则认为该第一数据是冷数据,要把该第一数据放在第二区,即在第二区中确定待替换的第一缓存块。
在S103中,内存控制器在第二区中确定待替换的第一缓存块具体可以包括:内存控制器在第二区中根据随机算法,随机将第二级存储器中的数据所在的缓存块确定待替换的第一缓存块;或者,根据先入先出算法,将最早被写入第一级存储器中的数据所在的缓存块确定待替换的第一缓存块。关于随机算法和先入先出算法的具体内容可以参考现有技术。
S104:内存控制器将第一缓存块中的数据替换为第一数据。
内存控制器若确定第一访问请求未命中第一级存储器中的第一区和第二区时,则根据第一目标地址从第二级存储器中获取第一数据。若第一级存储器已满且第三区未存储第一目标地址,则该情况下,内存控制器会优先在第二区中确定待替换的第一缓存块,并将第一缓存块中的数据替换为第一数据。由于第二区存储冷数据,因此本发明实施例保证了优先替换冷数据,从而提高了缓存命中率。
示例的,假设第一级存储器包括6个缓存块,每个缓存块中存储有数据和该数据的地址。第一级存储器包括第一区、第二区和第三区。第一区的缓存块1中存储数据3和地址3、缓存块2中存储数据4和地址4、缓存块3中存储数据5和地址5,第二区的缓存块4中存储数据1和地址1、缓存块5中存储数据2和地址2,第三区的缓存块6中未存储地址,如图4所示。若第一时刻内存控制器接收的第一访问请求包括地址6,则缓存替换后,第二区的缓存块4中存储的信息可以为数据6和地址6、第三区的缓存块6中可以存储地址1,如图5所示。
具体实现时,若第一级存储器未满,则内存控制器可以将第一数据写入任一个空闲的缓存块中。
本发明实施例提供的技术方案中,当访问请求未命中第一级存储器时,内存控制器从第二级存储器中获取该访问请求所请求的第一数据,然后,内存控制器根据访问请求中携带的第一目标地址确定第一访问请求未命中第三区时,在第二区中确定待替换的第一缓存块。其中,第一区用于缓存热数据,第二区用于缓存冷数据,第三区用于记录从第二区被替换出的数据的在第二级存储器中的地址。也就是说,本发明实施例提供的技术方案中,若第三区未命中的概率较高时,可以使得第一区中缓存的冷数据被替换出去的概率提高,从而使得第一级缓存中缓存的热数据较多。因此,与现有技术中提供的在第一级缓存器中随机确定待替换的缓存块相比,能够提高缓存命中率。
现有技术中,内存控制器可以给DRAM包括的每个缓存块添加一个标志位,并设置每个缓存块的初始值。DRAM控制器若确定DRAM中存储有待访问数据,即命中,则向处理器发送包括待访问数据的访问响应消息,并更新待访问数据信息。更新待访问数据信息可以包括但不限于将待访问数据所在的缓存块的标志位的值置零,将DRAM中除去该缓存块的所有缓存块的标志位的值增大。具体实现时,对设置的缓存块的初始值和增加的标志位的值的幅度不进行限定。示例的,假设内存控制器将每个缓存块的初始值设置为1,若缓存命中,则可以将待访问数据所在的缓存块的标志位的值由“1”更新为“0”,可以将DRAM中的除去该缓存块的所有缓存块的标志位的初始值由“1”更新为“2”。
基于此,本发明实施例中提供的技术方案中,若缓存命中,则内存控制器向处理器发送包括待访问数据的访问响应消息,不需更新待访问数据信息,这样,与现有技术相比,可以消除命中时更新待访问数据信息的开销。
可选的,该方法还可以包括:内存控制器接收第二访问请求;其中,第二访问请求中携带有第二目标地址,第二目标地址为第二访问请求待访问的第二数据在第二级存储器中的地址。当根据第二目标地址确定第二访问请求未命中第一级存储器中的第一区和第二区时,内存控制器根据第二目标地址从内存中获取第二数据。当根据第二目标地址确定第二访问请求命中第三区时,内存控制器在第一区中确定待替换的第二缓存块。内存控制器将第二缓存块中的数据替换为第二数据。需要说明的是,第二访问请求可以是处理器发送的任一次访问请求。第一访问请求与第二访问请求可以相同,可以不同。待替换的第一缓存块和待替换的第二缓存块可以相同,可以不同。本发明实施例以“第一访问请求和第二访问请求相同,第一缓存块和第二缓存块相同”为例进行说明。
可选的,在S104之后,该方法还可以包括:内存控制器将第一缓存块中的数据的地址存储在第三区中。缓存块中的数据的地址可以包括地址部分,地址部分可以用于标记数据的地址。内存控制器将第一缓存块中的数据的地址存储在第三区中,具体可以包括:内存控制器将第一缓存块中的数据的地址存储在第三区中。这样,内存控制器若确定第三区中存储有该地址,则认为该数据是热数据,在第一区确定待替换的第二缓存块;若确定第三区中未存储该地址,则认为该数据是冷数据,在第二区确定待替换的第一缓存块。
另外可选的,第三区小于或等于预设阈值。本发明实施例对预设阈值的取值不进行限定,一般地,预设阈值较小,也就是说,第三区的存储空间较小。由于第三区用于缓存从第二区被替换出的数据的在第二级存储器中的地址,若第三区的存储空间较大,则第一访问请求可能会连续命中第三区,由于本发明实施例中认为第一区存储热数据,该情况下会有很多热数据被替换掉,因此,应使第三区的存储空间较小,以使尽可能多的存储于第二区的冷数据被替换掉,使存储于第一区的热数据尽可能少的被替换掉,从而提高缓存命中率。
下面通过一个具体的示例对上文提供的缓存替换的方法进行说明。
如图6所示,为本发明实施例提供的一种缓存替换的方法的交互图。下文以“处理器向内存控制器发送待访问请求,待访问请求中携带有待访问数据地址”为例进行说明。图6所示的方法包括:
S201:处理器向内存控制器发送待访问请求。其中,待访问请求中携带有待访问数据地址,待访问数据地址为待访问数据在第二级存储器中的地址。
S202:内存控制器接收该待访问请求,并根据待访问数据地址,判断待访问请求是否命中第一级存储器中的第一区和第二区。
若是,则执行S203;若否,则执行S204。
S203:内存控制器向处理器发送访问响应消息,其中,访问响应消息包括待访问数据。
执行S203之后,则结束。
S204:内存控制器向第二级存储器发送待访问请求。
S205:第二级存储器接收该待访问请求,并向内存控制器发送访问响应消息,其中,访问响应消息包括待访问数据。
S206:内存控制器接收该待访问数据,并判断待访问请求是否命中第三区。
若是,则执行S207;若否,则执行S208。
S207:内存控制器在第一区中确定待替换缓存块,并将待替换缓存块中的数据替换为待访问数据。
执行S207之后,则结束。
S208:内存控制器在第二区中确定待替换缓存块,并将待替换缓存块中的数据替换为待访问数据,然后将待替换缓存块中的数据的地址存储在第三区中。
执行S208之后,则结束。
上述主要从内存控制器的角度对本发明实施例提供的方案进行了介绍。可以理解的是,为了实现上述各个功能,内存控制器包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的模块及算法步骤,本发明能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
本发明实施例可以根据上述方法示例对内存控制器进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本发明实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
在采用各个功能划分的各个功能模块的情况下,图7示出了一种内存控制器7的结构示意图。内存控制器7可以包括:接收模块701、获取模块702、确定模块703和替换模块704。可选的,内存控制器7还可以包括:缓存模块705。这各功能模块中的每个功能模块所具有的功能可以根据上文所提供的各方法实施例中的各步骤推断出来,或者可以参考上文发明内容部分所提供的内容,此处不再赘述。
在采用集成的模块的情况下,上述获取模块702、确定模块703、替换模块704和缓存模块705均可以集成为内存控制器7中的一个处理模块。上述接收模块701和发送模块均可以集成为内存控制器7中的一个通信模块。内存控制器7中还可以包括存储模块706。
如图8所示,为本发明实施例提供的一种内存控制器8的结构示意图。内存控制器8可以包括:处理模块801和通信模块802。其中,处理模块801用于对内存控制器8的工作进行控制管理,例如,处理模块801用于支持内存控制器8执行图3中的S102~S104、图6中的S202和S206~S208等,和/或用于本文所描述的技术的其它过程。通信模块802用于支持内存控制器8与其他网络实体的通信,例如通信模块802用于支持内存控制器8执行图3中的S101、图6中的S201和S203~S206等,和/或用于本文所描述的技术的其它过程。另外,内存控制器8还可以包括:存储模块803。存储模块803用于存储内存控制器8执行上文所提供的任一缓存替换的方法所对应的程序代码和数据。
如图9所示,为本发明实施例提供的一种计算设备9的结构示意图。计算设备9可以包括:处理器901、内存控制器902、第一级存储器903、第二级存储器904、收发器905以及总线906;其中,处理器901、内存控制器902、第一级存储器903、第二级存储器904、收发器905通过总线906相互连接。处理器901可以是CPU,通用处理器,数字信号处理器(digitalsignal processor,DSP),专用集成电路(application-specific integrated circuit,ASIC),现场可编程门阵列(field programmable gate array,FPGA)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本发明公开内容所描述的各种示例性的逻辑方框,模块和电路。所述处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等。总线906可以是外设部件互连标准(peripheral component interconnect,PCI)总线或扩展工业标准结构(extendedindustry standard architecture,EISA)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图9中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
结合本发明公开内容所描述的方法或者算法的步骤可以硬件的方式来实现,也可以是由处理模块执行软件指令的方式来实现。软件指令可以由相应的软件模块组成,软件模块可以被存放于随机存取存储器(random access memory,RAM)、闪存、只读存储器(readonly memory,ROM)、可擦除可编程只读存储器(erasable programmable ROM,EPROM)、电可擦可编程只读存储器(electrically EPROM,EEPROM)、寄存器、硬盘、移动硬盘、只读光盘(CD-ROM)或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于ASIC中。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围。

Claims (12)

1.一种缓存替换的方法,其特征在于,所述方法应用于计算机系统中,所述计算机系统包括内存控制器和混合内存,所述混合内存包括第一级存储器以及第二级存储器,所述第一级存储器用于缓存所述第二级存储器中的数据,所述第一级存储器支持高速缓存访问,所述方法包括:
所述内存控制器接收第一访问请求,所述第一访问请求中携带有第一目标地址,所述第一目标地址为所述第一访问请求待访问的第一数据在所述第二级存储器中的地址;
当根据所述第一目标地址确定所述第一访问请求未命中所述第一级存储器中的第一区和第二区时,所述内存控制器根据所述第一目标地址从所述第二级存储器中获取所述第一数据,其中,所述第一级存储器包括所述第一区、所述第二区以及第三区,所述第一区用于缓存热数据,所述第二区用于缓存冷数据,所述第三区用于缓存从所述第二区被替换出的数据的在所述第二级存储器中的地址;
当根据所述第一目标地址确定所述第一访问请求未命中所述第三区时,所述内存控制器在所述第二区中确定待替换的第一缓存块;
所述内存控制器将所述第一缓存块中的数据替换为所述第一数据。
2.根据权利要求1所述的方法,其特征在于,在所述内存控制器将所述第一缓存块中的数据替换为所述第一数据之后,所述方法还包括:
所述内存控制器将所述第一缓存块中的数据的地址存储在所述第三区中。
3.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
所述内存控制器接收第二访问请求,所述第二访问请求中携带有第二目标地址,所述第二目标地址为所述第二访问请求待访问的第二数据在所述第二级存储器中的地址;
当根据所述第二目标地址确定所述第二访问请求未命中所述第一级存储器中的第一区和第二区时,所述内存控制器根据所述第二目标地址从所述第二级存储器中获取所述第二数据;
当根据所述第二目标地址确定所述第二访问请求命中所述第三区时,所述内存控制器在所述第一区中确定待替换的第二缓存块;
所述内存控制器将所述第二缓存块中的数据替换为所述第二数据。
4.根据权利要求1或2所述的方法,其特征在于,所述第一区大于所述第二区。
5.根据权利要求1所述的方法,其特征在于,所述内存控制器在所述第二区中确定待替换的第一缓存块,包括:
所述内存控制器在所述第二区中的任一数据或将最早被写入的数据所在的缓存块确定为待替换的第一缓存块。
6.根据权利要求1、2、5中任一项所述的方法,其特征在于,所述第三区小于或等于预设阈值。
7.一种计算设备,其特征在于,所述计算设备包括内存控制器和混合内存,所述混合内存包括第一级存储器以及第二级存储器,所述第一级存储器用于缓存所述第二级存储器中的数据,所述第一级存储器支持高速缓存访问,所述内存控制器用于:
接收第一访问请求,所述第一访问请求中携带有第一目标地址,所述第一目标地址为所述第一访问请求待访问的第一数据在所述第二级存储器中的地址;
当根据所述第一目标地址确定所述第一访问请求未命中所述第一级存储器中的第一区和第二区时,根据所述第一目标地址从所述第二级存储器中获取所述第一数据,其中,所述第一级存储器包括所述第一区、所述第二区以及第三区,所述第一区用于缓存热数据,所述第二区用于缓存冷数据,所述第三区用于缓存从所述第二区被替换出的数据的在所述第二级存储器中的地址;
当根据所述第一目标地址确定所述第一访问请求未命中所述第三区时,在所述第二区中确定待替换的第一缓存块;
将所述第一缓存块中的数据替换为所述第一数据。
8.根据权利要求7所述的计算设备,其特征在于,所述内存控制器还用于:
将所述第一缓存块中的数据的地址存储在所述第三区中。
9.根据权利要求7或8所述的计算设备,其特征在于,所述内存控制器还用于:
接收第二访问请求,所述第二访问请求中携带有第二目标地址,所述第二目标地址为所述第二访问请求待访问的第二数据在所述第二级存储器中的地址;
当根据所述第二目标地址确定所述第二访问请求未命中所述第一级存储器中的第一区和第二区时,根据所述第二目标地址从所述第二级存储器中获取所述第二数据;
当根据所述第二目标地址确定所述第二访问请求命中所述第三区时,在所述第一区中确定待替换的第二缓存块;
将所述第二缓存块中的数据替换为所述第二数据。
10.根据权利要求7或8所述的计算设备,其特征在于,所述第一区大于所述第二区。
11.根据权利要求7所述的计算设备,其特征在于,所述内存控制器具体用于:
将所述第二区中的任一数据或最早的数据所在的缓存块确定为待替换的第一缓存块。
12.根据权利要求7、8、11中任一项所述的计算设备,其特征在于,所述第三区小于或等于预设阈值。
CN201610986946.9A 2016-11-07 2016-11-07 一种缓存替换的方法和设备 Active CN108073527B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201610986946.9A CN108073527B (zh) 2016-11-07 2016-11-07 一种缓存替换的方法和设备
PCT/CN2017/109553 WO2018082695A1 (zh) 2016-11-07 2017-11-06 一种缓存替换的方法和设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610986946.9A CN108073527B (zh) 2016-11-07 2016-11-07 一种缓存替换的方法和设备

Publications (2)

Publication Number Publication Date
CN108073527A CN108073527A (zh) 2018-05-25
CN108073527B true CN108073527B (zh) 2020-02-14

Family

ID=62076674

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610986946.9A Active CN108073527B (zh) 2016-11-07 2016-11-07 一种缓存替换的方法和设备

Country Status (2)

Country Link
CN (1) CN108073527B (zh)
WO (1) WO2018082695A1 (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112673359A (zh) * 2018-10-12 2021-04-16 华为技术有限公司 一种数据处理方法和装置
CN109274760A (zh) * 2018-10-19 2019-01-25 西安瑜乐文化科技股份有限公司 一种移动开发冷热数据拆分方法
CN112699061B (zh) * 2020-12-07 2022-08-26 海光信息技术股份有限公司 实现PCIe设备的缓存一致性的系统、方法和介质
CN112558889B (zh) * 2021-02-26 2021-05-28 北京微核芯科技有限公司 一种基于SEDRAM的堆叠式Cache系统、控制方法和Cache装置
CN113572582B (zh) * 2021-07-15 2022-11-22 中国科学院计算技术研究所 数据发送、重传控制方法及系统、存储介质及电子设备
CN115586869B (zh) * 2022-09-28 2023-06-06 中国兵器工业计算机应用技术研究所 一种自组网系统及自组网系统的流数据处理方法
CN116107926B (zh) * 2023-02-03 2024-01-23 摩尔线程智能科技(北京)有限责任公司 缓存替换策略的管理方法、装置、设备、介质和程序产品

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101236530A (zh) * 2008-01-30 2008-08-06 清华大学 高速缓存替换策略的动态选择方法
CN104834608A (zh) * 2015-05-12 2015-08-12 华中科技大学 一种异构内存环境下的缓存替换方法
CN105095116A (zh) * 2014-05-19 2015-11-25 华为技术有限公司 缓存替换的方法、缓存控制器和处理器

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8745334B2 (en) * 2009-06-17 2014-06-03 International Business Machines Corporation Sectored cache replacement algorithm for reducing memory writebacks
CN102999444A (zh) * 2012-11-13 2013-03-27 华为技术有限公司 一种用于替换缓存模块中数据的方法及装置
CN103885890B (zh) * 2012-12-21 2017-04-12 华为技术有限公司 高速缓冲存储器cache中cache块的替换处理方法和装置
US20140289468A1 (en) * 2013-03-25 2014-09-25 International Business Machines Corporation Lightweight primary cache replacement scheme using associated cache
WO2015047348A1 (en) * 2013-09-27 2015-04-02 Intel Corporation Cache operations for memory management

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101236530A (zh) * 2008-01-30 2008-08-06 清华大学 高速缓存替换策略的动态选择方法
CN105095116A (zh) * 2014-05-19 2015-11-25 华为技术有限公司 缓存替换的方法、缓存控制器和处理器
CN104834608A (zh) * 2015-05-12 2015-08-12 华中科技大学 一种异构内存环境下的缓存替换方法

Also Published As

Publication number Publication date
WO2018082695A1 (zh) 2018-05-11
CN108073527A (zh) 2018-05-25

Similar Documents

Publication Publication Date Title
CN108073527B (zh) 一种缓存替换的方法和设备
US10210101B2 (en) Systems and methods for flushing a cache with modified data
CN110275841B (zh) 访问请求处理方法、装置、计算机设备和存储介质
US9921955B1 (en) Flash write amplification reduction
CN105094686B (zh) 数据缓存方法、缓存和计算机系统
US10223278B2 (en) Selective bypassing of allocation in a cache
CN108021514B (zh) 一种缓存替换的方法和设备
CN105677580A (zh) 访问缓存的方法和装置
US20150143045A1 (en) Cache control apparatus and method
US9965397B2 (en) Fast read in write-back cached memory
US20160342526A1 (en) Electronic device having scratchpad memory and management method for scratchpad memory
US11226898B2 (en) Data caching method and apparatus
CN111324556A (zh) 高速缓存预取
US20080307169A1 (en) Method, Apparatus, System and Program Product Supporting Improved Access Latency for a Sectored Directory
US11645209B2 (en) Method of cache prefetching that increases the hit rate of a next faster cache
CN117573574B (zh) 一种预取方法、装置、电子设备及可读存储介质
US20170262485A1 (en) Non-transitory computer-readable recording medium, data management device, and data management method
US20200133864A1 (en) Method, apparatus and computer program product for managing i/o operation
KR20220079493A (ko) 페이지-레벨로 추적되는 로드 순서화 큐를 이용하는 추측 실행
JP5699854B2 (ja) 記憶制御システムおよび方法、置換方式および方法
CN107967306B (zh) 一种存储系统中关联块的快速挖掘方法
CN112214178B (zh) 一种存储系统、数据读取方法及数据写入方法
CN110658999B (zh) 一种信息更新方法、装置、设备及计算机可读存储介质
CN110727612B (zh) 一种基于精确预取的计算缓存装置
WO2017015952A1 (zh) 一种高速缓冲存储器中存储数据的替换方法和替换装置

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