CN112905497B - 内存管理方法、装置、电子设备及存储介质 - Google Patents

内存管理方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN112905497B
CN112905497B CN202110194928.8A CN202110194928A CN112905497B CN 112905497 B CN112905497 B CN 112905497B CN 202110194928 A CN202110194928 A CN 202110194928A CN 112905497 B CN112905497 B CN 112905497B
Authority
CN
China
Prior art keywords
page
memory
physical address
page memory
target
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
CN202110194928.8A
Other languages
English (en)
Other versions
CN112905497A (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.)
Maipu Communication Technology Co Ltd
Original Assignee
Maipu Communication 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 Maipu Communication Technology Co Ltd filed Critical Maipu Communication Technology Co Ltd
Priority to CN202110194928.8A priority Critical patent/CN112905497B/zh
Publication of CN112905497A publication Critical patent/CN112905497A/zh
Application granted granted Critical
Publication of CN112905497B publication Critical patent/CN112905497B/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
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash 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/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures

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

本申请提供一种内存管理方法、装置、电子设备及存储介质,方法应用于网络设备,方法包括:获取目标物理地址范围;根据预先确定的大页内存页的大小,目标物理地址范围和预先确定的网络设备的空闲物理内存所对应的物理地址范围,确定出备选的大页内存页数;根据备选的大页内存页数和大页内存页的大小,对空闲物理内存对应的普通内存页初始化,得到待筛选的大页内存页;待筛选的大页内存页的页数等于备选的大页内存页数;根据目标物理地址范围,从待筛选的大页内存页中,筛选出与目标物理地址范围对应的目标大页内存页;释放备选的大页内存页中除目标大页内存页以外的内存页,以在保证预留的大页内存页满足要求的前提下,节约内存资源。

Description

