CN105786717B - 软硬件协同管理的dram-nvm层次化异构内存访问方法及*** - Google Patents

软硬件协同管理的dram-nvm层次化异构内存访问方法及*** Download PDF

Info

Publication number
CN105786717B
CN105786717B CN201610166238.0A CN201610166238A CN105786717B CN 105786717 B CN105786717 B CN 105786717B CN 201610166238 A CN201610166238 A CN 201610166238A CN 105786717 B CN105786717 B CN 105786717B
Authority
CN
China
Prior art keywords
dram
page
nvm
tlb
memory
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
CN201610166238.0A
Other languages
English (en)
Other versions
CN105786717A (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.)
Huazhong University of Science and Technology
Original Assignee
Huazhong University of Science and Technology
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 Huazhong University of Science and Technology filed Critical Huazhong University of Science and Technology
Priority to CN201610166238.0A priority Critical patent/CN105786717B/zh
Publication of CN105786717A publication Critical patent/CN105786717A/zh
Priority to US15/287,022 priority patent/US10248576B2/en
Application granted granted Critical
Publication of CN105786717B publication Critical patent/CN105786717B/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/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • G06F12/1045Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache
    • G06F12/1054Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache the data cache being concurrently physically addressed
    • 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/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • 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/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • 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/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • 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
    • G06F2212/1024Latency reduction
    • 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/1041Resource optimization
    • 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/1056Simplification
    • 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/202Non-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/22Employing cache memory using specific memory technology
    • 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/222Non-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/602Details relating to cache prefetching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/68Details of translation look-aside buffer [TLB]

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层次化异构内存***。该***把NVM作为大容量的非易失内存使用,而DRAM视为NVM的缓存。有效利用TLB和页表结构中的一些预留位,消除了传统硬件管理的层次化异构内存架构中的硬件开销,将异构内存***中缓存管理问题转移到软件层次,同时降低了最后一级cache缺失后的访存时延。考虑到大数据应用环境中,很多应用数据局部性比较差,在DRAM缓存中采用传统的按需数据预取策略会加剧缓存污染问题,本发明在DRAM‑NVM层次化异构内存***中采用了基于效用(Utility‑Based)的数据预取机制,根据当前内存压力、应用访存特征,决定是否将NVM中的数据缓存到DRAM中,从而提升DRAM缓存利用率、NVM主存到DRAM缓存的带宽利用率。

Description

