System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及计算机应用领域,特别是涉及一种向共享缓存进行数据溢出的方法、装置、计算机设备、存储介质和计算机程序产品。
技术介绍
1、在编译器对虚拟寄存器向物理寄存器分配过程中,当物理寄存器不够用时,需要将虚拟寄存器数据做溢出 (spill),传统的spill是将虚拟寄存器存入(store)到外存中,当再次访问该变量的时候再从外存中读取(load)回来。外存足够大,可以保证即使有大量的变量溢出,但是store/load数据回路长,时延(latency)较大,容易造成后续指令等待,执行流水线产生气泡(bubble),致使程序整体运行效率降低。
技术实现思路
1、基于此,有必要针对上述技术问题,提供一种能够提高程序整体运行效率的向共享缓存进行数据溢出的方法、装置、计算机设备、计算机可读存储介质和计算机程序产品。
2、第一方面,本申请提供了一种向共享缓存进行数据溢出的方法,包括:
3、获取共享缓存状态信息和待溢出虚拟寄存器数据的溢出状态信息,其中,所述共享缓存状态信息包括至少一个工作组的内存地址数据和内存容量数据;
4、根据所述内存容量数据计算可用地址数据,其中,所述可用地址数据用于表征共享缓存的剩余容量;
5、根据所述溢出状态信息计算虚拟寄存器溢出量;
6、根据所述虚拟寄存器溢出量和所述内存地址数据计算目标存储空间;
7、根据所述可用地址数据确定共享缓存可用条件,并在所述目标存储空间符合所述共享缓存可用条件的情况下,将
8、在其中一个实施例中,所述根据所述虚拟寄存器溢出量和所述内存地址数据计算目标存储空间,包括:
9、根据所述内存地址数据获取共享缓存基地址;
10、根据所述内存容量数据和所述共享缓存基地址,计算内存偏移地址;
11、根据所述虚拟寄存器溢出量和所述内存偏移地址,确定目标存储空间。
12、在其中一个实施例中,所述内存地址数据包括对应工作组的本地地址;所述根据所述内存地址数据获取共享缓存基地址,包括:
13、根据所述本地地址直接获取共享缓存基地址;
14、在所述共享缓存基地址不存在的情况下,根据所述内存地址数据和所述内存容量数据计算共享缓存基地址;
15、将所述共享缓存基地址与对应工作组的所述本地地址进行对应存储。
16、在其中一个实施例中,所述方法用于单个处理单元,一个所述处理单元中包括至少一个工作组,一个所述工作组包括至少一个工作项,所述内存容量数据包括所述处理单元的共享缓存总容量、每个所述工作组当前已用的共享缓存容量和所述工作组中各个所述工作项的设定内存容量;所述根据所述内存地址数据和所述内存容量数据计算共享缓存基地址,包括:
17、根据所述共享缓存总容量和所述当前已用的共享缓存容量确定基地址起始数据;
18、根据所述基地址起始数据和所述设定内存容量计算共享缓存基地址。
19、在其中一个实施例中,所述将所述待溢出虚拟寄存器数据存储至所述目标存储空间,包括:
20、获取所述待溢出虚拟寄存器数据的生命周期;
21、根据所述生命周期,将所述待溢出虚拟寄存器数据存储至所述目标存储空间。
22、在其中一个实施例中,所述生命周期包括起始时间节点和结束时间节点;所述根据所述生命周期,将所述待溢出虚拟寄存器数据存储至所述目标存储空间,包括:
23、在所述起始时间节点将所述待溢出虚拟寄存器数据存储至所述目标存储空间;
24、在所述结束时间节点释放所述目标存储空间。
25、第二方面,本申请还提供了一种向共享缓存进行数据溢出的装置,包括:
26、信息获取模块,用于获取共享缓存状态信息和待溢出虚拟寄存器数据的溢出状态信息,其中,所述共享缓存状态信息包括至少一个工作组的内存地址数据和内存容量数据;
27、容量计算模块,用于根据所述内存容量数据计算可用地址数据,其中,所述可用地址数据用于表征共享缓存的剩余容量;
28、溢出量计算模块,用于根据所述溢出状态信息计算虚拟寄存器溢出量;
29、空间确定模块,用于根据所述虚拟寄存器溢出量和所述内存地址数据计算目标存储空间;
30、数据存储模块,用于根据所述可用地址数据确定共享缓存可用条件,并在所述目标存储空间符合所述共享缓存可用条件的情况下,将所述待溢出虚拟寄存器数据存储至所述目标存储空间。
31、第三方面,本申请还提供了一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
32、获取共享缓存状态信息和待溢出虚拟寄存器数据的溢出状态信息,其中,所述共享缓存状态信息包括至少一个工作组的内存地址数据和内存容量数据;
33、根据所述内存容量数据计算可用地址数据,其中,所述可用地址数据用于表征共享缓存的剩余容量;
34、根据所述溢出状态信息计算虚拟寄存器溢出量;
35、根据所述虚拟寄存器溢出量和所述内存地址数据计算目标存储空间;
36、根据所述可用地址数据确定共享缓存可用条件,并在所述目标存储空间符合所述共享缓存可用条件的情况下,将所述待溢出虚拟寄存器数据存储至所述目标存储空间。
37、第四方面,本申请还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
38、获取共享缓存状态信息和待溢出虚拟寄存器数据的溢出状态信息,其中,所述共享缓存状态信息包括至少一个工作组的内存地址数据和内存容量数据;
39、根据所述内存容量数据计算可用地址数据,其中,所述可用地址数据用于表征共享缓存的剩余容量;
40、根据所述溢出状态信息计算虚拟寄存器溢出量;
41、根据所述虚拟寄存器溢出量和所述内存地址数据计算目标存储空间;
42、根据所述可用地址数据确定共享缓存可用条件,并在所述目标存储空间符合所述共享缓存可用条件的情况下,将所述待溢出虚拟寄存器数据存储至所述目标存储空间。
43、第五方面,本申请还提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:
44、获取共享缓存状态信息和待溢出虚拟寄存器数据的溢出状态信息,其中,所述共享缓存状态信息包括至少一个工作组的内存地址数据和内存容量数据;
45、根据所述内存容量数据计算可用地址数据,其中,所述可用地址数据用于表征共享缓存的剩余容量;
46、根据所述溢出状态信息计算虚拟寄存器溢出量;
47、根据所述虚拟寄存器溢出量和所述内存地址数据计算目标存储空间;
48、根据所述可用地址数据确定共享缓存可用条件,并在所述目标存储空间符合所述共享缓存可用条件本文档来自技高网...
【技术保护点】
1.一种向共享缓存进行数据溢出的方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述根据所述虚拟寄存器溢出量和所述内存地址数据计算目标存储空间,包括:
3.根据权利要求2所述的方法,其特征在于,所述内存地址数据包括对应工作组的本地地址;所述根据所述内存地址数据获取共享缓存基地址,包括:
4.根据权利要求3所述的方法,其特征在于,所述方法用于单个处理单元,一个所述处理单元中包括至少一个工作组,一个所述工作组包括至少一个工作项,所述内存容量数据包括所述处理单元的共享缓存总容量、每个所述工作组当前已用的共享缓存容量和所述工作组中各个所述工作项的设定内存容量;所述根据所述内存地址数据和所述内存容量数据计算共享缓存基地址,包括:
5.根据权利要求1至4任意一项所述的方法,其特征在于,所述将所述待溢出虚拟寄存器数据存储至所述目标存储空间,包括:
6.根据权利要求5所述的方法,其特征在于,所述生命周期包括起始时间节点和结束时间节点;所述根据所述生命周期,将所述待溢出虚拟寄存器数据存储至所述目标存储空间,包括
7.一种向共享缓存进行数据溢出的装置,其特征在于,所述装置包括:
8.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至6中任一项所述的方法的步骤。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法的步骤。
10.一种计算机程序产品,包括计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法的步骤。
...【技术特征摘要】
1.一种向共享缓存进行数据溢出的方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述根据所述虚拟寄存器溢出量和所述内存地址数据计算目标存储空间,包括:
3.根据权利要求2所述的方法,其特征在于,所述内存地址数据包括对应工作组的本地地址;所述根据所述内存地址数据获取共享缓存基地址,包括:
4.根据权利要求3所述的方法,其特征在于,所述方法用于单个处理单元,一个所述处理单元中包括至少一个工作组,一个所述工作组包括至少一个工作项,所述内存容量数据包括所述处理单元的共享缓存总容量、每个所述工作组当前已用的共享缓存容量和所述工作组中各个所述工作项的设定内存容量;所述根据所述内存地址数据和所述内存容量数据计算共享缓存基地址,包括:
5.根据权利要求1至4任意一项所述的方法,其特征在于,所述将...
【专利技术属性】
技术研发人员:王锋,张淮声,陶中玉,常竹林,
申请(专利权)人:格兰菲智能科技股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。