[发明专利]内存管理装置和方法有效
申请号: | 201580075454.8 | 申请日: | 2015-02-09 |
公开(公告)号: | CN107209716B | 公开(公告)日: | 2020-04-21 |
发明(设计)人: | 洪涛 | 申请(专利权)人: | 华为技术有限公司 |
主分类号: | G06F12/02 | 分类号: | G06F12/02 |
代理公司: | 北京三高永信知识产权代理有限责任公司 11138 | 代理人: | 张耀光 |
地址: | 518129 广东*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 内存 管理 装置 方法 | ||
一种内存管理装置和方法,涉及信息技术领域,所述方法包括:获取预定大小的待分配内存(S502);根据待分配内存创建共享内存池,该共享内存池中包括将待分配内存划分得到的n个长度为预定长度的内存块,该共享内存池用于提供至少两种不同长度的内存块的内存申请服务(S504);获取内存申请所对应的需求长度(S506);从共享内存池中获取一个长度为需求长度的内存块进行分配使用(S508)。该技术方案解决了相关技术存在的内存浪费严重,内存的总利用率低的问题;通过不同长度的内存块共用一个共享内存池,既可以保证在内存分配时应对不同长度内存块的峰值需求,又可以达到节约内存、提高内存的总利用率的效果。
技术领域
本发明涉及信息技术领域,特别涉及一种内存管理装置和方法。
背景技术
缓冲器管理单元(英文:Buffer Management Unit;简称:BMU)是一个设置于处理器内部、用于对内存进行管理的硬件装置。
BMU管理内存的方法为:BMU首先获取预定大小的待分配内存,然后根据上述待分配内存创建多个内存池,同一内存池中包含若干个长度相等的内存块。其中,内存池的创建数量,以及各个内存池中内存块的长度均可根据实际需求进行配置。比如,假设BMU创建了3个内存池,分别为内存池1、内存池2和内存池3。其中,内存池1中包含N1个长度为L1字节的内存块,内存池2中包含N2个长度为L2字节的内存块,内存池3中包含N3个长度为L3字节的内存块,L1、L2和L3两两均不相等。之后,BMU根据内存申请和释放的需要,对各个内存池中的内存块进行管理。比如,当内存申请所对应的需求长度为L2字节时,BMU检测内存池2中是否存在空闲的内存块;若存在,则从内存池2中选取一个空闲的内存块进行分配使用;若不存在,则内存申请失败。
在实现本发明的过程中,发明人发现上述技术至少存在以下问题:为了保证内存分配的可靠性,应对不同长度内存块的使用峰值,BMU需要分别给各个内存池配置满足使用峰值需求的内存块数量。然而,在实际使用中,多个内存池并不会同时达到使用峰值。比如,当内存池1达到使用峰值时,内存池2和内存池3未达到使用峰值;当内存池3达到使用峰值时,内存池1和内存池2未达到使用峰值。因此,上述技术存在内存浪费严重,内存的总利用率低的问题。
发明内容
为了解决上述技术存在的内存浪费严重,内存的总利用率低的问题,本发明实施例提供了一种内存管理装置和方法。所述技术方案如下:
第一方面,提供了一种内存管理装置,所述装置包括:
第一获取单元,用于获取预定大小的待分配内存;
创建单元,用于根据所述待分配内存创建共享内存池,所述共享内存池中包括将所述待分配内存划分得到的n个长度为预定长度的内存块,所述共享内存池用于提供至少两种不同长度的内存块的内存申请服务,所述至少两种不同长度中的每一种长度小于或等于所述预定长度,n≥2且n为正整数;
第二获取单元,用于获取内存申请所对应的需求长度,所述需求长度是所述至少两种不同长度中的一种;
分配单元,用于从所述共享内存池中获取一个长度为所述需求长度的内存块进行分配使用。
在第一方面的第一种可能的实施方式中,所述分配单元,具体用于:
检测所述共享内存池中是否存在空闲的且长度为所述需求长度的第一内存块;
若所述共享内存池中存在所述第一内存块,则将所述第一内存块进行分配使用。
结合第一方面的第一种可能的实施方式,在第一方面的第二种可能的实施方式中,所述分配单元,具体还用于:
若所述共享内存池中不存在所述第一内存块,则从所述共享内存池中选取空闲的且长度大于所述需求长度的第二内存块;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华为技术有限公司,未经华为技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201580075454.8/2.html,转载请声明来源钻瓜专利网。
- 上一篇:铁芯自动装配机
- 下一篇:一种碳糊电极生物传感器