CN106569960A - 一种混合主存的末级缓存管理方法 - Google Patents

一种混合主存的末级缓存管理方法 Download PDF

Info

Publication number
CN106569960A
CN106569960A CN201610993133.2A CN201610993133A CN106569960A CN 106569960 A CN106569960 A CN 106569960A CN 201610993133 A CN201610993133 A CN 201610993133A CN 106569960 A CN106569960 A CN 106569960A
Authority
CN
China
Prior art keywords
nvm
dram
dirty
clean
cache
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.)
Granted
Application number
CN201610993133.2A
Other languages
English (en)
Other versions
CN106569960B (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.)
Zhengzhou Yunhai Information Technology Co Ltd
Original Assignee
Zhengzhou Yunhai Information Technology Co Ltd
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 Zhengzhou Yunhai Information Technology Co Ltd filed Critical Zhengzhou Yunhai Information Technology Co Ltd
Priority to CN201610993133.2A priority Critical patent/CN106569960B/zh
Publication of CN106569960A publication Critical patent/CN106569960A/zh
Application granted granted Critical
Publication of CN106569960B publication Critical patent/CN106569960B/zh
Active 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/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0811Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
    • 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/0877Cache access modes
    • 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/0893Caches characterised by their organisation or structure
    • G06F12/0897Caches characterised by their organisation or structure with two or more cache hierarchy levels
    • 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/126Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning
    • 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
    • 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/10Providing a specific technical effect
    • G06F2212/1028Power efficiency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/20Employing a main memory using a specific memory technology
    • G06F2212/205Hybrid memory, e.g. using both volatile and non-volatile memory
    • 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/6042Allocation of cache space to multiple users or processors

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

本发明公开了一种混合主存的末级缓存管理方法,混合主存包括DRAM和NVM,该方法包括接收上级缓存发送的访问请求;依据访问请求判断末级缓存是否命中,如果是,则确定命中的缓存行,依据末级缓存的缓存行的预设标记位执行提升策略;其中,预设标记位用于标记所在缓存行属于DRAM还是NVM;否则,执行回收策略,选取最低优先级位置的缓存行进行回收,并依据未命中的访问请求对应的预设类型执行插入策略,其中,预设类型包括脏NVM、脏DRAM、干净NVM以及干净DRAM,且DNP>DDP>CNP>CDP,其中,DNP、DDP、CNP以及CDP分别为脏NVM、脏DRAM、干净NVM以及干净DRAM的优先级。本发明提高了应用系统的性能,减少了应用系统的能耗。

Description

