存储资源分配方法、装置及非暂时性存储介质制造方法及图纸

技术编号:32580031 阅读:14 留言:0更新日期:2022-03-09 17:10
一种存储资源分配方法、装置及非暂时性存储介质,用于计算单元中共享存储器的分配,其中,共享存储器包括N个存储段,N个存储段按照分段编号依序排列,N为大于1的正整数。该资源分配方法包括:接收占用连续M个存储段的分配请求;响应于N个存储段包括第一数量的可用存储段组,在可用存储段组中,确定与N个存储段两端边界距离最近的一个可用存储段组,用于响应分配请求,其中,可用存储段组每个包括M个连续且处于空闲状态的存储段以满足分配请求,M为正整数且小于N。该方法可使得共享存储器工作均衡,提高使用寿命,同时使得存储资源碎片化的问题得到优化。的问题得到优化。的问题得到优化。

【技术实现步骤摘要】
存储资源分配方法、装置及非暂时性存储介质


[0001]本公开的实施例涉及一种存储资源分配方法、装置及非暂时性存储介质。

技术介绍

[0002]在当前设计的并行处理器(通用图形处理器(GPGPU))中,一个工作组(Workgroup)会被分配到一个计算单元(Computing Unit,CU)上处理。每个计算单元包括多个处理单元(PE)、共享存储器(Parallel Memory Unit,PMU)、寄存器堆、工作项集合调度模块。每个处理单元包括算术逻辑单元(ALU)、浮点计算单元等。工作组可以被分为若干个工作项集合(Subgroup),例如,工作组可以被分为一个子任务对应的多个工作项集合,这些工作项集合通过计算单元中的工作项集合调度模块调度、分发,并且通过共享存储器进行数据共享。由于多个工作组可以在同一个计算单元上并行处理,通过共享存储器中的多个工作项集合的协同工作,有效隐藏读取缓存(cache)的延迟,提升并行计算单元的工作效率。共享存储器中的存储空间可以分为多个独立存储段。需要根据每个工作组所需要使用的存储段动态地分配存储资源,使得各个工作组能够相互独立的进行工作。

技术实现思路