内存管理方法、装置、电子设备及存储介质
技术领域
本申请涉及计算机技术领域,具体而言,涉及一种内存管理方法、装置、电子设备及存储介质。
背景技术
随着通信设备上的物理内存越来越大,大页内存页的使用也越来越普及。针对同样大小的物理内存,与使用普通内存页相比,由于大页内存页远大于普通内存页,因此,在系统中使用大页内存页,会明显减少内存页的使用数量,继而节约页表所占用的内存量;同时,由于地址转换信息一般保存在中央处理器(Central Processing Unit,CPU)的缓存中,因此,与使用普通内存页相比,大页内存页的使用减少了地址转换信息,继而减轻CPU的缓存压力,从而使得CPU能更多地用于其它数据的缓存,也能够在整体上提升系统的性能。
在现有的大页内存页的预留方法中,通常是按照通信设备的物理内存的物理地址从高到低进行分配,继而在需要预留的内存的物理地址中未包括空闲物理内存的最高物理地址的情况下,为了保证预留的大页内存页中存在满足物理地址要求的内存页,会预留比实际需要的内存页更多的内存页,从而导致通信设备的内存资源浪费。
发明内容
鉴于此,本申请实施例的目的在于提供一种内存管理方法、装置、电子设备及存储介质,以在保证预留的大页内存页满足内存页的预留要求的前提下,节约内存资源。
第一方面,本申请实施例提供一种内存管理方法,应用于网络设备,所述方法包括:获取目标物理地址范围,所述目标物理地址范围为需要预留的内存对应的物理地址范围;根据预先确定的大页内存页的大小,所述目标物理地址范围和预先确定的所述网络设备的空闲物理内存所对应的物理地址范围,确定出备选的大页内存页数;根据所述备选的大页内存页数和所述大页内存页的大小,对所述空闲物理内存对应的普通内存页初始化,得到待筛选的大页内存页;其中,所述待筛选的大页内存页的页数等于所述备选的大页内存页数;根据所述目标物理地址范围,从所述待筛选的大页内存页中,筛选出与所述目标物理地址范围对应的目标大页内存页;释放所述备选的大页内存页中除所述目标大页内存页以外的内存页。
在上述实现过程中,根据目标物理地址范围,从待筛选的大页内存页中,筛选出与目标物理地址范围对应的目标大页内存页,以保证预留的目标大页内存页满足内存页的预留要求,通过将待筛选的大页内存页中除目标大页内存页以外的内存页释放,继而避免内存资源浪费。
基于第一方面,在一种可能的设计中,所述方法还包括:获取需要预留的内存的大小;所述根据预先确定的大页内存页的大小,所述目标物理地址范围和预先确定的所述设备的空闲物理内存所对应的物理地址范围,确定出备选的大页内存页数,包括:根据所述内存的大小和所述大页内存页的大小,确定出实际申请的大页内存页数;根据所述实际申请的大页内存页数、所述大页内存页的大小、所述目标物理地址范围和所述对应的物理地址范围,确定出所述备选的大页内存页数;其中,所述备选的大页内存页数大于所述实际申请的大页内存页数。
在上述实现过程中,根据需要预留的内存的大小和大页内存页的大小、目标物理地址范围和空闲物理内存所对应的物理地址范围,确定出备选的大页内存页数,以使后续根据备选的大页内存页数生成的大页内存页的大小,大于等于需要预留的内存的大小,同时,也保证生成的大页内存页所对应的物理地址范围中包括目标物理地址范围,最终保证后续筛选出的目标内存页满足需要预留的内存的大小,同时,也保证目标大页内存页所对应的物理地址范围包括目标物理地址范围。
基于第一方面,在一种可能的设计中,所述根据所述目标物理地址范围和所述实际申请的大页内存页数,从所述待筛选的大页内存页中,筛选出与所述目标物理地址范围对应的目标大页内存页,包括:根据所述目标物理地址范围,从所述待筛选的大页内存页中,筛选出与所述目标物理地址范围对应的大页内存页;根据所述实际申请的大页内存页数,从所述对应的大页内存页中,筛选出所述目标大页内存页;其中,所述目标大页内存页数等于所述实际申请的大页内存页数。
在上述实现过程中,在与目标物理地址范围对应的大页内存页的页数大于实际申请的页数时,从对应的大页内存页中,筛选出数量与实际申请的大页内存页数一致的内存页,继而避免了内存资源的浪费。
基于第一方面,在一种可能的设计中,所述根据所述目标物理地址范围,从所述待筛选的大页内存页中,筛选出与所述目标物理地址范围对应的目标大页内存页,包括:针对每张待筛选的大页内存页,根据该张待筛选的大页内存页中的起始虚拟地址,确定出该张待筛选的大页内存页的起始物理地址;根据所述起始物理地址和所述大页内存页的大小,确定出该张待筛选的大页内存页的结束物理地址;根据所述起始物理地址和所述结束物理地址,确定该张待筛选的大页内存页的物理地址中,存在属于所述目标物理地址范围内的地址时,则确定该张待筛选的大页内存页为所述目标大页内存页。
在上述实现过程中,针对每张待筛选的大页内存页,根据该待筛选的大页内存页中的起始虚拟地址,大页内存页的大小,确定出起始物理地址和结束物理地址,继而在确定该张待筛选的大页内存页对应的物理地址中,存在属于目标物理地址范围内的地址时,才确定该张待筛选的大页内存页为目标大页内存页,继而保证筛选出的目标大页内存页均满足目标物理地址范围的要求,同时避免了内存资源的浪费。
基于第一方面,在一种可能的设计中,在所述筛选出与所述目标物理地址范围对应的目标大页内存页之后,所述方法还包括:将所述目标大页内存页中,物理地址连续的大页内存页合并为一个内存块,物理地址不连续的大页内存页分别作为一个内存块。
在上述实现过程中,通过将目标大页内存页中,物理地址连续的大页内存页合并为一个内存块,不连续的大页内存页分别作为一个内存块,以便于后续管理。
第二方面,本申请实施例提供一种内存管理装置,应用于网络设备,所述装置包括:范围获取单元,用于获取目标物理地址范围,所述目标物理地址范围为需要预留的内存对应的物理地址范围;页数确定单元,用于根据预先确定的大页内存页的大小,所述目标物理地址范围和预先确定的所述网络设备的空闲物理内存所对应的物理地址范围,确定出备选的大页内存页数;初始化单元,用于根据所述备选的大页内存页数和所述大页内存页的大小,对所述空闲物理内存对应的普通内存页初始化,得到待筛选的大页内存页;其中,所述待筛选的大页内存页的页数等于所述备选的大页内存页数;筛选单元,用于根据所述目标物理地址范围,从所述待筛选的大页内存页中,筛选出与所述目标物理地址范围对应的目标大页内存页;释放单元,用于释放所述备选的大页内存页中除所述目标大页内存页以外的内存页。
基于第二方面,在一种可能的设计中,所述装置还包括:内存大小获取单元,用于获取需要预留的内存的大小;所述页数确定单元,包括:实际页数确定单元,用于根据所述内存的大小和所述大页内存页的大小,确定出实际申请的大页内存页数;页数确定子单元,用于根据所述实际申请的大页内存页数、所述大页内存页的大小、所述目标物理地址范围和所述对应的物理地址范围,确定出所述备选的大页内存页数;其中,所述备选的大页内存页数大于所述实际申请的大页内存页数。
基于第二方面,在一种可能的设计中,所述筛选单元,包括:初步筛选单元,用于根据所述目标物理地址范围,从所述待筛选的大页内存页中,筛选出与所述目标物理地址范围对应的大页内存页;再次筛选单元,用于根据所述实际申请的大页内存页数,从所述对应的大页内存页中,筛选出所述目标大页内存页;其中,所述目标大页内存页的页数等于所述实际申请的大页内存页数。
基于第二方面,在一种可能的设计中,所述筛选单元,包括:起始地址确定单元,用于针对每张待筛选的大页内存页,根据该张待筛选的大页内存页中的起始虚拟地址,确定出该张待筛选的大页内存页的起始物理地址;结束地址确定单元,用于根据所述起始物理地址和所述大页内存页的大小,确定出该张待筛选的大页内存页的结束物理地址;目标页确定单元,用于根据所述起始物理地址和所述结束物理地址,确定该张待筛选的大页内存页的物理地址中,存在属于所述目标物理地址范围内的地址时,则确定该张待筛选的大页内存页为所述目标大页内存页。
基于第二方面,在一种可能的设计中,所述装置还包括:内存页处理单元,用于将所述目标大页内存页中,物理地址连续的大页内存页合并为一个内存块,物理地址不连续的大页内存页分别作为一个内存块。
第三方面,本申请实施例提供一种电子设备,包括处理器以及与所述处理器连接的存储器,所述存储器内存储计算机程序,当所述计算机程序被所述处理器执行时,使得所述电子设备执行第一方面所述的方法。
第四方面,本申请实施例提供一种存储介质,所述存储介质中存储有计算机程序,当所述计算机程序在计算机上运行时,使得所述计算机执行第一方面所述的方法。
本申请的其他特征和优点将在随后的说明书阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请实施例了解。本申请的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的内存管理方法的流程示意图。
图2为本申请实施例提供的内存管理装置的结构示意图。
图3为本申请实施例提供的电子设备的结构示意图。
图标:200-内存管理装置;210-范围获取单元;220-页数确定单元;230-初始化单元;240-筛选单元;300-电子设备;301-处理器;302-存储器;303-通信接口。
具体实施方式
下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行描述。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本申请的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
请参照图1,图1为本申请实施例提供的一种内存管理方法的流程图,下面将对图1所示的流程进行详细阐述,所述方法包括步骤:S11-S15。
S11:获取目标物理地址范围,所述目标物理地址范围为需要预留的内存对应的物理地址范围。
S12:根据预先确定的大页内存页的大小,所述目标物理地址范围和预先确定的所述网络设备的空闲物理内存所对应的物理地址范围,确定出备选的大页内存页数。
S13:根据所述备选的大页内存页数和所述大页内存页的大小,对所述空闲物理内存对应的普通内存页初始化,得到待筛选的大页内存页;其中,所述待筛选的大页内存页的页数等于所述备选的大页内存页数。
S14:根据所述目标物理地址范围,从所述待筛选的大页内存页中,筛选出与所述目标物理地址范围对应的目标大页内存页。
S15:释放所述备选的大页内存页中除所述目标大页内存页以外的内存页。
下面对上述方法进行详细介绍。
作为一种实施方式,所述方法还包括步骤A。
A:获取需要预留的内存的大小。
在实际实施过程中,步骤A可以按照如下方式实施,获取预先配置好的需要预留的内存的大小。
作为一种实施方式,步骤A可以按照如下方式实施,实时或者不定时地获取内存申请进程发送的内存预留请求,其中,内存预留请求中包括:需要预留的内存的大小,从内存预留请求中提取出内存的大小。
S11:获取目标物理地址范围,所述目标物理地址范围为需要预留的内存对应的物理地址范围。
其中,步骤A和步骤S11的执行顺序不做具体限制。
其中,目标物理地址范围由起始的物理地址和结束的物理地址表征,例如:目标物理地址范围可以为:
1010001000000101101000100000010100000000000000000000000000000000-1010001000000101101000100000111100000000000000000000000000000000。
在实际实施过程中,S11可以按照如下方式实施,实时或者不定时地获取内存申请进程发送的内存预留请求,其中,内存预留请求中包括:目标物理地址范围,从内存预留请求中提取出目标物理地址范围。
在确定出目标物理地址范围之后,执行步骤S12。
S12:根据预先确定的大页内存页的大小,所述目标物理地址范围和预先确定的所述网络设备的空闲物理内存所对应的物理地址范围,确定出备选的大页内存页数。
其中,一张大页内存页的大小等于一张大页内存页所对应的物理内存的大小,例如,大页内存页的大小为2MB或者32MB等,大页内存页的大小取决于网络设备中的中央处理器(Central Processing Unit,CPU),不同的CPU所对应的大页内存页的大小不同。
其中,各张大页内存页的大小相等。
在实际实施过程中,S12可以按照如下方式实施,根据目标物理地址范围,预先确定的网络设备的空闲物理内存所对应的物理地址范围,以及大页内存页的大小,按照高位物理地址空间至低位物理地址空间的方向分配内存的准则,确定出备选的大页内存页数,以保证根据备选的大页内存页数,生成的大页内存页所对应的物理地址范围中包括目标物理地址范围。
在所述方法还包括步骤A的情况下,作为一种实施方式,S12包括步骤B1-B2。
B1:根据所述内存的大小和所述大页内存页的大小,确定出实际申请的大页内存页数。
在实际实施过程中,B1可以按照如下方式实施,在获取到需要预留的内存的大小和大页内存页的大小之后,确定内存的大小和大页内存页的大小的商值,继而确定实际申请的大页内存页数为商值。
在确定出实际申请的大页内存页数之后,执行步骤B2。
B2:根据所述实际申请的大页内存页数、所述大页内存页的大小、所述目标物理地址范围和所述对应的物理地址范围,确定出所述备选的大页内存页数;其中,所述备选的大页内存页数大于所述实际申请的大页内存页数。
在实际实施过程中,B2可以按照如下方式实施,根据实际申请的大页内存页数、目标物理地址范围、对应的物理地址范围,以及大页内存页的大小,按照高位物理地址空间至低位物理地址空间的方向分配内存的准则,确定出备选的大页内存页数,以保证根据备选的大页内存页数,生成的大页内存页中物理地址范围与目标物理地址范围对应的内存页的数量,大于等于实际申请的大页内页数。
在确定出备选的大页内存页数之后,执行步骤S13。
S13:根据所述备选的大页内存页数和所述大页内存页的大小,对所述空闲物理内存对应的普通内存页初始化,得到待筛选的大页内存页;其中,所述待筛选的大页内存页的页数等于所述备选的大页内存页数。
其中,针对每张普通内存页,该张普通内存页中包括:与该张普通内存页所对应的物理内存的起始物理地址和结束物理地址。
在实际实施过程中,S13可以按照如下方式实施,按照高位物理地址空间至低位物理地址空间的方向分配内存的准则,根据所述大页内存页的大小,先将对应的物理地址范围中较高的物理地址所对应的普通内存页进行初始化,得到待筛选的大页内存页,以使每张待筛选的大页内存页的大小等于所述大页内存页的大小,并在得到的待筛选的大页内存页的数量等于备选的大页内存页数时,停止对剩余的普通内存页进行初始化。
值得一提的是,通过对普通内存页进行初始化,以将多张普通内存页合并为待筛选的大页内存页,其中,待筛选的大页内存页的大小与其对应的全部普通内存页的大小之和相等。
例如,将A普通内存页和B普通内存页进行合并,得到C待筛选的大页内存页,则C待筛选的大页内存页的大小等于A普通内存页和B普通内存页的大小之和。
其中,待筛选的大页内存页中包括:起始虚拟地址,其中,该起始虚拟地址与该待筛选的大页内存页所对应的普通内存页中,物理地址最低的普通内存页的起始物理地址一致。
待筛选的大页内存页中还包括:结束虚拟地址;其中,该结束虚拟地址与该待筛选的大页内存页所对应的普通内存页中,物理地址最高的普通内存页的结束物理地址一致。
在得到待筛选的大页内存页之后,执行步骤S14。
S14:根据所述目标物理地址范围,从所述待筛选的大页内存页中,筛选出与所述目标物理地址范围对应的目标大页内存页。
作为一种实施方式,S14包括步骤C1-C3。
C1:针对每张待筛选的大页内存页,根据该张待筛选的大页内存页中的起始虚拟地址,确定出该张待筛选的大页内存页的起始物理地址。
在实际实施过程中,C1可以按照如下方式实施,针对每张待筛选的大页内存页,从该张筛选的大页内存页中,确定出起始虚拟地址,继而根据起始虚拟地址,确定出起始物理地址。
其中,根据起始虚拟地址,确定起始物理地址的具体实施方式为本领域熟知技术,因此,在此不再赘述。
在确定出起始物理地址之后,执行步骤C2。
C2:根据所述起始物理地址和所述大页内存页的大小,确定出该张待筛选的大页内存页的结束物理地址。
可以理解的是,结束物理地址和起始物理地址所构成的物理地址范围的大小,等于大页内存页的大小。
其中,根据起始物理地址和大页内存页的大小,确定结束物理地址的具体实施方式为本领域熟知技术,因此,在此不再赘述。
在确定出起始物理地址和结束物理地址之后,执行步骤C3。
C3:根据所述起始物理地址和所述结束物理地址,确定该张待筛选的大页内存页的物理地址中,存在属于所述目标物理地址范围内的地址时,则确定该张待筛选的大页内存页为所述目标大页内存页。
在实际实施过程中,C3可以按照如下方式实施,确定起始物理地址和结束物理地址所构成的物理地址范围中,是否存在位于目标物理地址范围内的地址,若存在,则确定该张待筛选的大页内存页为目标大页内存页,反之,则确定该张待筛选的大页内存页不为目标大页内存页。
作为一种实施方式,在C3之前,所述方法还包括:根据该张待筛选的大页内存页中的结束虚拟地址,确定出该张待筛选的大页内存页的结束物理地址。
在所述方法还包括步骤A的情况下,作为一种实施方式,S14包括步骤D1-D2。
D1:根据所述目标物理地址范围,从所述待筛选的大页内存页中,筛选出与所述目标物理地址范围对应的大页内存页。
在实际实施过程中,D1可以按照如下方式实施,针对每张待筛选的大页内存页,在确定该张待筛选的大页内存页的起始物理地址和结束物理地址所构成的物理地址范围中,存在位于目标物理地址范围内的地址时,则确定该张待筛选的大页内存页为与目标物理地址范围对应的大页内存页;否则,则确定该张待筛选的大页内存页不为与目标物理地址范围对应的大页内存页。
其中,D1的具体实施方式可以参照步骤C1-C3,因此,在此不再赘述。
在确定出对应的大页内存页之后,执行步骤D2。
D2:根据所述实际申请的大页内存页数,从所述对应的大页内存页中,筛选出所述目标大页内存页;其中,所述目标大页内存页的页数等于所述实际申请的大页内存页数。
在实际实施过程中,D2可以按照如下方式实施,按照从高位物理地址空间向低位物理地址空间扩展的方向,从所述对应的大页内存页中,选取物理地址较高的大页内存页作为目标大页内存页,以保证选取出的目标大页内存页的数量等于实际申请的大页内存页数。
作为一种实施方式,D2可以按照如下方式实施,从所述对应的大页内存页中,随机筛选出目标大页内存页,以保证筛选出的目标大页内存页的数量等于实际申请的大页内存页数。
S15:释放所述备选的大页内存页中除所述目标大页内存页以外的内存页。
值得一提的是,在大页内存页被释放后,得到与该大页内存页对应的普通内存页。
其中,S15的具体实施方式为本领域熟知技术,因此,在此不再赘述。
作为一种实施方式,在S15之后,所述方法还包括步骤E。
E:将所述目标大页内存页中,物理地址连续的大页内存页合并为一个内存块,物理地址不连续的大页内存页分别作为一个内存块。
在实际实施过程中,E可以按照如下方式实施,按照从高位物理地址空间向低位物理地址空间扩展的方向,将物理地址连续的大页内存页合并为一个内存块,同时,将物理地址不连续的各个大页内存页分别作为一个内存块的具体实施方式为本领域熟知技术,因此,在此不再赘述。
请参照图2,图2是本申请实施例提供的一种内存管理装置200的结构框图。所述装置应用于网络设备,下面将对图2所示的结构框图进行阐述,所示装置包括:
范围获取单元210,用于获取目标物理地址范围,所述目标物理地址范围为需要预留的内存对应的物理地址范围。
页数确定单元220,用于根据预先确定的大页内存页的大小,所述目标物理地址范围和预先确定的所述网络设备的空闲物理内存所对应的物理地址范围,确定出备选的大页内存页数。
初始化单元230,用于根据所述备选的大页内存页数和所述大页内存页的大小,对所述空闲物理内存对应的普通内存页初始化,得到待筛选的大页内存页;其中,所述待筛选的大页内存页的页数等于所述备选的大页内存页数。
筛选单元240,用于根据所述目标物理地址范围,从所述待筛选的大页内存页中,筛选出与所述目标物理地址范围对应的目标大页内存页;释放单元,用于释放所述备选的大页内存页中除所述目标大页内存页以外的内存页。
作为一种实施方式,所述装置还包括:内存大小获取单元,用于获取需要预留的内存的大小;所述页数确定单元220,包括:实际页数确定单元,用于根据所述内存的大小和所述大页内存页的大小,确定出实际申请的大页内存页数;页数确定子单元,用于根据所述实际申请的大页内存页数、所述大页内存页的大小、所述目标物理地址范围和所述对应的物理地址范围,确定出所述备选的大页内存页数;其中,所述备选的大页内存页数大于所述实际申请的大页内存页数。
作为一种实施方式,所述筛选单元240,包括:初步筛选单元,用于根据所述目标物理地址范围,从所述待筛选的大页内存页中,筛选出与所述目标物理地址范围对应的大页内存页;再次筛选单元,用于根据所述实际申请的大页内存页数,从所述对应的大页内存页中,筛选出所述目标大页内存页;其中,所述目标大页内存页的页数等于所述实际申请的大页内存页数。
作为一种实施方式,所述筛选单元240,包括:起始地址确定单元,用于针对每张待筛选的大页内存页,根据该张待筛选的大页内存页中的起始虚拟地址,确定出该张待筛选的大页内存页的起始物理地址;结束地址确定单元,用于根据所述起始物理地址和所述大页内存页的大小,确定出该张待筛选的大页内存页的结束物理地址;目标页确定单元,用于根据所述起始物理地址和所述结束物理地址,确定该张待筛选的大页内存页的物理地址中,存在属于所述目标物理地址范围内的地址时,则确定该张待筛选的大页内存页为所述目标大页内存页。
作为一种实施方式,所述装置还包括:内存页处理单元,用于将所述目标大页内存页中,物理地址连续的大页内存页合并为一个内存块,物理地址不连续的大页内存页分别作为一个内存块。
本实施例对的各功能单元实现各自功能的过程,请参见上述图1所示实施例中描述的内容,此处不再赘述。
请参照图3,图3为本申请实施例提供的一种电子设备300的结构示意图,电子设备300可以为上述实施例中的网络设备,电子设备300可以是个人电脑、平板电脑、智能手机、个人数字助理(personal digital assistant,PDA)等。
电子设备300可以包括:存储器302、处理器301、通信接口303和通信总线,通信总线用于实现这些组件的连接通信。
所述存储器302用于存储本申请实施例提供的内存管理方法和装置对应的计算程序指令等各种数据,其中,存储器302可以是,但不限于,随机存取存储器,只读存储器(ReadOnly Memory,ROM),可编程只读存储器(Programmable Read-Only Memory,PROM),可擦除只读存储器(Erasable Programmable Read-Only Memory,EPROM),电可擦除只读存储器(Electric Erasable Programmable Read-Only Memory,EEPROM)等。
处理器301用于读取并运行存储于存储器中的内存管理方法和装置对应的计算机程序指令,以获取目标物理地址范围,所述目标物理地址范围为需要预留的内存对应的物理地址范围;根据预先确定的大页内存页的大小,所述目标物理地址范围和预先确定的所述网络设备的空闲物理内存所对应的物理地址范围,确定出备选的大页内存页数;根据所述备选的大页内存页数和所述大页内存页的大小,对所述空闲物理内存对应的普通内存页初始化,得到待筛选的大页内存页;其中,所述待筛选的大页内存页的页数等于所述备选的大页内存页数;根据所述目标物理地址范围,从所述待筛选的大页内存页中,筛选出与所述目标物理地址范围对应的目标大页内存页;释放所述备选的大页内存页中除所述目标大页内存页以外的内存页。
其中,处理器301可能是一种集成电路芯片,具有信号的处理能力。上述的处理器301可以是通用处理器,包括CPU、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
通信接口303,用于接收或者发送数据。
此外,本申请实施例还提供了一种存储介质,在该存储介质中存储有计算机程序,当所述计算机程序在计算机上运行时,使得所述计算机执行本申请任一项实施方式所提供的方法。
综上所述,本申请各实施例提出的内存管理方法、装置、电子设备及存储介质,根据目标物理地址范围,从待筛选的大页内存页中,筛选出与目标物理地址范围对应的目标大页内存页,以保证预留的目标大页内存页满足内存页的预留要求,通过将待筛选的大页内存页中除目标大页内存页以外的内存页释放,继而避免内存资源浪费。
在本申请所提供的实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的装置来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。

