CN107818052B - 内存访问方法及装置 - Google Patents

内存访问方法及装置 Download PDF

Info

Publication number
CN107818052B
CN107818052B CN201610822569.5A CN201610822569A CN107818052B CN 107818052 B CN107818052 B CN 107818052B CN 201610822569 A CN201610822569 A CN 201610822569A CN 107818052 B CN107818052 B CN 107818052B
Authority
CN
China
Prior art keywords
memory
address
page
table entry
page table
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
CN201610822569.5A
Other languages
English (en)
Other versions
CN107818052A (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
Huazhong University of Science and Technology
Original Assignee
Huawei Technologies Co Ltd
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 Huawei Technologies Co Ltd, Huazhong University of Science and Technology filed Critical Huawei Technologies Co Ltd
Priority to CN201610822569.5A priority Critical patent/CN107818052B/zh
Publication of CN107818052A publication Critical patent/CN107818052A/zh
Application granted granted Critical
Publication of CN107818052B publication Critical patent/CN107818052B/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/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/0893Caches characterised by their organisation or structure
    • G06F12/0897Caches characterised by their organisation or structure with two or more cache hierarchy levels

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中;处理器指示内存控制器按照第一页表项中记录的第二地址访问所述NVM,其中,第二地址为第一数据在NVM中的物理地址。由上可见,本发明实施例中,能够基于平行结构实现层次结构的访存流程。

Description

内存访问方法及装置
技术领域
本发明涉及计算机领域,尤其涉及内存访问方法及装置。
背景技术
由于相变存储器(Phase-change Memory,PCM)等非易失性存储器(Non-volatileMemory,NVM)的存储介质具有低延迟、低能耗、非易失性、高密度的特点,因此,作为计算机***的内存,NVM被认为是动态随机存取存储器(Dynamic Random Access Memory,DRAM)的有效补充或者替代品。但由于NVM仍然和DRAM在访存性能上有一定差距,并且存在写入功耗高,耐久性差的缺陷。为了充分利用NVM容量大和DRAM读写性能好的优势,并且最大限度地避免各种存储介质的缺陷,一般把NVM与DRAM结合起来形成混合内存。目前,主流的混合内存的结构有层次结构和平行结构,两者的结构和特点如下。
如图1(a)所示,在层次结构中,容量较小的DRAM作为容量较大的NVM的缓存所用。其中NVM部分地址对操作***可见,而DRAM部分对操作***透明。当进行访存时,虚拟地址在被解析为物理地址后,先判断是否在片上缓存(cache)中命中,如果未命中,则需要发送访存请求到内存控制器,内存控制器需要先判断访存请求所在内存块是否已经缓存在DRAM中,如果不在DRAM中,则需要将NVM中相应的内存块调入DRAM缓存中再进行数据访问。如果DRAM缓存的命中率比较高,那么由于DRAM相对于NVM的读写时延优势,将极大减少整个***的平均访问时延。反之,如果DRAM缓存的命中率比较低,则由于未命中DRAM缓存下的访问序列过长,会加剧访存操作的延迟。可以得出层次结构比较适合局部性优良的应用。
如图1(b)所示,在平行结构中,DRAM和NVM统一编址一同被作为主存使用。由于DRAM在读写时延和写功耗上的优势,为了提高***的访存功耗和效率,需要采用热页迁移的策略,把频繁读写的页面迁移到DRAM当中,把冷却的页面迁移回NVM中。操作***在访存过程中需要记录页面的访存信息,在合适的机会下执行调度算法,这对***有一定的性能开销。此外迁移的单位一般为一个页面,为了提升传输后备缓冲器(TranslationLookaside Buffer,TLB)的命中率可以增大内存页面大小,一般为1MB以上,在这种大页面***中页面迁移会有巨大的消耗。
由于以上原因,层次结构与平行结构在面对不同的应用时有不同的表现。其中,层次结构更加适合局部性良好的应用,由于大部分访存都在DRAM中命中,并且没有额外的***开销,因而可以极大的提升访存性能。但对于访存局部性一般的应用,由于其所有访存必须经过DRAM,将导致大量的缓存换入换出,访存序列过长,会导致比较大的性能下降。在极端情况下,性能甚至差于单一的NVM主存。平行结构的页面调度算法由软件实现,有比较大的灵活性,可以适应复杂的访存规律。但由于页面迁移和***管理方面的开销,使得平行结构在面对局部性良好的应用时性能差于层次结构。目前缺乏一种能在多种应用环境下的访存性能均表现良好的***。
发明内容
本发明实施例提供内存访问方法及装置,能够实现在多种应用环境下的访存性能均表现良好。
一方面,提供了一种内存访问方法,该方法应用于具有混合内存结构的计算机***中,该计算机***包括处理器和混合内存,混合内存包括DRAM和NVM,DRAM和NVM均为该计算机***的主存,该方法包括:处理器根据第一访问请求中的第一地址获得内存页表中的第一页表项,第一地址为第一访问请求待访问的第一数据的虚拟地址,第一页表项用于记录与第一地址对应的物理地址;处理器确定第一页表项中的第一标识位的值为第一标识,其中,第一标识用于指示第一访问请求待访问的第一内存页仅存储于NVM中;处理器指示内存控制器按照第一页表项中记录的第二地址访问NVM,其中,第二地址为第一数据在NVM中的物理地址;处理器接收内存控制器返回的第三地址以及内存控制器根据第二地址读取的第一数据,其中,第三地址为缓存第一内存页中的数据的第二内存页的地址,第二内存页为DRAM中的页;处理器根据第三地址更新第一页表项,更新后的第一页表项中记录有第二地址与第三地址的映射关系;处理器更新第一页表项中的第一标识为第二标识,第二标识用于指示第一页表项所指向的内存页的数据既存储于NVM中也存储于DRAM中。
本发明实施例中,针对DRAM和NVM均为计算机***的主存这种平行结构的硬件结构,更改了页表项的结构,在页表项中增加了第一标识位,第一标识位的值用于指示该页表项所指向的内存页的数据在DRAM和NVM中的存储情况。当处理器接收到访问请求后,处理器根据该访问请求中的虚拟地址获得相应的页表项,若该页表项中的第一标识位的值指示该页表项所指向的内存页的数据仅存储于NVM中,处理器指示内存控制器按照该页表项中记录的数据在NVM中的物理地址访问内存页,接收内存控制器返回的该数据在DRAM中的物理地址,根据该数据在DRAM中的物理地址更新该页表项,更新后的该页表项中记录有该数据在NVM中的物理地址与该数据在DRAM中的物理地址的映射关系,以及更新第一标识位的值,更新后的第一标识位的值指示该页表项所指向的内存页的数据既存储于NVM中也存储于DRAM中,通过上述方式可以使得处理器再次接收到包含同样虚拟地址的访存请求时,可以直接从DRAM中获取数据,从而实现了层次结构的访存流程。
在一种可能的实施方式中,处理器接收第二访问请求,第二访问请求中包含有第一地址;处理器根据第一地址获得内存页表中的第一页表项;处理器确定第一页表项中的第一标识位的值为第二标识;处理器指示内存控制器按照第一页表项中的第三地址访问DRAM中的第二内存页。
本发明实施例中,基于前述实施例中在进行平行结构到层次结构转换时已将层次结构的未缓存状态变换为层次结构的缓存状态,根据页表项中第一标识位的值确定为层次结构的缓存状态,从页表项中获取数据在DRAM中的物理地址,指示内存控制器按照该物理地址访问DRAM中的内存页,从而实现层次结构的缓存状态下的访存流程。
在一种可能的实施方式中,所述处理器确定内存页表中的第二页表项中的第一标识位的值为第三标识,其中,第三标识用于指示第二页表项指向的第三内存页仅存储于DRAM中;处理器在NVM中分配一个新的内存页,分配的内存页为第四内存页;处理器根据第四内存页的地址更新第二页表项,更新后的第二页表项中包含有第三内存页的地址和第四内存页的地址;处理器将第二页表项中的第三标识更新为第二标识,第二标识用于指示第二页表项指向的内存页中的数据既存储于NVM中,也存储于DRAM中。
本发明实施例中,当处于平行结构的访存流程且***判断使用层次结构的访存流程可以提升访存性能时,若某个页表项中的第一标识位的值指示该页表项所指向的内存页的数据仅存储于DRAM中,为了转换成层次结构的已缓存状态,需要在NVM中为此页分配一个页面,将页表项中的NVM地址位指向新分配的页面地址,更新第一标识位的值,使更新后的第一标识位的值指示页表项指向的内存页中的数据既存储于NVM中,也存储于DRAM中,此状态对应于层次结构的缓存状态。通过软件模拟的方式实现了层次结构的访存流程,也就是说,实现了DRAM作为NVM的缓存时的访存流程。
在一种可能的实施方式中,处理器接收第三访问请求,第三访问请求中包含有第四地址,第四地址为第三访问请求待访问的第三数据的虚拟地址;根据第四地址获得第二页表项,第二页表项中记录有第三内存页的地址和第四内存页的地址;确定第二页表项中的第一标识位的值为第二标识;处理器指示内存控制器根据第三内存页的地址访问DRAM中的第三内存页,以获得第三数据。
本发明实施例中,基于前述实施例中在进行平行结构到层次结构转换时已将平行结构的数据存储于DRAM中的状态变换为层次结构的缓存状态,根据页表项中第一标识位的值确定为层次结构的缓存状态,从页表项中获取数据在DRAM中的物理地址,指示内存控制器按照该物理地址访问DRAM中的内存页,从而实现层次结构的缓存状态下的访存流程。
在一种可能的实施方式中,当处理器确定第二页表项中第二标识位为脏时,处理器指示内存控制器根据第四内存页的地址将第三内存页中的数据存储于第四内存页中,第二标识位用于指示第二页表项指向的第三内存页中是否包含有脏数据。
本发明实施例中,在将平行结构的数据存储于DRAM中的状态变换为层次结构的缓存状态时,可以仅更新页表项,无须将DRAM数据拷贝到NVM,因为可认为DRAM数据为最新数据,NVM地址上数据可以为空,并使页表项中的第二标识位的值指示脏,代表层次结构中的DRAM的缓存页为最新的数据,在后续适当的时机执行刷盘的过程,将DRAM的数据存储在NVM中,保证掉电数据不丢失。
在一种可能的实施方式中,处理器确定内存页表中的第二页表项中的第一标识位的值为第二标识,其中,第二标识用于指示第二页表项指向的数据既存储于NVM的第四内存页中,也存储于DRAM的第三内存页中;处理器更新第二页表项,更新后的第二页表项中仅包含有第三内存页的地址;处理器将第二页表项中的第二标识更新为第三标识,第三标识用于指示第二页表项指向的内存页中的数据仅存储于DRAM中。
本发明实施例中,当处于层次结构的访存流程且***判断使用平行结构的访存流程可以提升访存性能时,若某个页表项中的第一标识位的值指示该页表项所指向的内存页的数据既存储于NVM中也存储于DRAM中时,为了转换成平行结构的处于DRAM中的状态,需要回收NVM地址指向的NVM页,并更新第一标识位的值,使更新后的第一标识位的值指示页表项指向的内存页中的数据仅存储于DRAM中,该页面完成切换流程。
在一种可能的实施方式中,处理器接收第四访问请求,第四访问请求中包含有第五地址,第五地址为第四访问请求待访问的第四数据的虚拟地址;根据第五地址获得第二页表项,第二页表项中记录有第三内存页的地址;确定第二页表项中的第一标识位的值为第三标识;处理器指示内存控制器根据第三内存页的地址访问DRAM中的第三内存页,以获得第四数据。
本发明实施例中,基于前述实施例中在进行层次结构到平行结构转换时已将层次结构的缓存状态变换为平行结构的数据存储于DRAM中的状态,根据页表项中第一标识位的值确定为平行结构的数据存储于DRAM中的状态,从页表项中获取数据在DRAM中的物理地址,指示内存控制器按照该物理地址访问DRAM中的内存页,从而实现平行结构下的访存流程。
又一方面,本发明提供了一种内存访问装置,该装置可以实现上述方法示例中处理器和内存控制器所执行的功能,所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个上述功能相应的模块。
在一种可能的设计中,该装置应用于具有混合内存结构的计算机***中,该计算机***包括处理器和混合内存,混合内存包括DRAM和NVM,DRAM和NVM均为计算机***的主存,该处理器被配置为支持该装置执行上述方法中相应的功能。该计算机***还可以包括存储器,该存储器用于与处理器耦合,其保存该装置必要的程序指令和数据。
本发明第三方面提供了一种计算机存储介质,用于储存供上述内存访问装置使用的计算机软件指令,其包含用于执行上述方面的方法所设计的程序。
相较于现有技术,本发明实施例中,基于平行结构的硬件结构,通过修改页表项的方式,利用软件模拟层次结构的访存流程,并且实现了平行结构的访存流程与层次结构的访存流程之间的转换,从而可以根据应用的访存特征灵活选择平行结构的访存流程或层次结构的访存流程,有利于提高访存性能。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍。显而易见地,下面描述中的附图仅仅是本发明的一些实施例。
图1(a)为层次结构的计算机***硬件结构示意图;
图1(b)为平行结构的计算机***硬件结构示意图;
图2为本发明实施例提供的修改前后的内存页表的页表项结构对比图;
图3为本发明实施例提供的修改前后的TLB的页表项结构对比图;
图4为本发明实施例提供的一种内存访问方法流程图;
图5为本发明实施例提供的另一种内存访问方法信号流图;
图6为本发明实施例提供的另一种内存访问方法信号流图;
图7为本发明实施例提供的另一种内存访问方法信号流图;
图8为本发明实施例提供的另一种内存访问方法信号流图;
图9为本发明实施例提供的另一种内存访问方法流程图;
图10为本发明实施例提供的另一种内存访问方法信号流图;
图11为本发明实施例提供的一种平行结构的访存流程图;
图12为本发明实施例提供的一种层次结构的访存流程图;
图13为本发明实施例提供的一种内存访问装置结构图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图和实施例,对本发明实施例中的技术方案进行清楚地描述。
当本发明实施例提及“第一”、“第二”等序数词时,除非根据上下文其确实表达顺序之意,应当理解为仅仅起区分的作用。
本发明实施例提供的内存访问方法应用于具有混合内存结构的计算机***中,该计算机***包括处理器和混合内存,混合内存包括动态随机存取存储器DRAM和非易失性存储器NVM,DRAM和NVM均为该计算机***的主存,这中混合内存的结构通常称为平行结构,平行结构的具体硬件结构可以参照图1(b)所示的平行结构的计算机***硬件结构示意图。
本发明实施例提供的内存访问方法包括两个转换过程,平行结构的处理流程转换为层次结构的处理流程,以及层次结构的处理流程转换为平行结构的处理流程。
本发明实施例提供的内存访问方法可以基于如下的硬件构成:一个服务器机框,里面有一块主板,主板上安装有CPU、内存、南桥等芯片,用于对其他扩展卡进行控制,实现主机的功能;内存控制器具有对NVM和DRAM进行分别控制的功能,CPU通过内存控制器读写NVM和DRAM。CPU中TLB是页表的缓存,用于地址转换的加速。内存管理单元利用TLB改进虚拟地址到物理地址转换速度。TLB是一个小的,虚拟寻址的缓存,其中每一行都保存着一个由单个页表(Page Table Entry,PTE)组成的块。如果没有TLB,则每次取数据都需要两次访问内存,即查页表获得物理地址和取数据。
本发明实施例修改了TLB的表项结构,并在软件层面上进行了编程以支持相应的功能。
下面结合修改后的TLB的表项结构以及软件处理流程对本发明提供的内存访问方法进行详细说明:
为了在平行结构的硬件结构下模拟层次结构的访存流程,本发明实施例中通过在页表项中同时保存DRAM地址和NVM地址以维护DRAM中缓存页与NVM中页面的映射关系。当处于平行架构时,页表项中的DRAM地址项和NVM地址项仅有一项存放物理地址,另外未使用的地址项可以用作存储统计的访存信息。
图2为修改前后的内存页表的页表项结构对比图,本发明通过在最后一级页表项维护一组NVM页面与DRAM页面的映射来实现缓存功能。增加一个ND标志位来反映页面在NVM和DRAM中的存在情况,该ND标志位可以称为第一标识位。此外,还增加额外的一个域用作指明页面在DRAM中的地址。如图2所示,P标识,用于记录该页是否在内存中,本发明实施例中未使用该位;R/W标识,用于记录该页的读写权限;U/S标识,用于记录该页是内核态页框或用户态页框;D标识,用于记录该页是否被写过,该D标识可以称为第二标识位;AVAIL标识,用于记录该页是否仅允许***权限的程序员使用;ND标识,用于记录该页在NVM和DRAM中的存在情况,01表明仅在NVM中,10表示仅在DRAM中,11表示同时存在于DRAM和NVM中。平行结构的访存流程中,ND位可能为01和10;层次结构的访存流程中,ND位可能为01和11。其中,用户态页框:被用户态的程序调用的页表;内核态页框:被内核态的程序调用的页表。页框地址:MMU转换后的待访问的物理地址。DRAM地址是待访问页面在DRAM中的物理地址,NVM地址是待访问页面在NVM中的物理地址。在层次结构的访存流程中,DRAM地址与NVM地址存在一定的映射关系。
图3为修改前后的TLB的页表项结构对比图,TLB作为页表的缓存,也需要相应的修改才能支持本发明实施例提供的内存访问方法,其中,TLB为在CPU的寄存器中存的页表的cache,使得CPU可以快速访问最近访问的页表项。相当于是片上cache中缓存的页表项。因为现有的连续的预留位不够,所以将NVM的地址分别放在表a)中的两个间隔的预留位中。其中,N标识,用于记录是否旁路cache;D标识,用于记录该物理页是否可写;V标识,用于记录TLB表项是否有效;G标识,用于记录表项对应页框是否是全局页;ND标识,跟最后一级页表项中ND标识功能相同,在此不做赘述。
此外,本发明实施例中可以将DRAM中的部分低地址段留作操作***内核及页表使用,这些内存区域不参加转换。
首先对于平行结构的访存流程转换为层次结构的访存流程进行说明,在平行结构下数据的存储情况包括两种:一种情况下,数据仅存在于NVM中,此状态对应于层次结构时的未缓存状态,不需要进行状态转换。在另一种情况下,数据仅存在于DRAM中,此状态需转换为层次结构时的缓存状态。
在一个示例中,若某个页表项中的ND位为01,表示这个物理页面仅存在于NVM,此状态对应于层次结构时的未缓存状态,可以不对该物理页面进行结构切换。若某个页表项中的ND位为10,表示这个物理页面仅存在于DRAM中,为了转换成层次结构的已缓存状态,需要在NVM中为此页分配一个页面,将页表项中的NVM地址位指向新分配的页面地址,此时无须将DRAM数据拷贝到NVM,因为可认为DRAM数据为最新数据,NVM地址上数据可以为空,将ND标识置11,并将页表项中的Dirty位标识置1,代表层次结构中的DRAM的缓存页为最新的数据。
图4为本发明实施例提供的一种内存访问方法流程图,该方法包括了平行结构的访存流程转换为层次结构的访存流程时的处理流程,其中,针对数据仅存在于DRAM中的页表项进行转换处理,将数据的存储状态转换为层次结构下的缓存状态,该方法包括:
步骤401,处理器确定内存页表中的第二页表项中的第一标识位的值为第三标识,其中,第三标识用于指示第二页表项指向的第三内存页仅存储于DRAM中。
步骤402,处理器在NVM中分配一个新的内存页,分配的内存页为第四内存页。
步骤403,处理器根据第四内存页的地址更新第二页表项,更新后的第二页表项中包含有第三内存页的地址和第四内存页的地址。
步骤404,处理器将第二页表项中的第三标识更新为第二标识,第二标识用于指示第二页表项指向的内存页中的数据既存储于NVM中,也存储于DRAM中。
图5为本发明实施例提供的另一种内存访问方法信号流图,该方法包括了平行结构的访存流程转换为层次结构的访存流程时的处理流程,其中具体包括了访问NVM的数据时的过程,数据仅存在于NVM中,直接从NVM中获取数据,并将数据的存储状态转换为层次结构下的缓存状态,该方法包括:
步骤501,处理器根据第一访问请求中的第一地址获得内存页表中的第一页表项,第一地址为第一访问请求待访问的第一数据的虚拟地址,第一页表项用于记录与第一地址对应的物理地址。
其中,处理器可以根据第一访问请求中的第一地址查找到内存页表中的第一页表项。内存页表用于实现虚拟地址到物理地址的转换,记录有要访问的数据的虚拟地址及物理地址的映射关系。
步骤502,处理器确定第一页表项中的第一标识位的值为第一标识,其中,第一标识用于指示第一访问请求待访问的第一内存页仅存储于NVM中。
步骤503,处理器指示内存控制器按照第一页表项中记录的第二地址访问NVM,其中,第二地址为第一数据在NVM中的物理地址。
步骤504,内存控制器根据处理器的指示,按照第二地址访问NVM。
步骤505,内存控制器向处理器发送第三地址以及根据第二地址读取的第一数据,其中,第三地址为缓存第一内存页中的数据的第二内存页的地址,第二内存页为DRAM中的页。
其中,内存控制器可以将数据从NVM中读取后再缓存到DRAM中,具体的,可以在DRAM中新分配一个物理页,用于缓存第一内存页中的数据。
步骤506,处理器根据第三地址更新第一页表项,更新后的第一页表项中记录有第二地址与第三地址的映射关系。
步骤507,处理器更新第一页表项中的第一标识为第二标识,第二标识用于指示第一页表项所指向的内存页的数据既存储于NVM中也存储于DRAM中。
图6为本发明实施例提供的另一种内存访问方法信号流图,该方法基于图5所示实施例已将平行结构的访存流程转换为层次结构的访存流程且数据的存储状态转换为层次结构下的缓存状态的基础上,相同的部分在此不做赘述,该方法包括了访问NVM和DRAM的共有数据时的过程,该方法包括:
步骤601,处理器接收第二访问请求,第二访问请求中包含有第一地址。
步骤602,处理器根据第一地址获得内存页表中的第一页表项。
步骤603,处理器确定第一页表项中的第一标识位的值为第二标识。
步骤604,处理器指示内存控制器按照第一页表项中的第三地址访问DRAM中的第二内存页。
步骤605,内存控制器根据处理器的指示,按照第三地址访问DRAM中的第二内存页。
图7为本发明实施例提供的另一种内存访问方法信号流图,该方法基于图4所示实施例已将平行结构的访存流程转换为层次结构的访存流程且将数据的存储状态转换为层次结构下的缓存状态的基础上,相同的部分在此不做赘述,该方法包括了访问NVM和DRAM的共有数据时的过程,该方法包括:
步骤701,处理器接收第三访问请求,第三访问请求中包含有第四地址,第四地址为第三访问请求待访问的第三数据的虚拟地址。
步骤702,处理器根据第四地址获得第二页表项,第二页表项中记录有第三内存页的地址和第四内存页的地址。
步骤703,处理器确定第二页表项中的第一标识位的值为第二标识。
步骤704,处理器指示内存控制器根据第三内存页的地址访问DRAM中的第三内存页,以获得第三数据。
步骤705,内存控制器根据处理器指示,根据第三内存页的地址访问DRAM中的第三内存页,以获得第三数据。
在前述图4所示的实施例中,针对数据仅存在于DRAM中的页表项进行转换处理时,可以只更新页表项,将第一标识位的值设置为第二标识,该第二标识用于指示第二页表项指向的内存页中的数据既存储于NVM中,也存储于DRAM中,并将页表项中的第二标识位的值设置为脏,代表层次结构中的DRAM的缓存页为最新的数据,而不将DRAM数据拷贝到NVM,因为可认为DRAM数据为最新数据,NVM地址上数据可以为空,待合适的时机再执行刷盘的过程,将DRAM的数据存储在NVM中,保证掉电数据不丢失。
执行刷盘的过程可以采用如下方式:当处理器确定第二页表项中第二标识位为脏时,处理器指示内存控制器根据第四内存页的地址将第三内存页中的数据存储于第四内存页中,第二标识位用于指示第二页表项指向的第三内存页中是否包含有脏数据。其中,脏数据是指DRAM中缓存的数据与对应的NVM内存页中的数据不同,也就是说这个DRAM内存页中写入了新数据。具体在这里是指第三内存页中的数据与第四内存页中的数据不同,第三内存页中写入了新数据。
下面对于层次结构的处理流程转换为平行结构的处理流程进行说明,在层次结构下数据的存储情况包括两种:数据仅存在于NVM中,此状态对应于平行结构时的一种存储状态,不需要进行状态转换;或者,数据既存在于DRAM中也存在于NVM中,此状态需转换为平行结构时数据仅存在于DRAM中的状态。
图8为本发明实施例提供的另一种内存访问方法信号流图,该方法包括了层次结构的访存流程转换为平行结构的访存流程时的处理流程,其中具体包括了访问NVM的数据时的过程,数据仅存在于NVM中,直接从NVM中获取数据,该方法包括:
步骤801,处理器根据第一访问请求中的第一地址获得内存页表中的第一页表项,第一地址为第一访问请求待访问的第一数据的虚拟地址,第一页表项用于记录第一地址以及对应的物理地址的映射关系。
步骤802,处理器确定第一页表项中的第一标识位的值为第一标识,其中,第一标识用于指示第一访问请求待访问的第一内存页仅存储于NVM中。
步骤803,处理器指示内存控制器按照第一页表项中记录的第二地址访问NVM,其中,第二地址为第一数据在NVM中的物理地址。
步骤804,内存控制器根据处理器的指示,按照第一页表项中记录的第二地址访问NVM。
图9为本发明实施例提供的另一种内存访问方法流程图,该方法包括了层次结构的访存流程转换为平行结构的访存流程时的处理流程,基于图4所示的实施例中数据既存在于NVM中也存在于DRAM中的情况,需要将数据存储的状态转换为数据仅存在于NVM中的状态并更新页表项,该方法包括:
步骤901,处理器确定内存页表中的第二页表项中的第一标识位的值为第二标识,其中,第二标识用于指示第二页表项指向的数据既存储于NVM的第四内存页中,也存储于DRAM的第三内存页中。
步骤902,处理器更新第二页表项,更新后的第二页表项中仅包含有第三内存页的地址。
本发明实施例中,删除了第二页表项中的第四内存页的地址,在具体实施时,也可以不删除第二页表项中的第四内存页的地址。
步骤903,处理器将第二页表项中的第二标识更新为第三标识,第三标识用于指示第二页表项指向的内存页中的数据仅存储于DRAM中。
图10为本发明实施例提供的另一种内存访问方法信号流图,该方法基于图9所示实施例已将层次结构的访存流程转换为平行结构的访存流程且将数据的存储状态转换为平行结构下的数据仅存储于DRAM中状态的基础上,相同的部分在此不做赘述,该方法包括了访问DRAM的数据时的过程,该方法包括:
步骤1001,处理器接收第四访问请求,第四访问请求中包含有第五地址,第五地址为第四访问请求待访问的第四数据的虚拟地址。
步骤1002,处理器根据第五地址获得第二页表项,第二页表项中记录有第三内存页的地址。
步骤1003,处理器确定第二页表项中的第一标识位的值为第三标识。
步骤1004,处理器指示内存控制器根据第三内存页的地址访问DRAM中的第三内存页,以获得第四数据。
步骤1005,内存控制器根据处理器的指示,根据第三内存页的地址访问DRAM中的第三内存页,以获得第四数据。
图11为本发明实施例提供的一种平行结构的访存流程图,在平行结构下,由于在页表项中同时使用了NVM地址项和DRAM地址项,因此,需要查看页表项中的ND值来判断页面所在位置。与硬件实现的平行结构相比,将内存存在位置由内存控制器提前到了内存管理单元(Memory Management Unit,MMU)寻址阶段。
如图11所示,访存步骤为:1.TLB地址翻译获取虚拟地址对应的TLB表项,以及TLB表项中的DRAM地址、NVM地址和ND标志。2.判断内存访问物理地址是否在片上cache中,如果在则完成内存访问。3.内存控制器根据接收到的地址取数据到片上cache,完成内存访问。本发明实施例中,还可以利用页表项中ND值标记页面所在位置(DRAM或NVM),并以此提供给统计例程。而未使用地址项则可以存放统计例程产生的结果,其中,如果页面在DRAM中,则NVM地址项为未使用地址项,反之则DRAM地址项为未使用地址项。
图12为本发明实施例提供的一种层次结构的访存流程图,当在层次结构下访问内存时,通过页表项中的ND值指明内存页的缓存情况,并使用DRAM地址域存放NVM页面与DRAM页缓存的映射关系,由于可能出现需要访问的页面不在DRAM中的情况,因此需要将相应页面调入DRAM中去。与硬件实现的层次结构不同的是,硬件实现的层次结构判断页面是否在DRAM缓存中以及实现缓存调度都是在内存控制器中实现的,而本发明实施例中通过在页表项中添加额外的域来实现页面到缓存的映射。
如图12所示,访存步骤为:1.TLB地址翻译获取虚拟地址对应的TLB表项,以及TLB表项中的DRAM地址、NVM地址和ND标志。2.根据ND标志获取页面缓存状态,若ND为11,说明页面已在DRAM中缓存,转步骤4。如ND为01,说明页面存在于NVM中,转步骤3。3.根据缓存替换算法将TLB表项的NVM地址对应的NVM页面调入DRAM页面,填写页表项中的DRAM地址,修改ND位为11。转步骤5。4.由表项中DRAM地址项获得物理地址,判断是否在片上cache中已缓存,若已缓存则完成内存访问。5.由表项中DRAM地址项获得DRAM缓存地址发送到内存控制器完成内存访问。与传统的层次结构不同,由于本发明实施例是在平行结构下模拟实现的层次结构的访存流程,因此需要通过软件的方法实现缓存。
其中,在层次结构的访存流程中,所有的访存操作都需要经过DRAM,所以需要先将NVM的页面取到DRAM中后,再从DRAM中读取数据。此外,在通过TLB查询确定数据仅在NVM中后,本次操作可以不从NVM取数据到DRAM,而直接从NVM返回数据给CPU。后续再访问时再将数据从NVM中复制(copy)到DRAM中。
下面对平行结构的访存流程与层次结构的访存流程之间的转换进行详细说明。
当需要进行从平行结构到层次结构的转换的时候。首先,将全局标志位Arch置1,表明接下来的访存流程将按照层次结构访存流程完成,暂停进程调度;之后遍历所有进程的页表,当发现某页的ND位为10时(即所在页面仅存在于DRAM中),在NVM中为其分配一个页面,将页表项中的NVM地址指向新分配的页面地址,并将页表项中的D标识置1,表明该页需要写回对应的NVM中(暂不写回),置页表项中的ND位为11;最后,启动进程调度,接下来的访存依照层次结构的访存流程进行。
当需要进行从层次结构到平行结构的转换的时候。首先,将全局标志位Arch置0,表明接下来的访存流程将按照平行结构访存流程完成,暂停进程调度;之后遍历所有进程的页表,当发现某页的ND位为11时(即页面同时存在于DRAM和NVM中),将页表项NVM地址对应的页面回收,并置ND位为10;最后,启动进程调度,接下来的访存依照平行结构的访存流程进行。其中,若某个页表项中的ND位为01,表示这个物理页面仅存在于NVM,当前页面未被缓存到DRAM,此状态对应于平行结构中的处于NVM中的状态,该页面完成切换流程。若某个页表项中的ND位为11,表示这个物理页面同时存在于DRAM和NVM,当前页面已被缓存到DRAM,为了转换成平行结构的处于DRAM中的状态,需要回收NVM地址指向的NVM页,设置页表项中的Dirty位为干净(Clean),并置ND标识为10,表示数据只存在于DRAM,该页面完成切换流程。最后,当且仅当所有的页面完成切换流程后,结构切换才算完成,接下来的访存依照平行结构的访存流程进行访存。
结构转换应用场景举例:通过在层次结构访存流程中收集DRAM cache命中率,当命中率低于给一定值时,将***由层次结构转换为平行结构;当平行结构访存占用的空间(Footprint)或常用工作集小于DRAM大小,即热点数据非常集中,则将***由平行结构转换为层次结构。
本发明实施例中,当有多种特征的应用需要运行时,可以根据应用特征按顺序切换适应的体系结构访存流程以减少运行时间,也可以根据***运行状态自动切换体系结构访存流程,从而减少总的运行时间。并且,通过在页表项中利用空余地址位存放页面访问信息为资源管理提供了更加灵活的实现手段,以及为研究比较不同的异构混合内存架构提供了实践平台。
图13为本发明实施例提供的一种内存访问装置结构图,该装置应用于具有混合内存结构的计算机***中,该计算机***包括混合内存,混合内存包括DRAM和NVM,DRAM和NVM均为所述计算机***的主存,该装置用于执行本发明实施例提供的内存访问方法,具体实现平行结构的访存流程转换为层次结构的访存流程,该装置包括:处理模块1301和内存控制模块1302;
其中,处理模块1301具体可以为图1(b)中的处理器,内存控制模块1302具体可以为图1(b)中的内存控制器。
处理模块1301,用于根据第一访问请求中的第一地址获得内存页表中的第一页表项,第一地址为第一访问请求待访问的第一数据的虚拟地址,第一页表项用于记录与第一地址对应的物理地址;确定第一页表项中的第一标识位的值为第一标识,其中,第一标识用于指示第一访问请求待访问的第一内存页仅存储于NVM中;指示内存控制模块1302按照第一页表项中记录的第二地址访问NVM,其中,第二地址为第一数据在NVM中的物理地址;
内存控制模块1302,用于根据处理模块1301的指示,按照第一页表项中记录的第二地址访问NVM,向处理模块1301发送第三地址以及根据第二地址读取的第一数据,其中,第三地址为缓存第一内存页中的数据的第二内存页的地址,第二内存页为DRAM中的页;
处理模块1301,还用于接收内存控制模块1302返回的第三地址以及内存控制模块1302根据第二地址读取的第一数据;根据第三地址更新第一页表项,更新后的第一页表项中记录有第二地址与第三地址的映射关系;更新第一页表项中的第一标识为第二标识,第二标识用于指示第一页表项所指向的内存页的数据既存储于NVM中也存储于DRAM中。
在一个示例中,处理模块1301,还用于接收第二访问请求,第二访问请求中包含有第一地址;根据第一地址获得内存页表中的第一页表项;确定第一页表项中的第一标识位的值为第二标识;指示内存控制模块1302按照第一页表项中的第三地址访问DRAM中的第二内存页;
内存控制模块1302,还用于根据处理模块1301的指示,按照第一页表项中的第三地址访问DRAM中的第二内存页。
在一个示例中,处理模块1301,还用于确定内存页表中的第二页表项中的第一标识位的值为第三标识,其中,第三标识用于指示第二页表项指向的第三内存页仅存储于DRAM中;在NVM中分配一个新的内存页,分配的内存页为第四内存页;根据第四内存页的地址更新第二页表项,更新后的第二页表项中包含有第三内存页的地址和第四内存页的地址;将第二页表项中的第三标识更新为第二标识,第二标识用于指示第二页表项指向的内存页中的数据既存储于NVM中,也存储于DRAM中。
在一个示例中,处理模块1301,还用于接收第三访问请求,第三访问请求中包含有第四地址,第四地址为第三访问请求待访问的第三数据的虚拟地址;根据第四地址获得第二页表项,第二页表项中记录有第三内存页的地址和第四内存页的地址;确定第二页表项中的第一标识位的值为第二标识;指示内存控制模块1302根据第三内存页的地址访问DRAM中的第三内存页,以获得第三数据;
内存控制模块1302,还用于根据处理模块1301的指示,根据第三内存页的地址访问DRAM中的第三内存页,以获得第三数据。
在一个示例中,处理模块1301,还用于当确定第二页表项中第二标识位为脏时,指示内存控制模块根据第四内存页的地址将第三内存页中的数据存储于第四内存页中,第二标识位用于指示第二页表项指向的第三内存页中是否包含有脏数据;
内存控制模块1302,还用于根据处理模块1301的指示,根据第四内存页的地址将第三内存页中的数据存储于第四内存页中。
在一个示例中,处理模块1301,还用于确定内存页表中的第二页表项中的第一标识位的值为第二标识,其中,所述第二标识用于指示第二页表项指向的数据既存储于NVM的第四内存页中,也存储于DRAM的第三内存页中;更新第二页表项,更新后的第二页表项中仅包含有第三内存页的地址;将第二页表项中的第二标识更新为第三标识,第三标识用于指示第二页表项指向的内存页中的数据仅存储于DRAM中。
在一个示例中,处理模块1301,还用于接收第四访问请求,第四访问请求中包含有第五地址,第五地址为第四访问请求待访问的第四数据的虚拟地址;根据第五地址获得第二页表项,第二页表项中记录有第三内存页的地址;确定第二页表项中的第一标识位的值为第三标识;指示内存控制模块1302根据第三内存页的地址访问DRAM中的第三内存页,以获得第四数据;
内存控制模块1302,还用于根据第三内存页的地址访问DRAM中的第三内存页,以获得第四数据。
专业人员应该还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令处理器完成,所述的程序可以存储于计算机可读存储介质中,所述存储介质是非短暂性(non-transitory)介质,例如随机存取存储器,只读存储器,快闪存储器,硬盘,固态硬盘,磁带(magnetic tape),软盘(floppy disk),光盘(optical disc)及其任意组合。以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此。

