管理内存的方法及装置、电子设备及可读存储介质

阅读: 评论:0

著录项
  • CN202210974392.6
  • 20220815
  • CN115421904A
  • 20221202
  • OPPO广东移动通信有限公司
  • 刘重力;朱凌刚
  • G06F9/50
  • G06F9/50 G06F9/48

  • 广东省东莞市长安镇乌沙海滨路18号
  • 广东(44)
  • 北京布瑞知识产权代理有限公司
  • 张欣
摘要
本申请提供了一种管理内存的方法及装置、电子设备及可读存储介质。该方法用于管理内存,该内存中包括第一内存地址空间,第一内存地址空间中包括可迁移进程的第一数据空间和普通进程的第二数据空间,第一数据空间和第二数据空间包括多个物理地址空间,该方法包括:接收主设备发送的连续的物理地址申请请求;当内存中不存在与该物理地址请求相匹配的连续的物理地址段时,确定第一数据空间中待迁移的多个目标物理地址空间;对其执行迁移操作,以得到与连续的物理地址申请请求相匹配的连续的物理地址段。
权利要求

1.一种管理内存的方法,其特征在于,所述内存中包括第一内存地址空间,所述第一内存地址空间中包括可迁移进程的第一数据空间和普通进程的第二数据空间,所述第一数据空间和所述第二数据空间包括多个物理地址空间,所述方法包括:

接收主设备发送的连续的物理地址申请请求;

当所述内存中不存在与所述连续的物理地址申请请求相匹配的连续物理地址段时,确定所述第一数据空间中待迁移的多个目标物理地址空间;

对所述待迁移的多个目标物理地址空间执行迁移操作,以得到与所述连续的物理地址申请请求相匹配的连续的物理地址段。

2.根据权利要求1所述的方法,其特征在于,

所述内存中还包括第二内存地址空间,所述第二内存地址空间包括:用于存储所述第一数据空间的多个第一页表项的第一页表空间和存储所述第二数据空间的多个第二页表项的第二页表空间;

所述确定所述第一数据空间中待迁移的多个目标物理地址空间,包括:

遍历所述第一页表空间中的所述多个第一页表项,确定所述多个第一页表项中的多个物理地址信息;

根据所述多个物理地址信息和所述连续的物理地址申请请求所指示的地址段的大小,确定所述待迁移的多个目标数据空间。

3.根据权利要求2所述的方法,其特征在于,在对所述待迁移的多个目标物理地址空间执行迁移操作之后,所述方法还包括:

更新所述第一页表空间中与所述多个目标物理地址空间相匹配的多个第一页表项。

4.一种管理内存的装置,其特征在于,所述内存中包括第一内存地址空间,所述第一内存地址空间包括可迁移进程的第一数据空间和普通进程的第二数据空间,所述第一数据空间和所述第二数据空间包括多个物理地址空间,所述装置包括:

接收单元,用于接收主设备发送的连续的物理地址申请请求;

第一确定单元,配置为当所述内存中不存在与所述连续的物理地址申请请求相匹配的连续物理地址段时,确定所述第一数据空间中待迁移的多个目标物理地址空间;

迁移单元,对所述待迁移的多个目标物理地址空间执行迁移操作,得到与所述连续的物理地址申请请求相匹配的连续的物理地址段。

5.根据权利要求4所述的装置,其特征在于,

所述内存中还包括第二内存地址空间,所述第二内存地址空间包括:用于存储所述第一数据空间的多个页表项的第一页表空间和存储所述第二数据空间的多个页表项的第二页表空间;

所述第二确定单元配置为:

遍历所述第一页表空间中的所述多个页表项,确定所述多个页表项中的多个物理地址信息;

根据所述多个物理地址信息和所述连续的物理地址申请请求所指示的地址段的大小,确定所述第一数据空间中需要迁移的多个目标物理地址空间。

6.根据权利要求5所述的装置,其特征在于,所述装置还包括:

更新单元,配置为在对所述待迁移的多个目标物理地址空间执行迁移操作之后,更新所述第一页表空间中与所述连续的物理地址段相匹配的多个页表项的物理地址信息。

7.一种电子设备,其特征在于,包括:

至少一个主设备、内存以及硬件加速器;

求中,所述硬件加速器设置在所述至少一个主设备与所述内存之间,用于对所述内存进行管理;

所述内存中包括第一内存地址空间,所述第一内存地址空间包括可迁移进程的第一数据空间和普通进程的第二数据空间,所述第一数据空间和所述第二数据空间包括多个物理地址空间;

所述硬件加速器配置为:

接收主设备发送的连续的物理地址申请请求;

当所述内存中不存在与所述连续的物理地址申请请求相匹配的连续物理地址段时,确定所述第一数据空间中待迁移的多个目标物理地址空间;

对所述待迁移的多个目标物理地址空间执行迁移操作,以得到与所述连续的物理地址申请请求相匹配的连续的物理地址段。

8.根据权利要求7所述的电子设备,其特征在于,

所述内存中还包括第二内存地址空间,所述第二内存地址空间包括:用于存储所述第一数据空间的多个第一页表项的第一页表空间和存储所述第二数据空间的多个第二页表项的第二页表空间;

所述确定所述第一数据空间中待迁移的多个目标物理地址空间,包括:

遍历所述第一页表空间中的所述多个第一页表项,确定所述多个第一页表项中的多个物理地址信息;

根据所述多个物理地址信息和所述连续的物理地址申请请求所指示的地址段的大小,确定所述待迁移的多个目标数据空间。

9.根据权利要求8所述的电子设备,其特征在于,在对所述待迁移的多个目标物理地址空间执行迁移操作之后,所述硬件加速器还用于:

更新所述第一页表空间中与所述连续的物理地址段相匹配的多个页表项的物理地址信息。

10.一种电子设备,其特征在于,包括存储器和处理器,所述存储器用于存储可执行代码,所述处理器用于执行所述可执行代码,所述可执行代码被所述处理器执行时实现如权利要求1-3中任一项所述的方法。

11.一种计算机可读存储介质,其特征在于,所述存储介质存储有可执行代码,所述可执行代码被执行时,实现如权利要求1-3中任一项所述的方法。

说明书
技术领域

本申请涉及芯片技术领域,更为具体的,涉及一种管理内存的方法及装置、电子设备及可读存储介质。

在当前较大规模的片上系统芯片中,对于内存中的存储空间的管理通常是基于4KB粒度的页表来进行的。在系统运行一段时间后,内存的物理地址空间中会存在很多4KB粒度的离散地址段,从而使得在有一些新的进程申请较大的连续物理地址的需求时,例如以2MB页表的形式申请2MB的连续物理地址空间,此时需要利用软件,对一些正在使用的进程的地址段进行迁移,以空出较大的连续物理地址空间供新的进程使用。

上述迁移进程所占用的地址段是纯软件的操作,在执行时存在软件开销较高、占用大量的CPU资源以及耗费的时间较长的问题,导致创建新进程是系统卡顿,影响用户体验。

本申请提供一种管理内存的方法及装置、电子设备及可读存储介质。下面对本申请实施例涉及的各个方面进行介绍。

第一方面,提供一种管理内存的方法,所述内存中包括第一内存地址空间,所述第一内存地址空间中包括可迁移进程的第一数据空间和普通进程的第二数据空间,所述第一数据空间和所述第二数据空间包括多个物理地址空间,所述方法包括:接收主设备发送的连续的物理地址申请请求;当所述内存中不存在与所述连续的物理地址申请请求相匹配的连续物理地址段时,确定所述第一数据空间中待迁移的多个目标物理地址空间;对所述待迁移的多个目标物理地址空间执行迁移操作,以得到与所述连续的物理地址申请请求相匹配的连续的物理地址段。

第二方面,提供一种管理内存的装置,所述内存中包括第一内存地址空间,所述第一内存地址空间包括可迁移进程的第一数据空间和普通进程的第二数据空间,所述第一数据空间和所述第二数据空间包括多个物理地址空间,所述装置包括:接收单元,用于接收主设备发送的连续的物理地址申请请求;第一确定单元,配置为当所述内存中不存在与所述连续的物理地址申请请求相匹配的连续物理地址段时,确定所述第一数据空间中待迁移的多个目标物理地址空间;迁移单元,对所述待迁移的多个目标物理地址空间执行迁移操作,得到与所述连续的物理地址申请请求相匹配的连续的物理地址段。

第三方面,提供电子设备,包括:至少一个主设备、内存以及硬件加速器;求中,所述硬件加速器设置在所述至少一个主设备与所述内存之间,用于对所述内存进行管理;所述内存中包括第一内存地址空间,所述第一内存地址空间包括可迁移进程的第一数据空间和普通进程的第二数据空间,所述第一数据空间和所述第二数据空间包括多个物理地址空间;所述硬件加速器配置为:接收主设备发送的连续的物理地址申请请求;当所述内存中不存在与所述连续的物理地址申请请求相匹配的连续物理地址段时,确定所述第一数据空间中待迁移的多个目标物理地址空间;对所述待迁移的多个目标物理地址空间执行迁移操作,以得到与所述连续的物理地址申请请求相匹配的连续的物理地址段。

第四方面,提供一种电子设备,包括存储器和处理器,所述存储器用于存储计算机可执行指令,所述处理器用于执行所述计算机可执行指令,所述计算机可执行指令被所述处理器执行时实现如第一方面所述的方法。

第五方面,提供一种计算机可读存储介质,其特征在于,所述存储介质存储有计算机可执行指令,所述计算机可执行指令被执行时,实现如第一方面所述的方法。

根据本申请实施例提供的内存管理方法,通过在内存中设置用于保存预设可迁移进程数据的第一数据空间,在接收到连续的物理地址申请请求时,从第一数据空间中确定需要被迁移的目标物理地址空间,并对其中的数据进行迁移,从而得到满足需求的物理地址段。通过对预设可迁移进程的物理地址空间进行迁移,能够提高页表迁移的效率,同时,由于这一部分地址空间中所存储的数据的迁移对于整个系统的影响较小,从而能够释放CPU资源,提高用户体验。

图1是相关技术中的内存大页分配的示意性流程图。

图2是相关技术中的内存中的数据空间的分布情况示意图。

图3是本申请实施例提供的方法适用的内存的结构示意图。

图4是本申请实施例提供的管理内存的方法的示意性流程图。

图5是本申请实施例中的内存中的多个物理地址空间的分布情况的示意图。

图6是本申请实施例提供的管理内存的装置的示意性结构图。

图7是本申请一实施例提供的电子设备的示意性结构图。

图8是本申请另一实施例提供的电子设备的示意性结构图。

下面将结合本申请实施例中的附图,对本申请实施例进行描述。

本申请的说明书和权利要求书及所述附图中的术语“第一”、“第二”、“第三”和“第四”等是用于区别不同对象,而不是用于描述特定顺序;并且术语“第一”、“第二”、“第三”和“第四”等描述的对象也可以是相同的对象,或者彼此存在包含或者其他关系。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。

在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。

在本说明书中使用的术语“部件”、“模块”、“系统”等用于表示计算机相关的实体、硬件、固件、硬件和软件的组合、软件、或执行中的软件。例如,部件可以是但不限于,在处理器上运行的进程、处理器、对象、可执行文件、执行线程、程序和/或计算机。通过图示,在计算设备上运行的应用和计算设备都可以是部件。一个或多个部件可驻留在进程和/或执行线程中,部件可位于一个计算机上和/或分布在2个或更多个计算机之间。此外,这些部件可从在上面存储有各种数据结构的各种计算机可读介质执行。部件可例如根据具有一个或多个数据分组(例如来自与本地系统、分布式系统和/或网络间的另一部件交互的二个部件的数据,例如通过信号与其它系统交互的互联网)的信号通过本地和/或远程进程来通信。

在介绍本申请实施例之前,先对相关技术中的内存管理方法及其存在的问题进行详细的举例说明。

在当前较大规模的片上系统(system on chip,SOC)芯片中,如果涉及运行比较复杂的操作系统,例如安卓操作系统、Linux操作系统等,一般都需要操作系统基于虚拟地址来对内存等存储空间进行管理。虚拟地址到物理地址的映射关系是以页表的形式存储在内存中。

在安卓系统中,一般是以4千字节(Kbyte,KB)粒度作为管理页表的粒度,即将内存分割为多个4KB大小的内存块进行管理。在安卓系统运行一段时间后,系统物理地址空间会存在很多使用过的4KB粒度的离散地址段,此时能够查到的未使用过的地址段会被这些4KB的地址段打散,称为地址空间的碎片化。

而在例如照片或视频拍摄等场景下,新的进程有申请更大连续物理地址空间的需求,例如以2兆字节(Mbyte,MB)页表的形式一次性申请容量为2MB的连续物理地址空间。为了能够到此类更大的连续物理地址空间,操作系统会迁移某些正在使用的进程所占用的地址段,以空出更大连续物理地址空间以供新的进程使用。

下面结合图1和图2对上述过程进行详细的举例说明。其中,图1是相关技术中的内存大页分配的示意性流程图。图2为相关技术中的内存中的数据空间的分布情况示意图。

请参阅图1,在步骤S11,外设发起连接物理地址申请请求,该请求消息中包括当前外设所申请的连续地址段的大小等信息。例如,该地址申请请求所指示的地址段为2MB的连续地址。

在步骤S12,在接收到外设发送的请求消息后,利用软件检测当前内存中是否存在连续的物理地址。

以上文中的2MB的连续地址空间为例。若当前内存中存在连续的2MB的物理地址时,内存中的页表及对应的数据空间的分布为图2(a)所示的情形,图中示出了连续的512个数据空间,其中每个数据空间的大小均为4KB。应理解,图2中的每个方格代表一个数据空间,或者可以称之为内存中的一个数据块,其中标示为网格线的数据空间为当前被占用的数据空间。

此时执行步骤S13,利用上述连续的物理地址进行数据的传输。

而在当前内存中不存在连续的物理地址时,此时内存中的页表以及对应的数据空间的分布如图2(b)所示,与图2(a)所示的情形相同,每一个数据空间均是一个容量为4KB的数据块。从图2(b)中能够看出,在这种情况下,内存中存在多个已经被占用的数据空间,从而使得此时并不存在连续512个数据空间,以满足上述2MB的地址空间的需求。

此时执行步骤S14,利用软件迁移进程地址段,以创建更大的连续物理地址段。再次参阅图2(b),例如可以图2(b)中的将数据块21中的数据向后迁移。迁移后的数据空间分布如图2(c)所示,由于数据块21中的数据迁移,从而使得该内存中存在连续的512个未占用的数据空间,其总容量为2MB,能够满足外设的传输请求。

在得到连续的物理地址段后,执行步骤S15,为连续物理地址段映射建表。将前述步骤中的到的连续的数据空间的物理地址和传输请求中的虚拟地址建立映射关系,作为新的页表项,将其存储到内存的页表中。

在步骤S15之后,执行步骤S13使用连续的物理地址进行数据的传输。

从以上步骤能够看出,相关技术中,在基于4KB粒度的内存管理方法中,当存在较大的内存页的请求时,对大量的地址段进行迁移的效率较低,会产生大量的时延。同时,相关技术中对地址段的迁移是纯软件操作,软件开销较高,需要占用大量的CPU资源,同时迁移完成的时间也可能过长,从而导致创建新进程时系统卡顿。

为解决上述问题,本申请实施例提供了一种管理内存的方法及装置、电子设备以及可读存储介质。

下面首先结合附图,对本申请的方法实施例进行详细的举例说明。本申请实施例提供的方法用于进行内存管理,因此,在介绍方法实施例之前,先对本申请提供的方法所应用的内存的结构进行举例说明。

如图3所示为应用本申请实施例提供的方法的内存的结构示意图。

请参阅图3,在内存30中包括第一内存地址空间31和第二内存地址空间32。其中第一内存地址空间31用于存储各外设或多个进程的数据,第二内存地址空间32用于存储第一内存地址空间31中的多个数据块的页表项,所述页表项用于指示虚拟地址与多个数据块的物理地址的对应关系以及每个数据块的状态。

应理解,第一内存地址空间31和第二内存地址空间32并非完全独立的两个存储空间,而仅仅是内存中的两个虚拟的存储空间,第一内存地址空间31和第二内存地址空间32的大小可以根据实际情况进行划分,例如,在一些场景中,可能需要存储更多的页表项,此时可以将第二内存地址空间32的容量增加,同时减小第一内存地址空间31。又例如,在数据吞吐量较大时,可以相应的增大第一内存地址空间31的大小,使得能够有更多的存储空间来对存储单元中的数据进行缓存。换句话说,第一内存地址空间31和第二内存地址空间32共享内存中的存储空间,可以根据实际情况进行灵活调整。

继续参阅图3,第一内存地址空间31包括可迁移进程的第一数据空间311和普通进程的第二数据空间312,其中,在第一数据空间311和第二数据空间312中分别包括多个物理地址空间3111和3121。

在一些实施方式中,第一数据空间311和第二数据空间312可以是由软件预先分配的一段内存地址空间。还需要说明的是,与前文中的第一内存地址空间31和第二内存地址空间32类似,在本申请实施例中,第一数据空间311和第二数据空间312也并非物理上独立的两个存储空间,这两个数据空间的容量可以根据实际情况进行调节,例如,当主设备的读写请求中连续的物理地址申请请求较多时,可以增加第一数据空间311的大小,从而提高数据读写的速度。

在一些实施方式中,上述多个物理地址空间3111和3121也可以理解为是内存中的多个数据块。其中,第一数据空间311中的多个物理地址空间3111是为可迁移进程专用的物理地址空间。其中,可迁移的进程例如可以是非系统进程或者系统不经常调用的进程,对这一部分进程所占用的物理地址空间及其对应的页表的迁移时所占用的CPU等系统资源较少且迁移的效率较高。

当主设备的读写指示中包括连续的物理地址申请请求时,可以将上述可迁移的进程所占用的物理地址空间进行迁移,从而使得能够在第一数据空间311中得到与上述连续的物理地址申请请求相匹配的一个物理地址段。

继续参阅图3,第二内存地址空间32包括第一页表空间321和第二页表空间322,其中,第一页表空间321存储有与第一数据空间311中的多个物理地址空间3111相对应的多个页表项,第二页表空间322中存储有与第二数据空间312中的多个物理地址空间3121对应的多个页表项。

应理解,第一页表空间321和第二页表空间322也并非完全独立的两个存储空间,而仅仅是内存中的两个虚拟的存储空间,第一页表空间321和第二页表空间322的大小可以与第一数据空间311和第二数据空间312中的物理地址空间的数量相匹配。

下面结合图4对本申请实施例提供的管理内存的方法进行详细的说明,图4所示出的方法可以应用于如图3所示的内存,该方法包括步骤S41-S43。

在步骤S41,接收主设备发送的连续的物理地址申请请求。

其中,所述主设备例如可以是电子设备中的CPU、GPU、NPU、APU以及ISP等SOC中的部件,或者还可以是设置在SOC外部的多媒体设备,例如视频播放设备、音频播放设备等,本申请实施例对于主设备的具体类型不做限定。

在一些实施方式中,所述连续的物理地址申请请求可以包含在主设备的数据读写请求中。

因此,在一些实施方式中,本申请实施例中方法还可以包括:解析主设备的数据读写请求,确定所述数据读写请求中所包含的连续物理地址请求。

在一些实施方式中,当内存中存在与所述连续的物理地址请求相匹配的连续的物理地址段时,则可以直接在该连续的物理地址段内执行数据的读写等操作,而无需对内存中的数据块进行数据迁移等操作。

图5示出了本申请实施例中的内存中的多个物理地址空间的分布情况。下面结合图5(a),以连续的物理地址申请请求为请求容量为2MB的连续物理地址空间为例对上述过程进行举例说明。如图5(a)所示,该内存包括第一内存地址空间51和第二内存地址空间52,其中第一内存地址空间51进一步包括第一数据空间511和第二数据空间512,其中,第一数据空间511中的多个物理地址空间(如图中所示的多个方格区域)为可迁移进程的物理地址空间,第二数据空间512中的多个物理地址为普通进程的物理地址空间。

在图5(a)中示出的第一数据空间511中未被占用的多个物理地址空间511A,…511N,即为上文中所说的与连续的物理地址申请请求相匹配的连续的物理地址段,此时可以在该物理地址段内值执行数据的读写。

应理解,图5(a)中所示的在第一数据空间511中的多个物理地址空间511A,…511N仅为一示例。实际上,在本申请实施例中,连续的物理地址段可以在内存的任意位置,例如,该物理地址段也可以是第二数据空间512中的多个连续的物理地址空间;或者,连续的物理地址段还可以同时包括第一数据空间511和第二数据空间512中的部分物理地址空间,本申请实施例对此不作具体限定。

而当内存中不存在与所述连续的物理地址申请请求相匹配的连续的物理地址段时,即意味着此时内存中的地址空间表现为碎片化的数据块,则此时需要对内存中的部分数据块进行迁移。

在步骤S42,确定所述第一数据空间中待迁移的多个目标物理地址空间。

请再次参阅图5,图5(b)中示出了上述情况,图5(b)所示的内存包括第一内存地址空间53和第二内存地址空间54,其中,第一内存地址空间53进一步的包括第一数据空间531和第二数据空间532,第一数据空间531和第二数据空间532中均包括多个物理地址空间。第二内存地址空间54包括存储在第一页表空间541的多个第一页表项5411A,…5411N以及存储在第二页表空间542中的多个第二页表项5421A,…,5421N。其中多个第一页表项5411A,…5411N和多个第二页表项5421A,…,5421N分别与第一数据空间531和第二数据空间532中的多个物理地址空间相对应。

如前文所说,可迁移进程的数据均存储在第一数据空间531中,因此,在本申请实施例中,待迁移的多个目标物理地址空间的选择也就需要在第一数据空间中进行,即只对可迁移进程所占用的物理地址空间中的数据进行迁移。

可以理解的是,对于每一个物理地址空间来说,其对应的页表项中会记录该物理地址空间的地址信息以及当前状态信息。

因此,在一些实施方式中,第一数据空间中待迁移的多个目标物理地址空间可以根据第一数据空间中的多个物理地址空间的页表来确定。

下面结合图5(b)对确定目标数据空间的方法进行举例说明:通过遍历查第一页表空间541中的多个第一页表项5411A,…5411N,从而确定多个物理地址空间中在当前时刻处于被占用状态的物理地址空间。例如在图5(b)中的某一个页表项(例如页表项5411G)指示在当前时刻,与之对应的物理地址空间(例如图中的物理地址空间5311G)处于被数据占用的状态,则将该物理地址空间作为待迁移的多个目标物理地址空间中的一个。

在步骤S43,对待迁移的多个目标物理地址空间中的数据执行迁移操作,得到与连续的物理地址申请请求相匹配的连续的物理地址段。

还以图5为例,对物理地址空间5311G进行迁移操作,例如可以将该物理地址空间中保存的数据移动到第一数据空间531的末位,迁移后的物理地址空间的分布可以参见图5(c)。在图5(c)中,将物理地址空间5311G中的数据进行迁移后,即可得到的没有被数据占用的多个物理地址空间5311A,…5311N,多个物理地址空间5311A,…5311N即为上述连续的物理地址段。

在一些实施方式中,在根据上述步骤S41-S43确定了与物理地址申请请求相匹配的连续的物理地址段后,即可控制主设备在该连续的地址段内执行数据的读写等操作。

根据本申请实施例提供的内存管理方法,通过在内存中设置用于保存预设可迁移进程数据的第一数据空间,在接收到连续的物理地址申请请求时,从第一数据空间中确定需要被迁移的目标物理地址空间,并对其中的数据进行迁移,从而得到满足需求的物理地址段。通过对预设可迁移进程的物理地址空间进行迁移,能够提高页表迁移的效率,同时,由于这一部分地址空间中所存储的数据的迁移对于整个系统的影响较小,从而能够释放CPU资源,提高用户体验。

在一些实施方式中,由于上述目标物理地址空间中的数据被迁移,因此还需要对与这些目标物理地址空间向对应的页表项进行更新。换句话说,在确定与连续的物理地址申请请求相匹配的连续的物理地址段后,本申请实施例的方法还包括:更新第一页表空间中与所述多个目标物理地址空间相匹配的多个第一页表项。

通过对上述多个目标物理地址空间的第一页表项进行更新,从而使得在后续的数据读写过程中,当主设备需要访问目标物理地址空间时,能够快速的从第一页表空间中获取到实际的物理地址。

上文结合图1-图5介绍了本申请的方法实施例,下面结合附图,对本申请的装置实施例进行详细的说明。应理解,装置实施例的描述与方法实施例相对应,因此,未详细描述的部分可以参见前文对方法实施例的描述。

图6是本申请实施例提供的管理内存的装置的示意性结构图,图6中的装置用于对内存进行管理,该内存可以是前文中任意实施例所述的内存,该内存包括第一内存地址空间,所述第一内存地址空间包括可迁移进程的第一数据空间和普通进程的第二数据空间,所述第一数据空间和所述第二数据空间包括多个物理地址空间。

图6中的装置60包括:

接收单元61,用于接收主设备发送的连续的物理地址申请请求。

第一确定单元62,用于当所述内存中不存在与所述连续的物理地址申请请求相匹配的连续物理地址段时,确定所述第一数据空间中待迁移的多个目标物理地址空间。

迁移单元63,用于对所述待迁移的多个目标物理地址空间执行迁移操作,得到与所述连续的物理地址申请请求相匹配的连续的物理地址段。

可选地,所述内存中还包括第二内存地址空间,所述第二内存地址空间包括:用于存储所述第一数据空间的多个页表项的第一页表空间和存储所述第二数据空间的多个页表项的第二页表空间;所述第二确定单元配置为:遍历所述第一页表空间中的所述多个页表项,确定所述多个页表项中的多个物理地址信息;根据所述多个物理地址信息和所述连续的物理地址申请请求所指示的地址段的大小,确定所述第一数据空间中需要迁移的多个目标物理地址空间。

可选地,装置60还包括:更新单元,配置为在对所述待迁移的多个目标物理地址空间执行迁移操作之后,更新所述第一页表空间中与所述连续的物理地址段相匹配的多个页表项的物理地址信息。

本申请实施例还提供了一种电子设备,图7为该电子设备70的示意性结构图。图7中的电子设备70包括:

至少一个主设备71,内存72以及硬件加速器73,其中,硬件加速器73设置在主设备71与内存72之间,用于对内存进行管理。

该内存72例如可以是前文图5中的所示的内存,该内存72包括第一内存地址空间,所述第一内存地址空间包括可迁移进程的第一数据空间和普通进程的第二数据空间,所述第一数据空间和所述第二数据空间包括多个物理地址空间。

硬件加速器73配置为:接收主设备发送的连续的物理地址申请请求;当当所述内存中不存在与所述连续的物理地址申请请求相匹配的连续物理地址段时,确定所述第一数据空间中待迁移的多个目标物理地址空间;对所述待迁移的多个目标物理地址空间执行迁移操作,以得到与所述连续的物理地址申请请求相匹配的连续的物理地址段。

所述至少一个主设备71配置为在利用硬件加速器73对待迁移的目标物理地址空间进行迁移而得到连续的物理地址段后,在该连续的物理地址段进行数据的读写。

可选地,所述内存中还包括第二内存地址空间,所述第二内存地址空间包括:用于存储所述第一数据空间的多个第一页表项的第一页表空间和存储所述第二数据空间的多个第二页表项的第二页表空间。

所述确定所述第一数据空间中待迁移的多个目标物理地址空间,包括:遍历所述第一页表空间中的所述多个第一页表项,确定所述多个第一页表项中的多个物理地址信息;根据所述多个物理地址信息和所述连续的物理地址申请请求所指示的地址段的大小,确定所述待迁移的多个目标数据空间。

可选地,在确定与所述连续的物理地址申请请求相匹配的连续的物理地址段之后,所述硬件加速器还用于:更新所述第一页表空间中与所述连续的物理地址段相匹配的多个页表项的物理地址信息。

图8是本申请实施例提供的电子设备80的示意性结构图,该电子设备例如可以是移动终端设备。该电子设备80包括存储器81和处理器82。其中,存储器81用于存储可执行代码,所述处理器82用于执行所述可执行代码,所述可执行代码被所述处理器执行时实现前文描述的方法步骤。

在一些实施方式中,该电子设备80还包括网络接口83,处理器82与外部设备的数据交换可以通过该网络接口83来实现。

本申请实施例还提供一种可读存储介质,用于存储程序。该计算机可读存储介质可应用于本申请实施例提供的终端设备或网络设备中,并且该程序使得计算机执行本申请各个实施例中的由终端设备或网络设备执行的方法。

本申请实施例还提供一种计算机程序产品。该计算机程序产品包括程序。该计算机程序产品可应用于本申请实施例提供的终端设备或网络设备中,并且该程序使得计算机执行本申请各个实施例中的由终端设备或网络设备执行的方法。

本申请实施例还提供一种计算机程序。该计算机程序可应用于本申请实施例提供的终端设备或网络设备中,并且该计算机程序使得计算机执行本申请各个实施例中的由终端设备或网络设备执行的方法。

在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其他任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本公开实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(Digital Subscriber Line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如数字视频光盘(Digital Video Disc,DVD))、或者半导体介质(例如固态硬盘(Solid State Disk,SSD))等。

本领域普通技术人员可以意识到,结合本公开实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本公开的范围。

在本公开所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本公开各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。

以上所述,仅为本公开的具体实施方式,但本公开的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应以所述权利要求的保护范围为准。

本文发布于:2023-04-14 05:33:36,感谢您对本站的认可!

本文链接:https://patent.en369.cn/patent/1/86981.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 369专利查询检索平台 豫ICP备2021025688号-20 网站地图