不同计算单元共享内存池的内存池管理方法和相关的计算机可读介质和内存池管理装置制造方法及图纸

技术编号:13569152 阅读:34 留言:0更新日期:2016-08-21 10:51
一种内存池管理方法,包括:根据多个计算单元的信息来分配存储装置中的多个内存池,其中所述多个计算单元在相同的处理器上独立地执行;以及将所述多个内存池的其中之一指派给所述多个计算单元的其中之一,其中所述多个计算单元中的不同计算单元共享所述多个内存池中的至少一个。

【技术实现步骤摘要】
【国外来华专利技术】相关申请的交叉引用本申请要求2014年5月28日递交的申请号为62/003,611的美国临时案的优先权,在此合并参考该申请案的申请标的。
本专利技术公开的实施例涉及内存池(memory pool)管理,特别是关于不同计算单元共享一个内存池的内存池管理方法和相关的计算机可读介质和内存池管理装置。
技术介绍
为了完成一个程序(process),多个计算单元(或线程)可在相同的处理器(如,图形处理单元(GPU))上独立地执行。内存池管理函数(memory poolmanagement function)通常用于管理由处理器访问的存储装置中分配的内存池。在GPU采用的传统内存池管理设计中,每个计算单元都有自己的内存池。换句话说,在计算单元和内存池之间具有一对一的映射。当一个程序的计算单元的数量很大时,在存储装置中分配的内存池的数量也会很大。如此一来,GPU所使用的存储装置需要具有较大的内存大小来满足计算单元的要求,这必然会增加生产成本。
技术实现思路
根据本专利技术的示例性实施例,提出了一种不同计算单元共享一个内存池的内存池管理方法和相关的计算机可读介质和内存池管理装置,以解决上述问题。根据本专利技术的第一方面,本专利技术公开了一种示例性内存池管理方法。示例性内存池管理方法包括:根据多个计算单元的信息来分配(allocate)存储装置中的多个内存池,其中所述多个计算单元在相同的处理器上独立地执行;以及
将所述多个内存池的其中之一指派(assign)给所述多个计算单元中的其中之一,其中所述多个计算单元中的不同计算单元共享所述多个内存池中的至少一个。根据本专利技术的第二方面,本专利技术公开了一种示例性非暂时性计算机可读介质(non-transitory machine readable medium)。示例性非暂时性计算机可读介质具有存储在其中的程序代码。当被处理器执行时,所述程序代码指示所述处理器执行以下步骤:根据多个计算单元的信息分配存储装置中的多个内存池,其中所述多个计算单元在所述处理器上独立地执行,以及将所述多个内存池的其中之一指派给所述多个计算单元的其中之一,其中所述多个计算单元中的不同计算单元共享所述多个内存池中的至少一个。根据本专利技术的第三方面,本专利技术公开了一种示例性内存池管理装置。示例性内存池管理装置包括分配电路(allocating circuit)和调度电路(dispatchingcircuit)。所述分配电路用于根据多个计算单元的信息分配存储装置中的多个内存池,其中所述多个计算单元在相同的处理器上独立地执行。所述调度电路用于将所述多个内存池的其中之一指派给所述多个计算单元的其中之一,其中所述多个计算单元中的不同计算单元共享所述多个内存池中的至少一个。对于已经阅读后续由各附图及内容所显示的较佳实施方式的本领域的技术人员来说,本专利技术的各目的是明显的。附图说明图1是根据本专利技术一实施例的计算系统的示意图。图2是根据本专利技术一实施例的第一内存池管理的流程图。图3是在存储装置中分配的多个内存池的示意图。图4是根据本专利技术一实施例的寻找最常使用的内存池的方法的流程图。图5是在内存池的数量不小于计算单元的数量的情况下内存池管理的示例图。图6是根据本专利技术一实施例的第二内存池管理的流程图。图7是在内存池的数量小于计算单元的数量的情况下内存池管理的示例图。图8是根据本专利技术一实施例的另一计算系统的示意图。具体实施方式在权利要求书及说明书中使用了某些词汇来指称特定的组件。所属领域中
的技术人员应可理解,硬件制造商可能会用不同的名词来称呼同样的组件。本权利要求书及说明书并不以名称的差异来作为区分组件的方式,而是以组件在功能上的差异来作为区分的准则。在权利要求书及说明书中所提及的「包括」为开放式的用语,故应解释成「包括但不限定于」。另外,「耦接」一词在此包括任何直接及间接的电气连接手段。因此,若文中描述第一装置耦接于第二装置,则代表所述第一装置可直接电连接于所述第二装置,或通过其他装置或连接手段间接地电连接至所述第二装置。图1是根据本专利技术一实施例的计算系统的示意图。计算系统100包括处理器102、高速缓存104和存储装置106,其中高速缓存104耦接至处理器102和存储装置106。高速缓存104是一个可选的组件,这取决于实际的设计考虑。例如,在一个替代的计算系统设计中,可以省略高速缓存104。例如,但不限制本专利技术,计算系统100可以是图形处理系统,处理器102可以是图形处理单元(GPU)、中央处理单元(CPU)或任何其他类型的处理器(例如,数字信号处理器(DSP))。存储装置106是非暂时性计算机可读介质,例如可以是动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)或任何其他类型的可以用来保存数据(例如,局部变量)的存储器。在该实施例中,存储装置106中存储有程序代码PROG。当被载入并被处理器102执行时,程序代码PROG指示处理器102执行内存池管理函数。具体来说,程序代码PROG是内存池管理软件,用于执行所提出的内存池共享/再使用(sharing/reusing)的内存池管理。在该实施例中,该内存池管理(即,程序代码PROG在处理器102上运行)根据程序的多个计算单元CU_1-CU_N的信息分配存储装置106中的多个内存池107_1-107_M,其中计算单元CU_1-CU_N在相同的处理器102上独立地执行;并进一步将内存池107_1-107_M中的其中之一指派给计算单元CU_1-CU_M的其中之一,其中计算单元CU_1-CU_N中的不同计算单元共享内存池107_1-107_M中的至少一个。计算单元CU_1-CU_N可以通过编程语言来定义。例如,计算单元CU_1-CU_N中的每一个可以是在OpenCL(Open ComputingLanguage,开放式图形库)中定义的工作项目(work item)或工作组(work group)。另一个例子,计算单元CU_1-CU_N中的每一个可以是在OpenCL中定义的像素。然而,这仅作为说明之用,并非用以限制本专利技术。在该实施例中,处理器102可以通过高速缓存104从存储装置106加载程序代码PROG。然而,这仅作为说明之用。例如,处理器102可以从存储装置
106直接加载程序代码PROG。应该指出的是,使用相同的存储装置106来存储程序代码PROG和分配内存池107_1-107_M仅仅是一个可实行的实施例。作为一种选择,内存池107_1-107_M可以在存储装置106中分配,以及程序代码PROG可以存储在另一个存储装置108中。存储装置108是非暂时性计算机可读介质,可以是DRAM、SRAM、或任何其他类型的可以用来存储程序数据的存储器。此外,处理器102可以用于直接从存储装置108加载程序代码PROG。本专利技术所提出的内存池管理规则可与内存池的数量、计算单元的数量和已使用过的(ever-used)内存池的可用性和使用率有关。在内存池107_1-107_M的数量不小于计算单元CU_1-CU_N的数量(即M≧N)的情况下,所提出的内存池管理可以用于将已使用过的内存池或尚未使用的(not-yet-used)内存池指派给计算单元。图2是根据本专利技术一实施例的本文档来自技高网
...