Claims (14)

1.一种内存访问方法,其特征在于,所述方法应用于具有混合内存结构的计算机***中,所述计算机***包括处理器和混合内存,所述混合内存包括动态随机存取存储器DRAM和非易失性存储器NVM,所述DRAM和所述NVM均为所述计算机***的主存,所述方法包括:
所述处理器根据第一访问请求中的第一地址获得内存页表中的第一页表项,所述第一地址为所述第一访问请求待访问的第一数据的虚拟地址,所述第一页表项用于记录与所述第一地址对应的物理地址;
所述处理器确定所述第一页表项中的第一标识位的值为第一标识,其中,所述第一标识用于指示所述第一访问请求待访问的第一内存页的数据仅存储于所述NVM中;
所述处理器指示内存控制器按照所述第一页表项中记录的第二地址访问所述NVM,其中,所述第二地址为所述第一数据在所述NVM中的物理地址;
所述处理器接收所述内存控制器返回的第三地址以及所述内存控制器根据所述第二地址读取的所述第一数据,其中,所述第三地址为缓存所述第一内存页中的数据的第二内存页的地址,所述第二内存页为所述DRAM中的页;
所述处理器根据所述第三地址更新所述第一页表项,更新后的第一页表项中记录有所述第二地址与所述第三地址的映射关系;
所述处理器更新所述第一页表项中的第一标识为第二标识,所述第二标识用于指示所述第一页表项所指向的内存页的数据既存储于所述NVM中也存储于所述DRAM中。
2.根据权利要求1所述的内存访问方法,其特征在于,还包括:
所述处理器接收第二访问请求,所述第二访问请求中包含有所述第一地址;
所述处理器根据所述第一地址获得所述内存页表中的所述第一页表项;
所述处理器确定所述第一页表项中的第一标识位的值为所述第二标识;
所述处理器指示所述内存控制器按照所述第一页表项中的所述第三地址访问所述DRAM中的第二内存页。
3.根据权利要求1所述的内存访问方法,其特征在于,还包括:
所述处理器确定所述内存页表中的第二页表项中的第一标识位的值为第三标识,其中,所述第三标识用于指示所述第二页表项指向的第三内存页仅存储于所述DRAM中;
所述处理器在所述NVM中分配一个新的内存页,所述分配的内存页为第四内存页;
所述处理器根据所述第四内存页的地址更新所述第二页表项,更新后的第二页表项中包含有所述第三内存页的地址和所述第四内存页的地址;
所述处理器将所述第二页表项中的所述第三标识更新为所述第二标识,所述第二标识用于指示所述第二页表项指向的内存页中的数据既存储于所述NVM中,也存储于所述DRAM中。
4.根据权利要求3所述的内存访问方法,其特征在于,还包括:
所述处理器接收第三访问请求,所述第三访问请求中包含有第四地址,所述第四地址为所述第三访问请求待访问的第三数据的虚拟地址;
根据所述第四地址获得所述第二页表项,所述第二页表项中记录有所述第三内存页的地址和所述第四内存页的地址;
确定所述第二页表项中的第一标识位的值为所述第二标识;
所述处理器指示所述内存控制器根据所述第三内存页的地址访问所述DRAM中的第三内存页,以获得所述第三数据。
5.根据权利要求3所述的内存访问方法,其特征在于,还包括:
当所述处理器确定所述第二页表项中第二标识位为脏时,所述处理器指示所述内存控制器根据所述第四内存页的地址将所述第三内存页中的数据存储于所述第四内存页中,所述第二标识位用于指示所述第二页表项指向的第三内存页中是否包含有脏数据。
6.根据权利要求3所述的内存访问方法,其特征在于,还包括:
所述处理器确定所述内存页表中的第二页表项中的第一标识位的值为第二标识,其中,所述第二标识用于指示所述第二页表项指向的数据既存储于所述NVM的第四内存页中,也存储于所述DRAM的第三内存页中;
所述处理器更新所述第二页表项,更新后的第二页表项中仅包含有所述第三内存页的地址;
所述处理器将所述第二页表项中的所述第二标识更新为所述第三标识,所述第三标识用于指示所述第二页表项指向的内存页中的数据仅存储于所述DRAM中。
7.根据权利要求6所述的内存访问方法,其特征在于,还包括:
所述处理器接收第四访问请求,所述第四访问请求中包含有第五地址,所述第五地址为所述第四访问请求待访问的第四数据的虚拟地址;
根据所述第五地址获得所述第二页表项,所述第二页表项中记录有所述第三内存页的地址;
确定所述第二页表项中的第一标识位的值为所述第三标识;
所述处理器指示所述内存控制器根据所述第三内存页的地址访问所述DRAM中的第三内存页,以获得所述第四数据。
8.一种内存访问装置,其特征在于,所述装置应用于具有混合内存结构的计算机***中,所述计算机***包括混合内存,所述混合内存包括动态随机存取存储器DRAM和非易失性存储器NVM,所述DRAM和所述NVM均为所述计算机***的主存,所述装置包括:处理模块和内存控制模块;
所述处理模块,用于根据第一访问请求中的第一地址获得内存页表中的第一页表项,所述第一地址为所述第一访问请求待访问的第一数据的虚拟地址,所述第一页表项用于记录与所述第一地址对应的物理地址;确定所述第一页表项中的第一标识位的值为第一标识,其中,所述第一标识用于指示所述第一访问请求待访问的第一内存页的数据仅存储于所述NVM中;指示所述内存控制模块按照所述第一页表项中记录的第二地址访问所述NVM,其中,所述第二地址为所述第一数据在所述NVM中的物理地址;
所述内存控制模块,用于根据所述处理模块的指示,按照所述第一页表项中记录的第二地址访问所述NVM,向所述处理模块发送第三地址以及根据所述第二地址读取的所述第一数据,其中,所述第三地址为缓存所述第一内存页中的数据的第二内存页的地址,所述第二内存页为所述DRAM中的页;
所述处理模块,还用于接收所述内存控制模块返回的第三地址以及所述内存控制模块根据所述第二地址读取的所述第一数据;根据所述第三地址更新所述第一页表项,更新后的第一页表项中记录有所述第二地址与所述第三地址的映射关系;更新所述第一页表项中的第一标识为第二标识,所述第二标识用于指示所述第一页表项所指向的内存页的数据既存储于所述NVM中也存储于所述DRAM中。
9.根据权利要求8所述的内存访问装置,其特征在于:
所述处理模块,还用于接收第二访问请求,所述第二访问请求中包含有所述第一地址;根据所述第一地址获得所述内存页表中的所述第一页表项;确定所述第一页表项中的第一标识位的值为所述第二标识;指示所述内存控制模块按照所述第一页表项中的所述第三地址访问所述DRAM中的第二内存页;
所述内存控制模块,还用于根据所述处理模块的指示,按照所述第一页表项中的所述第三地址访问所述DRAM中的第二内存页。
10.根据权利要求8所述的内存访问装置,其特征在于:
所述处理模块,还用于确定所述内存页表中的第二页表项中的第一标识位的值为第三标识,其中,所述第三标识用于指示所述第二页表项指向的第三内存页仅存储于所述DRAM中;在所述NVM中分配一个新的内存页,所述分配的内存页为第四内存页;根据所述第四内存页的地址更新所述第二页表项,更新后的第二页表项中包含有所述第三内存页的地址和所述第四内存页的地址;将所述第二页表项中的所述第三标识更新为所述第二标识,所述第二标识用于指示所述第二页表项指向的内存页中的数据既存储于所述NVM中,也存储于所述DRAM中。
11.根据权利要求10所述的内存访问装置,其特征在于:
所述处理模块,还用于接收第三访问请求,所述第三访问请求中包含有第四地址,所述第四地址为所述第三访问请求待访问的第三数据的虚拟地址;根据所述第四地址获得所述第二页表项,所述第二页表项中记录有所述第三内存页的地址和所述第四内存页的地址;确定所述第二页表项中的第一标识位的值为所述第二标识;指示所述内存控制模块根据所述第三内存页的地址访问所述DRAM中的第三内存页,以获得所述第三数据;
所述内存控制模块,还用于根据所述处理模块的指示,根据所述第三内存页的地址访问所述DRAM中的第三内存页,以获得所述第三数据。
12.根据权利要求10所述的内存访问装置,其特征在于:
所述处理模块,还用于当确定所述第二页表项中第二标识位为脏时,指示所述内存控制模块根据所述第四内存页的地址将所述第三内存页中的数据存储于所述第四内存页中,所述第二标识位用于指示所述第二页表项指向的第三内存页中是否包含有脏数据;
所述内存控制模块,还用于根据所述处理模块的指示,根据所述第四内存页的地址将所述第三内存页中的数据存储于所述第四内存页中。
13.根据权利要求10所述的内存访问装置,其特征在于:
所述处理模块,还用于确定所述内存页表中的第二页表项中的第一标识位的值为第二标识,其中,所述第二标识用于指示所述第二页表项指向的数据既存储于所述NVM的第四内存页中,也存储于所述DRAM的第三内存页中;更新所述第二页表项,更新后的第二页表项中仅包含有所述第三内存页的地址;将所述第二页表项中的所述第二标识更新为所述第三标识,所述第三标识用于指示所述第二页表项指向的内存页中的数据仅存储于所述DRAM中。
14.根据权利要求13所述的内存访问装置,其特征在于:
所述处理模块,还用于接收第四访问请求,所述第四访问请求中包含有第五地址,所述第五地址为所述第四访问请求待访问的第四数据的虚拟地址;根据所述第五地址获得所述第二页表项,所述第二页表项中记录有所述第三内存页的地址;确定所述第二页表项中的第一标识位的值为所述第三标识;指示所述内存控制模块根据所述第三内存页的地址访问所述DRAM中的第三内存页,以获得所述第四数据;
所述内存控制模块,还用于根据所述第三内存页的地址访问所述DRAM中的第三内存页,以获得所述第四数据。
CN201610822569.5A 2016-09-13 2016-09-13 内存访问方法及装置 Active CN107818052B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610822569.5A CN107818052B (zh) 2016-09-13 2016-09-13 内存访问方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610822569.5A CN107818052B (zh) 2016-09-13 2016-09-13 内存访问方法及装置

