System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种数据处理装置及方法制造方法及图纸_技高网

一种数据处理装置及方法制造方法及图纸

技术编号:40594222 阅读:4 留言:0更新日期:2024-03-12 21:56
本申请公开了一种数据处理装置及方法,涉及数据处理技术领域,主要目的在于降低函数调用对内存性能的影响;主要技术方案包括:目标寄存器,被配置为存储寄存器数据;与所述目标寄存器对应配置的备份寄存器组,被配置为备份所述目标寄存器的寄存器数据;数据处理电路,被配置为响应于检测到当前被调用函数为目标函数,将所述目标寄存器的寄存器数据备份至所述备份寄存器组;响应于检测到所述目标寄存器被所述当前被调用函数使用完成,将所述备份寄存器组中的寄存器数据恢复至所述目标寄存器,以使所述目标寄存器的寄存器数据在所述目标寄存器被函数使用前后保持一致;其中,所述目标函数为被调用完成后不再调用其他函数的函数。

【技术实现步骤摘要】

本申请涉及数据处理,特别是涉及一种数据处理装置及方法


技术介绍

1、在编译器中,函数编译通常依据函数之间的调用关系进行,每个被调用的函数的编译过程通常会使用到被调用者保存寄存器(callee saved)。

2、目前,为了保证被调用者保存寄存器的寄存器数据在其被函数使用前后保持一致,通常在内存中为使用被调用者保存寄存器的函数分配对应的堆栈空间,以通过堆栈空间保存被调用者保存寄存器的寄存器数据,并在函数使用被调用者保存寄存器结束后恢复被调用者保存寄存器的寄存器数据。这样,每个被调用的函数在使用被调用者保存寄存器时,由于均会在内存中分配对应的堆栈空间,因此导致内存中的堆栈空间较多,严重占用内存空间,影响内存性能。


技术实现思路

1、有鉴于此,本申请提出了一种数据处理装置及方法,主要目的在于降低函数调用对内存性能的影响。

2、为了达到上述目的,本申请主要提供了如下技术方案:

3、第一方面,本申请提供了一种数据处理装置,该数据处理装置包括:

4、目标寄存器,被配置为存储寄存器数据;

5、与所述目标寄存器对应配置的备份寄存器组,被配置为备份所述目标寄存器的寄存器数据;

6、数据处理电路,被配置为响应于检测到当前被调用函数为目标函数,将所述目标寄存器的寄存器数据备份至所述备份寄存器组;响应于检测到所述目标寄存器被所述当前被调用函数使用完成,将所述备份寄存器组中的寄存器数据恢复至所述目标寄存器,以使所述目标寄存器的寄存器数据在所述目标寄存器被函数使用前后保持一致;其中,所述目标函数为被调用完成后不再调用其他函数的函数。

7、在本申请一些实施例中,所述数据处理电路包括:第一写入电路,被配置为响应于检测到当前被调用函数为目标函数,在所述当前被调用函数的序言代码中添加第一硬件指令;其中,所述第一硬件指令用于指示将所述寄存器数据备份至所述备份寄存器组;备份电路,被配置为若判定所述序言代码在所述目标寄存器中执行,且在执行过程中所述第一硬件指令被触发,则基于所述第一硬件指令将所述寄存器数据备份至所述备份寄存器组。

8、在本申请一些实施例中,所述第一写入电路,被配置为将所述序言代码中的堆栈空间预留指令替换为所述第一硬件指令,以由内存堆栈空间备份所述寄存器数据转换为所述备份寄存器组备份。

9、在本申请一些实施例中,所述数据处理电路包括:第二写入电路,被配置为响应于检测到所述当前被调用函数为目标函数,在所述当前被调用函数的尾声代码中添加第二硬件指令;恢复电路,被配置为若判定所述尾声代码在所述目标寄存器中执行,且在执行过程中所述第二硬件指令被触发,则将所述备份寄存器组中的寄存器数据恢复至所述目标寄存器。

10、在本申请一些实施例中,所述第二写入电路,被配置为将所述尾声代码中的数据恢复指令替换为所述第二硬件指令,以由基于内存堆栈空间恢复所述寄存器数据转换为基于所述备份寄存器组恢复。

11、在本申请一些实施例中,所述数据处理电路,还被配置为判断所述当前被调用函数是否为叶子函数;若判定为叶子函数,则检测到所述当前被调用函数为所述目标函数。

12、在本申请一些实施例中,所述数据处理电路,还被配置为判断所述当前被调用函数是否为对应的函数调用链中的最后一个函数;若判定是最后一个函数,则检测到所述当前被调用函数为所述目标函数。

