[发明专利]一种内存管理方法、嵌入式系统和视频数据处理系统有效
申请号: | 201110383630.8 | 申请日: | 2011-11-28 |
公开(公告)号: | CN103136105B | 公开(公告)日: | 2017-06-09 |
发明(设计)人: | 杨帅;古莉;姚洋;鲍东山 | 申请(专利权)人: | 广东新岸线计算机系统芯片有限公司 |
主分类号: | G06F12/02 | 分类号: | G06F12/02;G11B20/10 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 100084 北京市海淀区中关村*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 内存 管理 方法 嵌入式 系统 视频 数据处理系统 | ||
技术领域
本发明属于内存管理方法领域,尤其涉及一种内存管理方法、嵌入式系统和视频数据处理系统。
背景技术
在嵌入式系统中,由于内存是有限的,需要将内存固定划分给操作系统和各个硬件单元,因此如何最有效地划分与使用内存,已成为亟待解决的问题。
如图1所示,在传统的嵌入式操作系统中,各个硬件单元之间是独立工作,当系统启动时,会按照系统中各个硬件单元的需求,为每一个硬件单元都单独划分一段内存供其专用,即硬件单元的专用内存。各硬件单元的专用内存,相互是独立的。由于在实际系统运行过程中,可能并不一定所有的硬件单元都同时工作,其中某一个或几个硬件单元可能并没有工作,那么预先为该不工作的硬件单元单独划分的专用内存就不会被使用,这样就会产生内存的浪费。
例如一个具体的场景,如图2所示,是一种传统的视频数据处理系统的结构示意图。在传统的、存在单独的视频解码单元、并且使用图像处理单元GPU做最终显示渲染的CPU芯片中,包括如下三个硬件单元:视频解码单元11、GPU13和显示单元15。
其中,视频解码单元11,用于将编码数据解码为可以显示的数据,例如将H264编码的数据解码为RGB数据。
图像处理的硬件单元13,即GPU(Graphic Processing Unit,图形处理单元):用于将解码后的数据进行处理,例如用于处理2D、3D数据,例如游戏;还用于处理普通的RGB数据,它会将所有经过它处理的数据最后传输到显示单元。
显示单元15:用于将GPU处理后的数据进行存储,并传输到显示器上进行显示,这样用户才能看到最终效果。
系统为每一个硬件单元都分别划分一段专用内存:视频解码单元专用内存12、GPU专用内存14和显示单元专用内存16。
其中,所谓专用内存,是在系统启动时,将内存为每个硬件单元提前划分好该硬件单元的专用内存,仅供该该硬件单元专用,划分好之后,就不能由其它硬件单元随意使用。
当播放视频时,包括以下步骤:
1、将数据传输到视频解码单元11,该视频解码单元将该数据进行解码后放入视频解码单元专用内存12;
2、将解码后的数据从视频解码单元12拷贝到GPU专用内存14,并经过GPU13进行处理;其中的数据拷贝工作可以由GPU13来做,也可由其它硬件单元来做;
3、将通过GPU13处理后的数据传输到显示单元专用内存16;
4、显示单元15从显示内存单元16中读取数据后进行显示。
采用上述方法,那么就会至少有一次数据拷贝的过程,这样会浪费多余的时间和功耗。
或者,不需要第2步,而是可以将解码后的数据的物理内存的地址通知给GPU13,由GPU13根据地址,从视频解码单元专用内存12中进行数据读取。虽然这种做法不会存在数据拷贝的问题,但是仍需要视频解码单元11和GPU13分别有各自的专用内存。由于它们是不同的硬件单元,需要各自的专用内存,各自分别处理。
目前的传统做法都是会在操作系统启动之前就规划好视频解码单元11、GPU13和显示单元15各个硬件单元各自需要的专用内存:视频解码单专用内存元12、GPU专用内存14和显示单元专用内存16,这些专用内存都具有独占性。因此,导致硬件单元占用了系统较大的内存,又可能不会被充分利用,从而造成了内存的浪费。
在嵌入式系统中,总内存的大小是有限的,如果单独给每一个硬件单元都划分专用内存,就会导致所有硬件单元会占用系统过多的内存,反而留给操作系统的内存减少,影响系统性能和速度。
发明内容
有鉴于此,本发明所要解决的技术问题是提供一种内存管理方法,从而达到为系统节省内存的目的。为了对披露的实施例的一些方面有一个基本的理解,下面给出了简单的概括。该概括部分不是泛泛评述,也不是要确定关键/重要组成元素或描绘这些实施例的保护范围。其唯一目的是用简单的形式呈现一些概念,以此作为后面的详细说明的序言。
在一些可选的实施例中,提供了一种内存管理方法,包括:
在嵌入式系统的内核中设置一个内存管理模块,用于对供硬件单元使用的内存进行管理;
操作系统启动时,为所述内存管理模块划分内存;
当一个或多个硬件单元需要使用内存时,向所述内存管理模块申请内存;
所述内存管理模块将其部分内存划分给该申请内存的一个或多个硬件单元;
当该申请内存的一个或多个硬件单元使用完内存后,释放该内存。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于广东新岸线计算机系统芯片有限公司,未经广东新岸线计算机系统芯片有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201110383630.8/2.html,转载请声明来源钻瓜专利网。