Claims (9)

1.一种内存管理方法,其特征在于,应用于网络设备,所述方法包括:
获取目标物理地址范围,所述目标物理地址范围为需要预留的内存对应的物理地址范围;
根据预先确定的大页内存页的大小,所述目标物理地址范围和预先确定的所述网络设备的空闲物理内存所对应的物理地址范围,确定出备选的大页内存页数;
根据所述备选的大页内存页数和所述大页内存页的大小,对所述空闲物理内存对应的普通内存页初始化,得到待筛选的大页内存页;其中,所述待筛选的大页内存页的页数等于所述备选的大页内存页数;
根据所述目标物理地址范围,从所述待筛选的大页内存页中,筛选出与所述目标物理地址范围对应的目标大页内存页;
释放所述备选的大页内存页中除所述目标大页内存页以外的内存页;
其中,所述根据所述目标物理地址范围,从所述待筛选的大页内存页中,筛选出与所述目标物理地址范围对应的目标大页内存页,包括:针对每张待筛选的大页内存页,根据该张待筛选的大页内存页中的起始虚拟地址,确定出该张待筛选的大页内存页的起始物理地址;根据所述起始物理地址和所述大页内存页的大小,确定出该张待筛选的大页内存页的结束物理地址;根据所述起始物理地址和所述结束物理地址,确定该张待筛选的大页内存页的物理地址中,存在属于所述目标物理地址范围内的地址时,则确定该张待筛选的大页内存页为所述目标大页内存页。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取需要预留的内存的大小;
所述根据预先确定的大页内存页的大小,所述目标物理地址范围和预先确定的所述设备的空闲物理内存所对应的物理地址范围,确定出备选的大页内存页数,包括:
根据所述需要预留的内存的大小和所述大页内存页的大小,确定出实际申请的大页内存页数;
根据所述实际申请的大页内存页数、所述大页内存页的大小、所述目标物理地址范围和所述对应的物理地址范围,确定出所述备选的大页内存页数;其中,所述备选的大页内存页数大于所述实际申请的大页内存页数。
3.根据权利要求2所述的方法,其特征在于,所述根据所述目标物理地址范围,从所述待筛选的大页内存页中,筛选出与所述目标物理地址范围对应的目标大页内存页,包括:
根据所述目标物理地址范围,从所述待筛选的大页内存页中,筛选出与所述目标物理地址范围对应的大页内存页;
根据所述实际申请的大页内存页数,从所述对应的大页内存页中,筛选出所述目标大页内存页;其中,所述目标大页内存页的页数等于所述实际申请的大页内存页数。
4.根据权利要求1所述的方法,其特在于,在所述筛选出与所述目标物理地址范围对应的目标大页内存页之后,所述方法还包括:
将所述目标大页内存页中,物理地址连续的大页内存页合并为一个内存块,物理地址不连续的大页内存页分别作为一个内存块。
5.一种内存管理装置,其特征在于,应用于网络设备,所述装置包括:
范围获取单元,用于获取目标物理地址范围,所述目标物理地址范围为需要预留的内存对应的物理地址范围;
页数确定单元,用于根据预先确定的大页内存页的大小,所述目标物理地址范围和预先确定的所述网络设备的空闲物理内存所对应的物理地址范围,确定出备选的大页内存页数;
初始化单元,用于根据所述备选的大页内存页数和所述大页内存页的大小,对所述空闲物理内存对应的普通内存页初始化,得到待筛选的大页内存页;其中,所述待筛选的大页内存页的页数等于所述备选的大页内存页数;
筛选单元,用于根据所述目标物理地址范围,从所述待筛选的大页内存页中,筛选出与所述目标物理地址范围对应的目标大页内存页;
释放单元,用于释放所述备选的大页内存页中除所述目标大页内存页以外的内存页;
其中,所述筛选单元,包括:起始地址确定单元,用于针对每张待筛选的大页内存页,根据该张待筛选的大页内存页中的起始虚拟地址,确定出该张待筛选的大页内存页的起始物理地址;结束地址确定单元,用于根据所述起始物理地址和所述大页内存页的大小,确定出该张待筛选的大页内存页的结束物理地址;目标页确定单元,用于根据所述起始物理地址和所述结束物理地址,确定该张待筛选的大页内存页的物理地址中,存在属于所述目标物理地址范围内的地址时,则确定该张待筛选的大页内存页为所述目标大页内存页。
6.根据权利要求5所述的装置,其特征在于,所述装置还包括:
内存大小获取单元,用于获取需要预留的内存的大小;
所述页数确定单元,包括:
实际页数确定单元,用于根据所述需要预留的内存的大小和所述大页内存页的大小,确定出实际申请的大页内存页数;
页数确定子单元,用于根据所述实际申请的大页内存页数、所述大页内存页的大小、所述目标物理地址范围和所述对应的物理地址范围,确定出所述备选的大页内存页数;其中,所述备选的大页内存页数大于所述实际申请的大页内存页数。
7.根据权利要求6所述的装置,其特征在于,所述筛选单元包括:
初步筛选单元,用于根据所述目标物理地址范围,从所述待筛选的大页内存页中,筛选出与所述目标物理地址范围对应的大页内存页;
再次筛选单元,用于根据所述实际申请的大页内存页数,从所述对应的大页内存页中,筛选出所述目标大页内存页;其中,所述目标大页内存页的页数等于所述实际申请的大页内存页数。
8.一种电子设备,其特征在于,包括存储器以及处理器,所述存储器中存储有计算机程序指令,所述计算机程序指令被所述处理器读取并运行时,执行如权利要求1-4中任一项所述的方法。
9.一种存储介质,其特征在于,所述存储介质上存储有计算机程序指令,所述计算机程序指令被计算机读取并运行时,执行如权利要求1-4中任一项所述的方法。
CN202110194928.8A 2021-02-20 2021-02-20 内存管理方法、装置、电子设备及存储介质 Active CN112905497B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110194928.8A CN112905497B (zh) 2021-02-20 2021-02-20 内存管理方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110194928.8A CN112905497B (zh) 2021-02-20 2021-02-20 内存管理方法、装置、电子设备及存储介质

Publications (2)

Publication Number Publication Date
CN112905497A CN112905497A (zh) 2021-06-04
CN112905497B true CN112905497B (zh) 2022-04-22

Family

ID=76124257

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110194928.8A Active CN112905497B (zh) 2021-02-20 2021-02-20 内存管理方法、装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN112905497B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113687873B (zh) * 2021-07-30 2024-02-23 济南浪潮数据技术有限公司 一种云服务页表中的大页内存配置方法、系统及相关装置

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103984599A (zh) * 2014-04-14 2014-08-13 北京大学 一种提高操作系统大页使用率的方法
CN105893269A (zh) * 2016-03-31 2016-08-24 武汉虹信技术服务有限责任公司 一种Linux系统下内存管理方法
CN106708752A (zh) * 2016-11-22 2017-05-24 迈普通信技术股份有限公司 内存预留方法及装置
CN108628663A (zh) * 2018-05-11 2018-10-09 浙江大学 一种支持新型大页框架的kvm系统
CN108664419A (zh) * 2018-04-03 2018-10-16 郑州云海信息技术有限公司 一种确定内存大页数目的方法及其装置
CN109062823A (zh) * 2018-07-16 2018-12-21 北京中科网威信息技术有限公司 使用大页内存提升基于申威架构的设备性能的方法及装置
CN110209603A (zh) * 2019-05-31 2019-09-06 龙芯中科技术有限公司 地址转换方法、装置、设备及计算机可读存储介质

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8954707B2 (en) * 2012-08-03 2015-02-10 International Business Machines Corporation Automatic use of large pages
CN105022696B (zh) * 2015-07-21 2017-12-29 浙江大学 一种基于内存访问热度的大内存页整合方法
US10547680B2 (en) * 2015-12-29 2020-01-28 Intel Corporation Systems, methods, and apparatuses for range protection
CN108804350B (zh) * 2017-04-27 2020-02-21 华为技术有限公司 一种内存访问方法及计算机系统

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103984599A (zh) * 2014-04-14 2014-08-13 北京大学 一种提高操作系统大页使用率的方法
CN105893269A (zh) * 2016-03-31 2016-08-24 武汉虹信技术服务有限责任公司 一种Linux系统下内存管理方法
CN106708752A (zh) * 2016-11-22 2017-05-24 迈普通信技术股份有限公司 内存预留方法及装置
CN108664419A (zh) * 2018-04-03 2018-10-16 郑州云海信息技术有限公司 一种确定内存大页数目的方法及其装置
CN108628663A (zh) * 2018-05-11 2018-10-09 浙江大学 一种支持新型大页框架的kvm系统
CN109062823A (zh) * 2018-07-16 2018-12-21 北京中科网威信息技术有限公司 使用大页内存提升基于申威架构的设备性能的方法及装置
CN110209603A (zh) * 2019-05-31 2019-09-06 龙芯中科技术有限公司 地址转换方法、装置、设备及计算机可读存储介质

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
"Practical, transparent operating system support for superpages";Juan Navarro;《ACM SIGOPS Operating Systems Review》;20021231;第36卷;第I138-812页 *
"Transparent operating system support for superpages";Navarro, Juan E.;《Rice University Electronic Theses and Dissertations》;20040331;第1-114页 *
"面向大页场景的内存自适应系统研究与设计";王金昱;《中国优秀博硕士学位论文全文数据库(硕士)信息科技辑》;20190115(第01期);第I138-812页 *

Also Published As

Publication number Publication date
CN112905497A (zh) 2021-06-04

Similar Documents

Publication Publication Date Title
US11531625B2 (en) Memory management method and apparatus
CN106557427B (zh) 共享内存数据库的内存管理方法及装置
CN112905497B (zh) 内存管理方法、装置、电子设备及存储介质
CN112764925A (zh) 基于虚拟内存的数据存储方法、装置、设备及存储介质
CN112269665B (zh) 内存的处理方法和装置、电子设备和存储介质
CN112052144B (zh) 信息管理方法、装置、电子设备及存储介质
CN111708715B (zh) 内存分配方法、内存分配装置及终端设备
CN110399166B (zh) ME Nonce值的保存方法、装置、设备及存储介质
CN115664953B (zh) 一种外接设备的资源分配方法及相关装置
CN106648878B (zh) 一种系统及其动态分配mmio资源的方法
JP2007500390A (ja) 動的メモリ割振りをした集積回路
CN110866201A (zh) 缓存处理方法、装置、计算机设备以及存储介质
CN113485835B (zh) 一种多场景下共享内存的实现方法、系统、设备及介质
CN115129459A (zh) 一种内存管理的方法及设备
CN111736869A (zh) 服务端接口的版本更新方法和服务端接口的调用方法
CN117851292B (zh) 集成电路系统、组件、设备及内存管理方法
CN114185687B (zh) 一种面向共享内存式协处理器的堆内存管理方法和装置
CN113220604B (zh) 内存申请方法、装置、电子设备和计算机可读存储介质
CN112650603B (zh) 内存管理方法、装置、电子设备及存储介质
CN111949557B (zh) 一种数据读取方法、装置及存储设备
CN118426859A (zh) 基于分段加载的程序快速启动方法、设备及存储介质
CN116360995A (zh) 一种pcie资源分配方法、装置及介质
CN116756019A (zh) 内存泄漏定位方法、装置、电子设备及可读存储介质
CN107688494B (zh) 一种内存分配方法和装置
CN117742801A (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