[发明专利]一种微处理器子程序调用的处理方法及其装置有效
申请号: | 201110300283.8 | 申请日: | 2011-09-28 |
公开(公告)号: | CN102360283A | 公开(公告)日: | 2012-02-22 |
发明(设计)人: | 张铁军;王东辉;王琪;洪缨;侯朝焕 | 申请(专利权)人: | 中国科学院声学研究所 |
主分类号: | G06F9/38 | 分类号: | G06F9/38 |
代理公司: | 北京亿腾知识产权代理事务所 11309 | 代理人: | 陈霁 |
地址: | 100190 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 微处理器 子程序 调用 处理 方法 及其 装置 | ||
技术领域
本发明涉及一种处理器技术,尤其涉及一种微处理器子程序调用的处理方法及其装置。
背景技术
在各类应用程序中,条件跳转指令是频繁使用的一种指令,子程序调用类和循环是条件跳转指令应用的主要领域之一,条件跳转指令的高效设计是处理器高效运行的关键。
现有的处理器中,跳转指令一般采用J指令或B指令来实现,这类跳转指令主要实现将程序跳转到特定的地址,其中立即数或寄存器作为偏移量。
子程序调用类跳转要求首先能跳转到子程序入口地址,然后在子程序执行结束后,指令的执行顺序须返回到调用位置。因为子程序可能会从许多不同的地址被调用,所以,必须保存有关的调用返回地址。保存返回地址有很多方法,如在执行转移之前,由调用程序计算出返回地址,并把它存储到标准存储器或特定寄存器或压入堆栈,以便于程序作为返回地址使用。由于子程序调用的使用很频繁,因此大多数处理器都采用指令实现子程序的跳转和返回以提高效率。
子程序调用类跳转与返回一般使用特殊指令,本发明中针对子程序调用类跳转指令命名为CALL,对子程序返回跳转指令命名为RET。子程序调用类跳转指令实现跳转的同时计算返回地址,并且将返回地址存储到特定的寄存器中;RET指令通过读取特定的寄存器中的地址,并且跳转到该地址,实现程序的返回。如果出现嵌套子程序的调用,则会通过指令将特定寄存器中保存的返回地址压入存储器的堆栈中。以保证现有的返回地址不会被嵌套子程序的返回地址所覆盖。
目前的大多数处理器都采用流水线结构来提高性能,为了消除跳转指令带来的开销,一般采用延迟槽填充或刷新流水线的方法来实现。对于采用延迟槽方法实现的处理器,子程序调用类跳转指令返回地址(retPC)的计算可由公式1获得。
公式1:retPC=PCcall_package_end+Ninst_delay_slot*(Linst/Step)
其中,PCcall_package_end代表子程序调用类跳转指令所在执行包的最后一条指令地址,该地址可由执行包首地址和执行包指令条数在流水线的执行级中计算获得;Ninst_delay_slot代表延迟槽中的指令的总数目;Linst是所述子程序调用类指令的编码位长,例如现在大多数DSP处理器指令编码位长为32比特;Step代表处理器的最小寻址单元位长;例如按字节寻址的处理器的最小寻址单元位长为8比特,按字寻址的处理器的最小寻址单元位长为32比特。
对于单发射的处理器而言,每个执行包都只有一条指令,因而PCcall_package_end=PCcall_package_start=PCcall,Ninst_delay_slot=Ndelay_slot。其中,PCcall_package_start代表子程序调用类跳转指令所在执行包的首指令地址;PCcall代表子程序调用类跳转指令的地址;Ndelay_slot代表延迟槽的数目。Ndelay_slot只跟流水线结构有关,因而对于处理器,Ndelay_slot是确定的。那么retPC的计算可由公式2获得。
公式2:retPC=PCcall+Ndelay_slot*(Linst/Step)
在单发射处理器中,公式2中所有参数都是确定的,因而执行子程序调用类跳转指令时就能计算出返回地址,通过硬件结构将此返回地址存储到特定的寄存器中,便于返回指令RET的调用。
在多发射处理器中,每个执行包中的指令数目不确定,因而若想实现执行子程序调用类跳转指令时能计算出返回地址,就必须能够确定公式中的参数:延迟槽内指令总数Ninst_delay_slot。
子程序调用类跳转指令一般通过固定延迟槽内每个执行包中指令数目来固定延迟槽内指令总数,从而计算返回地址。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院声学研究所,未经中国科学院声学研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201110300283.8/2.html,转载请声明来源钻瓜专利网。
- 上一篇:软件项目进度管理方法及系统
- 下一篇:制冷灯