Publications (2)

Publication Number Publication Date
CN107818052A CN107818052A (zh) 2018-03-20
CN107818052B true CN107818052B (zh) 2020-07-21

Family

ID=61600975

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610822569.5A Active CN107818052B (zh) 2016-09-13 2016-09-13 内存访问方法及装置

Country Status (1)

Country Link
CN (1) CN107818052B (zh)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107977577B (zh) * 2016-10-21 2020-03-13 龙芯中科技术有限公司 访存指令访问检测方法及装置
US10909012B2 (en) * 2018-11-12 2021-02-02 H3 Platform, Inc. System having persistent memory
CN110032526B (zh) * 2019-04-16 2021-10-15 苏州浪潮智能科技有限公司 一种基于非易失性介质的页缓存方法、***及设备
CN114064522A (zh) * 2019-05-09 2022-02-18 北京忆芯科技有限公司 一种计算机
CN110347338B (zh) * 2019-06-18 2021-04-02 重庆大学 混合内存数据交换处理方法、***及可读存储介质
CN111258923B (zh) * 2020-01-16 2023-03-14 重庆邮电大学 一种基于异构混合内存***的页面分配方法
CN111984188B (zh) * 2020-06-30 2021-09-17 重庆大学 混合内存数据的管理方法、装置及存储介质
CN113296962B (zh) * 2021-07-26 2022-01-11 阿里云计算有限公司 内存管理方法、装置、设备及存储介质
CN113703690B (zh) * 2021-10-28 2022-02-22 北京微核芯科技有限公司 处理器单元、访问内存的方法、计算机主板和计算机***
CN114741338B (zh) * 2022-06-06 2022-09-13 飞腾信息技术有限公司 旁路转换缓存器、数据更新方法、内存管理单元及芯片
WO2023241655A1 (zh) * 2022-06-15 2023-12-21 华为技术有限公司 数据处理方法、装置、电子设备以及计算机可读存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104102590A (zh) * 2014-07-22 2014-10-15 浪潮(北京)电子信息产业有限公司 一种异构内存管理方法及装置
CN104346293A (zh) * 2013-07-25 2015-02-11 华为技术有限公司 混合内存的数据访问方法、模块、处理器及终端设备

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8296496B2 (en) * 2009-09-17 2012-10-23 Hewlett-Packard Development Company, L.P. Main memory with non-volatile memory and DRAM
US9235502B2 (en) * 2011-09-16 2016-01-12 Apple Inc. Systems and methods for configuring non-volatile memory

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104346293A (zh) * 2013-07-25 2015-02-11 华为技术有限公司 混合内存的数据访问方法、模块、处理器及终端设备
CN104102590A (zh) * 2014-07-22 2014-10-15 浪潮(北京)电子信息产业有限公司 一种异构内存管理方法及装置

