可重构处理器的内存分配及回收方法、装置及存储介质制造方法及图纸

技术编号:34267507 阅读:23 留言:0更新日期:2022-07-24 15:16
本发明专利技术涉及可重构处理器内存管理领域,公开了一种可重构处理器的内存分配及回收方法、装置及存储介质。可重构处理器的内存分配及回收方法包括:对输入数据集和输出数据集中的数据进行解析,确定每个输入数据和每个输出数据的生命周期;根据生命周期,对输入数据集以及输出数据集中的数据进行内存分配,确定输入数据集以及输出数据集中的数据分配的内存块信息;以及根据输入数据集以及输出数据集的生命周期以及内存块信息,逐一计算子图集合中的子图输入数据集以及输出数据集中的数据分配的内存块进行回收。解决了现有的重构处理器处理数据的情况下,由于bank被同时访问出现冲突而没有及时回收,从而外部存取数据导致存取数据的时间过长的技术问题。的时间过长的技术问题。的时间过长的技术问题。

Memory allocation and recovery method, device and storage medium of reconfigurable processor

【技术实现步骤摘要】
可重构处理器的内存分配及回收方法、装置及存储介质


[0001]本专利技术涉及可重构处理器内存管理
,特别是涉及一种可重构处理器的内存分配及回收方法、装置及存储介质。

技术介绍

[0002]现代计算系统越来越依赖于硬件加速器与中央处理单元(CPU)协同工作,以满足不断增长的计算效率需求。粗粒度可重构阵列 (CGRA) 已成为一种突出的加速器,因为它提供了计算吞吐量、功率效率和可重构性的良好融合。CGRA设计为使用2D网状网络连接的处理元件(PE)阵列。PE通常构成算术逻辑单元(ALU)、寄存器文件和配置存储器。作为提高性能的最有效手段之一,软件流水线技术通过重叠来自不同循环迭代的操作来充分利用指令级并行性。在这种情况下,不同操作所需的数据元素需要同时从内存中访问并处理。由于同一时刻,一个bank只能被一个操作访问,因此在同时访问的时候,就有可能出现访问的冲突,如果存在bank上的数据一直不进行处理的话,当程序涉及的数据量较大时,就会导致PE必须从CGRA外部存取数据,增加了存取数据的时间开销。
[0003]针对上述的现有技术中存在的现有的重构处理器处理数据的情况下,由于bank被同时访问出现冲突而没有及时回收,从而外部存取数据导致存取数据的时间过长的技术问题,目前尚未提出有效的解决方案。

技术实现思路

