[发明专利]处理信息的方法及其装置有效
申请号: | 201310259561.9 | 申请日: | 2013-06-26 |
公开(公告)号: | CN103345392B | 公开(公告)日: | 2017-02-22 |
发明(设计)人: | 周巍 | 申请(专利权)人: | 华为技术有限公司 |
主分类号: | G06F9/44 | 分类号: | G06F9/44 |
代理公司: | 北京龙双利达知识产权代理有限公司11329 | 代理人: | 毛威,张亮 |
地址: | 518129 广东*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 处理 信息 方法 及其 装置 | ||
技术领域
本发明实施例涉及计算机领域,并且更具体地,涉及处理信息的方法及其装置。
背景技术
在目前的编译技术中,常用的函数调用方式通过栈来实现参数和返回值传递,具体而言,当调用函数需要向被调函数传递参数时,调用函数从被调函数的栈空间开始位置起逐个存入参数内容,相应地,被调函数从自己的栈空间开始位置起写入传递给它的参数,并在寄存器中对该参数内容执行操作,这种方式的实现需要额外增加读写指令,同时由于寄存器和栈之间的存取操作时延较大,会使得系统性能消耗较大。
由于上述完全用栈来传参的方式效率较低,为此使用寄存器来传参成为了一种新的方式,滑窗机制是一种在兼顾成本的情况下通过寄存器传递参数的方式,比如tensalica公司的芯片,它提供了32个通用物理寄存器,依次编号为A0-A31,而在汇编代码中直接操作的只有16个寄存器,称为初始窗口。初始窗口的16个寄存器依次编号为a0-a15,该a0-a15可称为逻辑寄存器,当父函数调用子函数时,需要进行窗口滑动,每次滑动的寄存器数固定,例如4和8,分别被称作call4和call8调用。以call8调用为例,当父函数通过call8指令调用子函数时,父函数中的a0-a7是子函数不能访问到的,这样,这8个寄存器就不需要由父函数或者子函数显式的压栈保存,窗口划动后自然对这8个寄存器进行保护,其中,a0-a3寄存器称为父函数的基本寄存器,a4-a7寄存器为子函数的扩展寄存器;对父函数的a8-a15,在窗口划动后又变成了子函数窗口的a0-a7寄存器,这部分寄存器(称为滑动寄存器)的内容直接被子函数看到,因此可以用他们来存储一些函数间传递用到的参数。这样避免了将参数保存到栈传递导致的存储时间耗费。
虽然滑窗机制能减少对栈空间的存取操作,然而,在现有技术中,当编译器配置完成后,使用该编译器编译的所有函数均采用默认的划窗长度,且此默认划窗长度在任何情况下都是固定不变的。因此,当该默认划窗长度较大时,例如,8或12,当函数调用次数大到一定深度的时候,就会不断的产生溢出,导致我们并不能从滑窗机制中获取好处。而当该默认划窗长度较小时,例如4,虽然减少了溢出的概率,但是当函数调用不会产生溢出时,与较大的划窗长度相比,较小的划窗长度增加了存入栈中寄存器的个数,因而增加了程序运行时延。因此,现有技术中采用固定的划窗长度使得处理信息过程中还会由于存取数据耗费时间,函数的运行速率较慢,对内存空间的利用率和系统的整体性能较差。
发明内容
本发明实施例提供了一种处理信息的方法及其装置,能够解决现有技术中由于固定的划窗长度而造成的存取数据的时间耗费。
第一方面,提供了一种处理信息的方法,包括:确定待编译函数的目标划窗长度,该目标划窗长度不等于该待编译函数的初始划窗长度;根据该目标划窗长度,确定该待编译函数的汇编代码。
结合第一方面,在第一种可能的实现方式中,该确定待编译函数的目标划窗长度,该目标划窗长度不等于该待编译函数的初始划窗长度,包括:根据用于指示该待编译函数的划窗长度的用户编译指令,确定该待编译函数的目标划窗长度,该目标划窗长度不等于该待编译函数的初始划窗长度。
结合第一方面,在第二种可能的实现方式中,该确定待编译函数的目标划窗长度,该目标划窗长度不等于该待编译函数的初始划窗长度,包括:获取该待编译函数的函数调用信息;根据该函数调用信息,确定该目标划窗长度,该目标划窗长度不等于该待编译函数的初始划窗长度。
结合第一方面或结合第一方面的第一种或第二种可能的实现方式,在第三种可能的实现方式中,该根据该目标划窗长度,确定该待编译函数的汇编代码,包括:根据该目标划窗长度,进行寄存器分配;根据该寄存器分配和该目标划窗长度,生成该待编译函数的汇编代码。
结合第一方面的第三种可能的实现方式,在第四种可能的实现方式中,该根据该寄存器分配和该目标划窗长度,生成该待编译函数的汇编代码,包括:调整该待编译函数的调用指令,使得该待编译函数的划窗长度为该目标划窗长度。
结合第一方面或结合第一方面的第一种或第二种可能的实现方式,在第五种可能的实现方式中,该根据该目标划窗长度,确定该待编译函数的汇编代码,包括:根据该初始划窗长度,生成该待编译函数的初始汇编代码;调整该初始汇编代码以获得目标汇编代码,使得该目标汇编代码中该待编码函数的划窗长度为该目标划窗长度。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华为技术有限公司,未经华为技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310259561.9/2.html,转载请声明来源钻瓜专利网。
- 信息记录介质、信息记录方法、信息记录设备、信息再现方法和信息再现设备
- 信息记录装置、信息记录方法、信息记录介质、信息复制装置和信息复制方法
- 信息记录装置、信息再现装置、信息记录方法、信息再现方法、信息记录程序、信息再现程序、以及信息记录介质
- 信息记录装置、信息再现装置、信息记录方法、信息再现方法、信息记录程序、信息再现程序、以及信息记录介质
- 信息记录设备、信息重放设备、信息记录方法、信息重放方法、以及信息记录介质
- 信息存储介质、信息记录方法、信息重放方法、信息记录设备、以及信息重放设备
- 信息存储介质、信息记录方法、信息回放方法、信息记录设备和信息回放设备
- 信息记录介质、信息记录方法、信息记录装置、信息再现方法和信息再现装置
- 信息终端,信息终端的信息呈现方法和信息呈现程序
- 信息创建、信息发送方法及信息创建、信息发送装置