Also Published As

Publication number Publication date
CN107818052A (zh) 2018-03-20

Similar Documents

Publication Publication Date Title
CN107818052B (zh) 内存访问方法及装置
US10248576B2 (en) DRAM/NVM hierarchical heterogeneous memory access method and system with software-hardware cooperative management
US10126964B2 (en) Hardware based map acceleration using forward and reverse cache tables
US8069297B2 (en) Storage device, computer system, and storage device access method
US9514056B2 (en) Virtual memory system, virtual memory controlling method, and program
US9390020B2 (en) Hybrid memory with associative cache
US6968424B1 (en) Method and system for transparent compressed memory paging in a computer system
US20130124794A1 (en) Logical to physical address mapping in storage systems comprising solid state memory devices
US20140122781A1 (en) Hierarchical flash translation layer
CN109582214B (zh) 数据访问方法以及计算机***
US9639481B2 (en) Systems and methods to manage cache data storage in working memory of computing system
US20110082967A1 (en) Data Caching In Non-Volatile Memory
US9146879B1 (en) Virtual memory management for real-time embedded devices
CN109952565B (zh) 内存访问技术
JP2013109419A (ja) 情報処理装置
JP2010517179A (ja) プロセッサにおいてキャッシュポリシーを設定するための方法および装置
KR101893966B1 (ko) 메모리 관리 방법 및 장치, 및 메모리 컨트롤러
KR100505695B1 (ko) 동적으로 할당 또는 해제되는 버퍼를 가지는 캐쉬 메모리장치, 이를 구비한 디지털 데이터 처리 시스템 및 그 방법
WO2017000821A1 (zh) 存储***、存储管理装置、存储器、混合存储装置及存储管理方法
US11409659B2 (en) Tags and data for caches
JP2008217208A (ja) 記憶装置およびコンピュータシステム、並びに記憶装置の管理方法
CN110362509B (zh) 统一地址转换方法与统一地址空间
WO2015141731A1 (ja) キャッシュメモリおよびプロセッサシステム
JP7118827B2 (ja) 情報処理装置、メモリ制御方法およびプログラム
US11809320B2 (en) Memory system caching mapping information

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