[发明专利]用于函数调用中可重复使用和相对索引的寄存器资源分配的方法和装置在审
申请号: | 202180054297.8 | 申请日: | 2021-05-20 |
公开(公告)号: | CN116113927A | 公开(公告)日: | 2023-05-12 |
发明(设计)人: | 罗燕;艾哈迈德·穆罕默德·埃尔沙菲·穆罕默德·埃尔坦塔维;泰勒·布莱斯·诺维基 | 申请(专利权)人: | 华为技术有限公司 |
主分类号: | G06F9/44 | 分类号: | G06F9/44 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 518129 广东*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 用于 函数 调用 重复使用 相对 索引 寄存器 资源 分配 方法 装置 | ||
本发明公开的系统、装置和方法涉及通过编译器使用包括有限数量的寄存器的寄存器堆来优化模块中函数的寄存器资源分配。在所述模块中执行过程间分析后,所述编译器计算每个函数使用的寄存器的数量,并将所述函数编译到最终机器代码中,除了在检测到对另一个函数进行调用的调用点处之外。在每个调用点处,对于每个被调用函数,所述编译器在计算并设置供被调用函数用来在所述寄存器堆的可用部分中运行的相对索引后,将调用指令扩展到最终机器代码。所述相对索引通过在调用函数之前最小化溢出寄存器的数量来优化寄存器资源分配。
相关申请
本发明要求于2020年9月4日提交的申请号为17/012,203、发明名称为“用于函数调用中可重复使用和相对索引的寄存器资源分配的方法和装置(METHOD AND APPARATUSFOR REUSABLE AND RELATIVE INDEXED REGISTER RESOURCE ALLOCATION IN FUNCTIONCALLS)”的在先提交的美国非临时申请的优先权,其内容在允许此类并入的司法管辖区内以引用的方式并入本申请中。
技术领域
本发明大体上涉及寄存器资源优化领域,尤其涉及一种用于优化函数调用中资源分配的方法和装置。
背景技术
处理器通常具有通用寄存器或寄存器堆,由处理线程共用,并在运行时进行分区。这些资源提供了非常快速地存取处理器的存储能力,但由于这些资源的硬件成本,资源数量有限。处理器还会使用更多较便宜的内存资源,例如,缓存和主存,但读/写性能也会慢得多。在处理过程中耗尽寄存器资源迫使处理器将寄存器中保存的值溢出到缓存和/或主存中。这种溢出对处理造成了很大的损失,而且在性能和能量两方面带来高成本,因此效率非常低。
对于函数调用,常规调用约定通常要求调用方和被调用方将活性寄存器溢出到堆栈中,并在被调用方返回后恢复活性寄存器。此类常规调用约定要求确定需要为调用方保存多少寄存器,需要将多少寄存器传递给被调用方,从而导致对可用寄存器堆进行分区,并导致大量溢出到其它内存资源。
这可能导致寄存器堆的利用率不足(即,尽管存在足够的寄存器来保存调用方和被调用方的实时数据,但数据往返堆栈存储/加载)。除此之外,处理器编程通常在可能的情况下使用内联(具有大的主函数和小的调用函数)。
例如,特定的计算环境可能会加剧此问题:使用图形处理单元(GraphicalProcessing Unit,GPU)进行光线跟踪处理的问题,其中,着色器管线使着色器之间的交互更加动态。着色器可以调用其它着色器,很像过程式编程中的间接方法调用。在此计算环境中,内联甚至不可能实现。
通常,所有函数/着色器寄存器资源分配请求都会在编译时解析和最终完成。这些请求被编码在生成的二进制中,因此一旦编译完成,寄存器资源分配是不可改变的。间接函数调用使寄存器资源分配在函数/着色器调用方和被调用方之间是动态的。
发明内容
本发明技术提供了一种寄存器分配方案,以使被调用方“重复使用”调用点处的空闲寄存器资源(动态调用的基本类别),这种分配方案是“相对”于调用方的。更具体地说,本发明技术使得编译器在调用(尤其是间接调用)中执行优化的动态寄存器资源分配。本发明技术通过动态资源重复使用和动态索引的资源访问,优化寄存器资源分配,例如,调用中的寄存器分配。本发明技术提出了一种新的机制,以基于每个调用点在编译时的实际资源使用分析,在运行时管理和优化寄存器资源分配,从而实现更加高效的资源利用率,并降低由于寄存器堆资源耗尽而因此溢出操作的概率。本发明技术为编译器提供了优化运行时代码的能力,所述运行时代码预期和处理寄存器资源耗尽,其中仅在资源实际上即将耗尽时,才会溢出该资源。
本发明技术使编译器能够执行寄存器资源数据流分析,以找到每个调用点处的资源重复使用模式。基于所述分析,编译器创建了自定义的分配映射和分配指针供被调用方使用,实现了调用方和一个或多个被调用方之间的优化、动态的分配方案。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华为技术有限公司,未经华为技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202180054297.8/2.html,转载请声明来源钻瓜专利网。