一种混合主存的末级缓存管理方法
技术领域
本发明涉及缓存管理技术领域,特别是涉及一种混合主存的末级缓存管理方法。
背景技术
随着应用程序(比如搜索引擎、机器学习)的不断发展以及片上处理器核数的不断增多,基于SRAM/DRAM的存储系统逐渐成为了应用系统能耗和扩展性的瓶颈。最新出现的NVM(Non-Volatile Memory,非易失性存储器)被认为是下一代存储体系中非常有竞争力的一种存储器。和传统的存储器相比,NVM具有高密度、低静态功耗和非易失性的特点。但同时,NVM也存在着由于其本身的物理特性,导致其访问延迟较长和动态功耗较高,尤其是写操作的缺点。
鉴于DRAM和NVM各自的优缺点,由DRAM和NVM处于同一线性地址空间下的混合主存架构被提出。此架构的最终目标就是能够有效利用DRAM较低的写延迟和NVM的高密度以及低静态功耗等各自优良的特性,以便提高应用系统的性能和降低能耗。另外,在普遍具有缓存Cache的现代处理器中,缓存管理策略不仅决定了Cache发生缺失和对主存访问的数目,同时对单独主存块数据的缺失率也有较大的影响。因此,为了实现上述目标,在混合主存系统中通过设计相应的缓存Cache管理策略可以比较高效地对DRAM数据和NVM数据的读写操作数目进行控制。
现有技术中针对混合存储架构设计的缓存管理策略仅有一个通过为DRAM和NVM划分不同缓存空间进行设计的缓存管理策略(包括依据访问数据的类型是DRAM还是NVM执行提升策略或者插入策略或者回收策略)。它分别使用DRAM和NVM的读延迟作为相对应的数据发生缺失时的代价值,没有考虑到NVM的写延迟对应用系统的性能和能耗造成的影响。可实际上是NVM的写延迟和写能耗要大于NVM的读延迟和读能耗,通过实验表明,由于NVM较长的写延迟和较高的写能耗,从LLC(Last-Level Cache,末级缓存)中被替换出的脏数据引起的写操作对应用系统的性能和能耗的影响分别达到了21%和34%。可见,采用现有技术中的缓存管理策略仍然会降低应用系统的性能和增大应用系统的能耗。
因此,如何提供一种解决上述技术问题的方案是本领域技术人员目前需要解决的技术问题。
发明内容
本发明的目的是提供一种混合主存的末级缓存管理方法,提高了应用系统的性能,减少了应用系统的能耗。
为解决上述技术问题,本发明提供了一种混合主存的末级缓存管理方法,所述混合主存包括DRAM和NVM,该方法包括:
步骤S10:接收上级缓存发送的访问请求;
步骤S11:依据所述访问请求判断所述末级缓存是否命中,如果是,则进入步骤S12,否则,进入步骤S13;
步骤S12:确定命中的缓存行,依据所述末级缓存的缓存行的预设标记位执行提升策略;其中,所述预设标记位用于标记所在缓存行属于所述DRAM还是所述NVM;
步骤S13:执行回收策略,选取最低优先级位置的缓存行进行回收;
步骤S14:依据未命中的所述访问请求对应的预设类型执行插入策略,其中,所述预设类型包括脏NVM、脏DRAM、干净NVM以及干净DRAM,且DNP>DDP>CNP>CDP,其中,DNP、DDP、CNP以及CDP分别为所述脏NVM、脏DRAM、干净NVM以及干净DRAM的优先级。
优选地,所述依据所述末级缓存的缓存行的预设标记位执行提升策略的过程为:
步骤S121:依据所述命中的缓存行的预设标记位判断所述命中的缓存行属于DRAM还是NVM,如果属于所述DRAM,则进入步骤S122,如果属于所述NVM,则进入步骤S123;
步骤S122:依据所述命中的缓存行所在缓存组对应的饱和计数器的计数将所述命中的缓存行从当前位置提升DDP个位置,且最大至最高优先级位置,其中,DDP=counter/2,counter为所述饱和计数器的数值,所述饱和计数器的位数为n=log2 A+1,A为所述末级缓存的组相联度,counter的初始值为2(n-1),每个缓存行的最低优先级位置为LRU(0),最高优先级位置为MRU(A-1);
步骤S123:将所述命中的缓存行提升至所述最高优先级位置。
优选地,所述依据未命中的所述访问请求对应的预设类型执行插入策略的过程为:
步骤S141:判断未命中的访问请求是写回访问还是按需访问,如果是所述写回访问,则进入步骤S142,如果是所述按需访问,则进入步骤S145;
步骤S142:判断访问数据的类型是DRAM还是NVM,如果是DRAM,则未命中的所述访问请求对应的预设类型为脏DRAM,并进入步骤S143,如果是NVM,未命中的所述访问请求对应的预设类型为脏NVM,并则进入步骤S144;
步骤S143:将所述访问数据插入脏DRAM的优先级位置,所述脏DRAM的优先级位置为DDP=counter/2;
步骤S144:将所述访问数据插入脏NVM的优先级位置,所述脏NVM的优先级位置为DNP=A-1-counter/8;
步骤S145:判断访问数据的类型是DRAM还是NVM,如果是DRAM,则未命中的所述访问请求对应的预设类型为干净DRAM,并进入步骤S146,如果是NVM,则未命中的所述访问请求对应的预设类型为干净NVM,并进入步骤S147;
步骤S146:更新counter,进行加一,然后将所述访问数据插入干净DRAM的优先级的所在位置,所述干净DRAM的优先级位置为CDP=counter/8;
步骤S147:更新counter,进行减一,然后将所述访问数据插入干净NVM的优先级的所在位置,所述干净DRAM的优先级位置为CDP=counter/4。
优选地,所述NVM为自旋矩传输磁存储器。
优选地,所述NVM为阻变存储器。
优选地,所述NVM为相变存储器。
本发明提供了一种混合主存的末级缓存管理方法,混合主存包括DRAM和NVM,该方法包括接收上级缓存发送的访问请求;依据访问请求判断末级缓存是否命中,如果是,则确定命中的缓存行,依据末级缓存的缓存行的预设标记位执行提升策略;其中,预设标记位用于标记所在缓存行属于DRAM还是NVM否则,执行回收策略,选取最低优先级位置的缓存行进行回收,并依据未命中的访问请求对应的预设类型执行插入策略,其中,预设类型包括脏NVM、脏DRAM、干净NVM以及干净DRAM,且DNP>DDP>CNP>CDP,其中,DNP、DDP、CNP以及CDP分别为脏NVM、脏DRAM、干净NVM以及干净DRAM的优先级。
可见,本发明综合考虑DRAM和NVM之间的物理特性以及NVM读写之间的差异性,将末级缓存分为脏NVM、脏DRAM、干净NVM以及干净DRAM,且因为脏缓存行的命中率较高以及NVM缺失的代价高于DRAM,因此将优先级设置为DNP>DDP>CNP>CDP,在进行数据回收时会先回收优先级最低的,从而使得高优先级(例如脏NVM和脏DRAM)的数据能够尽可能长时间的保存在末级缓存中,一方面,兼顾了NVM和DRAM之间不同的物理特性,另一方面,在减少对NVM的读操作的同时,还大大减少了由于末级缓存中被替换出的脏数据引起的NVM写操作,提高了应用系统的性能,减少了应用系统的能耗。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对现有技术和实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明提供的一种混合主存的末级缓存管理方法的过程的流程图;
图2为本发明提供的一种应用系统的架构原理示意图;
图3为本发明提供的一种采用混合主存的末级缓存管理方法管理的8路末级缓存的变化原理图。
具体实施方式
本发明的核心是提供一种混合主存的末级缓存管理方法,提高了应用系统的性能,减少了应用系统的能耗。
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参照图1,图1为本发明提供的一种混合主存的末级缓存管理方法的过程的流程图,混合主存包括DRAM和NVM,该方法包括:
步骤S10:接收上级缓存发送的访问请求;
具体地,请参照图2,图2为本发明提供的一种应用系统的架构原理示意图,该应用系统中的混合主存由DRAM和NVM共同构成,处于同一线性地址空间下。片上缓存系统呈现多级层次结构,本发明应用于最后一级共享缓存,当然,本发明不仅限于三级缓存系统。每个CPU处理核都有其私有的一级指令/数据Cache和二级Cache。末级缓存LLC被多个处理器核共享,其数据来源分成两个方向,一个是来自于上级缓存的脏缓存行的写回数据(写回数据包括NVM数据和DRAM数据),另一个是来自于按需访问发生缺失时从下层主存读取的数据(读取的数据包括NVM数据和DRAM数据)。因此,LLC每个缓存组中可能包含四种缓存行类型:脏NVM(Dirty NVM)、脏DRAM(Dirty DRAM)、干净NVM(Clean NVM)和干净DRAM(Clean DRAM),其中,每个缓存组的最低优先级位置为LRU(0),最高优先级位置为MRU(A-1),A为末级缓存的组相联度。
基于这样的末级缓存,在末级缓存接收到上级缓存发送的访问请求时,需要首先依据访问请求的访问地址判断访问请求是否命中末级缓存。
步骤S11:依据访问请求判断末级缓存是否命中,如果是,则进入步骤S12,否则,进入步骤S13;
步骤S12:确定命中的缓存行,依据末级缓存的缓存行的预设标记位执行提升策略;其中,预设标记位用于标记所在缓存行属于DRAM还是NVM;
具体地,本申请会预先为末级缓存中的每个缓存行设置一位的标记位,用以指明此缓存行是属于DRAM还是NVM。当访问请求命中时,对于属于DRAM或者NVM的缓存行进行优先级调整。
步骤S13:执行回收策略,选取最低优先级位置的缓存行进行回收;
当替换发生时,选取回收最低优先级位置的缓存行进行回收以便留出空间。
步骤S14:依据未命中的访问请求对应的预设类型执行插入策略,其中,预设类型包括脏NVM、脏DRAM、干净NVM以及干净DRAM,且DNP>DDP>CNP>CDP,其中,DNP、DDP、CNP以及CDP分别为脏NVM、脏DRAM、干净NVM以及干净DRAM的优先级。
插入策略是指用户当访问缺失时,用于决定从主存中获取的数据在缓存组中的插入位置的策略。
具体地,在多级缓存系统中,对末级缓存LLC的访问类型可分为两种。一种被称为按需访问,指CPU发出的读/写请求在上几层缓存中都没有命中,然后产生对末级缓存LLC的访问。另一种是写回访问,指最靠近LLC的上层缓存替换出一个脏Cache行而导致的对LLC的访问。其中,按需访问如果在LLC中发生缺失,则需要从主存中读取数据,这会导致CPU等待影响性能,而写回访问发生缺失并不会引起对主存的读操作。因此,通常来说,按需访问对系统性能的影响要大于写回访问。通过实验表明,基于LRU管理策略,平均有75.3%的LLC按需访问命中的Cache行是脏Cache行。这说明脏Cache行有更高的概率被再次访问,应该给予较高的优先级。
另外,因为NVM的访问延迟和动态功耗大于DRAM的访问延迟和动态功耗,也即NVM数据缺失的代价高于DRAM数据缺失,因此,NVM的优先级应该高于DRAM。
从而最终鉴于脏Cache行的命中率较高以及NVM缺失的代价高于DRAM,本发明为不同Cache行类型设定不同的优先级,其高低关系为:DNP>DDP>CNP>CDP。本申请中依据这样的一个缓存划分以及优先级来对末级缓存进行管理,从而使得脏NVM的缓存行的数据保存在末级缓存中的时间>脏DRAM的缓存行的数据保存在末级缓存中的时间>干净NVM的缓存行的数据保存在末级缓存中的时间>干净DRAM的缓存行的数据保存在末级缓存中的时间。一方面,兼顾了NVM和DRAM之间不同的物理特性,另一方面,在减少对NVM的读操作的同时,还大大减少了由于末级缓存中被替换出的脏数据引起的NVM写操作,提高了应用系统的性能,减少了应用系统的能耗。
作为优选地,依据末级缓存的缓存行的预设标记位执行提升策略的过程为:
步骤S121:依据命中的缓存行的预设标记位判断命中的缓存行属于DRAM还是NVM,如果属于DRAM,则进入步骤S122,如果属于NVM,则进入步骤S123;
步骤S122:依据命中的缓存行所在缓存组对应的饱和计数器的计数将命中的缓存行从当前位置提升DDP个位置,且最大至最高优先级位置,其中,DDP=counter/2,counter为饱和计数器的数值,饱和计数器的位数为n=log2 A+1,A为末级缓存的组相联度,counter的初始值为2(n-1),每个缓存行的最低优先级位置为LRU(0),最高优先级位置为MRU(A-1);
具体实现时,首先计算DDP=counter/2;然后计算要提升到的位置pos=c.pos(当前位置)+DDP。最后执行提升操作,最大至最高优先级位置。
步骤S123:将命中的缓存行提升至最高优先级位置。
具体地,为实现缓存行优先级的动态调整,为末级缓存中的每个缓存组配置了一个饱和计数器counter。
作为优选地,依据未命中的访问请求对应的预设类型执行插入策略的过程为:
步骤S141:判断未命中的访问请求是写回访问还是按需访问,如果是写回访问,则进入步骤S142,如果是按需访问,则进入步骤S145;
步骤S142:判断访问数据的类型是DRAM还是NVM,如果是DRAM,则未命中的访问请求对应的预设类型为脏DRAM,并进入步骤S143,如果是NVM,未命中的访问请求对应的预设类型为脏NVM,并则进入步骤S144;
步骤S143:将访问数据插入脏DRAM的优先级位置,脏DRAM的优先级位置为DDP=counter/2;
具体实现时,先计算脏DRAM优先级DDP=counter/2;然后执行插入操作。
步骤S144:将访问数据插入脏NVM的优先级位置,脏NVM的优先级位置为DNP=A-1-counter/8;
具体实现时,计算脏NVM优先级DNP=A-1-counter/8;然后执行插入操作。
步骤S145:判断访问数据的类型是DRAM还是NVM,如果是DRAM,则未命中的访问请求对应的预设类型为干净DRAM,并进入步骤S146,如果是NVM,则未命中的访问请求对应的预设类型为干净NVM,并进入步骤S147;
步骤S146:更新counter,进行加一,然后将访问数据插入干净DRAM的优先级的所在位置,干净DRAM的优先级位置为CDP=counter/8;
步骤S147:更新counter,进行减一,然后将访问数据插入干净NVM的优先级的所在位置,干净DRAM的优先级位置为CDP=counter/4。
作为优选地,NVM为自旋矩传输磁存储器。
作为优选地,NVM为阻变存储器。
作为优选地,NVM为相变存储器。
当然,这里的NVM还可以为其他类型的非易失性存储器,本发明不做特别的限定。
下面结合一具体示例来对本发明作介绍,请参照图3,图3为本发明提供的一种采用混合主存的末级缓存管理方法管理的8路末级缓存的变化原理图。
图3中的为8路末级缓存,其中方形和圆形分别代表DRAM和NVM数据,黑色和白色分别代表脏数据和干净数据。由于组相联路数为8,所以饱和计数器counter的位数为4位,其当前值为9(1001B)。
第一行为初始8路末级缓存。
第二行:当DRAM数据块9从上层Cache中被替换出去以后产生对LLC的写回请求,但此时发生缺失,因此被插入到DDP(9/2=4)的位置。
第三行:同样NVM数据块A的写回请求也发生缺失,因此被插入到DNP(8-1-9/8=6)的位置。
由于是上述都是写回请求,所以饱和计数器并没有改变。
第四行:当发生对DRAM数据块3的读请求(按需请求)缺失时,会导致饱和计数器加1,其插入到CDP(10/8=1)的位置。
第五行:当NVM数据块C的读请求发生缺失时,会导致饱和计数器减一,其插入位置为CNP(9/4=2)的位置。
第六行:至于对DRAM数据块5,因为对其发生的请求命中,因此它被向前提升了DDP(9/2=4)个位置,即从位置1提升到位置5。
第七行:当NVM数据块E被命中时,其被提升到最高优先级位置MRU(8-1=7)。
另外,无论何时一个Cache行数据需要被替换出去时,位于最低优先级位置LRU(0)的Cache行数据总是被选择进行回收。
本发明提供了一种混合主存的末级缓存管理方法,混合主存包括DRAM和NVM,该方法包括接收上级缓存发送的访问请求;依据访问请求判断末级缓存是否命中,如果是,则确定命中的缓存行,依据末级缓存的缓存行的预设标记位执行提升策略;其中,预设标记位用于标记所在缓存行属于DRAM还是NVM否则,执行回收策略,选取最低优先级位置的缓存行进行回收,并依据未命中的访问请求对应的预设类型执行插入策略,其中,预设类型包括脏NVM、脏DRAM、干净NVM以及干净DRAM,且DNP>DDP>CNP>CDP,其中,DNP、DDP、CNP以及CDP分别为脏NVM、脏DRAM、干净NVM以及干净DRAM的优先级。
可见,本发明综合考虑DRAM和NVM之间的物理特性以及NVM读写之间的差异性,将末级缓存分为脏NVM、脏DRAM、干净NVM以及干净DRAM,且因为脏缓存行的命中率较高以及NVM缺失的代价高于DRAM,因此将优先级设置为DNP>DDP>CNP>CDP,在进行数据回收时会先回收优先级最低的,从而使得高优先级(例如脏NVM和脏DRAM)的数据能够尽可能长时间的保存在末级缓存中,一方面,兼顾了NVM和DRAM之间不同的物理特性,另一方面,在减少对NVM的读操作的同时,还大大减少了由于末级缓存中被替换出的脏数据引起的NVM写操作,提高了应用系统的性能,减少了应用系统的能耗。
需要说明的是,在本说明书中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其他实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (6)

