一种内存分配方法及装置制造方法及图纸

技术编号:14552506 阅读:99 留言:0更新日期:2017-02-05 01:40
本发明专利技术公开了一种内存分配方法及装置,用以解决由于子系统只能从分配给自身的固定内存中申请内存,在自身的固定内存的剩余内存不足时导致应用异常或者整个系统异常的问题。该方法为:第一子系统确定第一内存空间不足,向第二子系统发送内存申请,所述内存申请中携带请求分配的内存空间的大小,由所述第二子系统根据所述内存申请在第二内存空间中为所述第一子系统分配内存空间,并向所述第一子系统返回分配结果;所述第一子系统接收所述第二子系统返回的分配结果,根据所述分配结果进行内存处理。

Memory allocation method and device

The invention discloses a memory allocation method and device, is used to solve the system because only from the fixed memory allocated to the application memory, or the whole system caused by the abnormal abnormal problems in fixed memory the remaining memory. The method is as follows: the first subsystem determines the first memory space, second to send a memory subsystem application, request allocation of memory space size carrying the memory for an application by the second subsystem according to the memory for the first subsystem allocates memory space in the second memory space, and return distribution the results from the first sub system; distribution of the results of the first subsystem receives the second subsystem returns, according to the results of memory allocation.

【技术实现步骤摘要】

本专利技术涉及存储
,尤其涉及一种内存分配方法及装置
技术介绍
系统级芯片(System-on-a-Chip,SOC)有多个子系统。以手机的SOC芯片为例,SOC芯片中有应用(Application,APP)子系统、调制解调器(modem)子系统、无线连接(WirelessConnectivity,WCN)、高级数字信号处理(advanceddigitalsignalprocessor,ADSP)等子系统,其中,APP负责运行andriod应用子系统、modem负责通信协议子系统、WCN负责无线连接系统、ADSP负责音频子系统等。这些子系统的内存都是提前分配好的,子系统可以访问的内存空间是固定的。目前,内存分配机制中采取为SOC中的多个子系统分配固定内存,在编译和运行的时候,子系统在分配的给自身的固定内存中运行,并在分配给自身的固定内存中申请和使用内存。分配子系统的固定内存的大小是通过系统分析以及经验值确定,但是在运行过程中子系统动态申请内存的大小很难准确计算和评估,并且智能系统的应用对内存的使用更是难以预计和评估,在子系统内存空间不足时,应用无法申请到内存将会导致应用或者系统的崩溃。子系统申请内存的具体过程如图1所示,子系统在进行内存申请时,从分配给自身的固定内存的内存池中分配内存,如果系统的空闲内存不足以满足本次内存申请,则该子系统进行内存的释放,包括释放该子系统对应的缓存占用的内存以及释放该子系统对应的后台应用使用的内存。内存释放后,子系统再次进行内存申请,如果此时分配给该子系统的固定内存仍然无法满足申请,则内存申请失败。
技术实现思路
本专利技术实施例提供一种内存分配方法及装置,用以解决由于子系统只能从分配给自身的固定内存中申请内存,在自身的固定内存的剩余内存不足时导致申请失败。本专利技术实施例提供的具体技术方案如下:本专利技术实施例提供了一种内存分配方法,包括:第一子系统确定第一内存空间不足,向第二子系统发送内存申请,所述内存申请中携带请求分配的内存空间的大小,由所述第二子系统根据所述内存申请在第二内存空间中为所述第一子系统分配内存空间,并向所述第一子系统返回分配结果;所述第一子系统接收所述第二子系统返回的分配结果,根据所述分配结果进行内存处理。较佳地,所述第一子系统接收所述第二子系统返回的分配结果,根据所述分配结果进行内存处理,包括:所述第一子系统若确定所述分配结果中携带有分配给所述第一子系统的内存空间的位置信息,根据所述分配结果中携带的所述位置信息,将所述第二子系统为所述第一子系统分配的内存空间合并到所述第一内存空间中,基于合并得到的第一内存空间进行内存分配。较佳地,所述第一子系统接收所述第二子系统返回的分配结果,根据所述分配结果进行内存处理,包括:所述第一子系统若确定所述分配结果中未携带分配给所述第一子系统的内存空间的位置信息,确定所述第二子系统为所述第一子系统分配内存失败。较佳地,所述第一子系统将所述第二子系统为所述第一子系统分配的内存空间合并到所述第一内存空间中,基于合并得到的第一内存空间进行内存分配,包括:所述第一子系统将所述第二子系统为所述第一子系统分配的内存空间映射到所述第一内存空间对应的可分配内存空间列表中,根据所述可分配内存空间列进行内存分配。较佳地,所述方法还包括:所述第一子系统释放所述第二子系统为所述第一子系统分配的内存空间后,将所述第二子系统为所述第一子系统分配的内存空间的位置信息发送给所述第二子系统,由所述第二子系统根据所述位置信息将为所述第一子系统分配的内存空间合并至所述第二内存空间。本专利技术实施例还提供了一种内存分配装置,包括:第一处理模块,用于确定第一内存空间不足,向第二子系统发送内存申请,所述内存申请中携带请求分配的内存空间的大小,由所述第二子系统根据所述内存申请在第二内存空间中为所述装置所在的第一子系统分配内存空间,并向所述第一子系统返回分配结果;第二处理模块,用于接收所述第二子系统返回的分配结果,根据所述分配结果进行内存处理。较佳地,所述第二处理模块具体用于:若确定所述分配结果中携带有分配给所述第一子系统的内存空间的位置信息,根据所述分配结果中携带的所述位置信息,将所述第二子系统为所述第一子系统分配的内存空间合并到所述第一内存空间中,基于合并得到的第一内存空间进行内存分配。较佳地,所述第二处理模块具体用于:若确定所述分配结果中未携带分配给所述第一子系统的内存空间的位置信息,确定所述第二子系统为所述第一子系统分配内存失败。较佳地,所述第二处理模块具体用于:将所述第二子系统为所述第一子系统分配的内存空间映射到所述第一内存空间对应的可分配内存空间列表中,根据所述可分配内存空间列进行内存分配。较佳地,还包括第三处理模块,用于:释放所述第二子系统为所述第一子系统分配的内存空间后,将所述第二子系统为所述第一子系统分配的内存空间的位置信息发送给所述第二子系统,由所述第二子系统根据所述位置信息将为所述第一子系统分配的内存空间合并至所述第二内存空间。基于上述技术方案,本专利技术实施例中,第一子系统在确定自身的内存空间不足时,向第二子系统发送内存申请,由第二子系统在自身的内存空间中为第一子系统分配内存空间,从而使得第一子系统在内存空间不足时可以向其它子系统申请内存,通过占用其它子系统的空闲内存空间,达到避免由于子系统自身的内存空间不足所导致的应用异常或者整个系统异常的问题。附图说明图1为子系统申请内存的具体过程示意图;图2为本专利技术实施例中子系统进行内存分配的详细方法流程示意图;图3为本专利技术实施例中子系统1向其它子系统申请内存的过程示意图;图4为本专利技术实施例中子系统1释放子系统2为子系统1分配的内存空间的过程示意图;图5为本专利技术实施例中内存分配装置结构示意图。具体实施方式为了使本专利技术的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本专利技术保护的范围。本专利技术实施例中,如图2所示,在多个子系统共存的芯片中,子系统进行内存分配的详细方法流程如下:步骤201:第一子系统确定第一内存空间不足,向第二子系统发送内存申...

