一种内存访问方法及计算机系统技术方案

技术编号:19424835 阅读:18 留言:0更新日期:2018-11-14 10:31
本申请实施例提供一种内存访问方法及计算机系统。该内存访问方法应用于包含有混合内存的计算机系统中,混合内存包含有第一存储器以及第二存储器,方法包括:接收带有第一虚拟地址的第一访问请求;根据计算机系统中的第一页表缓存将第一虚拟地址转换为第一物理地址,第一物理地址为第一存储器中的第一大页的物理地址,第一大页中包含有多个小页;当确定第一大页中的第一小页的数据被迁移到第二存储器中时,根据第一小页中存储的第二物理地址访问第二存储器,其中,第二物理地址为第二存储器中的第二小页的物理地址,第二小页中存储有从第一小页中迁移出的数据,其中第二存储器中包括多个小页。

【技术实现步骤摘要】
一种内存访问方法及计算机系统
本申请涉及计算机
,尤其涉及一种内存访问方法及计算机系统。
技术介绍
内存通常由动态随机存取存储器(DynamicRandomAccessMemory,DRAM)实现,但DRAM存在存储密度低,存储容量较小的问题,因此,可以在DRAM基础上引入非易失存储器(NonVolatileMemory,NVM)形成混合内存,实现内存容量的扩充。由于NVM的读写速度比DRAM慢且写寿命也比DRAM短,所以为了提高内存访问的速度以及混合内存的使用寿命,通常将NVM内的读写操作频繁的存储块迁移至DRAM。计算机系统通过翻译后备缓冲器(TranslationLookasideBuffer,TLB)进行虚拟内存与物理内存的转换,为了提高TLB命中的几率,提高地址转换的效率,通常将内存物理页设置为大页,如2M。在混合内存与物理大页结合应用时,需要将NVM的物理大页替换为多个物理小页,将读写操作频繁的物理小页迁移至DRAM。但是,计算机系统进行内存寻址的粒度由物理大页变为物理小页,TLB中命中虚拟地址与物理地址的映射的概率降低,地址转换性能降低。
技术实现思路
本申请实施例提供一种内存访问方法及计算机系统,能够在大页中的部分数据被迁移的情况下保障内存的命中率。第一方面,本申请实施例提供一种内存访问方法,该内存访问方法应用于包含有混合内存的计算机系统中,所述混合内存包含有第一存储器以及第二存储器,其中,所述第一存储器为非易失性存储器。所述内存访问方法包括步骤:首先,内存管理单元(memorymanagementunit,MMU)接收第一访问请求,所述访问请求中携带有第一虚拟地址;然后,MMU根据所述计算机系统中的第一页表缓存将所述第一虚拟地址转换为第一物理地址,其中,所述第一物理地址为所述第一存储器中的第一大页的物理地址,所述第一大页中包含有多个小页;然后,在内存控制器根据所述第一物理地址访问所述第一存储器的过程中,当确定所述第一大页中的第一小页的数据被迁移到所述第二存储器中时,根据所述第一小页中存储的第二物理地址访问所述第二存储器,其中,所述第二物理地址为所述所述第二存储器中的第二小页的物理地址,所述第二小页中存储有从所述第一小页中迁移出的数据,其中所述第二存储器中包括多个小页,所述第二存储器中的小页的大小小于所述第一存储器中的大页的大小。本实施例提供的技术方案中,为了保障TLB的高命中率,计算机系统的页表中的内存页仍然以的大页的形式设置。并且,本专利技术实施例提供的计算机系统,在大页中设置了多个小页。当大页中的部分数据需要迁移时,可以单独迁移物理大页内的小页。在访问过程中,当内存控制器根据第一大页的第一物理地址访问非易失性存储器时,若确定所述第一大页中的第一小页的数据已经被迁移到第二存储器(即易失性存储器)中,则内存控制器可以根据第一小页中存储的第二小页的物理地址访问被迁移的数据。因此,根据本实施例提供的技术方案,即使在大页中的小页已经被迁移的情况下,依然能够根据大页去访问,既保障了大页内存优异的地址转换性能,又满足了混合内存热数据迁移的需求。从而能够在大页中的部分数据被迁移的情况下保障内存的命中率。在一种可选的实施方式中,计算机系统监测物理大页的每个小页的访问次数,并在任意一个小页的访问次数查过设置阈值时,将该小页的数据迁移至DRAM52的物理小页中,并在数据被迁移的小页中添加DRAM52的物理小页的地址。由于在数据被迁移的小页内添加第二存储器的物理小页的地址,所以计算机系统可以继续根据物理大页与虚拟页的映射定位该小页,并从该小页读取第二存储器的物理小页的地址,实现对迁移至第二存储器的数据的访问。在一种可选的实施方式中,计算机系统维护有一位图,该位图中存储表明第一存储器的每个小页是否被迁移的信息,针对每个数据被迁移的小页,该位图中均设置有指示该小页中的数据已经被迁移的标识。在将所述第一小页的数据迁移至所述第二小页中之后,在设置的位图中设置第一标识,所述第一标识用于指示所述第一小页中的数据已经被迁移。在一种可选的实施方式中,所述计算机系统还包括第二页表缓存,所述将所述第一小页中的数据迁移至所述第二小页中之后,进一步在所述第二页表缓存中添加第二虚拟地址与所述第二物理地址的映射关系,所述第二页表缓存用于记录虚拟地址与所述第二存储器的小页的物理地址的映射关系。进而在访问该被迁移的数据时,MMU20可以根据第二页表缓存中的该映射快速确定存储该数据的内存物理地址为第二存储器中的物理小页,根据该物理小页的地址访问目标数据,能够缩短内存访问的耗时,提高内存访问的效率。在一种可选的实施方式中,计算机系统访问被迁移至第二存储器中数据的过程为:MMU20接收第二访问请求,所述第二访问请求包含有第二虚拟地址;MMU20根据所述第二页表缓存获得与所述第二虚拟地址具有映射关系的所述第二物理地址;然后,MMU20将第二物理地址发送给内存控制器,内存控制器根据所述第二物理地址访问所述第二存储器。第二方面,本申请实施例提供一种计算机系统,包括处理器、内存管理单元MMU、内存控制器以及混合内存,其中,所述混合内存包含有第一存储器以及第二存储器,所述第一存储器为非易失性存储器,所述第二存储器为易失性存储器;所述MMU用于:接收所述处理器发送的第一访问请求,所述访问请求中携带有第一虚拟地址;根据第一页表缓存将所述第一虚拟地址转换为第一物理地址,所述第一物理地址为所述第一存储器中的第一大页的物理地址,其中,所述第一页表缓存用于记录虚拟地址与所述第一存储器的大页的物理地址的映射关系,所述第一存储器的大页包括多个小页。所述内存控制器,用于根据所述第一物理地址访问所述第一存储器,并在根据所述第一物理地址访问所述第一存储器的过程中,当确定所述第一大页中的第一小页的数据被迁移到所述第二存储器中时,根据所述第一小页中存储的第二物理地址访问所述第二存储器,其中,所述第二物理地址为所述所述第二存储器中的第二小页的物理地址,所述第二小页中存储有从所述第一小页中迁移出的数据,所述第二存储器中包括多个小页,所述第二存储器中的小页的大小小于所述第一存储器中的大页的大小。在一种可选的实施方式中,所述内存控制器还用于:当所述第一小页中的访问次数超过设置阈值时,将所述第一小页中的数据迁移至所述第二小页中;在所述第一小页中存储所述第二小页的所述第二物理地址。在一种可选的实施方式中,所述内存控制器还用于:在将所述第一小页的数据迁移至所述第二小页中之后,在设置的位图中设置第一标识,所述第一标识用于指示所述第一小页中的数据已经被迁移。在一种可选的实施方式中,所述计算机系统中还包括第二页表缓存,所述第二页表缓存用于记录虚拟地址与所述第二存储器的小页的物理地址的映射关系;所述处理器还用于:在所述第一小页中的数据被迁移至所述第二小页中之后,在所述第二页表缓存中添加第二虚拟地址与所述第二物理地址的映射关系。在一种可选的实施方式中,所述MMU还用于:接收所述处理器发送的第二访问请求,所述第二访问请求包含有第二虚拟地址;根据所述第二页表缓存获得与所述第二虚拟地址具有映射关系的所述第二物理地址;所述内存控制器还用于:根据所述第二物理地址访问所述第二存储器。第三方面,本申请本文档来自技高网...