软硬件协同管理的DRAM-NVM层次化异构内存访问方法及***
技术领域
本发明属于异构内存环境下缓存性能优化领域,具体地,设计了一种软硬件协同管理的DRAM-NVM层次化异构内存访问方法及***,并在该***基础上提出了Utility-Based数据预取机制。
背景技术
随着多核、多线程技术的发展,因功耗和工艺限制,动态随机存储器(DynamicRandom Access Memory,DRAM)已经无法满足应用越来越大的内存需求。新型非易失性存储器(None-Volatile Memory,NVM),诸如相变存储器(Phase Change Memory,PCM)、自旋转移力矩磁性随机存储器(Spin Transfer Torque Magnetoresistive Random AccessMemory,STT-MRAM)、磁性随机存储器(Magnetic Random Access Memory,MRAM)等具有字节可寻址、读写速度和DRAM相差不大、无待机功耗、密度大(单位体积可存储的数据更多)、可扩展性强等特点,可能替代DRAM作为主存存储介质。然而和DRAM相比,这些新型的非易失性存储器还存在很多缺陷:(1)读写时延长,读速度比DRAM慢一个数量级,写速度比DRAM慢两个数量级;(2)写功耗大;(3)使用寿命有限,因此直接将它们作为计算机主存是不可行的。当前主流的做法是将大量非易失性存储器和少量DRAM混合在一起形成异构内存,同时利用非易失性存储器的大容量优势和DRAM低访问时延、低写功耗、寿命长的优势,提升内存***的性能、能耗效率和使用寿命。
目前主要有平行和层次两种异构内存架构。
平行结构的异构内存***中,NVM和DRAM统一编址,两者均作为内存使用。为了提升***的能耗效率和性能,热页迁移是该架构常用的优化策略,即:将频繁访问和频繁写的NVM页框迁移到DRAM中。为了保证数据迁移的正确性,迁移操作一般分为两个步骤串行执行:(1)读取源和目标页框内容到缓冲区中;(2)将缓冲区数据写入到目标地址中。因此一次页迁移操作会产生四次页拷贝,由于读取和写入两个阶段是串行执行的,迁移操作的时间开销比较大。此外,平行结构的异构内存***中NVM页框和DRAM页框大小相同,在为了提升TLB命中率而开启2M或4M分页机制的***中,热页迁移机制时间、空间开销巨大。
层次结构的异构内存***中,DRAM等快速存储器作为非易失性存储器的缓存,由于缓存操作时间开销较小,因此相较于平行结构的异构内存***,层次结构的异构内存***能获取更多的性能提升。传统的层次化异构内存***用硬件管理DRAM缓存,DRAM的组织形式类似于传统的片上高速缓存,DRAM缓存对操作***透明。最后一级片上cache缺失后,首先通过DRAM内存控制器中的硬件电路查找访问地址对应的标识,判断访问是否在DRAM缓存中命中,然后再进行数据访问,由此可看出,层次化异构内存***在DRAM缓存缺失的情况下的访存时延比较长。此外,硬件管理的DRAM缓存一般采用Demand-Based数据预取机制,即:DRAM缓存中数据缺失后,必须将其对应的NVM数据块取到DRAM中,该数据块才能被访问,在大数据环境下,很多应用局部性很差,这种数据预取机制会加剧缓存污染问题。
发明内容
针对现有技术的缺陷,本发明提出了一种软硬件协同管理的DRAM-NVM层次化异构内存***,旨在消除传统层次化异构内存***中巨大的硬件开销,降低层次化异构内存***内存访问时延,同时将DRAM缓存管理问题通过软件的方式实现更灵活的管理,提升DRAM缓存利用率、NVM到DRAM之间的带宽利用率。在硬件层面上,本发明修改了旁路转换缓冲器(Translation Lookaside Buffer,TLB)的结构;软件层面上,扩充了现有页表结构,使其可以支持NVM页到DRAM页面之间的映射,并设计了Utility-Based的数据预取策略来提升DRAM缓冲区的利用率、NVM主存到DRAM缓存的带宽利用率。
为实现上述目的,按照本发明的另一方面,提供一种硬件管理的DRAM-NVM层次化异构内存访问方法,包括:
步骤1TLB地址翻译,获取虚拟页所在表项的物理页号ppn、P标识以及overlap tlbfield域内容,根据ppn将虚拟地址翻译成NVM物理地址;
步骤2判断内存访问是否在片上cache中命中,若命中,CPU直接从片上cache中取请求的数据块,内存访问流程结束;否则转步骤3;
步骤3根据步骤1获取的P标识判断内存访问类型,若P为0,说明访问NVM内存,转步骤4,更新TLB表中overlap tlb field域(此时该域用作计数器)信息,并根据动态阈值调整算法中自动调整的预取阈值以及步骤1获取的overlap tlb field域判断是否将该虚拟页对应的NVM物理页预取到DRAM缓存中;若P为1,说明访问DRAM缓存,表明缓存命中,根据步骤1获取的overlap tlb field域信息以及物理地址偏移计算得出要访问的DRAM缓存地址,转步骤6进行DRAM缓存访问;
步骤4若从步骤1中获取的overlap tlb field值小于预取阈值,在TLB中查找NVM主存页对应的表项,将其overlap tlb field域(此时该域用作计数器)加一;若从步骤1中获取的overlap tlb field值大于预取阈值,转步骤5,将NVM主存页预取到DRAM中;否则转步骤6直接访问NVM内存,其中预取阈值由预取阈值运行时调节算法决定;
步骤5预取虚拟地址对应的物理页到DRAM中,并更新TLB和扩展的页表;
步骤6内存访问,根据传入到内存控制器中的地址进行内存访问。
按照本发明的另一方面,提供了一种硬件管理的DRAM-NVM层次化异构内存***,包括更改后的TLB、扩展页表,Utility-Based数据预取模块,其特征在于:
更改后的TLB用于缓存部分虚拟页到NVM主存页和DRAM缓存页的映射,提升地址翻译速度;此外,更改后的TLB空闲位还用于收集应用访存频度特征,辅助Utility-Based数据预取模块进行数据预取;
扩展页表存储了所有虚拟页到物理页映射以及NVM页到DRAM缓存页的映射,其中设置了PD标识,用于表明页表项记录的页框类型;
Utility-Based数据预取模块用于取代传统缓存结构中Demand-Based数据预取策略,该模块主要包括内存监测模块、预取阈值运行时调整模块以及数据预取器三个子模块:(1)监测模块用于从更改后的TLB和内存控制器中获取缓存使用情况、主存页访问频度信息,将其作为运行时调整数据预取阈值的输入信息;(2)预取阈值用于在运行时根据调整模块监测模块提供的运行时信息,动态调整数据预取阈值,从而提升DRAM缓存的利用率、NVM和DRAM之间的带宽利用率;(3)数据预取器用于①触发DRAM缓存管理模块的伙伴分配器,分配用于缓存NVM主存页的缓存页;②将NVM主存页内容拷贝到DRAM缓存管理模块分配的DRAM缓存页中;③更新扩展页表和TLB。
总体而言,通过本发明所构思的以上技术方案与现有技术相比,具有以下效果:
(1)***更改了TLB结构、扩展了页表,实现了DRAM缓存页和NVM主存页在页表中的统一管理,消除了传统DRAM-NVM层次化异构内存***中所有硬件开销的同时,降低了访存时延;
(2)***利用TLB空闲位监测应用访存特征,相较于传统DRAM-NVM异构内存******在内存控制器中监测应用访存特征,消除了巨大的硬件开销;
(3)***使用Utility-Based缓存预取方法,设计了动态预取阈值调整算法,根据应用局部性、DRAM缓存使用情况动态调整预取阈值,提升了DRAM缓存利用率和NVM主存到DRAM缓存的带宽利用率。
附图说明
图1为本发明提出的软硬件协同管理的DRAM-NVM层次化异构内存***结构图;
图2为本发明提出的扩展前后最后一级页表表项结构;
图3为本发明提出的修改前后TLB表项结构;
图4为本发明提出的DRAM-NVM异构内存***工作流程图;
图5为本发明提出的DRAM-NVM层次化异构内存***虚拟地址到物理地址翻译流程图;
图6为本发明提出的DRAM-NVM层次化异构内存***TLB查找和更新流程图;
图7为本发明提出的DRAM-NVM层次化异构内存***页表查询流程图;
图8为本发明提出的DRAM-NVM层次化异构内存***预取NVM页到DRAM缓存的流程图。
具体实施方式
为了更加清楚明白地说明本发明的目的、技术方案以及优点,一下结合附图以及实施例,对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅仅用于解释本发明,并不用于限定本发明。
图1所示为本发明提出的软硬件协同管理的DRAM-NVM层次化异构内存***结构图,硬件层包括更改后的TLB,软件层包括:扩展的页表、Utility-Based数据预取模块和DRAM缓存管理模块。扩展的页表主要用于管理虚拟页到物理页以及NVM内存页到DRAM缓存页之间的映射。更改后的TLB中缓存了扩展页表中经常被访问的页表项,从而提升地址转换速度。此外,更改后的TLB还利用空闲位侦测NVM内存页的访问频度信息,辅助Utility-Based数据预取模块进行数据预取操作。Utility-Based数据预取模块主要用于将NVM页缓存到DRAM中,包括:内存监测模块、预取阈值运行时调整模块和数据预取器三个子模块,其中内存监测模块用TLB和内存控制器收集的页面访存频度信息和缓存利用率;预取阈值运行时调整模块根据内存监测模块收集到的信息动态调整预取数据的阈值,当某个NVM内存页访问频度大于该阈值时,调用数据预取器将NVM页缓存到DRAM中。DRAM缓存管理模块主要用于管理DRAM缓存,其主要包括伙伴分配器子模块,当NVM页需要缓存到DRAM中时,伙伴分配器采用伙伴分配算法为其分配一个DRAM页,同时更新扩展的页表,建立NVM页到DRAM页之间的映射,使得DRAM页回收时能写回到其对应的NVM页中。
为了将DRAM缓存的管理提升到软件层次,本发明为DRAM缓存分配了地址空间,并扩充了最后一级页表结构,如图2所示。传统页表一般包括P、R/W、U/S、D以及AVAIL等标识:P标识表明页表项记录的页是否在内存中;R/W标识记录了对页表项记录的页的操作权限,R表示允许读,W表示允许写;U/S标识表明页表项记录的页是用户态页框还是内核态页框;D标识用于记录表项对应的页是否被写过。扩充后的最后一级页表表项在传统页表基础上增添了PD标识位和overlap field域。PD标识位说明了虚拟页框对应的物理页框类型,PD为0表明虚拟页框对应的物理页框存储介质为NVM主存;PD为1表明虚拟页框对应的物理页框已经从NVM主存中预取到了DRAM缓存中。Overlap field域随PD标识的不同记录不同的内容:PD为0时,该域用作计数器,记录了表项对应的内存页面被访问频度信息;PD为1时,该域记录了NVM页面对应的DRAM页面地址,从而建立了NVM页到DRAM页的映射。
TLB通过缓存最近被访问的页表项消除大部分页表查找开销,从而大大提升虚拟地址到物理地址的转换速度,是计算机***最重要的硬件结构之一。本发明利用当前机器TLB表项的预留位扩充了TLB表项结构,使其可以缓存扩充的页表表项,如图3所示。扩充后的TLB表项在当前机器TLB表项的基础上增加了P标识位和overlap tlb field域,类似于页表项中的PD标志位,P标识位用于表明该TLB表项记录的虚拟页框对应的物理页框类型:P为0表明TLB表项记录了虚拟页面到NVM物理页面的映射,overlap tlb field域用于监测页面被访问频度信息;P为1表明TLB表项记录的物理页面已经从NVM主存预取到DRAM缓存中,overlap tlb field域记录了NVM页对应的DRAM页号。
图4所示为本发明提出的软硬件协同管理的DRAM-DRAM层次化异构内存***工作流程图,具体步骤如下:
步骤1TLB地址翻译,获取虚拟页所在表项的物理页号ppn、P标识以及overlap tlbfield域内容,根据ppn将虚拟地址翻译成NVM物理地址,如图5所示,具体包含以下子步骤:
(1-1)TLB查找,以虚拟页号为关键字查找TLB表,获取虚拟页对应的物理页号ppn、P标识位以及overlap tlb field域内容,如图6a)所示。
(1-2)若在TLB中查找到虚拟地址对应的表项,即TLB命中,通过步骤(1-1)中获取的物理页号ppn获取虚拟页对应的物理页号,虚拟地址翻译成物理地址,转步骤2用物理地址访问片上cache;否则,TLB缺失,需要查找内存页表,页表查找流程和传统架构的页表查询流程类似,如图7所示,详细步骤如下:
(1-2-1)通过CR3寄存器获取第一级页表内存基址;根据虚拟地址获取第一级页目录索引a,将其与第一级页表基址相加获取记录第二级页目录基址的表项地址;
(1-2-2)根据(1-2-1)中得到的地址访问第一级页目录表项,获取第二级页目录基址addr[a],在将其与第二级页目录索引b相加获取记录第三级页目录基址的表项地址;
(1-2-3)重复(1-2-1)和(1-2-2)的流程,直到访问最后一级页表,若虚拟地址对应的表项有效,获取虚拟页对应的物理页号addr[c]、表明页框类型的标识PDc(PDc为1表明页框类型是DRAM,PDc为0表明页框类型是NVM)以及overlap field域的内容;否则从外存将缺失页调入NVM主存,更新页表,再转(1-2-4)更新TLB;
(1-2-4)更新TLB,将查找到的虚拟地址到物理地址的映射关系(虚拟页号vpn,物理页号addr[c],PDc,overlap field c)***到TLB中,如图6b)所示,TLB更新主要包括以下两个子步骤:
(1-2-4-1)若PDc为0,表明虚拟页对应的物理页为NVM页,置TLB表项的P标识为0,否则,虚拟页对应的物理页为DRAM页,置TLB表项的P标识为1;
(1-2-4-2)若TLB表有空闲,将(虚拟页号vpn,物理页号addr[c],PDc,overlapfield)***到空闲TLB表项中,其中overlap field域对应TLB中的overlap tlb field域;若TLB表已满,则调用LRU替换算法,回收一个TLB表项,再将映射关系***到回收了的TLB表项中;
步骤2判断内存访问是否在片上cache中命中,若命中,CPU直接从片上cache中取请求的数据块,内存访问流程结束;否则转步骤3。
步骤3根据步骤1获取的P标识判断内存访问类型,若P为0,说明访问NVM内存,转步骤4,更新TLB表中overlap tlb field域(此时该域用作计数器)信息,并根据动态阈值调整算法中自动调整的预取阈值以及步骤1获取的overlap tlb field域判断是否将该虚拟页对应的NVM物理页预取到DRAM缓存中;若P为1,说明访问DRAM缓存,表明缓存命中,根据步骤1获取的overlap tlb field域信息以及物理地址偏移计算得出要访问的DRAM缓存地址,转步骤6进行DRAM缓存访问。
步骤4若从步骤1中获取的overlap tlb field值小于预取阈值,在TLB中查找NVM主存页对应的表项,将其overlap tlb field域(此时该域用作计数器)加一;若从步骤1中获取的overlap tlb field值大于预取阈值,转步骤5,将NVM主存页预取到DRAM中;否则转步骤6直接访问NVM内存,其中预取阈值由预取阈值运行时调节算法决定,该算法子步骤如下:
(4-1)内存监测模块从内存控制器中获取预取次数nfetch、缓存读次数ndram_read、缓存写次数ndram_write,该***中NVM平均读写时延分别为tnvm_read、tnvm_write,DRAM缓存平均读写时延分别为tdram_read、tdram_write,缓存DRAM页的开销为tfetch,每109个时钟使用公式4.1计算***由于预取内存页带来的性能收益;
benefitt=ndram_read×(tnvm_read-tdram_read)+ndram_write×(tnvm_write-tdram_write)-nfetch×tfetch
(公式4.1)
(4-2)设初始预取阈值fetch_thres0(fetch_thres0≥0),上109个时钟周期的预取阈值、性能收益分别为fetch_threst-1和benefiett-1,本109个时钟周期预取阈值、性能收益为fetch_threst、benefiett,缓存利用率dram_usage,若dram_usage>30%,采用爬山算法调整预取阈值,主要包括以下子步骤:
4-2-1)若是首次调整阈值:如果benefiett≥0,说明预取数据块可提升***性能,fetch_thres0>0时,fetch_threst=fetch_thres0-1;如果benefiett<0,说明预取数据块会降低***性能fetch_threst=fetch_thres0+1;否则转下一步;
4-2-2)若benefitt>benefitt-1,说明上109个时钟周期采用的预取阈值调整方法有益于***性能提升,阈值调整方法与上109个时钟周期的阈值调整方法相同,即:若上109个时钟周期降低预取阈值且fetch_threst-1>0,则fetch_threst=fetch_threst-1-1;若上109个时钟周期增加预取阈值,则fetch_threst=fetch_threst-1+1;否则采用和上109个时钟周期相反的阈值调整方法;
4-2-3)更新benefiett-1为benefiett
步骤5预取虚拟地址对应的物理页到DRAM中,并更新TLB和扩展的页表,如图8所示,该步骤主要包括以下子步骤:
5-1)若DRAM缓存已满,使用LRU算法确定要回收的DRAM缓存页地址,若该缓存页被写脏,查找扩充后的页表获取该DRAM页对应的NVM内存页地址,将修改后的缓存页内容写回对应NVM主存,并将该DRAM页对应的TLB表项的P标识置为0、扩充页表表项的PD标识置为0(表明虚拟页面对应的物理页面处于NVM存储介质中);若DRAM缓存未满,转步骤(5-2);
(5-2)调用DRAM缓存管理模块的伙伴分配器分配一个空闲的DRAM页面,设其地址为dram_ppn;
(5-3)在扩充页表、TLB中***NVM页到DRAM缓存页的映射关系,即:将扩充页表的overlap field域设置为dram_ppn,PD标识置为1;将TLB的overlap tlb field域设置为dram_ppn,P标识置为1;
(5-4)调用内存控制器的页拷贝接口,将NVM页拷贝到对应的DRAM缓存页中。
步骤6内存访问,根据传入到内存控制器中的地址进行内存访问。
本发明设计了一种软硬件协同管理的DRAM-NVM层次化异构内存***,通过采用扩展页表、修改的TLB以及DRAM页、步骤1和步骤5消除了传统DRAM-NVM层次化异构内存***中硬件开销,降低了最后一级cache缺失后的访存时延,将DRAM缓存管理提升到软件层次,提升了DRAM-NVM层次化异构内存***的灵活性;考虑到数据局部性差的应用会带来巨大的缓存污染问题,如步骤3和步骤4所述,本发明采用了utility-based的数据缓存算法,提升了DRAM缓存利用率、NVM内存到DRAM缓存的带宽利用率。
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施实例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (8)