[0003]本公开至少一些实施例提供一种存储资源分配方法,用于计算单元中共享存储器的分配,其中,所述共享存储器包括N个存储段,所述N个存储段按照分段编号依序排列,N为大于1的正整数,所述资源分配方法包括:接收占用连续M个存储段的分配请求;响应于所述N个存储段包括第一数量的可用存储段组,在所述可用存储段组中,确定与所述N个存储段两端边界距离最近的一个可用存储段组,用于响应所述分配请求,其中,所述可用存储段组每个包括M个连续且处于空闲状态的存储段以满足所述分配请求,M为正整数且小于N。
[0004]例如,本公开一些实施例提供的存储资源分配方法还包括:确定所述N个存储段是否包括所述第一数量的可用存储段组。
[0005]例如,在本公开一些实施例提供的资源分配方法中,确定所述N个存储段是否包括所述可用存储段组,包括:获取用于所述共享存储器的存储状态数据,其中,所述存储状态数据具有N位,所述存储状态数据的N位用于一一对应地记载所述N个存储段是空闲或占用;使用所述存储状态数据来确定所述N个存储段是否包括所述可用存储段组。
[0006]例如,在本公开一些实施例提供的存储资源分配方法中,使用所述存储状态数据来确定所述N个存储段是否包括所述可用存储段组,包括:在所述存储状态数据中,按升序或降序,逐位判断是否存在以当前被判定的当前位作为起始位的可用存储段组,响应于存在以所述当前位作为起始位的可用存储段组,记录对应于所述当前位具有可用存储段组。
[0007]例如,在本公开一些实施例提供的存储资源分配方法中,所述存储状态数据中每一位在被占用时被设置为0,在空闲时被设置为1,逐位判断是否存在以所述当前位作为起始位的可用存储段组,包括:获取掩模数据,其中,所述掩模数据包括N位,所述掩模数据的N位一一对应于所述存储状态数据的N位,所述掩模数据包括从对应于以所述当前位作为起
始位的连续M位且值均为1的掩模段,将所述掩模数据取反之后与所述存储状态数据进行按位或运算,然后将所述按位或运算所得到的N位结果逐位进行与运算,响应于所述与运算的结果为1,确定存在以所述当前位作为起始位的可用存储段组,响应于所述与操作的结果为0,确定不存在以所述当前位作为起始位的可用存储段组。
[0008]例如,在本公开一些实施例提供的存储资源分配方法中,所述存储状态数据中每一位在被占用时被设置为0,在空闲时被设置为1,逐位判断是否存在以所述当前位作为起始位的可用存储段组,包括:将所述存储状态数据中以所述当前位作为起始位的连续M位逐位进行与运算,响应于所述与运算的结果为1,确定存在以所述当前位作为起始位的可用存储段组,响应于所述与运算的结果为0,确定不存在以所述当前位作为起始位的可用存储段组。
[0009]例如,本公开一些实施例提供的存储资源分配方法还包括:在逐位判断是否存在以所述当前位作为起始位的可用存储段组之后,通过记录对应于所述当前位具有可用存储段,得到可选位置数据,其中,所述可选位置数据包括N位,所述可选位置数据的N位用于一一对应地记载从所述N个存储段开始按所述升序或所述降序是否具有可用存储段。
[0010]例如,在本公开一些实施例提供的存储资源分配方法中,在所述可用存储段组中,确定与所述N个存储段两端边界距离最近的一个可用存储段组,包括:对于所述可选位置数据的N位,采用二分法确定所述N个存储段两端边界距离最近的一个可用存储段组。
[0011]例如,本公开一些实施例提供的存储资源分配方法还包括:输出被确定的一个可用存储段组的起始地址以及可用存储段组的长度M。
[0012]例如,本公开一些实施例提供的存储资源分配方法还包括:响应于所述N个存储段不包括可用存储段组,持续监测所述N个存储段直到所述N个存储段包括所述可用存储段组。
[0013]例如,本公开一些实施例提供的存储资源分配方法还包括:接收占用连续M个存储段的分配请求之前或同时,接收对于所述N个存储段中至少一个当前被占用的存储段的释放请求,在处理所述分配请求之前,处理所述释放请求。
[0014]本公开至少一些实施例还提供一种存储资源分配装置,用于计算单元中共享存储器的分配,其中,所述共享存储器包括N个存储段,所述N个存储段按照分段编号依序排列,N为大于1的正整数,所述资源分配装置包括:分配请求接收模块,被配置为接收占用连续M个存储段的分配请求;可用存储段确定模块,被配置为响应于所述N个存储段包括第一数量的可用存储段组,在所述可用存储段组中,确定与所述N个存储段两端边界距离最近的一个可用存储段组,用于响应所述分配请求,其中,所述可用存储段组每个包括M个连续且处于空闲状态的存储段以满足所述分配请求,M为正整数且小于N。
[0015]例如,在本公开一些实施例提供的存储资源分配装置中,所述可用存储段确定模块还被配置为确定所述N个存储段是否包括所述可用存储段组。
[0016]例如,在本公开一些实施例提供的存储资源分配装置中,所述可用存储段确定模块包括:存储状态数据获取子模块,被配置为获取用于所述共享存储器的存储状态数据,其中,所述存储状态数据具有N位,所述存储状态数据的N位用于一一对应地记载所述N个存储段是空闲或占用;其中,所述可用存储段确定模块被配置为使用所述存储状态数据来确定所述N个存储段是否包括所述可用存储段组。
[0017]例如,在本公开一些实施例提供的存储资源分配装置中,所述可用存储段确定模块还包括:可用存储段组存在判断子模块,被配置为在所述存储状态数据中,按升序或降序,逐位判断是否存在以当前被判定的当前位作为起始位的可用存储段组,以及被配置为响应于存在以当前位作为起始位的可用存储段组,记录对应于所述当前位具有可用存储段。
[0018]例如,在本公开一些实施例提供的存储资源分配装置中,所述存储状态数据中每一位在被占用时被设置为0,在本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种存储资源分配方法,用于计算单元中共享存储器的分配,其中,所述共享存储器包括N个存储段,所述N个存储段按照分段编号依序排列,N为大于1的正整数,所述资源分配方法包括:接收占用连续M个存储段的分配请求;响应于所述N个存储段包括第一数量的可用存储段组,在所述可用存储段组中,确定与所述N个存储段两端边界距离最近的一个可用存储段组,用于响应所述分配请求,其中,所述可用存储段组每个包括M个连续且处于空闲状态的存储段以满足所述分配请求,M为正整数且小于N。2.根据权利要求1所述的方法,还包括:确定所述N个存储段是否包括所述第一数量的可用存储段组。3.根据权利要求2所述的方法,其中,确定所述N个存储段是否包括所述可用存储段组,包括:获取用于所述共享存储器的存储状态数据,其中,所述存储状态数据具有N位,所述存储状态数据的N位用于一一对应地记载所述N个存储段是空闲或占用;使用所述存储状态数据来确定所述N个存储段是否包括所述可用存储段组。4.根据权利要求3所述的方法,其中,使用所述存储状态数据来确定所述N个存储段是否包括所述可用存储段组,包括:在所述存储状态数据中,按升序或降序,逐位判断是否存在以当前被判定的当前位作为起始位的可用存储段组,响应于存在以所述当前位作为起始位的可用存储段组,记录对应于所述当前位具有可用存储段组。5.根据权利要求4所述的方法,其中,所述存储状态数据中每一位在被占用时被设置为0,在空闲时被设置为1,逐位判断是否存在以所述当前位作为起始位的可用存储段组,包括:获取掩模数据,其中,所述掩模数据包括N位,所述掩模数据的N位一一对应于所述存储状态数据的N位,所述掩模数据包括从对应于以所述当前位作为起始位的连续M位且值均为1的掩模段,将所述掩模数据取反之后与所述存储状态数据进行按位或运算,然后将所述按位或运算所得到的N位结果逐位进行与运算,响应于所述与运算的结果为1,确定存在以所述当前位作为起始位的可用存储段组,响应于所述与操作的结果为0,确定不存在以所述当前位作为起始位的可用存储段组。6.根据权利要求4所述的方法,其中,所述存储状态数据中每一位在被占用时被设置为0,在空闲时被设置为1,逐位判断是否存在以所述当前位作为起始位的可用存储段组,包括:将所述存储状态数据中以所述当前位作为起始位的连续M位逐位进行与运算,响应于所述与运算的结果为1,确定存在以所述当前位作为起始位的可用存储段组,响应于所述与运算的结果为0,确定不存在以所述当前位作为起始位的可用存储段组。7.根据权利要求5或6所述的方法,还包括:在逐位判断是否存在以所述当前位作为起始位的可用存储段组之后,通过记录对应于
所述当前位具有可用存储段,得到可选位置数据,其中,所述可选位置数据包括N位,所述可选位置数据的N位用于一一对应地记载从所述N个存储段开始按所述升序或所述降序是否具有可用存储段。8.根据权利要求7所述的方法,其中,在所述可用存储段组中,确定与所述N个存储段两端边界距离最近的一个可用存储段组,包括:对于所述可选位置数据的N位,采用二分法确定所述N个存储段两端边界距离最近的一个可用存储段组。9.根据权利要求1所述的方法,还包括:输出被确定的一个可用存储段组的起始地址以及可用存储段组的长度M。10.根据权利要求1所述的方法,还包括:响应于所述N个存储段不包括可用存储段组,持续监测所述N个存储段直到所述N个存储段包括所述可用存储段组。11.根据权利要求1所述的方法,还包括:接收占用连续M个存储段的分配请求之前或同时,接收对于所述N个存储段中至少一个当前被占用的存储段的释放请求,在处理所述分配请求之前,处理所述释放请求。12.一种存储资源分配装置,用于计算单元中共享存储器的分配,其中,所述共享存储器包括N个存储段,所述N个存储段按照分段编号依序排列,N为大于1的正整数,所述资源分配装置包括:分配请求接收模块,被配置为接收占用连续M个存储段的分配请求;可用存储段确定模块,被配置为响应于所述N个存储段包括第一数量的可用存储段组,在所述可用存储段组中,确定与所述N个存储段两端边界距离最近的一个可用存储段组,用于响应所述分...

【专利技术属性】
技术研发人员:袁庆陈庆华芮潘于
申请(专利权)人:海光信息技术股份有限公司
类型:发明
国别省市:

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

1