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