CN112596913A - 提高内存透明大页性能的方法、装置及用户设备、存储介质 - Google Patents

提高内存透明大页性能的方法、装置及用户设备、存储介质 Download PDF

Info

Publication number
CN112596913A
CN112596913A CN202011601658.XA CN202011601658A CN112596913A CN 112596913 A CN112596913 A CN 112596913A CN 202011601658 A CN202011601658 A CN 202011601658A CN 112596913 A CN112596913 A CN 112596913A
Authority
CN
China
Prior art keywords
page
memory
transparent large
transparent
pages
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
CN202011601658.XA
Other languages
English (en)
Other versions
CN112596913B (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.)
Haiguang Information Technology Co Ltd
Original Assignee
Haiguang 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 Haiguang Information Technology Co Ltd filed Critical Haiguang Information Technology Co Ltd
Priority to CN202011601658.XA priority Critical patent/CN112596913B/zh
Publication of CN112596913A publication Critical patent/CN112596913A/zh
Application granted granted Critical
Publication of CN112596913B publication Critical patent/CN112596913B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (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

本发明提供一种提高内存透明大页性能的方法、装置及用户设备、存储介质。所述方法包括:内存管理单元MMU将其管理的内存空间分为普通页区域和透明大页区域;所述内存管理单元MMU获取内存分配请求;根据所述内存分配请求,为应用程序分配不同类型的内存页面,同时为所述内存页面生成对应的页表及快速查找页表TLB。本发明能够增加内存管理的灵活性,从而提高内存利用率。

Description

提高内存透明大页性能的方法、装置及用户设备、存储介质
技术领域
本发明涉及计算机技术领域,尤其涉及一种提高内存透明大页性能的方法、装置及用户设备、存储介质。
背景技术
内存管理(Memory Management)是操作系统设计中最重要和最复杂的内容之一。虽然计算机硬件一直在飞速发展,内存容量也在不断增长,但是仍然不可能将所有用户进程和系统所需要的全部程序和数据放入内存中,所以操作系统必须将内存空间进行合理地划分和有效地动态分配。
内存管理单元(MMU)位于处理器内核和连接高速缓存以及物理存储器的总线之间。当处理器内核取指令或者存取数据的时候,都会提供一个有效地址或者称为虚拟地址。有效地址不需要和系统的实际硬件物理地址相匹配,而是通过MMU将有效地址映射成对应的物理地址,以访问指令和数据。
每条MMU匹配规则所对应的存储器的大小定义为页。页的大小通常设定为不会对程序的性能造成显著影响的最小的程序和代码的长度。当暂时不使用物理内存的内容时,可将其保存到硬盘等外部存储器里,将其空间用于其他程序,这个操作为内存页换出swap;当再次使用这部分内容时再从外部存储器写回到实际物理内存中。通常的页设定为x86中为4kB,Arm64中常用4kB或64kB。
为了加快MMU规则匹配的处理过程,有效地址和实际物理地址的对应表通常保存在一块单独的高速缓存中,称为旁路转换缓冲(Translation Lookaside Buffer,TLB,或称快表),TLB和实际物理存储器可以同时进行并行的访问。有效地址的高位作为在TLB进行匹配查找的依据,而有效地址的低位作为页面内的偏址。但是TLB容量较小,只能容纳很少的条目。
目前常见操作系统,内存页面的默认大小被设置为4kB,虽然原则上内存页面大小是可配置的。在Linux操作系统上运行内存需求量较大的应用程序时,由于其采用的默认页面大小为4kB,因而将会产生较多TLB未命中和缺页中断,从而大大影响应用程序的性能。当操作系统以2MB甚至更大(比如1GB,不同的系统可能支持更多的种类)作为分页的单位时,将会大大减少TLB丢失Miss和缺页中断的数量,显著提高应用程序的性能。这也正是Linux内核引入大页支持的直接原因。
在实现本发明的过程中,发明人发现现有技术中至少存在如下技术问题:当应用仅需要少量字节时就分配一个2MB的大页,会导致内存巨大的浪费。
发明内容
本发明提供提一种提高内存透明大页性能的方法、装置及用户设备,能够提高内存透明大页性能的方法、装置及用户设备、存储介质,能够增加内存管理的灵活性,从而提高内存利用率。
一方面,提供一种提高内存透明大页性能的方法,包括:
内存管理单元MMU将其管理的内存空间分为普通页区域和透明大页区域;
所述内存管理单元MMU获取内存分配请求;
根据所述内存分配请求,为应用程序分配不同类型的内存页面,同时为所述内存页面生成对应的页表及快速查找页表TLB。
可选的,所述内存管理单元MMU将其管理的内存空间分为普通页区域和透明大页区域的步骤之前,
所述方法还包括:所述内存管理单元MMU在预定位置的寄存器上设置区隔参数值HPZ,所述区隔参数值HPZ用于标识内存的普通页区域与透明大页区域之间的分隔点位置的地址。
所述根据所述内存分配请求,为所述应用程序分配不同类型的内存页面,同时为所述内存页面生成对应的页表及快速查找页表TLB的步骤包括:
当所述内存管理单元从应用程序收到分配普通页的连续请求的数量大于第一阈值时,所述内存管理单元为所述应用程序分配一透明大页;所述透明大页的分配类型为合并类型;
为所述透明大页生成对应的页表及快速查找页表TLB;
所述页表包含:HPZ、延迟交换标识DS、大页交换计数器HSC;
所述延迟交换标识DS,用于标识当前透明大页是否需要交换到硬盘;
所述大页交换计数器HSC,用于标识在当前透明大页中需交换或者释放的普通页的数量。
所述方法还包括:
分别启动透明大页内存整理线程和普通页内存整理线程,所述透明大页内存整理线程对所述透明大页区域的内存空间进行整理,所述普通页内存整理线程对普通页区域的内存空间进行整理。
所述透明大页内存整理线程对透明大页区域的内存空间进行整理的步骤包括:
对透明大页区域的内存空间中的数据进行移动,使得大页区域的内存空间中的数据占用的空间连续;或者使得大页区域中的空闲内存空间合并。
所述方法还包括:
根据所述内存空间中透明大页区域的剩余空间大小或应用程序对内存空间的需求变更,判断是否需要交换透明大页的内容到硬盘;
当判断需交换的透明大页为合并类型时,在所述透明大页的页表中置位DS标识,标记为需要交换到硬盘;并对HSC的值进行计数;所述HSC的值基于同一透明大页的页表中的HSC值进行连续计数;
判断所述HSC的当前值是否超过预定交换阈值;
当超过时,在普通页的内存空间中申请第一差值个普通页;将当前需交换的透明大页中的HSC个待释放的普通页中的内容移动到磁盘;将当前需交换的透明大页中的不被交换的普通页的内容移动到申请的所述普通页,所述第一差值为第二级页表PMD可包含普通页的数量与HSC之间的差值。
所述判断需交换的透明大页为合并类型的步骤包括:
根据需交换的透明大页的页表的格式,判断需交换的透明大页的类型:或者
根据需交换的透明大页被释放的空间,判断需交换的透明大页的类型。
另一方面,提供一种内存管理单元MMU,包括:
分区单元,将其管理的内存空间分为普通页区域和透明大页区域;
获取单元,所述内存管理单元MMU获取内存分配指令;
分配单元,当所述内存管理单元从应用程序收到分配普通页的连续请求的数量大于第一阈值时,所述内存管理单元为所述应用程序分配一透明大页;所述透明大页的分配类型为合并类型。
另一方面,提供一种用户设备,所述用户设备包括所述的内存管理单元。
另一方面,提供一种提高内存透明大页性能的装置,包括:
存储器;
以及耦接至所述存储器的处理器,所述处理器被配置为基于存储在所述存储器中的指令,执行如权利要求1至8中任一项所述的方法。
另一方面,提供一种计算机可读存储介质,其中,所述计算机可读存储介质存储有计算机指令,所述计算机指令被处理器执行时实现所述的方法。
上述实施例中,内存管理单元MMU将其管理的内存空间分为普通页区域和透明大页区域;当所述内存管理单元从应用程序收到分配普通页的连续请求的数量大于第一阈值时,所述内存管理单元为所述应用程序分配一透明大页;所述透明大页的分配类型为合并类型。因此,满足一定条件才启动大页管理模式,否则采用普通页管理模式,增加了内存管理的灵活性,从而提高内存利用率。
附图说明
图1为本发明一实施例所述的一种提高内存透明大页性能的方法的流程图;
图2为本发明另一实施例所述的一种提高内存透明大页性能的方法中透明大页为合并类型时的页表数据结构图;
图3为本发明另一实施例所述的一种提高内存透明大页性能的方法中透明大页为直接分配类型时的页表数据结构图;
图4为本发明另一实施例所述的一种提高内存透明大页性能的方法的流程图;
图5为本发明一实施例所述的内存管理单元的连接图;
图6为本发明实施例所述的提高内存透明大页性能的装置的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,为本发明所述的一种提高内存透明大页性能的方法,包括:
步骤11,内存管理单元MMU在预定位置的寄存器上设置区隔参数值HPZ,所述区隔参数值HPZ用于标识内存的普通页区域与透明大页区域之间的分隔点位置的地址。
步骤12,内存管理单元MMU将其管理的内存空间分为普通页区域和透明大页区域;
步骤13,所述内存管理单元MMU获取内存分配指令;
步骤14,根据所述内存分配请求,为所述应用程序分配不同类型的内存页面,同时为所述内存页面生成对应的页表及快速查找页表TLB。
内存管理单元MMU将其管理的内存空间分为普通页区域和透明大页区域;当所述内存管理单元从应用程序收到分配普通页的连续请求的数量大于第一阈值时,所述内存管理单元为所述应用程序分配一透明大页;所述透明大页的分配类型为合并类型。因此,满足一定条件才启动大页管理模式,否则采用普通页管理模式,增加了内存管理的灵活性,从而提高内存利用率。
步骤14具体为:
步骤141,当所述内存管理单元从应用程序收到分配普通页的连续请求的数量大于第一阈值时,所述内存管理单元为所述应用程序分配一透明大页;所述透明大页的分配类型为合并类型。
如图2所示,所述页表包含:HPZ、延迟交换标识DS、大页交换计数器HSC;
所述延迟交换标识DS,用于标识当前透明大页是否需要交换到硬盘;
所述大页交换计数器HSC,用于标识在当前透明大页中需交换或者释放的普通页的数量。
所述页表还包含:
Page Global Director(PGD,页全局目录);Page Upper Directory(PUD,页上级目录);Page Middle Directory(PMD,页中间目录)、OFFSET偏移量。这几个和现有技术类似,此处不赘述。
步骤142,当所述内存管理单元从应用程序收到请求分配的内存空间大于第二阈值时,所述内存管理单元为所述应用程序分配至少一个第一透明大页;所述第一透明大页的分配类型为直接分配类型;所述第二阈值为一个透明大页占用的空间大小;
如图3所示,对应的所述页表包含:
Page Global Director(PGD,页全局目录);Page Upper Directory(PUD,页上级目录);Page Middle Directory(PMD,页中间目录)、OFFSET偏移量。
步骤143,当所述内存管理单元从应用程序收到分配普通页的连续请求的数量小于或等于第一阈值时,所述内存管理单元为所述应用程序分配普通页;所述内存的分配类型为普通页类型。
上述实施例中,为分配不同类型的内存,分别为普通页类型、直接分配类型和合并类型,根据实际情况灵活选择,提高了内存的利用灵活性。
可选的,所述方法还包括:
步骤15,分别启动透明大页内存整理线程和普通页内存整理线程,所述透明大页内存整理线程对所述透明大页区域的内存空间进行整理,所述普通页内存整理线程对普通页区域的内存空间进行整理。
所述透明大页内存整理线程对透明大页区域的内存空间进行整理的步骤包括:
对透明大页区域的内存空间中的数据进行移动,使得大页区域的内存空间中的数据占用的空间连续;或者使得大页区域中的空闲内存空间合并。
上述实施例中,当系统空闲时,启动内存整理线程,可以提高内存利用率。
可选的,所述方法还包括:
步骤16,根据所述内存空间中透明大页区域的剩余空间大小或应用程序对内存空间的需求变更,判断是否需要交换透明大页的内容到硬盘;
步骤17,当判断需交换的透明大页为合并类型时,在所述透明大页的页表中置位DS标识,标记为需要交换到硬盘;并对HSC的值进行计数;所述HSC的值基于同一透明大页的页表中的HSC值进行连续计数;其中,所述判断需交换的透明大页为合并类型的步骤包括:根据需交换的透明大页的页表的格式,判断需交换的透明大页的类型:或者根据需交换的透明大页被释放的空间,判断需交换的透明大页的类型。从上文描述可以看出,透明大页的类型分为直接分配类型和合并类型,根据页表的数据格式中可以判断不同类型。
步骤18,判断所述HSC的当前值是否超过预定交换阈值;
步骤19,当超过时,在普通页的内存空间中申请第一差值个普通页;将当前需交换的透明大页中的HSC个待释放的普通页中的内容移动到磁盘;将当前需交换的透明大页中的不被交换的普通页的内容移动到申请的所述普通页,所述第一差值为第二级页表PMD可包含普通页的数量与HSC之间的差值。
上述实施例中,当进行内存交换处理时,将透明大页中不被交换的普通页移动到内存,只移动其他需要交换的普通页中的数据。
以下描述本发明的应用场景。以下先做基本介绍。
Memory Management Unit(MMU):内存管理单元,是处理器架构中为了合理高效管理内存增加的单元。主要负责虚拟地址/逻辑地址到物理地址的转换,能让系统同时支持更多的应用。
Transparent Hugepage(THP):透明大页,是一个相对于固定分配普通大页概念。是指在计算机系统中,不需要应用感知的,由操作系统处理和维护,能提供类似普通大页功能的机制。
内存页换出SWAP:为计算机系统中内存管理的一个概念,主要操作为档内存系统中某个应用需要很多内存时,内存不够或者本应用的配额用尽时,OS会按照一定的算法把内存中的某些内存页交换到硬盘中,当需要时再取回到内存中。
内存动态分区管理:本发明提出的对MMU的修改。在MMU设置硬件分区记录寄存器,把整个内存区域分配成普通页区域和大页区域,当然也可以视情况分配成2种大页相区别的区域。
大页内存延迟换出:同样为本方案提出的对MMU的修改。在MMU页表设置监控大页中需要拆分成普通内存页后需要被交换出内存的数量。等达到限定条件后,再进行拆分及换出。
一种改进内存管理单元提高内存透明大页性能的方法,针对透明大页中,由于操作系统OS与应用程序配合及普通应用程序内存应用特点导致性能下降问题,从硬件设计角度优化透明大页引起的性能下降问题。
本发明根据优化系统的需要,在内存管理单元中添加3处标记。一个为内存普通页与大页虚拟分区地址寄存器指示器(Hugepage Zone-HPZ)及页表项延迟swap标识(DelayedSwappable-DS)以及大页中普通页释放计数器(Hugepage Swap Counter-HSC),如图2所示。
以下针对透明大页的分配和释放进行优化进行说明。
在大页分配中,现有方案会普通页与大页混放。由于页面分配具有一定随机性,导致内存可连续空间变少。本发明把MMU能管理的空间分成普通页表内存空间和大页页表内存空间,设置HPZ区隔参数。在实现上为硬件参数,防止软件参数的多次内存访问导致性能损失。
在透明大页处理上,现有方案中,应用程序非感知大页存在时,会把其申请的4k页面按照4k页swap或者释放/写盘等。本发明采用延迟响应的策略:在页表中增加延迟swap/写盘标记-DS,同时记录需要swap普通页的数量标识-HSC。
本发明设计的HPZ参数在普通大页中也可以应用。在实际OS操作时,以HPZ划界区分为普通大页即可,但是需要操作系统进行特殊的页表等初始化。
优化大页动态分配的流程如图4所示。
步骤1,应用程序通过感知或者无感知透明大页存在,向OS系统申请或交换大页等操作。
步骤2,操作系统根据应用程序的需求及所申请页面的特点适当分配普通页或大页页面。
步骤3,程序若需求的内存大于2M,则分配一个大页给程序;若连续分配多个4kB页符合合并分配大页时,也在大页区域分配大页,返回给程序。大页区分割HPZ可覆盖普通页区域的最大范围值,以及大页区域的最小范围值。
步骤4,操作系统采用2种内存页扫描合并进程,以合并较大连续区域以供程序使用。但是这个程序与原来扫描合并4kB页为2MB大页不同,它们为内存空间普通空闲合并或者伙伴内存合并,以优化性能。标记为Kscan HP内核进程只扫描大页区域,而标记为KscanGP的内核进程只扫描普通区域。
步骤5,当程序内存受限时,需要交换内存页到硬盘swap区域。根据大页类型(合并形成还是独立分配)进行系统调用。其实这情况相比普通大页会有很大改善,因为所有内存区域都可以是透明大页区域,若程序内存分配策略定义到本区域,就可以按照常规申请内存页方式处理内存申请。这种情况等同于采用大页配置编译参数。
步骤6,当需要swap的大页为独立分配的,OS直接进行swap。若为4kB普通页合并形成的大页,延迟swap当前页。置位DS标识并开始HSC计数,若已经设置,则增加HSC计数。
步骤7,判断HSC是否超阈值,若超阈值则申请PMD-HSC个普通页(PMD为内存管理单元第二级页表项,记录大页的具体映射,本内容用于记录第二级页表项能扩展成的PTE一级页表项的个数),把相应的页面拷贝到新建立普通页,并把HSC个4kB页swap到磁盘的swap分区。若不能申请PMD-HSC普通页,则直接拆解本大页按照普通页方式swap到磁盘。
本发明具有以下有益效果:
1、目前操作系统中无法很好的利用大页技术,尤其是透明大页技术。本发明根据优化硬件标识优化、在大页分配管理释放等交互操作流程优化、结合操作系统内存管理优化等三方面,提升应用程序使用透明大页的性能。本发明为软硬结合的性能优化方案,对提供计算、内存密集型应用有灵活高效的支撑效果。本发明优化数据库等关键的技术应用,可促进软硬协同技术的发展,提高系统的灵活性以及性能。
2、本发明根据目前大页管理的不足,提出了对内存管理单元优化,即增加3个标识,根据优化的硬件标识,优化了优化的操作系统与应用程序的交互流程,提高了系统性能。
3、本发明是在用户使用便利性及系统内存利用率方面进行了优化。本发明可以采用纯软件实现,在透明大页基础上的改进,不需要改动软件。也可以在大页机制上,与OS和应用程序联合优化,对普通页灵活性及大页的内存页缺页少的特性同时起作用提出了更一体化的方案。
如图5所示,为本发明所述的一种内存管理单元MMU,包括:
分区单元,将其管理的内存空间分为普通页区域和透明大页区域;
获取单元,所述内存管理单元MMU获取内存分配请求;
分配单元,根据所述内存分配请求,为应用程序分配不同类型的内存页面,同时为所述内存页面生成对应的页表及快速查找页表TLB。
本发明还提供一种用户设备,所述用户设备包括所述的内存管理单元。
本实施例的装置,可以用于执行上述方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
如图6所示,为本发明还提供一种提高内存透明大页性能的装置,包括:
存储器;
以及耦接至所述存储器的处理器,所述处理器被配置为基于存储在所述存储器中的指令,执行所述的方法。
本发明还提供一种计算机可读存储介质,其中,所述计算机可读存储介质存储有计算机指令,所述计算机指令被处理器执行时实现所述的方法。
本领域普通技术人员可以理解实现上述方法实施例中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。

Claims (11)

1.一种提高内存透明大页性能的方法,其特征在于,包括:
内存管理单元MMU将其管理的内存空间分为普通页区域和透明大页区域;
所述内存管理单元MMU获取内存分配请求;
根据所述内存分配请求,为应用程序分配不同类型的内存页面,同时为所述内存页面生成对应的页表及快速查找页表TLB。
2.根据权利要求1所述的方法,其特征在于,所述内存管理单元MMU将其管理的内存空间分为普通页区域和透明大页区域的步骤之前,
所述方法还包括:所述内存管理单元MMU在预定位置的寄存器上设置区隔参数值HPZ,所述区隔参数值HPZ用于标识内存的普通页区域与透明大页区域之间的分隔点位置的地址。
3.根据权利要求2所述的方法,其特征在于,所述根据所述内存分配请求,为所述应用程序分配不同类型的内存页面,同时为所述内存页面生成对应的页表及快速查找页表TLB的步骤包括:
当所述内存管理单元从应用程序收到分配普通页的连续请求的数量大于第一阈值时,所述内存管理单元为所述应用程序分配一透明大页;所述透明大页的分配类型为合并类型;
为所述透明大页生成对应的页表及快速查找页表TLB;
所述页表包含:HPZ、延迟交换标识DS、大页交换计数器HSC;
所述延迟交换标识DS,用于标识当前透明大页是否需要交换到硬盘;
所述大页交换计数器HSC,用于标识在当前透明大页中需交换或者释放的普通页的数量。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
分别启动透明大页内存整理线程和普通页内存整理线程,所述透明大页内存整理线程对所述透明大页区域的内存空间进行整理,所述普通页内存整理线程对普通页区域的内存空间进行整理。
5.根据权利要求4所述的方法,其特征在于,所述透明大页内存整理线程对透明大页区域的内存空间进行整理的步骤包括:
对透明大页区域的内存空间中的数据进行移动,使得大页区域的内存空间中的数据占用的空间连续;或者使得大页区域中的空闲内存空间合并。
6.根据权利要求3所述的方法,其特征在于,所述方法还包括:
根据所述内存空间中透明大页区域的剩余空间大小或应用程序对内存空间的需求变更,判断是否需要交换透明大页的内容到硬盘;
当判断需交换的透明大页为合并类型时,在所述透明大页的页表中置位DS标识,标记为需要交换到硬盘;并对HSC的值进行计数;所述HSC的值基于同一透明大页的页表中的HSC值进行连续计数;
判断所述HSC的当前值是否超过预定交换阈值;
当超过时,在普通页的内存空间中申请第一差值个普通页;将当前需交换的透明大页中的HSC个待释放的普通页中的内容移动到磁盘;将当前需交换的透明大页中的不被交换的普通页的内容移动到申请的所述普通页,所述第一差值为第二级页表PMD包含普通页的数量与HSC之间的差值。
7.根据权利要求6所述的方法,其特征在于,所述判断需交换的透明大页为合并类型的步骤包括:
根据需交换的透明大页的页表的格式,判断需交换的透明大页的类型:或者
根据需交换的透明大页被释放的空间,判断需交换的透明大页的类型。
8.一种内存管理单元MMU,其特征在于,包括:
分区单元,将其管理的内存空间分为普通页区域和透明大页区域;
获取单元,所述内存管理单元MMU获取内存分配请求;
分配单元,根据所述内存分配请求,为应用程序分配不同类型的内存页面,同时为所述内存页面生成对应的页表及快速查找页表TLB。
9.一种用户设备,其特征在于,所述用户设备包括如权利要求8中所述的内存管理单元。
10.一种提高内存透明大页性能的装置,包括:
存储器;
以及耦接至所述存储器的处理器,所述处理器被配置为基于存储在所述存储器中的指令,执行如权利要求1至7中任一项所述的方法。
11.一种计算机可读存储介质,其中,所述计算机可读存储介质存储有计算机指令,所述计算机指令被处理器执行时实现如权利要求1至7中任一项所述的方法。
CN202011601658.XA 2020-12-29 2020-12-29 提高内存透明大页性能的方法、装置及用户设备、存储介质 Active CN112596913B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011601658.XA CN112596913B (zh) 2020-12-29 2020-12-29 提高内存透明大页性能的方法、装置及用户设备、存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011601658.XA CN112596913B (zh) 2020-12-29 2020-12-29 提高内存透明大页性能的方法、装置及用户设备、存储介质

Publications (2)

Publication Number Publication Date
CN112596913A true CN112596913A (zh) 2021-04-02
CN112596913B CN112596913B (zh) 2022-08-02

Family

ID=75203897

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011601658.XA Active CN112596913B (zh) 2020-12-29 2020-12-29 提高内存透明大页性能的方法、装置及用户设备、存储介质

Country Status (1)

Country Link
CN (1) CN112596913B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116719752A (zh) * 2022-09-30 2023-09-08 荣耀终端有限公司 一种分配内存的方法、电子设备及存储介质
WO2024001644A1 (zh) * 2022-06-27 2024-01-04 中兴通讯股份有限公司 控制透明巨页的方法及其装置、存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103257929A (zh) * 2013-04-18 2013-08-21 中国科学院计算技术研究所 一种虚拟机内存映射方法及系统
CN103984599A (zh) * 2014-04-14 2014-08-13 北京大学 一种提高操作系统大页使用率的方法
CN105095099A (zh) * 2015-07-21 2015-11-25 浙江大学 一种基于内存页位图变更的大内存页整合方法
US10733090B1 (en) * 2014-11-07 2020-08-04 Amazon Technologies, Inc. Memory management in a system with discrete memory regions

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103257929A (zh) * 2013-04-18 2013-08-21 中国科学院计算技术研究所 一种虚拟机内存映射方法及系统
CN103984599A (zh) * 2014-04-14 2014-08-13 北京大学 一种提高操作系统大页使用率的方法
US10733090B1 (en) * 2014-11-07 2020-08-04 Amazon Technologies, Inc. Memory management in a system with discrete memory regions
CN105095099A (zh) * 2015-07-21 2015-11-25 浙江大学 一种基于内存页位图变更的大内存页整合方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024001644A1 (zh) * 2022-06-27 2024-01-04 中兴通讯股份有限公司 控制透明巨页的方法及其装置、存储介质
CN116719752A (zh) * 2022-09-30 2023-09-08 荣耀终端有限公司 一种分配内存的方法、电子设备及存储介质

Also Published As

Publication number Publication date
CN112596913B (zh) 2022-08-02

Similar Documents

Publication Publication Date Title
US8799621B2 (en) Translation table control
EP0797149B1 (en) Architecture and method for sharing tlb entries
US5899994A (en) Flexible translation storage buffers for virtual address translation
US7206915B2 (en) Virtual space manager for computer having a physical address extension feature
US6308247B1 (en) Page table entry management method and apparatus for a microkernel data processing system
US6789156B1 (en) Content-based, transparent sharing of memory units
US6026475A (en) Method for dynamically remapping a virtual address to a physical address to maintain an even distribution of cache page addresses in a virtual address space
US8095736B2 (en) Methods and systems for dynamic cache partitioning for distributed applications operating on multiprocessor architectures
CN110196757B (zh) 虚拟机的tlb填写方法、装置及存储介质
US20050188157A1 (en) Memory mapping to reduce cache conflicts in multiprocessor sytems
US20120159103A1 (en) System and method for providing stealth memory
JP2019523920A (ja) ページ・フォールト解決法
CN112596913B (zh) 提高内存透明大页性能的方法、装置及用户设备、存储介质
EP3163451B1 (en) Memory management method and device, and memory controller
CN116302491A (zh) 内存管理方法、装置、计算机设备及存储介质
US5996055A (en) Method for reclaiming physical pages of memory while maintaining an even distribution of cache page addresses within an address space
US6457107B1 (en) Method and apparatus for reducing false sharing in a distributed computing environment
US6016529A (en) Memory allocation technique for maintaining an even distribution of cache page addresses within a data structure
EP2874066B1 (en) Method in a memory management unit and a memory management unit, for managing address translations in two stages
CN115543532A (zh) 缺页异常的处理方法、装置、电子设备以及存储介质
CN113010452A (zh) 一种高效且支持QoS的虚拟内存架构
EP0919927A2 (en) Dynamic memory allocation technique for maintaining an even distribution of cache page addresses within an address space
WO2023009210A1 (en) Dynamically allocatable physically addressed metadata storage
US11009841B2 (en) Initialising control data for a device
US6928492B1 (en) Computer I/O device access method

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