【技术保护点】
一种内存分配方法,其特征在于,包括:第一子系统确定第一内存空间不足,向第二子系统发送内存申请,所述内存申请中携带请求分配的内存空间的大小,由所述第二子系统根据所述内存申请在第二内存空间中为所述第一子系统分配内存空间,并向所述第一子系统返回分配结果;所述第一子系统接收所述第二子系统返回的分配结果,根据所述分配结果进行内存处理。

【技术特征摘要】
1.一种内存分配方法,其特征在于,包括:
第一子系统确定第一内存空间不足,向第二子系统发送内存申请,所述内
存申请中携带请求分配的内存空间的大小,由所述第二子系统根据所述内存申
请在第二内存空间中为所述第一子系统分配内存空间,并向所述第一子系统返
回分配结果;
所述第一子系统接收所述第二子系统返回的分配结果,根据所述分配结果
进行内存处理。
2.如权利要求1所述的方法,其特征在于,所述第一子系统接收所述第
二子系统返回的分配结果,根据所述分配结果进行内存处理,包括:
所述第一子系统若确定所述分配结果中携带有分配给所述第一子系统的
内存空间的位置信息,根据所述分配结果中携带的所述位置信息,将所述第二
子系统为所述第一子系统分配的内存空间合并到所述第一内存空间中,基于合
并得到的第一内存空间进行内存分配。
3.如权利要求1所述的方法,其特征在于,所述第一子系统接收所述第
二子系统返回的分配结果,根据所述分配结果进行内存处理,包括:
所述第一子系统若确定所述分配结果中未携带分配给所述第一子系统的
内存空间的位置信息,确定所述第二子系统为所述第一子系统分配内存失败。
4.如权利要求2所述的方法,其特征在于,所述第一子系统将所述第二
子系统为所述第一子系统分配的内存空间合并到所述第一内存空间中,基于合
并得到的第一内存空间进行内存分配,包括:
所述第一子系统将所述第二子系统为所述第一子系统分配的内存空间映
射到所述第一内存空间对应的可分配内存空间列表中,根据所述可分配内存空
间列表进行内存分配。
5.如权利要求2或4所述的方法,其特征在于,所述方法还包括:
所述第一子系统释放所述第二子系统为所述第一子系统分配的内存空间

\t后,将所述第二子系统为所述第一子系统分配的内存空间的位置信息...

【专利技术属性】
技术研发人员:孔志强
申请(专利权)人:青岛海信移动通信技术股份有限公司
类型:发明
国别省市:山东;37

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

1