1.一种软硬件协同管理DRAM-NVM层次化异构内存访问方法,其特征在于,包括以下步骤:
步骤1TLB地址翻译,获取虚拟页所在表项的物理页号ppn、P标识以及overlap tlbfield域内容,根据ppn将虚拟地址翻译成NVM物理地址;
步骤2判断内存访问是否在片上cache中命中,若命中,CPU直接从片上cache中取请求的数据块,内存访问流程结束;否则转步骤3;
步骤3根据步骤1获取的P标识判断内存访问类型,若P为0,说明访问NVM内存,转步骤4,更新TLB表中overlap tlb field域信息,并根据动态阈值调整算法中自动调整的预取阈值以及步骤1获取的overlap tlb field域判断是否将该虚拟页对应的NVM物理页预取到DRAM缓存中;若P为1,说明访问DRAM缓存,表明缓存命中,根据步骤1获取的overlap tlb field域信息以及物理地址偏移计算得出要访问的DRAM缓存地址,转步骤6进行DRAM缓存访问;
步骤4若从步骤1中获取的overlap tlb field值小于预取阈值,在TLB中查找NVM主存页对应的表项,将其overlap tlb field域加一;若从步骤1中获取的overlap tlb field值大于预取阈值,转步骤5,将NVM主存页预取到DRAM中;否则转步骤6直接访问NVM内存,其中预取阈值由动态阈值调整算法决定;
步骤5预取虚拟地址对应的物理页到DRAM中,并更新TLB和扩展的页表,扩展的页表用于管理虚拟页到物理页以及NVM内存页到DRAM缓存页之间的映射;
步骤6内存访问,根据传入到内存控制器中的NVM物理地址进行内存访问。
2.如权利要求1所述的方法,其特征在于,所述步骤4包括以下子步骤:
(4-1)内存监测模块从内存控制器中获取预取次数nfetch、缓存读次数ndram_read、缓存写次数ndram_write,***中NVM平均读写时延分别为tnvm_read、tnvm_write,DRAM缓存平均读写时延分别为tdram_read、tdram_write,缓存DRAM页的开销为tfetch,每109个时钟使用公式4.1计算***由于预取内存页带来的性能收益;
benefitt=ndram_read×(tnvm_read-tdram_read)+ndram_write×(tnvm_write
-tdram_write)-nfetch×tfetch
(公式4.1)
(4-2)设初始预取阈值fetch_thres0(fetch_thres0≥0),上109个时钟周期的预取阈值、性能收益分别为fetch_threst-1和benefiett-1,本109个时钟周期预取阈值、性能收益为fetch_threst、benefiett,缓存利用率dram_usage,若dram_usage>30%,采用爬山算法调整预取阈值。
3.如权利要求2所述的方法,其特征在于,所述步骤(4-2)中采用爬山算法调整预取阈值包括以下子步骤:
4-2-1)若是首次调整阈值:如果benefiett≥0,说明预取数据块可提升***性能,fetch_thres0>0时,fetch_threst=fetch_thres0-1;如果benefiett<0,说明预取数据块会降低***性能fetch_threst=fetch_thres0+1;否则转下一步;
4-2-2)若benefitt>benefitt-1,说明上109个时钟周期采用的预取阈值调整方法有益于***性能提升,阈值调整方法与上109个时钟周期的阈值调整方法相同,即:若上109个时钟周期降低预取阈值且fetch_threst-t>0,则fetch_threst=fetch_threst-1-1;若上109个时钟周期增加预取阈值,则fetch_threst=fetch_threst-1+1;否则采用和上109个时钟周期相反的阈值调整方法;
4-2-3)更新benefiett-1为benefiett
4.如权利要求1或2所述的方法,其特征在于,所述步骤5包括以下子步骤:
(5-1)若DRAM缓存已满,使用LRU算法确定要回收的DRAM缓存页地址,若该缓存页被写脏,查找扩充后的页表获取该DRAM页对应的NVM内存页地址,将修改后的缓存页内容写回对应NVM主存,并将该DRAM页对应的TLB表项的P标识置为0、扩充页表表项的PD标识置为0;若DRAM缓存未满,转步骤(5-2);
(5-2)调用DRAM缓存管理模块的伙伴分配器分配一个空闲的DRAM页面,设其地址为dram_ppn;
(5-3)在扩充页表、TLB中***NVM页到DRAM缓存页的映射关系,即:将扩充页表的overlap field域设置为dram_ppn,PD标识置为1;将TLB的overlap tlb field域设置为dram_ppn,P标识置为1;
(5-4)调用内存控制器的页拷贝接口,将NVM页拷贝到对应的DRAM缓存页中。
5.一种软硬件协同管理DRAM-NVM层次化异构内存***,包括更改后的TLB、扩展页表,Utility-Based数据预取模块,其特征在于:
更改后的TLB用于缓存部分虚拟页到NVM主存页和DRAM缓存页的映射,提升地址翻译速度;此外,更改后的TLB空闲位还用于收集应用访存频度特征,辅助Utility-Based数据预取模块进行数据预取;
扩展页表存储了所有虚拟页到物理页映射以及NVM页到DRAM缓存页的映射,其中设置了PD标识,用于表明页表项记录的页框类型;
Utility-Based数据预取模块用于取代传统缓存结构中Demand-Based数据预取策略,该模块主要包括内存监测模块、预取阈值运行时调整模块以及数据预取器三个子模块:(1)监测模块用于从更改后的TLB和内存控制器中获取缓存使用情况、主存页访问频度信息,将其作为运行时调整数据预取阈值的输入信息;(2)预取阈值用于在运行时根据调整模块监测模块提供的运行时信息,动态调整数据预取阈值,从而提升DRAM缓存的利用率、NVM和DRAM之间的带宽利用率;(3)数据预取器用于①触发DRAM缓存管理模块的伙伴分配器,分配用于缓存NVM主存页的缓存页;②将NVM主存页内容拷贝到DRAM缓存管理模块分配的DRAM缓存页中;③更新扩展页表和TLB。
6.根据权利要求5所述的软硬件协同管理DRAM-NVM层次化异构内存***,其特征在于,更改最后一级页表表项和TLB表项结构,统一管理虚拟页到物理页、NVM内存页到DRAM缓存页之间的映射,在保证缓存访问、回收正确性的前提下,提升了访存速度,消除了传统DRAM-NVM层次化异构内存***的硬件开销。
7.根据权利 要求5或6所述的软硬件协同管理DRAM-NVM层次化异构内存***,其特征在于,利用TLB表项的空闲位构成overlap tlb field域,充分利用该域监测访存频度信息和记录NVM页对应的DRAM页号。
8.根据权利 要求5或6所述的软硬件协同管理DRAM-NVM层次化异构内存***,其特征在于,Utility-Based数据预取模块的监测模块从TLB和内存控制器中获取内存页访问频度信息、缓存利用率信息;预取阈值运行时调节算法动态调整预取阈值,提升缓存利用率、NVM主存到DRAM缓存的带宽利用率。
CN201610166238.0A 2016-03-22 2016-03-22 软硬件协同管理的dram-nvm层次化异构内存访问方法及*** Active CN105786717B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201610166238.0A CN105786717B (zh) 2016-03-22 2016-03-22 软硬件协同管理的dram-nvm层次化异构内存访问方法及***
US15/287,022 US10248576B2 (en) 2016-03-22 2016-10-06 DRAM/NVM hierarchical heterogeneous memory access method and system with software-hardware cooperative management

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610166238.0A CN105786717B (zh) 2016-03-22 2016-03-22 软硬件协同管理的dram-nvm层次化异构内存访问方法及***