1.一种混合主存的末级缓存管理方法,所述混合主存包括DRAM和NVM,其特征在于,该方法包括:
步骤S10:接收上级缓存发送的访问请求;
步骤S11:依据所述访问请求判断所述末级缓存是否命中,如果是,则进入步骤S12,否则,进入步骤S13;
步骤S12:确定命中的缓存行,依据所述末级缓存的缓存行的预设标记位执行提升策略;其中,所述预设标记位用于标记所在缓存行属于所述DRAM还是所述NVM;
步骤S13:执行回收策略,选取最低优先级位置的缓存行进行回收;
步骤S14:依据未命中的所述访问请求对应的预设类型执行插入策略,其中,所述预设类型包括脏NVM、脏DRAM、干净NVM以及干净DRAM,且DNP>DDP>CNP>CDP,其中,DNP、DDP、CNP以及CDP分别为所述脏NVM、脏DRAM、干净NVM以及干净DRAM的优先级。
2.如权利要求1所述的末级缓存管理方法,其特征在于,所述依据所述末级缓存的缓存行的预设标记位执行提升策略的过程为:
步骤S121:依据所述命中的缓存行的预设标记位判断所述命中的缓存行属于DRAM还是NVM,如果属于所述DRAM,则进入步骤S122,如果属于所述NVM,则进入步骤S123;
步骤S122:依据所述命中的缓存行所在缓存组对应的饱和计数器的计数将所述命中的缓存行从当前位置提升DDP个位置,且最大至最高优先级位置,其中,DDP=counter/2,counter为所述饱和计数器的数值,所述饱和计数器的位数为n=log2 A+1,A为所述末级缓存的组相联度,counter的初始值为2(n-1),每个缓存行的最低优先级位置为LRU(0),最高优先级位置为MRU(A-1);
步骤S123:将所述命中的缓存行提升至所述最高优先级位置。
3.如权利要求2所述的末级缓存管理方法,其特征在于,所述依据未命中的所述访问请求对应的预设类型执行插入策略的过程为:
步骤S141:判断未命中的访问请求是写回访问还是按需访问,如果是所述写回访问,则进入步骤S142,如果是所述按需访问,则进入步骤S145;
步骤S142:判断访问数据的类型是DRAM还是NVM,如果是DRAM,则未命中的所述访问请求对应的预设类型为脏DRAM,并进入步骤S143,如果是NVM,未命中的所述访问请求对应的预设类型为脏NVM,并则进入步骤S144;
步骤S143:将所述访问数据插入脏DRAM的优先级位置,所述脏DRAM的优先级位置为DDP=counter/2;
步骤S144:将所述访问数据插入脏NVM的优先级位置,所述脏NVM的优先级位置为DNP=A-1-counter/8;
步骤S145:判断访问数据的类型是DRAM还是NVM,如果是DRAM,则未命中的所述访问请求对应的预设类型为干净DRAM,并进入步骤S146,如果是NVM,则未命中的所述访问请求对应的预设类型为干净NVM,并进入步骤S147;
步骤S146:更新counter,进行加一,然后将所述访问数据插入干净DRAM的优先级的所在位置,所述干净DRAM的优先级位置为CDP=counter/8;
步骤S147:更新counter,进行减一,然后将所述访问数据插入干净NVM的优先级的所在位置,所述干净DRAM的优先级位置为CDP=counter/4。
4.如权利要求1所述的末级缓存管理方法,其特征在于,所述NVM为自旋矩传输磁存储器。
5.如权利要求1所述的末级缓存管理方法,其特征在于,所述NVM为阻变存储器。
6.如权利要求1所述的末级缓存管理方法,其特征在于,所述NVM为相变存储器。
CN201610993133.2A 2016-11-08 2016-11-08 一种混合主存的末级缓存管理方法 Active CN106569960B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610993133.2A CN106569960B (zh) 2016-11-08 2016-11-08 一种混合主存的末级缓存管理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610993133.2A CN106569960B (zh) 2016-11-08 2016-11-08 一种混合主存的末级缓存管理方法

Publications (2)

Publication Number Publication Date
CN106569960A true CN106569960A (zh) 2017-04-19
CN106569960B CN106569960B (zh) 2019-05-28

Family

ID=58541383

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610993133.2A Active CN106569960B (zh) 2016-11-08 2016-11-08 一种混合主存的末级缓存管理方法

Country Status (1)

Country Link
CN (1) CN106569960B (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107368437A (zh) * 2017-07-24 2017-11-21 郑州云海信息技术有限公司 一种末级缓存管理方法及系统
CN107861819A (zh) * 2017-12-07 2018-03-30 郑州云海信息技术有限公司 一种缓存组负载均衡的方法、装置和计算机可读存储介质
CN109165172A (zh) * 2018-08-23 2019-01-08 郑州云海信息技术有限公司 缓存数据处理方法及相关设备
CN109189592A (zh) * 2018-08-31 2019-01-11 重庆大学 基于混合式内存结构的共享缓存替换算法及装置
CN109669881A (zh) * 2018-12-11 2019-04-23 中国航空工业集团公司西安航空计算技术研究所 一种基于Cache空间预约算法的计算方法
CN110688072A (zh) * 2019-09-30 2020-01-14 上海兆芯集成电路有限公司 缓存系统及其运作方法
CN112885867A (zh) * 2021-01-29 2021-06-01 长江先进存储产业创新中心有限责任公司 中央处理器的制造方法、中央处理器及其控制方法

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023088535A1 (en) * 2021-11-16 2023-05-25 Huawei Technologies Co., Ltd. Cache eviction based on current tiering status

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104346293A (zh) * 2013-07-25 2015-02-11 华为技术有限公司 混合内存的数据访问方法、模块、处理器及终端设备
CN104375895A (zh) * 2013-08-13 2015-02-25 华为技术有限公司 用于多种存储器间的数据存储调度方法以及装置
CN105706169A (zh) * 2013-07-31 2016-06-22 慧与发展有限责任合伙企业 混合安全非易失性主存储器
CN105786725A (zh) * 2014-12-25 2016-07-20 研祥智能科技股份有限公司 基于异构混合内存的内存管理方法和系统
CN105893274A (zh) * 2016-05-11 2016-08-24 华中科技大学 一种面向异构内存系统建立检查点的装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104346293A (zh) * 2013-07-25 2015-02-11 华为技术有限公司 混合内存的数据访问方法、模块、处理器及终端设备
CN105706169A (zh) * 2013-07-31 2016-06-22 慧与发展有限责任合伙企业 混合安全非易失性主存储器
CN104375895A (zh) * 2013-08-13 2015-02-25 华为技术有限公司 用于多种存储器间的数据存储调度方法以及装置
CN105786725A (zh) * 2014-12-25 2016-07-20 研祥智能科技股份有限公司 基于异构混合内存的内存管理方法和系统
CN105893274A (zh) * 2016-05-11 2016-08-24 华中科技大学 一种面向异构内存系统建立检查点的装置

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107368437A (zh) * 2017-07-24 2017-11-21 郑州云海信息技术有限公司 一种末级缓存管理方法及系统
CN107861819A (zh) * 2017-12-07 2018-03-30 郑州云海信息技术有限公司 一种缓存组负载均衡的方法、装置和计算机可读存储介质
CN109165172A (zh) * 2018-08-23 2019-01-08 郑州云海信息技术有限公司 缓存数据处理方法及相关设备
CN109165172B (zh) * 2018-08-23 2021-10-29 郑州云海信息技术有限公司 缓存数据处理方法及相关设备
CN109189592A (zh) * 2018-08-31 2019-01-11 重庆大学 基于混合式内存结构的共享缓存替换算法及装置
CN109189592B (zh) * 2018-08-31 2022-03-25 重庆大学 基于混合式内存结构的共享缓存替换算法及装置
CN109669881A (zh) * 2018-12-11 2019-04-23 中国航空工业集团公司西安航空计算技术研究所 一种基于Cache空间预约算法的计算方法
CN109669881B (zh) * 2018-12-11 2023-04-14 中国航空工业集团公司西安航空计算技术研究所 一种基于Cache空间预约算法的计算方法
CN110688072A (zh) * 2019-09-30 2020-01-14 上海兆芯集成电路有限公司 缓存系统及其运作方法
CN112885867A (zh) * 2021-01-29 2021-06-01 长江先进存储产业创新中心有限责任公司 中央处理器的制造方法、中央处理器及其控制方法

Also Published As

Publication number Publication date
CN106569960B (zh) 2019-05-28

Similar Documents

Publication Publication Date Title
CN106569960B (zh) 一种混合主存的末级缓存管理方法
US20230325320A1 (en) Method and apparatus for controlling cache line storage in cache memory
CN105095116B (zh) 缓存替换的方法、缓存控制器和处理器
US7380065B2 (en) Performance of a cache by detecting cache lines that have been reused
US8745334B2 (en) Sectored cache replacement algorithm for reducing memory writebacks
TWI533201B (zh) 縮減交易回復的快取控制
CN106909515A (zh) 面向混合主存的多核共享末级缓存管理方法及装置
US20100153649A1 (en) Shared cache memories for multi-core processors
CN103885728A (zh) 一种基于固态盘的磁盘缓存系统
CN110888600B (zh) 一种面向nand闪存的缓冲区管理方法
US10901640B2 (en) Memory access system and method
CN100377117C (zh) 用于虚实地址变换及读写高速缓冲存储器的方法及装置
US20190057035A1 (en) Method of storage management, storage system and computer program product
US20110225369A1 (en) Multiport data cache apparatus and method of controlling the same
US20210173789A1 (en) System and method for storing cache location information for cache entry transfer
CN108427537A (zh) 分布式存储系统及其文件写入优化方法、客户端处理方法
Quan et al. Prediction table based management policy for STT-RAM and SRAM hybrid cache
KR20100069240A (ko) 캐시 컨트롤을 위한 장치 및 방법
CN106909323B (zh) 适用于dram/pram混合主存架构的页缓存方法及混合主存架构系统
US20050080995A1 (en) Performance of a cache by including a tag that stores an indication of a previously requested address by the processor not stored in the cache
CN104714898A (zh) 一种Cache的分配方法和装置
US7177983B2 (en) Managing dirty evicts from a cache
CN105988720A (zh) 数据存储装置和方法
KR101546707B1 (ko) 하이브리드 메인 메모리 기반의 메모리 접근 관리방법
CN104850508A (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