13、在本申请一些实施例中,所述数据处理电路,还被配置为若判定所述当前被调用函数相关的调用过程数据需要保存,则请求内存为所述当前调用函数分配用于存储所述调用过程数据的堆栈空间。

14、第二方面,本申请提供了一种数据处理方法,目标寄存器存在对应配置的备份寄存器组,所述数据处理方法包括:

15、响应于检测到当前被调用函数为目标函数,将所述目标寄存器的寄存器数据备份至所述备份寄存器组;其中,所述目标函数为被调用完成后不再调用其他函数的函数;

16、响应于检测到所述目标寄存器被所述当前被调用函数使用完成,将所述备份寄存器组中的寄存器数据恢复至所述目标寄存器,以使所述目标寄存器的寄存器数据在所述目标寄存器被函数使用前后保持一致。

17、第三方面,本申请提供了一种计算机可读存储介质,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行第一方面所述的数据处理方法。

18、第四方面,本申请提供了一种电子设备,所述电子设备包括:存储器,用于存储程序;处理器,耦合至所述存储器,用于运行所述程序以执行第一方面所述的数据处理方法。

19、本申请提供的数据处理装置及方法,在被调用函数为被调用完成后不再调用其他函数的函数时,通过备份存储器组备份和恢复被调用函数所使用的目标寄存器的寄存器数据,而不再为被调用函数在内存中分配用于备份和恢复被调用函数所使用的目标寄存器的堆栈空间。这样,由于针对被调用完成后不再调用其他函数的函数,不再分配堆栈空间,因此能够减少内存中的堆栈空间数量,从而减少堆栈空间对内存空间的占用,进而提升内存性能。

20、上述说明仅是本申请技术方案的概述,为了能够更清楚了解本申请的技术手段,而可依照说明书的内容予以实施,并且为了让本申请的上述和其它目的、特征和优点能够更明显易懂,以下特举本申请的具体实施方式。

本文档来自技高网...

【技术保护点】

1.一种数据处理装置,其特征在于,所述装置包括:

2.根据权利要求1所述的装置,其特征在于,所述数据处理电路包括:

3.根据权利要求2所述的装置,其特征在于,所述第一写入电路,被配置为将所述序言代码中的堆栈空间预留指令替换为所述第一硬件指令,以由内存堆栈空间备份所述寄存器数据转换为所述备份寄存器组备份。

4.根据权利要求1所述的装置,其特征在于,所述数据处理电路包括:

5.根据权利要求4所述的装置,其特征在于,所述第二写入电路,被配置为将所述尾声代码中的数据恢复指令替换为所述第二硬件指令,以由基于内存堆栈空间恢复所述寄存器数据转换为基于所述备份寄存器组恢复。

6.根据权利要求1-5中任一项所述的装置,其特征在于,所述数据处理电路,还被配置为判断所述当前被调用函数是否为叶子函数;若判定为叶子函数,则检测到所述当前被调用函数为所述目标函数;

7.根据权利要求1-5中任一项所述的装置,其特征在于,所述数据处理电路,还被配置为若判定所述当前被调用函数相关的调用过程数据需要保存,则请求内存为所述当前调用函数分配用于存储所述调用过程数据的堆栈空间。

8.一种数据处理方法,其特征在于,目标寄存器存在对应配置的备份寄存器组,所述方法包括:

9.一种计算机可读存储介质,其特征在于,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行权利要求8所述的数据处理方法。

10.一种电子设备,其特征在于,所述电子设备包括:

...

【技术特征摘要】

1.一种数据处理装置,其特征在于,所述装置包括:

2.根据权利要求1所述的装置,其特征在于,所述数据处理电路包括:

3.根据权利要求2所述的装置,其特征在于,所述第一写入电路,被配置为将所述序言代码中的堆栈空间预留指令替换为所述第一硬件指令,以由内存堆栈空间备份所述寄存器数据转换为所述备份寄存器组备份。

4.根据权利要求1所述的装置,其特征在于,所述数据处理电路包括:

5.根据权利要求4所述的装置,其特征在于,所述第二写入电路,被配置为将所述尾声代码中的数据恢复指令替换为所述第二硬件指令,以由基于内存堆栈空间恢复所述寄存器数据转换为基于所述备份寄存器组恢复。

6.根据权利要求1-5中任一项所述的装置,其特征...

【专利技术属性】
技术研发人员:高斐王峰杜超
申请(专利权)人:北京奕斯伟计算技术股份有限公司
类型:发明
国别省市:

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

1