Publications (2)

Publication Number Publication Date
CN105786717A CN105786717A (zh) 2016-07-20
CN105786717B true CN105786717B (zh) 2018-11-16

Family

ID=56390643

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610166238.0A Active CN105786717B (zh) 2016-03-22 2016-03-22 软硬件协同管理的dram-nvm层次化异构内存访问方法及***

Country Status (2)

Country Link
US (1) US10248576B2 (zh)
CN (1) CN105786717B (zh)

Families Citing this family (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107783911B (zh) * 2016-08-31 2021-06-08 华为技术有限公司 一种数据过滤方法及终端设备
CN107817945B (zh) * 2016-09-13 2021-07-27 中国科学院微电子研究所 一种混合内存结构的数据读取方法和***
JP2018049381A (ja) * 2016-09-20 2018-03-29 東芝メモリ株式会社 メモリ制御回路、メモリシステムおよびプロセッサシステム
CN106598483B (zh) * 2016-11-10 2019-07-23 华中科技大学 一种面向异构内存的可重构内存管理***
EP3553665B1 (en) * 2016-12-28 2024-05-15 Huawei Technologies Co., Ltd. Non-volatile memory access method, device, and system
US10162756B2 (en) * 2017-01-18 2018-12-25 Intel Corporation Memory-efficient last level cache architecture
CN106776361B (zh) * 2017-03-10 2020-07-10 安徽大学 一种面向大规模非易失性存储介质的缓存方法和***
CN107562806B (zh) * 2017-08-08 2020-07-28 上海交通大学 混合内存文件***的自适应感知加速方法及***
CN107480074B (zh) * 2017-08-31 2020-02-07 郑州云海信息技术有限公司 一种缓存方法、装置及电子设备
CN109508301B (zh) * 2017-09-14 2021-10-29 ***通信集团重庆有限公司 终端、应用数据的处理方法、数据处理设备及存储介质
US10599576B2 (en) * 2018-07-23 2020-03-24 International Business Machines Corporation Hybrid memory access frequency
US10997083B2 (en) * 2018-09-04 2021-05-04 Arm Limited Parallel page table entry access when performing address translations
CN110968528B (zh) * 2018-09-30 2024-05-28 北京忆恒创源科技股份有限公司 应用统一缓存架构为非易失存储介质组装数据
CN111198827B (zh) * 2018-11-16 2022-10-28 展讯通信(上海)有限公司 页表预取方法及装置
CN109743295B (zh) * 2018-12-13 2022-04-12 平安科技(深圳)有限公司 访问阈值调整方法、装置、计算机设备及存储介质
CN110018790B (zh) * 2019-03-26 2020-05-19 华中科技大学 一种保证持久性内存中数据崩溃一致性的方法及***
CN110134492B (zh) * 2019-04-18 2021-04-13 华中科技大学 一种异构内存虚拟机不停机的内存页面迁移***
US11163475B2 (en) * 2019-06-04 2021-11-02 International Business Machines Corporation Block input/output (I/O) accesses in the presence of a storage class memory
CN110245094B (zh) * 2019-06-18 2020-12-29 华中科技大学 一种基于深度学习的块级缓存预取优化方法和***
CN110333770B (zh) 2019-07-10 2023-05-09 合肥兆芯电子有限公司 存储器管理方法、存储器存储装置及存储器控制电路单元
CN110502452B (zh) * 2019-07-12 2022-03-29 华为技术有限公司 访问电子设备中的混合缓存的方法及装置
TWI722490B (zh) * 2019-07-16 2021-03-21 大陸商合肥兆芯電子有限公司 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元
CN110413978B (zh) * 2019-08-02 2023-12-12 中国工商银行股份有限公司 数据分页导出方法、装置、计算机设备和存储介质
CN110515549B (zh) * 2019-08-16 2022-03-22 浪潮电子信息产业股份有限公司 一种数据迁移方法及装置
CN110795363B (zh) * 2019-08-26 2023-05-23 北京大学深圳研究生院 一种存储介质的热页预测方法和页面调度方法
CN110704338B (zh) * 2019-10-18 2021-01-26 安徽寒武纪信息科技有限公司 地址转换装置、人工智能芯片及电子设备
CN110737410B (zh) * 2019-10-22 2023-02-03 上海理工大学 动态单链表窗口的异构内存***数据页迁出方法
CN111143243B (zh) * 2019-12-19 2023-06-27 上海交通大学 一种基于nvm混合内存的缓存预取方法及***
CN111258923B (zh) * 2020-01-16 2023-03-14 重庆邮电大学 一种基于异构混合内存***的页面分配方法
CN111708719B (zh) * 2020-05-28 2023-06-23 西安纸贵互联网科技有限公司 计算机存储加速方法、电子设备及存储介质
US11562459B2 (en) * 2020-06-19 2023-01-24 Advanced Micro Devices, Inc. Selectively writing back dirty cache lines concurrently with processing
CN111984188B (zh) * 2020-06-30 2021-09-17 重庆大学 混合内存数据的管理方法、装置及存储介质
US11656979B2 (en) 2020-12-22 2023-05-23 SK Hynix Inc. Data tiering in heterogeneous memory system
US20230033029A1 (en) * 2021-07-22 2023-02-02 Vmware, Inc. Optimized memory tiering
US11860773B2 (en) * 2022-02-03 2024-01-02 Micron Technology, Inc. Memory access statistics monitoring
CN114510198B (zh) * 2022-02-16 2023-06-30 北京中电华大电子设计有限责任公司 一种提高nvm擦写效率的方法
CN115394332B (zh) * 2022-09-09 2023-09-12 北京云脉芯联科技有限公司 Cache模拟实现***、方法、电子设备及计算机存储介质
CN117056087B (zh) * 2023-10-11 2024-01-26 深圳云天畅想信息科技有限公司 云数据中心混合内存优化方法、计算机装置及存储介质
CN117234432B (zh) * 2023-11-14 2024-02-23 苏州元脑智能科技有限公司 一种混合内存***的管理方法、管理装置、设备及介质
CN117785738B (zh) * 2024-02-23 2024-05-14 超睿科技(长沙)有限公司 页表预取方法、装置、芯片及存储介质
CN117806709B (zh) * 2024-02-29 2024-06-07 山东云海国创云计算装备产业创新中心有限公司 ***级芯片的性能优化方法、装置、设备和存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103020551A (zh) * 2012-12-21 2013-04-03 清华大学 一种内存架构
CN104239225A (zh) * 2014-09-04 2014-12-24 浪潮(北京)电子信息产业有限公司 一种管理异构混合内存的方法及装置
CN104346293A (zh) * 2013-07-25 2015-02-11 华为技术有限公司 混合内存的数据访问方法、模块、处理器及终端设备
CN104461389A (zh) * 2014-12-03 2015-03-25 上海新储集成电路有限公司 一种混合存储器中数据迁移的自学习的方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8819342B2 (en) * 2012-09-26 2014-08-26 Qualcomm Incorporated Methods and apparatus for managing page crossing instructions with different cacheability
US20140101405A1 (en) * 2012-10-05 2014-04-10 Advanced Micro Devices, Inc. Reducing cold tlb misses in a heterogeneous computing system

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103020551A (zh) * 2012-12-21 2013-04-03 清华大学 一种内存架构
CN104346293A (zh) * 2013-07-25 2015-02-11 华为技术有限公司 混合内存的数据访问方法、模块、处理器及终端设备
CN104239225A (zh) * 2014-09-04 2014-12-24 浪潮(北京)电子信息产业有限公司 一种管理异构混合内存的方法及装置
CN104461389A (zh) * 2014-12-03 2015-03-25 上海新储集成电路有限公司 一种混合存储器中数据迁移的自学习的方法

Also Published As

Publication number Publication date
US10248576B2 (en) 2019-04-02
CN105786717A (zh) 2016-07-20
US20170277640A1 (en) 2017-09-28

Similar Documents

Publication Publication Date Title
CN105786717B (zh) 软硬件协同管理的dram-nvm层次化异构内存访问方法及***
Jung et al. LRU-WSR: integration of LRU and writes sequence reordering for flash memory
EP0780769B1 (en) Hybrid numa coma caching system and methods for selecting between the caching modes
US10031849B2 (en) Tracking alternative cacheline placement locations in a cache hierarchy
US5530941A (en) System and method for prefetching data from a main computer memory into a cache memory
Jeong et al. Efficient hardware-assisted logging with asynchronous and direct-update for persistent memory
US8200902B2 (en) Cache device for coupling to a memory device and a method of operation of such a cache device
US8935484B2 (en) Write-absorbing buffer for non-volatile memory
US6782453B2 (en) Storing data in memory
US6965970B2 (en) List based method and apparatus for selective and rapid cache flushes
TWI393050B (zh) 促進多重處理器介面之板內建快取記憶體系統之記憶體裝置及方法及使用其之電腦系統
JP2002536716A (ja) 仮想メモリシステムにおけるメモリアクセスの改善技術
CN105740164A (zh) 支持缓存一致性的多核处理器、读写方法、装置及设备
JP2012533135A (ja) Tlbプリフェッチング
US9990293B2 (en) Energy-efficient dynamic dram cache sizing via selective refresh of a cache in a dram
Quan et al. Prediction table based management policy for STT-RAM and SRAM hybrid cache
Jung et al. Fass: A flash-aware swap system
Valero et al. An hybrid eDRAM/SRAM macrocell to implement first-level data caches
Valero et al. Design, performance, and energy consumption of eDRAM/SRAM macrocells for L1 data caches
Lee et al. A banked-promotion TLB for high performance and low power
Jung et al. LIRS-WSR: Integration of LIRS and writes sequence reordering for flash memory
Lee et al. A selective temporal and aggressive spatial cache system based on time interval
Kim et al. Memory systems
CN113608698B (zh) 一种基于DRAM牺牲Cache的异构内存页迁移***及方法
Xu et al. Asymmetry & Locality-Aware Cache Bypass and Flush for NVM-Based Unified Persistent Memory

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant