动态内存管理装置及方法制造方法及图纸

技术编号:11373320 阅读:105 留言:0更新日期:2015-04-30 09:13
本发明专利技术实施例公开了动态内存管理装置及方法,涉及计算机领域,以至少解决现有技术中的动态内存管理方法无法保证异构多核非一致分级内存体系正常运行、无法在异构多核非一致分级内存体系下进行远端动态内存分配管理或效率低下的问题。具体方案为:动态内存管理装置部署在具有主-从结构的异构多核的主核子系统中,包括:至少一个第一分区管理单元;其中,所述至少一个第一分区管理单元中的每个第一分区管理单元中存储该第一分区管理单元对应的所述主核的远端动态内存的管理信息,所述主核的远端动态内存的管理信息用于对所述主核的远端动态内存进行申请与释放管理。本发明专利技术适用于内存管理中。

【技术实现步骤摘要】
动态内存管理装置及方法
本专利技术涉及计算机领域,尤其涉及动态内存管理装置及方法。
技术介绍
异构多核,是指将不同类型的核集成在一起。为了满足异构多核处理器架构中不同内存的需求、以及提高内存利用效率,目前很多异构多核处理器都采用了非一致分级内存体系架构。异构多核非一致分级内存体系架构如图1所示。对于该异构多核非一致分级内存体系,如何在软件层面合理有效利用不同层级内存,尽可能减少整体内存访问时延,是构建相关嵌入式系统性能竞争力的关键。目前,最常用的方法是采用主-从核软件架构,将其中一个核作为主核,负责全局任务的分配管理;并将其它核作为从核,负责从主核接收并执行任务。其中,主核在给从核分配任务的同时,将该任务的输入数据通过直接内存访问(DirectMemoryAccess,简称:DMA)搬移到从核近端动态内存。由于从核近端动态内存一般较小,当从核计算完成之后,一般需要再将输出数据通过DMA搬移到主核近端动态内存或高层级远端动态内存。这样,减少了从核在任务处理过程中的内存访问时延。然而,由于整个过程需要非常高的内存周转率,因此,主核对从核近端动态内存或高层级远端动态内存区的动态内存管理往往会成为整个系统的性能关键。现有技术中,存在如下两种动态内存管理方法:第一,如图2所示,将系统内所有动态数据分配区的内存块通过动态内存管理区统一管理。用户在申请动态内存时,只需指定需要申请的内存块大小,由内存管理算法选择某一个动态数据分配区进行分配即可。然而,由于用户无法指定(甚至不感知)内存块的具体分配位置,并且不同时刻分配的内存块所在的动态数据分配区不确定,因此该方法无法保证分配的内存块为从核的近端动态内存中的内存块。进而,由于异构多核非一致分级内存体系架构中,不同的核之间可能无法进行内存访问,因此将可能导致内存分配或者访问失败,从而无法保证系统的正常运行。第二,如图3所示,将系统内不同的动态内存区作为一个单独的分区来管理,该分区包括管理区以及动态数据分配区。用户在申请动态内存时,通过指定分区号来指定从哪个对应动态内存区上进行申请。然而,一方面,由于异构多核非一致分级内存体系架构中,不同的核之间可能无法进行内存访问,因此对于主核不能直接访问的内存,将导致无法进行远端动态内存分配管理(如左侧的核1无法在分区2上申请内存);另一方面,由于内存分区的管理区与动态数据分配区位于同一个动态内存区,因此当分区位于三级(Level3,简称:L3)内存或L4内存时,其申请和释放时延非常大。
技术实现思路
本专利技术的实施例提供动态内存管理装置及方法,以至少解决现有技术中的动态内存管理方法无法保证异构多核非一致分级内存体系正常运行、无法在异构多核非一致分级内存体系下进行远端动态内存分配管理或效率低下的问题,能够在保证异构多核非一致分级内存体系正常运行的前提下,提高远端动态内存管理的效率。为达到上述目的,本专利技术的实施例采用如下技术方案:第一方面,提供一种动态内存管理装置,所述动态内存管理装置部署在具有主-从结构的异构多核的主核子系统中,包括:至少一个第一分区管理单元;其中,所述至少一个第一分区管理单元中的每个第一分区管理单元中存储该第一分区管理单元对应的所述主核的远端动态内存的管理信息,所述主核的远端动态内存的管理信息用于对所述主核的远端动态内存进行申请与释放管理。在第一方面第一种可能的实现方式中,结合第一方面,所述主核的远端动态内存的管理信息包含:至少一个资源池的管理信息;其中,所述至少一个资源池的管理信息中每个资源池的管理信息包含该资源池中至少一个内存块的信息,所述至少一个内存块的大小相等,并且所述至少一个内存块位于该第一分区管理单元对应的所述主核的远端动态内存的连续内存区上。在第一方面第二种可能的实现方式中,结合第一方面第一种可能的实现方式,所述至少一个资源池的管理信息还包含:第一对应关系,所述第一对应关系为所述至少一个资源池中每个资源池的首地址与该资源池标识的对应关系。在第一方面第三种可能的实现方式中,结合第一方面第一种可能的实现方式或第一方面第二种可能的实现方式,所述至少一个内存块的信息包含比特位表,所述比特位表中的每个比特位分别用于表征所述至少一个内存块中每个内存块的使用状态,其中,所述使用状态包含:占用状态、或空闲状态。在第一方面第四种可能的实现方式中,结合第一方面第一种可能的实现方式至第一方面第三种可能的实现方式,所述至少一个资源池中每个资源池关联的动态内存的大小=该资源池中的内存块的总数×该资源池中每个内存块的大小。在第一方面第五种可能的实现方式中,结合第一方面至第一方面第四种可能的实现方式,所述动态内存管理装置还包括:第二分区管理单元;所述第二分区管理单元中存储所述主核的近端动态内存的管理信息,所述主核的近端动态内存的管理信息用于对所述主核的近端动态内存进行申请与释放管理。第二方面,提供一种动态内存管理方法,所述动态内存管理方法应用于动态内存管理装置,所述动态内存管理装置部署在具有主-从结构的异构多核的主核子系统中,包括:至少一个第一分区管理单元;其中,所述至少一个第一分区管理单元中的每个第一分区管理单元中存储该第一分区管理单元对应的所述主核的远端动态内存的管理信息,所述主核的远端动态内存的管理信息用于对所述主核的远端动态内存进行申请与释放管理;所述方法包括;获取第一内存块申请信息,所述第一内存块申请信息包括:所述第一内存块所在的动态内存对应的第一分区管理单元的分区标识、以及所述第一内存块的大小;根据所述第一内存块所在的动态内存对应的第一分区管理单元的分区标识,确定所述第一内存块所在的动态内存对应的第一分区管理单元;根据所述第一内存块所在的动态内存对应的第一分区管理单元中存储的该第一分区管理单元对应的所述主核的远端动态内存的管理信息、以及所述第一内存块的大小,从所述第一内存块所在的动态内存中分配所述第一内存块。在第二方面第一种可能的实现方式中,结合第二方面,所述主核的远端动态内存的管理信息包含:至少一个资源池的管理信息;其中,所述至少一个资源池的管理信息中每个资源池的管理信息包含该资源池中至少一个内存块的信息,所述至少一个内存块的大小相等,并且所述至少一个内存块位于该第一分区管理单元对应的所述主核的远端动态内存的连续内存区上;所述根据所述第一内存块所在的动态内存对应的第一分区管理单元中存储的该第一分区管理单元对应的所述主核的远端动态内存的管理信息、以及所述第一内存块的大小,从所述第一内存块所在的动态内存中分配所述第一内存块,包括:根据所述第一内存块所在的动态内存对应的第一分区管理单元中存储的至少一个资源池的管理信息,查找满足预设条件的资源池,所述预设条件包括:该资源池中内存块的大小不小于所述第一内存块的大小,并且该资源池中内存块的大小在第一资源池集合包含的资源池中内存块的大小中最小,所述第一资源池集合为所述至少一个资源池中内存块的大小不小于所述第一内存块的大小的资源池的集合;若存在满足所述预设条件的资源池,在所述满足所述预设条件的资源池上分配所述第一内存块。在第二方面第二种可能的实现方式中,结合第二方面第一种可能的实现方式,所述至少一个内存块的信息包含比特位表,所述比特位表中的每个比特位分别用于表征所述至少一个内存块中本文档来自技高网
...
动态内存管理装置及方法