【技术保护点】
1.一种内存访问方法,其特征在于,所述方法应用于包含有混合内存的计算机系统中,所述混合内存包含有第一存储器以及第二存储器,其中,所述第一存储器为非易失性存储器,所述第二存储器为易失性存储器,所述方法包括:接收第一访问请求,所述访问请求中携带有第一虚拟地址;根据所述计算机系统中的第一页表缓存将所述第一虚拟地址转换为第一物理地址,其中,所述第一物理地址为所述第一存储器中的第一大页的物理地址,所述第一大页中包含有多个小页;在根据所述第一物理地址访问所述第一存储器的过程中,当确定所述第一大页中的第一小页的数据被迁移到所述第二存储器中时,根据所述第一小页中存储的第二物理地址访问所述第二存储器,其中,所述第二物理地址为所述所述第二存储器中的第二小页的物理地址,所述第二小页中存储有从所述第一小页中迁移出的数据,所述第二存储器中包括多个小页,所述第二存储器中的小页的大小小于所述第一存储器中的大页的大小。

【技术特征摘要】
1.一种内存访问方法,其特征在于,所述方法应用于包含有混合内存的计算机系统中,所述混合内存包含有第一存储器以及第二存储器,其中,所述第一存储器为非易失性存储器,所述第二存储器为易失性存储器,所述方法包括:接收第一访问请求,所述访问请求中携带有第一虚拟地址;根据所述计算机系统中的第一页表缓存将所述第一虚拟地址转换为第一物理地址,其中,所述第一物理地址为所述第一存储器中的第一大页的物理地址,所述第一大页中包含有多个小页;在根据所述第一物理地址访问所述第一存储器的过程中,当确定所述第一大页中的第一小页的数据被迁移到所述第二存储器中时,根据所述第一小页中存储的第二物理地址访问所述第二存储器,其中,所述第二物理地址为所述所述第二存储器中的第二小页的物理地址,所述第二小页中存储有从所述第一小页中迁移出的数据,所述第二存储器中包括多个小页,所述第二存储器中的小页的大小小于所述第一存储器中的大页的大小。2.根据权利要求1所述的内存访问方法,其特征在于,还包括:当所述第一小页中的访问次数超过设置阈值时,将所述第一小页中的数据迁移至所述第二小页中;在所述第一小页中存储所述第二小页的所述第二物理地址。3.根据权利要求2所述的内存访问方法,其特征在于,还包括:在将所述第一小页的数据迁移至所述第二小页中之后,在设置的位图中设置第一标识,所述第一标识用于指示所述第一小页中的数据已经被迁移。4.根据权利要求2或3所述的内存访问方法,其特征在于,所述计算机系统还包括第二页表缓存,所述将所述第一小页中的数据迁移至所述第二小页中之后,所述方法还包括:在所述第二页表缓存中添加第二虚拟地址与所述第二物理地址的映射关系,其中,所述第二页表缓存用于记录虚拟地址与所述第二存储器的小页的物理地址的映射关系。5.根据权利要求4所述的内存访问方法,其特征在于,所述方法还包括:接收第二访问请求,所述第二访问请求包含有第二虚拟地址;根据所述第二页表缓存获得与所述第二虚拟地址具有映射关系的所述第二物理地址;根据所述第二物理地址访问所述第二存储器。6.一种计算机系统,其特征在于,包括处理器、内存管理单元MMU、内存控制器以及混合内存,其中,所述混合内...

【专利技术属性】
技术研发人员:刘海坤陈吉余国生
申请(专利权)人:华为技术有限公司华中科技大学
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1