首页> 中国专利> 一种数字信号处理器嵌入式操作系统内存管理方法

一种数字信号处理器嵌入式操作系统内存管理方法

摘要

本发明提出一种数字信号处理器嵌入式操作系统内存管理方法,针对数字信号处理器的离散内存,根据其访问延时的长短进行优先级设定,延时越短的内存其优先级越高;操作系统的任务进程根据自身优先级申请对应优先级的内存空间。本发明针对数字信号处理器的离散内存块提出一种有效的内存管理方法,能够缩短对实时性要求较高的任务的内存访问时间,保障数字信号处理器的任务实时性要求。

著录项

  • 公开/公告号CN112799842A

    专利类型发明专利

  • 公开/公告日2021-05-14

    原文格式PDF

  • 申请/专利权人 安徽芯纪元科技有限公司;

    申请/专利号CN202110134817.8

  • 申请日2021-02-01

  • 分类号G06F9/50(20060101);

  • 代理机构34147 合肥律众知识产权代理有限公司;

  • 代理人赵娟

  • 地址 230000 安徽省合肥市高新区习友路3366号博微产业园系统协同中心7楼

  • 入库时间 2023-06-19 10:58:46

说明书

技术领域

本发明涉及内存管理技术领域,尤其是一种数字信号处理器嵌入式操作系统内存管理方法。

背景技术

嵌入式操作系统的内存管理方法通常是从整个内存中随机获取,主要有SLAB内存分配算法和顺序查找内存分配算法。SLAB内存分配算法是不断对空闲内存块进行对半切分,直至切出来的内存块刚好满足分配需求。内存分配时,首先计算满足需求的最小块是多大,若能够在对应链表中找到这样的块就直接分配,否则就搜索更大的块,并将其分为2个相等的子块,不断地重复这个过程,直至产生满足需求的最小块。顺序查找内存分配算法是从空闲内存块链表头部向后遍历链表,直至发现第一个合适的空闲内存块。例如,Best-Fit算法是从空闲内存块链表中寻找满足要求的最小空闲内存块;Next-Fit算法是将最后一次满足要求的内存块的位置记录下来,当新的分配请求到来时,从该位置向后搜索,直至找到合适的内存块。

以上两种内存分配算法均在嵌入式操作系统领域得到广泛应用,但针对具有内存空间离散、离散内存空间访问延时不同等特点的数字信号处理器,存在以下不足:1、均需要耗费较长时间寻找最适合的内存块,增加了任务获取内存时长;2、均未根据不同内存块的访问延时高低,对其进行分类,而任务获取内存所在区域是随机的,这可能使得实时性要求较高的任务分配到访问延时较高的内存,导致具有较高实时性需求的任务无法及时获取内存,保证数字信号处理器的任务实时性要求。

发明内容

针对现有内存管理方法中存在的不考虑任务实时性要求的内存分配算法,本发明提出一种数字信号处理器嵌入式操作系统内存管理方法。

一种数字信号处理器嵌入式操作系统内存管理方法,针对数字信号处理器的离散内存,根据其访问延时的长短进行优先级设定,延时越短的内存其优先级越高;操作系统的任务进程根据自身优先级申请对应优先级的内存空间。

进一步的,通过一级链表组织离散的内存块,通过二级链表组织每个内存块中的内存,同一内存块中的已分配内存在释放后与相邻未分配内存合并。

进一步的,内存分配流程包括以下步骤:

步骤1,将未分配内存的进程与其具有相应优先级的内存块匹配,该优先级记为P,并判断具有优先级P的内存块中的未匹配内存是否满足进程需求,若不满足需求,则执行步骤2,否则执行步骤3;

步骤2,P=P+1,再次判断具有优先级P的内存块中的未匹配内存是否满足进程需求,若不满足需求,再次执行步骤2,否则执行步骤3;

步骤3:未分配内存的进程从具有优先级P的内存块中申请内存。

本发明针对数字信号处理器的离散内存提出一种有效的内存管理方法,能够缩短对实时性要求较高的任务的内存访问时间,保障数字信号处理器的任务实时性要求。

附图说明

图1是具有优先级的内存块组合图;

图2是已匹配内存释放后与相邻未分配内存的合并图;

图3是本发明内存分配流程图。

具体实施方式

下面结合附图和具体实施方式对本发明作进一步详细的说明。本发明的实施例是为了示例和描述起见而给出的,而并不是无遗漏的或者将本发明限于所公开的形式。很多修改和变化对于本领域的普通技术人员而言是显而易见的。选择和描述实施例是为了更好说明本发明的原理和实际应用,并且使本领域的普通技术人员能够理解本发明从而设计适于特定用途的带有各种修改的各种实施例。

实施例1

一种数字信号处理器嵌入式操作系统内存管理方法,针对数字信号处理器的离散内存,根据其访问延时的长短进行优先级设定,延时越短的内存其优先级越高。例如,根据内存块访问延时的长短,将其分为0、1、2三个优先级,如图1所示,数值越低,优先级越高。

操作系统的任务进程自身也具有优先级,优先级最高的进程优先向优先级为0的内存块申请内存空间,优先级最低的进程只能向优先级为2的内存块申请内存空间。

通过一级链表组织离散的内存块,通过二级链表组织每个内存块中的内存,同一内存块中的已分配内存在释放后与相邻未分配内存合并,如图2所示,进程3释放的内存与未分配内存合并。

为了提高内存分配成功率,优先级高的进程可以向比起对应优先级低的内存块申请内存,具体内存分配流程如图3所示,包括以下步骤:

步骤1,将未分配内存的进程与其具有相应优先级的内存块匹配,该优先级记为P,并判断具有优先级P的内存块中的未匹配内存是否满足进程需求,若不满足需求,则执行步骤2,否则执行步骤3;

步骤2,P=P+1(即向具有低一级优先级的内存块申请内存空间),再次判断具有优先级P的内存块中的未匹配内存是否满足进程需,若不满足需求,再次执行步骤2(即再次向具有低一级优先级的内存块申请内存空间),否则执行步骤3;

步骤3:未分配内存的进程从具有优先级P的内存块中申请内存。

显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域及相关领域的普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都应属于本发明保护的范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号