【技术保护点】
一种动态内存管理装置,其特征在于,所述动态内存管理装置部署在具有主‑从结构的异构多核的主核子系统中,包括:至少一个第一分区管理单元;其中,所述至少一个第一分区管理单元中的每个第一分区管理单元中存储该第一分区管理单元对应的所述主核的远端动态内存的管理信息,所述主核的远端动态内存的管理信息用于对所述主核的远端动态内存进行申请与释放管理。

【技术特征摘要】
1.一种动态内存管理装置,其特征在于,所述动态内存管理装置部署在具有主-从结构的异构多核的主核子系统中,包括:至少一个第一分区管理单元;其中,所述至少一个第一分区管理单元中的每个第一分区管理单元中存储该第一分区管理单元对应的所述主核的远端动态内存的管理信息,所述主核的远端动态内存的管理信息用于对所述主核的远端动态内存进行申请与释放管理。2.根据权利要求1所述的动态内存管理装置,其特征在于,所述主核的远端动态内存的管理信息包含:至少一个资源池的管理信息;其中,所述至少一个资源池的管理信息中每个资源池的管理信息包含该资源池中至少一个内存块的信息,所述至少一个内存块的大小相等,并且所述至少一个内存块位于该第一分区管理单元对应的所述主核的远端动态内存的连续内存区上。3.根据权利要求2所述的动态内存管理装置,其特征在于,所述至少一个资源池的管理信息还包含:第一对应关系,所述第一对应关系为所述至少一个资源池中每个资源池的首地址与该资源池标识的对应关系。4.根据权利要求2所述的动态内存管理装置,其特征在于,所述至少一个内存块的信息包含比特位表,所述比特位表中的每个比特位分别用于表征所述至少一个内存块中每个内存块的使用状态,其中,所述使用状态包含:占用状态、或空闲状态。5.根据权利要求2所述的动态内存管理装置,其特征在于,所述至少一个资源池中每个资源池关联的动态内存的大小=该资源池中的内存块的总数×该资源池中每个内存块的大小。6.根据权利要求1-5任一项所述的动态内存管理装置,其特征在于,所述动态内存管理装置还包括:第二分区管理单元;所述第二分区管理单元中存储所述主核的近端动态内存的管理信息,所述主核的近端动态内存的管理信息用于对所述主核的近端动态内存进行申请与释放管理。7.一种动态内存管理方法,其特征在于,所述动态内存管理方法应用于动态内存管理装置,所述动态内存管理装置部署在具有主-从结构的异构多核的主核子系统中,包括:至少一个第一分区管理单元;其中,所述至少一个第一分区管理单元中的每个第一分区管理单元中存储该第一分区管理单元对应的所述主核的远端动态内存的管理信息,所述主核的远端动态内存的管理信息用于对所述主核的远端动态内存进行申请与释放管理;所述方法包括:获取第一内存块申请信息,所述第一内存块申请信息包括:所述第一内存块所在的动态内存对应的第一分区管理单元的分区标识、以及所述第一内存块的大小;根据所述第一内存块所在的动态内存对应的第一分区管理单元的分区标识,确定所述第一内存块所在的动态内存对应的第一分区管理单元;根据所述第一内存块所在的动态内存对应的第一分区管理单元中存储的该第一分区管理单元对应的所述主核的远端动态内存的管理信息、以及所述第一内存块的大小,从所述第一内存块所在的动态内存中分配所述第一内存块。8.根据权利要求7所述的方法,其特征在于,所述主核的远端动态内存的管理信息包含:至少一个资源池的管理信息;其中,所述至少一个资源池的管理信息中每个资源池的管理信息包含该资源池中至少一个内存块的信息,所述至少一个内存块的大小相等,并且所述至少一个内存块位于该第一分区管理单元对应的所述主核的远端动态内存的连续内存区上;所述根据所述第一内存块所在的动态内存对应的第一分区管理单元中存储的该第一分区管理单元对应的所述主核的远端动态内存的管理信息、以及所述第一内存块的大小,从所述第一内存块所在的动态内存中分配所述第一内存块,包括:根据所述第一内存块所在的动态内存对应的第一分区管理单元中存储的至少一个资源池的管理信息,查找满足预设条件的资源池,所述预设条件包括:该资源池中内存块的大小不小于所述第一内存块的大小,并且该资源池中内存块的大小在第一资源池集合包含的资源池中内存块的大小中最小,所述第一资源池集合为所述至少一个资源池中内存块的大小不小于所述第一内存块的大小的资源池的集合;若存在满足所述预设条件的资源池,在所述满足所述预设条件的资源池上分配所述第一内存块。9.根据权利要求8所述的方法,其特征在于,所述至少一个内存块的信息包含比特位表,所述比特位表中的每个比特位分别用于表征所述至少一...

【专利技术属性】
技术研发人员:高雄袁鹏
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:广东;44

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

1