[0004]本公开的实施例提供了一种可重构处理器的内存分配及回收方法、装置及存储介质,以至少解决现有技术中存在的现有的重构处理器处理数据的情况下,由于bank被同时访问出现冲突而没有及时回收,从而外部存取数据导致存取数据的时间过长的技术问题。
[0005]根据本公开实施例的一个方面,提供了一种可重构处理器的内存分配及回收方法,包括:对输入数据集和输出数据集中的数据进行解析,确定每个输入数据和每个输出数据的生命周期;根据生命周期,对输入数据集以及输出数据集中的数据进行内存分配,确定输入数据集以及输出数据集中的数据分配的内存块信息;以及根据输入数据集以及输出数据集的生命周期以及内存块信息,逐一计算子图集合中的子图输入数据集以及输出数据集中的数据分配的内存块进行回收,其中子图集合为点图的所有子图的集合。
[0006]根据本公开实施例的另一个方面,还提供了一种存储介质,存储介质包括存储的程序,其中,在程序运行时由处理器执行以上任意一项所述的方法。
[0007]根据本公开实施例的另一个方面,还提供了一种可重构处理器的内存分配及回收装置,包括:第一确定模块,用于对输入数据集和输出数据集中的数据进行解析,确定每个输入数据和每个输出数据的生命周期;第二确定模块,用于根据生命周期,对输入数据集以及输出数据集中的数据进行内存分配,确定输入数据集以及输出数据集中的数据分配的内存块信息;以及回收模块,用于根据输入数据集以及输出数据集的生命周期以及内存块信息,逐一计算子图集合中的子图输入数据集以及输出数据集中的数据分配的内存块进行回
收,其中子图集合为点图的所有子图的集合。
[0008]根据本公开实施例的另一个方面,还提供了一种可重构处理器的内存分配及回收装置,包括:处理器;以及存储器,与处理器连接,用于为处理器提供处理以下处理步骤的指令:对输入数据集和输出数据集中的数据进行解析,确定每个输入数据和每个输出数据的生命周期;根据生命周期,对输入数据集以及输出数据集中的数据进行内存分配,确定输入数据集以及输出数据集中的数据分配的内存块信息;以及根据输入数据集以及输出数据集的生命周期以及内存块信息,逐一计算子图集合中的子图输入数据集以及输出数据集中的数据分配的内存块进行回收,其中子图集合为点图的所有子图的集合。
[0009]在本公开实施例中,通过挖掘数组(输入数据以及输出数据)的使用情况和生命周期,实现了内存bank空间利用率的最大化,提高整个CGRA的工作效率,减少了在存取数据上时间的开销。通过研究不同子图之间涉及到的数据的关系来进一步得到每个数据的生命周期,以此生命周期为基准,再每一张子图运行结束之后,回收掉生命周期结束的数据,达到了实现内存空间的利用率最大化的技术效果,并且通过合理的回收内存空间极大的提高了重构处理器的工作性能,避免了外部存储数据导致的耗时长的问题。进而解决了现有技术中存在的现有的重构处理器处理数据的情况下,由于bank被同时访问出现冲突而没有及时回收,从而外部存取数据导致存取数据的时间过长的技术问题。
附图说明
[0010]此处所说明的附图用来提供对本公开的进一步理解,构成本专利技术的一部分,本公开的示意性实施例及其说明用于解释本公开,并不构成对本公开的不当限定。在附图中:图1是用于实现根据本公开实施例1所述的方法的计算设备的硬件结构框图;图2是根据本公开实施例1的第一个方面所述的可重构处理器的内存分配及回收方法的流程示意图;图3A是根据本公开实施例1所述的数据内存的分配以及回收的流程示意图;图3B和图3C是根据本公开实施例1所述的子图的示例性子图的示意图;图4是根据本公开实施例1所述遍历子图集合的流程示意图;图5是根据本公开实施例2所述的可重构处理器的内存分配及回收装置的示意图;以及图6是根据本公开实施例3所述的可重构处理器的内存分配及回收装置的示意图。
具体实施方式
[0011]为了使本
的人员更好地理解本公开的技术方案,下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本公开一部分的实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本公开保护的范围。
[0012]需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或
描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
[0013]实施例1根据本实施例,还提供了一种可重构处理器的内存分配及回收方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
[0014]本实施例所提供的方法实施例可以在移动终端、计算机终端、服务器或者类似的计算设备中执行。图1示出了一种用于实现可重构处理器的内存分配及回收方法的计算设备的硬件结构框图。如图1所示,计算设备可以包括一个或多个处理器(处理器可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器、以及用于通信功能的传输装置。除此以外,本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种可重构处理器的内存分配及回收方法,其特征在于,包括:对输入数据集和输出数据集中的数据进行解析,确定每个输入数据和每个输出数据的生命周期;根据所述生命周期,对所述输入数据集以及所述输出数据集中的数据进行内存分配,确定所述输入数据集以及所述输出数据集中的数据分配的内存块信息;以及根据所述输入数据集以及所述输出数据集的所述生命周期以及所述内存块信息,逐一计算子图集合中的子图所述输入数据集以及所述输出数据集中的数据分配的内存块进行回收,其中所述子图集合为点图的所有子图的集合。2.根据权利要求1所述的方法,其特征在于,对输入数据集中的数据进行解析,确定每个输入数据的生命周期的操作,包括:逐一遍历所述子图集合中子图的输入数据子集,并对所述输入数据子集中的输入数据进行解析,得到所述输入数据的属性信息,其中所述属性信息包括操作标签、操作的数组名、操作的数组长度、操作的数组的起始位置、操作数据的步长以及操作数据使用的子图信息,其中所述操作数据使用的子图信息用于指示所述操作数据的生命周期;根据所述属性信息,确定所述输入数据集中输入数据对应的第一子图信息;以及根据所述输入数据集中输入数据对应的第一子图信息,确定所述输入数据集中输入数据的生命周期。3.根据权利要求1所述的方法,其特征在于,对输出数据集中的数据进行解析,确定每个输出数据的生命周期的操作,包括:逐一遍历所述子图集合中子图的输出数据子集以及输入数据子集,并对所述输出数据子集以及所述输入数据子集中的输入数据和输出数据进行解析,得到所述输出数据的属性信息,其中所述属性信息包括操作标签、操作的数组名、操作的数组长度、操作的数组的起始位置、操作数据的步长以及操作数据使用的子图信息,其中所述操作数据使用的子图信息用于指示所述操作数据的生命周期;根据所述属性信息,确定所述输出数据集中输入数据对应的第二子图信息;以及根据所述输出数据集中输出数据对应的第二子图信息,确定所述输出数据集中输出数据的生命周期。4.根据权利要求1所述的方法,其特征在于,根据所述生命周期,对所述输入数据集以及所述输出数据集中的数据进行内存分配,确定所述输入数据集以及所述输出数据集中的数据分配的内存块信息的操作,包括:判断所述输入数据集和所述输出数据集的数据的生命周期是否为0,在所述输入数据集以及所述输出数据集的数据的所述生命周期为0的情况下,不进行内存分配;以及在所述输入数据集以及所述输出数据集的数据的所述生命周期不为0的情况下,对所述输入数据集以及所述输出数据集中的数据进行内存分配,确定所述输入数据集以及所述输出数据集中的数据分配的内存块信息。5.根据权利要求2所述的方法,其特征在于,根据所述生命周期,对所述输入数据集以及所述输出数据集中的数据进行内存分配,确定所述输入数据集以及所述输出数据集中的数据分配的内存块信息的操作,还包括:根据所述输入数据集以及所述输出数据集的数据的属性信息,利用取数模式在数据中
取出需要用到的数据,确定有效数据;以及根据所述生命周期,对所述...

【专利技术属性】
技术研发人员:欧阳鹏
申请(专利权)人:北京清微智能信息技术有限公司
类型:发明
国别省市:

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

1