[发明专利]堆内存管理方法、装置、可读存储介质及电子设备有效
申请号: | 202011508383.5 | 申请日: | 2020-12-18 |
公开(公告)号: | CN112667152B | 公开(公告)日: | 2023-04-07 |
发明(设计)人: | 孙成思;孙日欣;胡伟;高嵊昊 | 申请(专利权)人: | 成都佰维存储科技有限公司 |
主分类号: | G06F3/06 | 分类号: | G06F3/06 |
代理公司: | 深圳市博锐专利事务所 44275 | 代理人: | 张鹏 |
地址: | 610000 四川省成都市高新*** | 国省代码: | 四川;51 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 内存 管理 方法 装置 可读 存储 介质 电子设备 | ||
本发明公开了堆内存管理方法、装置、可读存储介质及电子设备,对需要分配的堆内存,通过建立连续比特位查询表和索引位图,查询需要分配堆内存的分配地址,并用第二标识对对应的索引位图比特位进行标记,因此本发明不需要对堆内存进行合并与拆分,而是通过查表即可确定需要分配的堆内存地址,能够提高内存管理效率,并且不需要操作链表,只是简单的查表操作,方便应用至硬件进行加速处理,更有利于性能提升。
技术领域
本发明涉及数据存储技术领域,特别是涉及堆内存管理方法、装置、可读存储介质及电子设备。
背景技术
在嵌入式系统中,堆内存的管理是固件实现的必备环节,各种各样的处理流程或多或少都需要申请和释放堆内存,为了保证堆内存分配和释放的及时有效性,通常需要选择合适的堆内存算法。
众所周知,TLSF(Two Level Seperated Fit,二级分段内存匹配)算法是一个十分适用于嵌入式领域的堆内存分配算法;该算法使用隔离匹配机制来实现良好匹配策略。基本的隔离匹配机制使用一组空闲列表,每个数组都包含一定大小范围内的空闲块。为了加快访问空闲块以及访问管理大量的隔离列表,以减少碎片,列表数组已组织为两个级别数组。请参照图1,第一级数组将空闲内存块的大小根据2的幂进行分类,如16、32、64以此类推,第二级数组在第一级的基础上线性分段,例如在26这一段中,将其分为四个小区间,分别为[64,80),[80,96),[96,112)和[112,128)。每个数组列表具有关联的位图,用于标记对应的列表中是否有内存块,例如第一级的位图后四位为0100,即26这个区间有空闲块,对应的第二级的位图为0010,则[80,96)区间有空闲块,空闲块即为89Byte。
TLSF算法通过两级位图索引合适大小的内存块,如果不存在合适大小的内存,还需要对空闲内存块进行必要的拆分;同样的,在内存释放操作中,需要对相邻空闲的内存进行合并;由此可以看出,在一些典型场景下TLSF算法分配和释放的复杂性势必对固件性能造成一定的压力。
发明内容
本发明所要解决的技术问题是:提供堆内存管理方法、装置、可读存储介质及电子设备,在不对内存进行合并拆分的情况下实现堆内存管理,提高管理效率。
为了解决上述技术问题,本发明采用的一种技术方案为:
一种堆内存管理方法,包括步骤:
建立连续比特位查询表;
根据待管理的堆内存大小,建立索引位图,所述索引位图每一比特位的初始值为第一标识;
接收堆内存分配请求,根据所述连续比特位查询表、所述索引位图和请求分配的堆内存的大小,确定与所述请求分配的堆内存的大小匹配的堆内存的地址,并用第二标识标记所述请求分配的堆内存的地址对应的索引位图比特位;
所述第一标识与所述第二标识不同。
为了解决上述技术问题,本发明采用的另一种技术方案为:
一种堆内存管理装置,包括:
初始化模块,用于建立连续比特位查询表,根据待管理的堆内存大小,建立索引位图,所述索引位图每一比特位的初始值为第一标识;
分配模块,用于接收堆内存分配请求,根据所述连续比特位查询表、所述索引位图和请求分配的堆内存的大小,确定与所述请求分配的堆内存的大小匹配的堆内存的地址,并用第二标识标记所述请求分配的堆内存的地址对应的索引位图比特位;
所述第一标识与所述第二标识不同。
为了解决上述技术问题,本发明采用的另一种技术方案为:
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述堆内存管理方法中的各个步骤。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于成都佰维存储科技有限公司,未经成都佰维存储科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011508383.5/2.html,转载请声明来源钻瓜专利网。