【技术保护点】
一种内存池管理方法,其特征在于,包括:根据多个计算单元的信息来分配存储装置中的多个内存池,其中所述多个计算单元在相同的处理器上独立地执行;以及将所述多个内存池的其中之一指派给所述多个计算单元的其中之一,其中所述多个计算单元中的不同计算单元共享所述多个内存池中的至少一个。

【技术特征摘要】
【国外来华专利技术】2014.05.28 US 62/003,6111.一种内存池管理方法,其特征在于,包括:根据多个计算单元的信息来分配存储装置中的多个内存池,其中所述多个计算单元在相同的处理器上独立地执行;以及将所述多个内存池的其中之一指派给所述多个计算单元的其中之一,其中所述多个计算单元中的不同计算单元共享所述多个内存池中的至少一个。2.如权利要求1所述的内存池管理方法,其特征在于,所述多个内存池的数量不小于所述多个计算单元的数量。3.如权利要求2所述的内存池管理方法,其特征在于,所述将所述多个内存池的其中之一指派给所述多个计算单元的其中之一的步骤包括:在所述多个计算单元的一计算单元的开始执行处,搜索所述多个内存池中的已使用过的内存池;以及当在所述多个内存池中找到所述已使用过的内存池时,将所述已使用过的内存池指派给所述计算单元。4.如权利要求3所述的内存池管理方法,其特征在于,所述已使用过的内存池是所述多个内存池中的最经常使用的内存池。5.如权利要求3所述的内存池管理方法,其特征在于,所述将所述多个内存池的其中之一指派给所述多个计算单元的其中之一的步骤还包括:当在所述多个内存池中没有找到所述已使用过的内存池时,将所述多个内存池中的尚未使用的内存池指派给所述计算单元。6.如权利要求1所述的内存池管理方法,其特征在于,所述多个内存池的数量小于所述多个计算单元的数量。7.如权利要求6所述的内存池管理方法,其特征在于,所述将所述多个内存池的其中之一指派给所述多个计算单元的其中之一的步骤包括:在所述多个计算单元的一计算单元的开始执行处,搜索所述多个内存池中的已使用过的内存池;以及当在所述多个内存池中找到所述已使用过的内存池时,将所述已使用过的内存池指派给所述计算单元。8.如权利要求7所述的内存池管理方法,其特征在于,所述已使用过的内
\t存池是所述多个内存池中的最经常使用的内存池。9.如权利要求7所述的内存池管理方法,其特征在于,所述将所述多个内存池的其中之一指派给所述多个计算单元的其中之一的步骤还包括:当在所述多个内存池中没有找到所述已使用过的内存池时,搜索所述多个内存池中的尚未使用的内存池;以及当在所述多个内存池中找到所述尚未使用的内存池时,将所述尚未使用的内存池指派给所述计算单元。10.如权利要求7所述的内存池管理方法,其特征在于,所述将所述多个内存池的其中之一指派给所述多个计算单元的其中之一的步骤还包括:当在所述多个内存池中没有找到所述尚未使用的内存池时,等待所述多个内存池中的释放的内存池;以及当所述释放的内存池可用时,将所述释放的内存池指派给所述计算单元。11.一种非暂时性计算机可读介质,其中存储有程序代码,其特征在于,当由处理器执行时,所述程序代码指示所述处理器执行以下步骤:根据多个计算单元的信息来分配存储装置中的多个内存池,其中所述多个计算单元在所述处理器上独立地执行;以及将所述多个内存池的其中之一指派给所述多个计算单元的其中之一,其中所述多个计算单元中的不同计算单元共享所述多个内存池中的至少一个。12.如权利要求11所述的非暂时性计算机可读介质,其特征在于,所述多个内存池的数量不小于所述多个计算单元的数量。13.如权利要求12所述的非暂时性计算机可读介质,其特征在于,所述将所述多个内存池的其中之一指派给所述多个计算单元的其中之一的步骤包括:在所述多个计算单元的一计算单元的开始执行处,搜索所述多个内存池中的已使用过的内存池;以及当在所述多个内存池中找到所述已使用过的内存池时,将所述已使用过的内存池指派给所述计算单元。14.如权利要求13所述的非暂时性计算机可读介质,其特征在于,所述已使用过的内存池是所述多个内存池中的最经常使用的内存池。15.如权利要求13所述的非暂时性计算机可读介质,其特征在于,所述将所述多个内存池的其中之一指派给所述多个计算单元...

【专利技术属性】
技术研发人员:朱育成张胜凯陈勇铭朱启诚
申请(专利权)人:联发科技股份有限公司
类型:发明
国别省市:中国台湾;71

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

1