CN103136105B - 一种内存管理方法、嵌入式系统和视频数据处理系统 - Google Patents
一种内存管理方法、嵌入式系统和视频数据处理系统 Download PDFInfo
- Publication number
- CN103136105B CN103136105B CN201110383630.8A CN201110383630A CN103136105B CN 103136105 B CN103136105 B CN 103136105B CN 201110383630 A CN201110383630 A CN 201110383630A CN 103136105 B CN103136105 B CN 103136105B
- Authority
- CN
- China
- Prior art keywords
- internal memory
- memory
- hardware
- management module
- hardware cell
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Memory System (AREA)
Abstract
本发明公开了一种内存管理方法,包括:在嵌入式系统的内核中设置一个内存管理模块,用于对供硬件单元使用的内存进行管理;操作系统启动时,为所述内存管理模块划分内存;当一个或多个硬件单元需要使用内存时,向所述内存管理模块申请内存;所述内存管理模块将其部分内存划分给该申请内存的一个或多个硬件单元;当该申请内存的一个或多个硬件单元使用完内存后,释放该内存。本发明还公开了一种嵌入式系统和视频数据处理系统。采用本发明的技术方案,减少了操作系统的给硬件单元提供的预留内存,减少了浪费;并且节省了至少一次拷贝,进而节省了时间和功耗,提高了系统性能。
Description
技术领域
本发明属于内存管理方法领域,尤其涉及一种内存管理方法、嵌入式系统和视频数据处理系统。
背景技术
在嵌入式系统中,由于内存是有限的,需要将内存固定划分给操作系统和各个硬件单元,因此如何最有效地划分与使用内存,已成为亟待解决的问题。
如图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,这些专用内存都具有独占性。因此,导致硬件单元占用了系统较大的内存,又可能不会被充分利用,从而造成了内存的浪费。
在嵌入式系统中,总内存的大小是有限的,如果单独给每一个硬件单元都划分专用内存,就会导致所有硬件单元会占用系统过多的内存,反而留给操作系统的内存减少,影响系统性能和速度。
发明内容
有鉴于此,本发明所要解决的技术问题是提供一种内存管理方法,从而达到为系统节省内存的目的。为了对披露的实施例的一些方面有一个基本的理解,下面给出了简单的概括。该概括部分不是泛泛评述,也不是要确定关键/重要组成元素或描绘这些实施例的保护范围。其唯一目的是用简单的形式呈现一些概念,以此作为后面的详细说明的序言。
在一些可选的实施例中,提供了一种内存管理方法,包括:
在嵌入式系统的内核中设置一个内存管理模块,用于对供硬件单元使用的内存进行管理;
操作系统启动时,为所述内存管理模块划分内存;
当一个或多个硬件单元需要使用内存时,向所述内存管理模块申请内存;
所述内存管理模块将其部分内存划分给该申请内存的一个或多个硬件单元;
当该申请内存的一个或多个硬件单元使用完内存后,释放该内存。
在一些可选的实施例中,为所述内存管理模块划分的内存的大小,是由操作系统预先根据整个系统在最复杂情况下硬件单元会使用的内存的最大估算值确定的。
在一些可选的实施例中,还包括:
所述内存管理模块工作在操作系统的内核之下。
在一些可选的实施例中,在操作系统的内核中定义一组接口,用于申请和释放所述内存管理模块所管理的内存。
在一些可选的实施例中,在硬件单元的驱动程序中实现对所述接口的调用。
在一些可选的实施例中,还包括:
按顺序从所述内存管理模块中内存的低地址到高地址进行划分。
在一些可选的实施例中,还包括:
检查所述内存管理模块的标记是否可用,如果可用,则申请成功,并将使用过的内存进行标记;当所述硬件单元使用完该内存后,将该内存标记为可用。
在一些可选的实施例中,还包括:
操作系统启动时,还为部分硬件单元划分专用内存;
当其他一个或多个没有被划分内存的硬件单元需要使用内存时,向已被划分专用内存的硬件单元申请内存;该被划分专用内存的硬件单元将其专用内存中的部分内存划分给申请内存的一个或多个硬件单元;
或,
当其他一个或多个没有被划分内存的硬件单元需要使用内存时,向所述内存管理模块申请内存;所述内存管理模块将其专用内存中的部分内存划分给申请内存的一个或多个硬件单元;
当该申请内存的一个或多个硬件单元使用完该内存后,释放该内存。
在一些可选的实施例中,为所述部分硬件单元划分的专用内存的大小,是根据该硬件单元工作需要的内存大小而确定的,为所述内存管理模块划分的内存的大小,是根据其它没有被划分内存的硬件单元的工作情况而确定的。
在一些可选的实施例中,还提供了一种内存管理方法,包括:
操作系统启动时,为部分硬件单元划分专用内存,用于对供硬件单元使用的内存进行管理;
当其它没有被划分专用内存的一个或多个硬件单元需要使用内存时,向被划分专用内存的硬件单元申请内存;
该被划分专用内存的硬件单元将其部分内存划分给该申请内存的一个或多个没有被划分专用内存的硬件单元;
当该申请内存的一个或多个硬件单元使用完内存后,释放该内存。
在一些可选的实施例中,为所述部分硬件单元划分的专用内存的大小,是由操作系统提前根据整个系统在最复杂情况下硬件单元会使用的内存的最大值估算而确定的。
在一些可选的实施例中,提供了一种嵌入式系统,包括:CPU、一个或多个硬件单元和一个内存管理模块;其中,
所述内存管理模块,用于对供硬件单元使用的内存进行管理,当一个或多个硬件单元申请内存时,对内存进行划分,将其部分内存划分给该申请内存的一个或多个硬件单元。
在一些可选的实施例中,所述内存管理模块中的内存,是由操作系统启动时进行划分的;
为所述内存管理模块划分的内存的大小,是由操作系统提前根据整个系统在最复杂情况下硬件单元会使用的内存的最大值估算而确定的。
在一些可选的实施例中,还包括:
第一硬件单元专用内存,用于存储所述第一硬件单元的数据,还用于当其它一个或多个硬件单元向第一硬件单元申请内存时,为该申请内存的一个或多个硬件单元提供内存。
在一些可选的实施例中,还包括:
所述第一硬件单元专用内存中的内存和内存管理模块中的内存,是由操作系统启动时进行划分的;
所述第一硬件单元专用内存中内存的大小,是根据该硬件单元工作需要的内存大小而确定的;所述内存管理模块中内存的大小,是根据其它没有被划分内存的硬件单元的工作情况而确定的。
在一些可选的实施例中,还提供了一种嵌入式系统,包括:CPU、一个或多个硬件单元和第一硬件单元专用内存;其中,
所述第一硬件单元专用内存,用于对供硬件单元使用的内存进行管理,当其它没有被划分专用内存的一个或多个硬件单元向被划分专用内存的硬件单元申请内存时,为该申请内存的硬件单元提供内存。
在一些可选的实施例中,还包括:
所述第一硬件单元专用内存中的内存,是由操作系统启动时进行划分的;
为第一硬件单元划分的专用内存的大小,是由操作系统提前根据整个系统在最复杂情况下硬件单元会使用的内存的最大值估算而确定的。
在一些可选的实施例中,还提供了一种视频数据处理系统,包括:CPU,
视频解码单元,用于将数据解码成能够用于显示的数据;
图像处理单元,用于将所述视频解码单元解码后的数据进行处理;
显示单元,用于将所述图像处理单元处理后的数据传输到显示器进行显示;
内存管理模块,用于对供硬件单元使用的内存进行管理,当一个或多个硬件单元申请内存时,对内存进行划分。
在一些可选的实施例中,当所述视频解码单元和/或所述图像处理单元需要使用内存时,向所述内存管理模块申请内存;
所述内存管理模块将内存划分给所述视频解码单元和/或所述图像处理单元;
当所述视频解码单元和/或所述图像处理单元使用完内存时,释放该内存。
在一些可选的实施例中,所述内存管理模块中的内存,是由操作系统启动后划分的;
为所述内存管理模块划分的内存的大小,是由操作系统提前根据整个系统在最复杂情况下硬件单元会使用的内存的最大值估算而确定的。
在一些可选的实施例中,还包括:
视频解码单元专用内存,用于存储所述视频解码单元解码后的数据,还用于当所述图像处理单元向所述视频解码单元申请内存时,对内存进行划分。
在一些可选的实施例中,当所述图像处理单元需要使用内存时,向所述视频解码单元申请内存;
所述视频解码单元将所述视频解码单元专用内存中的内存划分给所述图像处理单元;
当所述图像处理单元使用完内存时,释放该内存。
在一些可选的实施例中,所述视频解码单元专用内存中的内存和所述内存管理模块中的内存,是由操作系统启动后划分的;
所述视频解码单元专用内存中内存的大小,是根据所述视频解码单元工作时需要的内存而确定的,所述内存管理模块中内存的大小,是根据其它没有被划分内存的硬件单元的工作情况而确定的。
在一些可选的实施例中,还包括:
图像处理单元专用内存,用于存储所述图像处理单元处理后的数据,还用于当所述视频解码单元申请内存时,对内存进行划分。
在一些可选的实施例中,当所述视频解码单元需要使用内存时,向所述图像处理单元申请内存;
所述图像处理单元将所述图像处理单元专用内存中的内存划分给所述视频解码单元;
当所述视频解码单元使用完内存时,释放该内存。
在一些可选的实施例中,所述图像处理单元专用内存中的内存和所述内存管理模块中的内存,是由操作系统启动后划分的;
所述图像处理单元专用内存中内存的大小,是根据所述图像处理单元工作时需要的内存而确定的,所述内存管理模块中内存的大小,是根据其它没有被划分内存的硬件单元的工作情况而确定的。
综上所述,本发明提供了一种内存管理的方法,用于嵌入式操作系统,采用本发明的方案,减少了操作系统的给硬件单元提供的预留内存,减少了浪费;并且节省了至少一次拷贝,进而节省了时间和功耗,提高了系统性能。为了上述以及相关的目的,一个或多个实施例包括后面将详细说明并在权利要求中特别指出的特征。下面的说明以及附图详细说明某些示例性方面,并且其指示的仅仅是各个实施例的原则可以利用的各种方式中的一些方式。其它的益处和新颖性特征将随着下面的详细说明结合附图考虑而变得明显,所公开的实施例是要包括所有这些方面以及它们的等同。
说明书附图
图1是本发明背景技术提供的一种传统的嵌入式系统的结构示意图;
图2是本发明背景技术提供的一种传统的视频数据处理系统的结构示意图;
图3是本发明实施例二中提供的一种嵌入式系统的结构示意图;
图4是本发明实施例四中提供的一种嵌入式系统的结构示意图;
图5是本发明实施例四中提供的另一种嵌入式系统的结构示意图;
图6是本发明实施例六中提供的另一种嵌入式系统的结构示意图;
图7是本发明实施例七中提供的一种视频数据处理系统的结构示意图;
图8是本发明实施例八中提供的另一种视频数据处理系统的结构示意图;
图9是本发明实施例七中提供的又一种视频数据处理系统的结构示意图。
具体实施方式
以下描述和附图充分地示出本发明的具体实施方案,以使本领域的技术人员能够实践它们。其他实施方案可以包括结构的、逻辑的、电气的、过程的以及其他的改变。实施例仅代表可能的变化。除非明确要求,否则单独的组件和功能是可选的,并且操作的顺序可以变化。一些实施方案的部分和特征可以被包括在或替换其他实施方案的部分和特征。本发明的实施方案的范围包括权利要求书的整个范围,以及权利要求书的所有可获得的等同物。在本文中,本发明的这些实施方案可以被单独地或总地用术语“发明”来表示,这仅仅是为了方便,并且如果事实上公开了超过一个的发明,不是要自动地限制该应用的范围为任何单个发明或发明构思。
实施例一
在一些可选的实施例中,提供了一种内存管理方法,包括:在嵌入式系统的内核中设置一个内存管理模块,用于对硬件单元使用的内存进行管理;当操作系统启动时,不再为每个硬件单元划分单独的内存,而是为该内存管理模块划分内存;其中,该内存管理模块工作在操作系统的内核之下;当其中一个或多个硬件单元需要使用内存时,通过该硬件单元的驱动程序临时向该内存管理模块申请内存;当该硬件单元使用完申请到的内存后,释放该内存,即将其交还给内存管理模块。这样,我们就能够更加有效得使用内存。
具体地,内存管理模块有如下几种实现方法:
第一种方法,在操作系统的内核中定义一组接口,用于申请和释放内存管理模块所管理的内存,在硬件单元的驱动程序中实现对该接口的调用。例如:可以采用4K字节为最小单位,按顺序划分的方法。当硬件单元需要使用内存时,就按顺序从内存的低地址到高地址进行划分,首先检查内存的标记是否可以使用,如果可以使用,则申请成功,并将被使用的内存进行标记;如果检查结果为已被使用,则跳过这段内存,检查下一段内存,直到找到可以使用的内存为止;当内存使用完毕后,则将这段内存标记为无人使用,这样可以将这段内存释放并归还给内存管理模块。
第二种方法,由于第一种方法以4k字节为最小单位,在一些应用环境中,这个值可能会有点小,导致出现很多内存碎片,因此,也可以按照4M为最小单位进行划分。
第三种方法,也可以根据情况的灵活变动,可以根据所有硬件单元一次申请的最大值来确定,这样就能保证不会因为内存的碎片过多,影响使用。
第四种方法,还可以按照一个硬件单元在实际使用时会占用的最大内存来划分,例如前面举例中可以预先计算出硬件单元a在一次应用中最大会使用50M内存,那么我们在硬件单元a开始工作时一次性划分50M内存供其使用,在硬件单元a结束这次应用后再释放这50M内存。
在实际的使用环境中,情况可能会更复杂,那么就需要我们估计实际情况,采取更加灵活的内存划分方法。
在嵌入式系统中,系统的内存被划分为两部分,一部分内存是供操作系统使用的内存,另一部分是供各个硬件单元使用的内存。本发明实施例一中描述的内存管理模块,其作用就是对硬件单元使用的内存进行管理。系统将前面描述的“供各个硬件单元使用的内存”划分给内存管理模块进行管理。
另外,操作系统需要预先估算好至少需要把多大内存划分给内存管理模块,这个估算值就是根据整个系统在最复杂情况下硬件单元会使用的内存的最大值来确定的。通过估算,才能够保证在一个或多个硬件单元的任何工作情况下,内存都会足够使用,还不会浪费。即为所述内存管理模块划分的内存的大小,是由操作系统预先根据整个系统在最复杂情况下硬件单元会使用的内存的最大估算值确定的。
其中,本发明实施例中提到的“最复杂情况下”,均是指除CPU以外的硬件单元工作时所使用的内存的峰值。
采用本发明实施例一的方法,任意两个或多个硬件单元可以共用内存的方式,从而减少了操作系统给硬件单元提供的预留内存,减少了浪费,节省了内存;并且节省了至少一次拷贝,进而节省了时间和功耗,提高了系统性能。
实施例二
在一些可选的实施例中,提供了一种嵌入式系统的结构示意图。如图3所示,是本实施例三提供的一种嵌入式系统的结构示意图,该系统至少包括CPU21,N个硬件单元(第一硬件单元23、第二硬件单元24、第三硬件单元25、……第N硬件单元26)和内存管理模块22;其中,内存管理模块22,用于对供硬件单元使用的内存进行管理,具体为当一个或多个硬件单元申请内存时,对内存进行划分。其中,内存管理模块22中的内存,是由操作系统启动后划分的;内存管理模块22所划分到的内存大小,是根据所整个系统在最复杂情况下硬件单元会使用的内存的最大值估算而确定的。当一个或多个所述硬件单元向内存管理模块22申请内存时,内存管理模块22用于将其部分内存划分给该申请内存的一个或多个硬件单元;当该申请内存的一个或多个硬件单元使用完该内存时,释放该内存。例如,当第一硬件单元23向内存管理模块22申请内存,内存管理模块22用于将其部分内存划分给该第一硬件单元23,当第一硬件单元23使用完内存时,释放该内存。或者例如,当第一硬件单元23和第二硬件单元24都向内存管理模块22申请内存,内存管理模块22用于将其部分内存划分给该第一硬件单元23和第二硬件单元24,当第一硬件单元23和第二硬件单元24使用完内存后,释放该内存。
以上仅以两种情况举例说明,其他一个或多个硬件单元向内存管理模块申请内存的方案,均在本发明保护范围之内。
下面进行举例说明。假设一个系统有512M内存,a,b,c三个硬件单元各需要100M内存,当它们工作时的最复杂情况下,会使用200M内存。那么如果按照现有的传统方法,会给这三个硬件单元共划分300M内存,因此留给操作系统的只剩212M内存。而采用本发明实施例一的方法后,只需要为三个硬件单元预留200M内存,就可以满足这三个硬件单元的使用,从而留给操作系统的内存就会有312M了,节省了100M内存。
采用本发明实施例二的系统,任意两个或多个硬件单元可以共用内存的方式,从而减少了操作系统给硬件单元提供的预留内存,减少了浪费,节省了内存;并且节省了至少一次拷贝,进而节省了时间和功耗,提高了系统性能。
实施例三
在一些可选的实施例中,提供了另外一种内存管理方法,包括:不是把所有的硬件单元使用的内存都划分给内存管理模块,还可以给部分硬件单元也划分专用内存。为部分硬件单元划分的内存的大小,是根据该硬件单元工作需要的内存大小而定的。为内存管理模块划分的内存的大小,是根据其它没有被划分内存的硬件单元工作的情况而确定的。
具体还包括以下两种情况:
第一种情况:当其它没有被划分内存的一个或多个硬件单元需要使用内存时,可以向内存管理模块申请内存,内存管理模块将其部分内存划分给申请内存的一个或多个硬件单元;当该申请内存的一个或多个硬件单元用完该内存后,释放该内存。其它没有被划分内存的硬件单元使用内存,均由内存管理模块管理。
第二种情况:当没有被划分内存的一个或多个硬件单元需要使用内存时,还可以向已被划分专用内存的硬件单元申请内存,该被划分专用内存的硬件单元将其专用内存的部分内存划分给申请内存的一个或多个硬件单元;当该申请内存的一个或多个硬件单元用完该内存后,释放该内存。
采用本发明实施例三的方法,任意多个硬件单元,没有划分专用内存的硬件单元可以向已划分有内存的硬件单元申请内存,从而减少了操作系统给硬件单元提供的预留内存,减少了浪费,节省了内存;并且节省了至少一次拷贝,进而节省了时间和功耗,提高了系统性能。
实施例四
在一些可选的实施例中,提供了另外一种嵌入式操作系统。
如图4所示,是本发明实施例四中提供的一种嵌入式系统的结构示意图。该系统至少包括CPU31,内存管理模块32,N个硬件单元(第一硬件单元33、第二硬件单元34、第三硬件单元35……第N硬件单元36),和第一硬件单元专用内存37。其中,为第一硬件单元专用内存37所划分的内存的大小,是根据第一硬件单元工作时使用的内存而确定的。为内存管理模块32划分的内存的大小是根据第二硬件单元34、第三硬件单元35……和第N硬件单元36,也就是没有被划分专用内存的硬件单元的工作情况来确定的)。第二硬件单元34、第三硬件单元35……和第N硬件单元36中的一个或多个硬件单元申请内存,由内存管理模块32来进行管理。当第二硬件单元34……第N硬件单元36中的一个或多个硬件单元向内存管理模块32申请内存,内存管理模块32将其部分内存划分给申请内存的该硬件单元,当该硬件单元使用完内存后,释放该内存。
或者如图5所示,是本发明实施例四中提供的一种嵌入式系统的结构示意图。该系统至少包括CPU41,内存管理模块42,N个硬件单元(第一硬件单元43、第二硬件单元44、第三硬件单元45……第N硬件单元46),和第一硬件单元专用内存47。其中,为第一硬件单元专用内存47所划分的内存的大小,是根据第一硬件单元43工作时使用的内存而确定的。为内存管理模块42划分的内存的大小是根据第二硬件单元44、第三硬件单元45、……和第N硬件单元46,也就是其它没有被划分专用内存的硬件单元的工作情况来确定的。与图4不同的是,当第二硬件单元44、第三硬件单元45、……和第N硬件单元46中的一个或多个硬件单元需要使用内存时,也可以向第一硬件单元43申请内存,第一硬件单元43将第一硬件单元专用内存46的部分内存划分给申请内存的硬件单元,当该硬件单元使用完内存后,释放该内存。
以上仅以两种情况举例说明,其他不是给所有硬件单元划分专用内存,而是仅给部分硬件单元划分专用内存的方案,均在本发明保护范围之内。
下面进行举例说明。假设一个系统有512M内存,a,b,c三个硬件单元各需要100M内存,当它们工作时的最复杂情况下,会使用200M内存。那么如果按照现有的传统方法,会给这三个硬件单元共划分300M内存,因此留给操作系统的只剩212M内存。而采用本发明实施例二的方法后,只需要为其中部分硬件单元:可以只为硬件单元a预留100M专用内存,为内存管理模块预留100M内存,当硬件单元b,或硬件单元c,或硬件单元b和c需要使用内存时,可以向内存管理模块申请,也可以向a申请,从而可以满足这三个硬件单元的使用,因此留给操作系统的内存就会有312M了,节省了100M内存。
采用本发明实施例四的系统,任意多个硬件单元,没有划分专用内存的硬件单元可以向内存管理模块申请内存,也可以向已被划分内存的硬件单元申请内存,从而减少了操作系统给硬件单元提供的预留内存,减少了浪费,节省了内存;并且节省了至少一次拷贝,进而节省了时间和功耗,提高了系统性能。
实施例五
在一些可选的实施例中,提供了另外一种内存管理方法,包括:操作系统启动时,为部分硬件单元划分专用内存,用于对供硬件单元使用的内存进行管理,而且不设置内存管理模块。当其它没有被划分内存的一个或多个硬件单元需要使用内存时,可以向已被划分专用内存的硬件单元申请内存,该被划分专用内存的硬件单元将其专用内存的部分内存划分给申请内存的一个或多个硬件单元;当该申请内存的一个或多个硬件单元用完该内存后,释放该内存。
在嵌入式系统中,系统的内存被划分为两部分:一部分内存是供操作系统使用的内存,另一部分是供各个硬件单元使用的内存。本发明实施例五中描述的被划分专用内存的部分硬件单元,对其它硬件单元使用内存进行管理。系统将前面描述的“供各个硬件单元使用的内存”划分给该硬件单元专用内存。
另外,为部分硬件划分的专用内存的大小,是由操作系统预先根据整个系统在最复杂情况下硬件单元会使用的内存的最大值估算而确定的。操作系统需要提前估算好至少需要把多大内存划分给该硬件单元专用内存,这个估算值就是根据整个系统在最复杂情况下硬件单元会使用的内存的最大值来确定的。通过估算,才能够保证在一个或多个硬件单元的任何工作情况下,内存都会足够使用,还不会浪费。
采用本发明实施例五的方法,任意多个硬件单元,没有划分专用内存的硬件单元可以向已划分有内存的硬件单元申请内存,从而减少了操作系统给硬件单元提供的预留内存,减少了浪费,节省了内存;并且节省了至少一次拷贝,进而节省了时间和功耗,提高了系统性能。
实施例六
在一些可选的实施例中,提供了另外一种嵌入式操作系统。
如图6所示,是本发明实施例四中提供的一种嵌入式系统的结构示意图。该系统至少包括CPU51,N个硬件单元(第一硬件单元52、第二硬件单元53、第三硬件单元54……第N硬件单元55)和第一硬件单元专用内存56。其中,为第一硬件单元52划分的专用内存,即第一硬件单元专用内存56的大小,是由操作系统提前根据整个系统在最复杂情况下硬件单元会使用的内存的最大值估算而确定的。当第二硬件单元53需要使用内存时,向第一硬件单元52申请内存,第一硬件单元52将第一硬件单元专用内存56的部分内存划分给第二硬件单元53,当第二硬件单元53使用完内存时,释放该内存。或者,第二硬件单元53和第三硬件单元54向第一硬件单元52申请内存,第一硬件单元52将第一硬件单元专用内存56的部分内存划分给第二硬件单元53和第三硬件单元54,当第二硬件单元53和第三硬件单元54使用完内存后,释放该内存。
以上仅以两种情况举例说明,其他不是给所有硬件单元划分专用内存,而是仅给部分硬件单元划分专用内存,当一个或多个没有被划分专用内存的硬件单元向已被划分专用内存的硬件单元申请内存,即多个硬件单元共用内存的方案,均在本发明保护范围之内。
下面进行举例说明。假设一个系统有512M内存,a,b,c三个硬件单元各需要100M内存,当系统在最复杂情况下,硬件单元会使用的内存的最大值是200M内存。那么如果按照现有的传统方法,会给这三个硬件单元共划分300M内存,因此留给操作系统的只剩212M内存。而采用本发明实施例二的方法后,只需要为其中部分硬件单元:硬件单元a和硬件单元b各预留100M内存,当硬件单元c需要使用内存时,向a或b申请,就可以满足这三个硬件单元的使用;或者只为硬件单元a预留200M内存,当硬件单元b,或硬件单元c或硬件单元b和c需要使用内存时,向a申请,也可以满足这三个硬件单元的使用,从而留给操作系统的内存就会有312M了,节省了100M内存。
采用本发明实施例六的系统,任意多个硬件单元,没有划分专用内存的硬件单元可以向已被划分内存的硬件单元申请内存,从而减少了操作系统给硬件单元提供的预留内存,减少了浪费,节省了内存;并且节省了至少一次拷贝,进而节省了时间和功耗,提高了系统性能。
实施例七
在一些可选的实施例中,提供了一种视频数据处理系统。
如图7所述,是本发明实施例七中提供的一种视频数据处理系统的结构示意图。本发明实施例七是相对于实施例一和二,在视频数据处理系统中的具体应用。视频数据处理系统包括:CPU61,视频解码单元63,用于将数据解码成能够用于显示的数据;图像处理单元GPU64,用于将所述视频解码单元解码后的数据进行处理;显示单元65,用于将所述图像处理单元处理后的数据传输到显示器进行显示;内存管理模块62,用于统一管理硬件单元所使用的内存,当一个或多个硬件单元申请内存时,对内存进行划分。当视频解码单元63需要使用内存时,向内存管理模块62申请内存;内存管理模块62将其部分内存划分给所述视频解码单元63;当视频解码单元63使用完内存时,释放该内存。当图像处理单元64需要使用内存时,向内存管理模块62申请内存;内存管理模块62将其部分内存划分给图像处理单元64;当图像处理单元64使用完内存时,释放该内存。当视频解码单元63和图像处理单元64同时需要使用内存时,同时向内存管理模块62申请内存;内存管理模块62将内存划分给视频解码单元63和图像处理单元64;当视频解码单元63和图像处理单元64使用完内存时,释放该内存。内存管理模块62中的内存,是由操作系统启动后统一划分的;为内存管理模块62划分的内存的大小,是由操作系统提前根据整个系统在最复杂情况下硬件单元会使用的内存的最大值估算而确定的。
在本发明实施例七中,不需要给视频解码单元63和GPU64分别划分专用内存,而是提前在内核中设置好内存管理模块62,当操作系统启动时,统一将内存划分给内存管理模块62。内存管理模块62用于统一管理硬件单元所使用的内存,当一个或多个硬件单元申请内存时,对内存进行划分。当视频解码单元63需要使用内存时,通过视频解码单元63的驱动程序向内存管理模块62申请内存;或者,当GPU64需要使用内存时,通过GPU44的驱动程序向内存管理模块62申请内存;或者,当视频解码单元63和GPU64同时需要使用内存时,通过视频解码单元63的驱动程序和GPU64的驱动程序同时向内存管理模块62申请内存,这样我们就节省了视频解码单元63和GPU64各自单独占用的专用内存,从而节省了系统内存,同时省去了一次数据拷贝,提高了系统性能。
下面进行举例说明。如果芯片系统总共有512M内存,视频解码单元和GPU各自需要100M内存,当视频解码单元和GPU共同工作时的最复杂情况下,会使用150M内存,那么按照现有传统的做法,将会给这两个硬件单元一共预留200M内存,留给操作系统的就只有312M内存;而采用本发明实施例七的系统后,只需要给内存管理模块预留150M内存就可以满足视频解码模块和GPU模块的使用,因此留给操作系统362M内存,从而用于硬件单元的内存减少了50M。
实施例八
本发明实施例八是另一种在视频数据处理系统中的具体应用。
在一些可选的实施例中,提供了一种视频数据处理系统。如图8所示,不需要给视频解码单元划分专用内存,只给GPU划分单独的专用内存:GPU专用内存74。当视频解码单元71需要使用内存时,通过视频解码单元71的驱动程序向GPU72的驱动程序申请内存,这样我们就节省了视频解码单元占用的内存,从而节省了系统内存,同时省去了一次数据拷贝,提高了系统性能。
下面进行举例说明。如果芯片系统总共有512M内存,视频解码单元71占用100M内存,GPU72占用100M内存。那么留给操作系统使用的内存就只有312M内存。如果省去视频解码单元71的100M专用内存,让视频解码等单元71和GPU72共用一段内存,显然100M是不够的。如果我们给GPU72划分200M内存,又无法真正节省内存。但是,由于在大部分嵌入式系统中,在播放视频时,GPU72不会占用太多内存,因此GPU72也不需要使用全部100M内存。因此,此时我们仅给GPU72划分150M内存,即GPU专用内存74位150M,视频解码等单元71和GPU72共用该GPU专用内存74,就能满足视频播放时,GPU72和视频解码单元71的总体内存需求,因此与传统方法相比,本发明实施例四的方法节省了50M内存。
实施例九
本发明实施例九是又一种在视频数据处理系统中的具体应用。
在一些可选的实施例中,提供了另外一种视频数据处理系统。如图9所示,也可以不给GPU82划分专用内存,只给视频解码单元81划分单独的专用内存:视频解码单元专用内存84。当GPU82需要使用内存时,通过GPU82的驱动程序向视频解码单元81的驱动程序申请内存,这样我们就节省了GPU占用的内存,从而节省了系统内存,同时省去了一次数据拷贝,提高了系统性能。
下面进行举例说明。如果芯片系统总共有512M内存,视频解码单元81占用100M内存,GPU82占用100M内存。那么留给操作系统使用的内存就只有312M内存。如果省去视频解码单元81的100M专用内存,让视频解码等单元81和GPU82共用一段内存,显然100M是不够的。如果我们给GPU82划分200M内存,又无法真正节省内存。但是,由于在大部分嵌入式系统中,在播放视频时,GPU82不会占用太多内存,因此GPU82也不需要使用全部100M内存。因此,此时我们仅给视频解码单元81划分150M内存,视频解码等单元81和GPU82共用该视频解码单元专用内存84,就能满足视频播放时,GPU82和视频解码单元81的总体内存需求,因此与传统方法相比,本发明实施例四的方法节省了50M内存。
因此,采用本发明实施例一至九提供的内存管理的技术方案,减少了操作系统的给硬件单元提供的预留内存,减少了浪费;并且节省了至少一次拷贝,进而节省了时间和功耗,提高了系统性能。
除非另外具体陈述,术语比如处理、计算、运算、确定、显示等等可以指一个或更多个处理或者计算系统、或类似设备的动作和/或过程,所述动作和/或过程将表示为处理系统的寄存器或存储器内的物理(如电子)量的数据操作和转换成为类似地表示为处理系统的存储器、寄存器或者其他此类信息存储、发射或者显示设备内的物理量的其他数据。信息和信号可以使用多种不同的技术和方法中的任何一种来表示。例如,在贯穿上面的描述中提及的数据、指令、命令、信息、信号、比特、符号和码片可以用电压、电流、电磁波、磁场或粒子、光场或粒子或者其任意组合来表示。
应该明白,公开的过程中的步骤的特定顺序或层次是示例性方法的实例。基于设计偏好,应该理解,过程中的步骤的特定顺序或层次可以在不脱离本公开的保护范围的情况下得到重新安排。所附的方法权利要求以示例性的顺序给出了各种步骤的要素,并且不是要限于所述的特定顺序或层次。
在上述的详细描述中,各种特征一起组合在单个的实施方案中,以简化本公开。不应该将这种公开方法解释为反映了这样的意图,即,所要求保护的主题的实施方案需要比清楚地在每个权利要求中所陈述的特征更多的特征。相反,如所附的权利要求书所反映的那样,本发明处于比所公开的单个实施方案的全部特征少的状态。因此,所附的权利要求书特此清楚地被并入详细描述中,其中每项权利要求独自作为本发明单独的优选实施方案。
本领域技术人员还应当理解,结合本文的实施例描述的各种说明性的逻辑框、模块、电路和算法步骤均可以实现成电子硬件、计算机软件或其组合。为了清楚地说明硬件和软件之间的可交换性,上面对各种说明性的部件、框、模块、电路和步骤均围绕其功能进行了一般地描述。至于这种功能是实现成硬件还是实现成软件,取决于特定的应用和对整个系统所施加的设计约束条件。熟练的技术人员可以针对每个特定应用,以变通的方式实现所描述的功能,但是,这种实现决策不应解释为背离本公开的保护范围。
用于执行本申请所述功能的通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其它可编程逻辑器件、分立门或者晶体管逻辑、分立硬件组件或者其任意组合,可以实现或执行结合本文的实施例所描述的各种说明性的逻辑框图、模块和电路。通用处理器可以是微处理器,或者,该处理器也可以是任何常规的处理器、控制器、微控制器或者状态机。处理器也可能实现为计算设备的组合,例如,DSP和微处理器的组合、多个微处理器、一个或多个微处理器与DSP内核的结合,或者任何其它此种结构。
结合本文的实施例所描述的方法或者算法的步骤可直接体现为硬件、由处理器执行的软件模块或其组合。软件模块可以位于RAM存储器、闪存、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、移动磁盘、CD-ROM或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质连接至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于ASIC中。该ASIC可以位于用户终端中。当然,处理器和存储介质也可以作为分立组件存在于用户终端中。
为使本领域内的任何技术人员能够实现或者使用本发明,上面对所公开实施例进行了描述。对于本领域技术人员来说;这些实施例的各种修改方式都是显而易见的,并且本文定义的一般原理也可以在不脱离本公开的精神和保护范围的基础上适用于其它实施例。因此,本公开并不限于本文给出的实施例,而是与本申请公开的原理和新颖性特征的最广范围相一致。
对于软件实现,本申请中描述的技术可用执行本申请所述功能的模块(例如,过程、函数等)来实现。这些软件代码可以存储在存储器单元并由处理器执行。存储器单元可以实现在处理器内,也可以实现在处理器外,在后一种情况下,它经由各种手段以通信方式耦合到处理器,这些都是本领域中所公知的。
而且,本文所述的各个方面或特征可以作为使用标准的程序设计和/或工程技术的方法、装置或制品来实现。本文所使用的术语“制品”是要包括可以从任何计算机可读的设备、载波或介质来访问的计算机程序。例如,计算机可读的介质可以包括但不限于磁存储设备(例如,硬盘、软盘、磁带等)、光盘(例如,紧凑光盘(CD)、数字通用光盘(DVD)等)、智能卡以及闪速存储设备(例如,EPROM、卡、棒、钥匙驱动器等)。此外,本文描述的各种存储介质表示为用于存储信息的一个或多个设备和/或其它机器可读介质。术语“机器可读介质”包括但不限于能够存储、包含和/或携带指令和/或数据的无线信道和各种其它介质。
上文的描述包括一个或多个实施例的举例。当然,为了描述上述实施例而描述部件或方法的所有可能的结合是不可能的,但是本领域普通技术人员应该认识到,各个实施例可以做进一步的组合和排列。因此,本文中描述的实施例旨在涵盖落入所附权利要求书的保护范围内的所有这样的改变、修改和变型。此外,就说明书或权利要求书中使用的术语“包含”,该词的涵盖方式类似于术语“包括”,就如同“包括,”在权利要求中用作衔接词所解释的那样。此外,使用在权利要求书的说明书中的任何一个术语“或者”是要表示“非排它性的或者”。
Claims (15)
1.一种内存管理方法,其特征在于,包括:
在嵌入式系统的内核中设置一个内存管理模块,用于对供硬件单元使用的内存进行管理;
操作系统启动时,为所述内存管理模块划分内存;
当一个或多个硬件单元需要使用内存时,向所述内存管理模块申请内存;
所述内存管理模块将其部分内存划分给该申请内存的一个或多个硬件单元;
当该申请内存的一个或多个硬件单元使用完内存后,释放该内存;
所述方法还包括:
操作系统启动时,还为部分硬件单元划分专用内存;
当其他一个或多个没有被划分内存的硬件单元需要使用内存时,向已被划分专用内存的硬件单元申请内存;该被划分专用内存的硬件单元将其专用内存中的部分内存划分给申请内存的一个或多个硬件单元;
或,
当其他一个或多个没有被划分内存的硬件单元需要使用内存时,向所述内存管理模块申请内存;所述内存管理模块将其专用内存中的部分内存划分给申请内存的一个或多个硬件单元;
当该申请内存的一个或多个硬件单元使用完该内存后,释放该内存。
2.如权利要求1所述的方法,其特征在于:
为所述内存管理模块划分的内存的大小,是由操作系统预先根据整个系统在最复杂情况下硬件单元会使用的内存的最大估算值确定的。
3.如权利要求1所述的方法,其特征在于,还包括:
所述内存管理模块工作在操作系统的内核之下。
4.如权利要求3所述的方法,其特征在于:
在操作系统的内核中定义一组接口,用于申请和释放所述内存管理模块所管理的内存。
5.如权利要求4所述的方法,其特征在于:
在硬件单元的驱动程序中实现对所述接口的调用。
6.如权利要求5所述的方法,其特征在于,还包括:
按顺序从所述内存管理模块中内存的低地址到高地址进行划分。
7.如权利要求6所述的方法,其特征在于,还包括:
检查所述内存管理模块的标记是否可用,如果可用,则申请成功,并将使用过的内存进行标记;当所述硬件单元使用完该内存后,将该内存标记为 可用。
8.如权利要求7所述的方法,其特征在于:
为所述部分硬件单元划分的专用内存的大小,是根据该硬件单元工作需要的内存大小而确定的,为所述内存管理模块划分的内存的大小,是根据其它没有被划分内存的硬件单元的工作情况而确定的。
9.一种视频数据处理系统,其特征在于,包括:CPU,
视频解码单元,用于将数据解码成能够用于显示的数据;
图像处理单元,用于将所述视频解码单元解码后的数据进行处理;
显示单元,用于将所述图像处理单元处理后的数据传输到显示器进行显示;
内存管理模块,用于对供硬件单元使用的内存进行管理,当一个或多个硬件单元申请内存时,对内存进行划分;
当所述视频解码单元和/或所述图像处理单元需要使用内存时,向所述内存管理模块申请内存;
所述内存管理模块将内存划分给所述视频解码单元和/或所述图像处理单元;
当所述视频解码单元和/或所述图像处理单元使用完内存时,释放该内存;
或,当所述图像处理单元需要使用内存时,向所述视频解码单元申请内存;
所述视频解码单元将所述视频解码单元专用内存中的内存划分给所述图像处理单元;
当所述图像处理单元使用完内存时,释放该内存。
10.如权利要求9所述的系统,其特征在于:
所述内存管理模块中的内存,是由操作系统启动后划分的;
为所述内存管理模块划分的内存的大小,是由操作系统提前根据整个系统在最复杂情况下硬件单元会使用的内存的最大值估算而确定的。
11.如权利要求9所述的系统,其特征在于,还包括:
视频解码单元专用内存,用于存储所述视频解码单元解码后的数据,还用于当所述图像处理单元向所述视频解码单元申请内存时,对内存进行划分。
12.如权利要求11所述的系统,其特征在于:
所述视频解码单元专用内存中的内存和所述内存管理模块中的内存,是由操作系统启动后划分的;
所述视频解码单元专用内存的内存的大小,是根据所述视频解码单元工 作时需要的内存而确定的,所述内存管理模块中内存的大小,是根据其它没有被划分内存的硬件单元的工作情况而确定的。
13.如权利要求9所述的系统,其特征在于,还包括:
图像处理单元专用内存,用于存储所述图像处理单元处理后的数据,还用于当所述视频解码单元申请内存时,对内存进行划分。
14.如权利要求13所述的系统,其特征在于:
当所述视频解码单元需要使用内存时,向所述图像处理单元申请内存;
所述图像处理单元将所述图像处理单元专用内存中的内存划分给所述视频解码单元;
当所述视频解码单元使用完内存时,释放该内存。
15.如权利要求13或14所述的系统,其特征在于:
所述图像处理单元专用内存中的内存和所述内存管理模块中的内存,是由操作系统启动后划分的;
所述图像处理单元专用内存中内存的大小,是根据所述图像处理单元工作时需要的内存而确定的,所述内存管理模块中内存的大小,是根据其它没有被划分内存的硬件单元的工作情况而确定的。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110383630.8A CN103136105B (zh) | 2011-11-28 | 2011-11-28 | 一种内存管理方法、嵌入式系统和视频数据处理系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110383630.8A CN103136105B (zh) | 2011-11-28 | 2011-11-28 | 一种内存管理方法、嵌入式系统和视频数据处理系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103136105A CN103136105A (zh) | 2013-06-05 |
CN103136105B true CN103136105B (zh) | 2017-06-09 |
Family
ID=48495955
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110383630.8A Active CN103136105B (zh) | 2011-11-28 | 2011-11-28 | 一种内存管理方法、嵌入式系统和视频数据处理系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103136105B (zh) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103455436B (zh) * | 2013-09-23 | 2016-09-14 | 北京经纬恒润科技有限公司 | 一种ram检测方法及系统 |
CN104133782B (zh) * | 2014-07-04 | 2017-08-22 | 深圳英飞拓科技股份有限公司 | 一种数字监控平台内存自适应管理方法及装置 |
CN104268093A (zh) * | 2014-09-22 | 2015-01-07 | 可牛网络技术(北京)有限公司 | 内存分配方法及装置 |
CN105630599B (zh) * | 2014-10-28 | 2019-02-15 | 龙芯中科技术有限公司 | 基于32/64位混合操作系统的显存分配方法及装置 |
CN104360955B (zh) * | 2014-12-08 | 2018-08-14 | 山东工商学院 | 一种应用独立缓存系统及方法 |
CN104881261B (zh) * | 2015-05-20 | 2017-09-22 | 福州瑞芯微电子股份有限公司 | 一种合理利用显示缓冲区内存的方法及其系统 |
CN106569957A (zh) * | 2015-10-10 | 2017-04-19 | 龙芯中科技术有限公司 | 内存分配方法和装置 |
CN107247673B (zh) * | 2017-06-07 | 2020-05-26 | 苏州浪潮智能科技有限公司 | 一种内存分配方法和装置 |
CN109445943A (zh) * | 2018-10-24 | 2019-03-08 | 郑州云海信息技术有限公司 | 内核态系统中i/o栈的内存管理方法、系统及相关装置 |
CN111314650B (zh) * | 2018-12-11 | 2021-04-20 | 浙江宇视科技有限公司 | 图像显示方法及装置 |
CN109815192B (zh) * | 2019-01-31 | 2024-06-11 | 深兰机器人(上海)有限公司 | 一种嵌入式系统内存管理方法及装置 |
CN110728773A (zh) * | 2019-10-15 | 2020-01-24 | 百度在线网络技术(北京)有限公司 | 一种图像存储的方法、装置和电子设备 |
CN111741246B (zh) * | 2020-06-12 | 2022-07-05 | 浪潮(北京)电子信息产业有限公司 | 一种视频存储方法、装置、soc系统、介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101937402A (zh) * | 2010-09-08 | 2011-01-05 | 无锡中星微电子有限公司 | 内存管理方法 |
CN101984417A (zh) * | 2010-11-01 | 2011-03-09 | 中兴通讯股份有限公司 | 内存管理方法及装置 |
-
2011
- 2011-11-28 CN CN201110383630.8A patent/CN103136105B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101937402A (zh) * | 2010-09-08 | 2011-01-05 | 无锡中星微电子有限公司 | 内存管理方法 |
CN101984417A (zh) * | 2010-11-01 | 2011-03-09 | 中兴通讯股份有限公司 | 内存管理方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN103136105A (zh) | 2013-06-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103136105B (zh) | 一种内存管理方法、嵌入式系统和视频数据处理系统 | |
US11004172B2 (en) | Memory management for systems for generating 3-dimensional computer images | |
CN1963788A (zh) | 一种内存管理方法 | |
JP5461533B2 (ja) | ローカル及びグローバルのデータ共有 | |
EP2630642B1 (en) | Memories and methods for performing atomic memory operations in accordance with configuration information | |
CN104423894B (zh) | 数据储存装置以及快闪存储器控制方法 | |
US20080100627A1 (en) | Processing of 3-Dimensional Graphics | |
CN101339539A (zh) | 具有非易失性存储器和缓冲存储器的存储系统及读取方法 | |
WO2007149979A2 (en) | Unified virtual addressed register file | |
US11074750B2 (en) | Scalable parallel tessellation | |
CN109697027A (zh) | 包括共享存储器区域和专用存储器区域的数据存储设备 | |
CN105718377B (zh) | 虚拟化应用中拷贝磁盘数据的方法及装置 | |
CN103838859A (zh) | 一种减少linux下多进程间数据拷贝的方法 | |
CN106775474A (zh) | 一种Nand Flash磨损均衡方法、装置及存储器 | |
CN106406756A (zh) | 一种文件系统的空间分配方法及装置 | |
CN103218305B (zh) | 存储空间的分配方法 | |
CN103502960B (zh) | 用于加密存储器设备的方法和系统 | |
CN103793332B (zh) | 基于内存的数据存储方法、装置、处理器和电子设备 | |
CN108304259A (zh) | 内存管理方法及系统 | |
CN102520902B (zh) | 基于单片块ram的并行写入多fifo实现方法 | |
CN103703449B (zh) | 存储器合并的计算机实现方法、系统以及装置 | |
CN104156316B (zh) | 一种Hadoop集群批处理作业的方法及系统 | |
CN110349244A (zh) | 具有动态调度的纹理过滤 | |
CN102799431B (zh) | 图元预处理和处理方法、图形处理方法及其处理器、装置 | |
CN105939218A (zh) | 网络流量的统计方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CP03 | Change of name, title or address |
Address after: Room 1601-1611, room 1701-1711, No. 25, Huizhi Third Road, Nancun Town, Panyu District, Guangzhou City, Guangdong Province Patentee after: Guangdong new shoreline Technology Co.,Ltd. Address before: 100084, 16 floor, building A, building 8, Tsinghua Science Park, No. 1, Zhongguancun East Road, Haidian District, Beijing Patentee before: NUFRONT MOBILE COMMUNICATIONS TECHNOLOGY Co.,Ltd. |
|
CP03 | Change of name, title or address |