[发明专利]微处理器中的有效子程序返回无效
| 申请号: | 200680020713.8 | 申请日: | 2006-05-25 |
| 公开(公告)号: | CN101194228A | 公开(公告)日: | 2008-06-04 |
| 发明(设计)人: | 埃里克·K·雷诺;厄于温·斯特伦;莫滕·W·伦斯 | 申请(专利权)人: | 爱特梅尔公司 |
| 主分类号: | G06F9/44 | 分类号: | G06F9/44 |
| 代理公司: | 北京律盟知识产权代理有限责任公司 | 代理人: | 孟锐 |
| 地址: | 美国加利*** | 国省代码: | 美国;US |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 微处理器 中的 有效 子程序 返回 | ||
技术领域
本发明涉及微处理器中的子程序返回操作。
背景技术
程序通常以执行特定任务的子例行程序为特征。在执行任务之后,程序流从子例行程序返回到主程序。一种用于执行子例行程序返回的常见机制涉及有条件地或无条件地将返回地址寄存器的内容移动到程序计数器中且接着继续程序执行。也可用可代表布尔值的恒定文字更新返回值寄存器。另一种用于子程序返回的方法是从堆栈“弹出”返回地址并将其输入到程序计数器中,且从那点继续程序执行。此操作还可将任何假脱机输出寄存器文件内容从堆栈弹出到寄存器文件中。
这些用于执行子例行程序返回的方法采用若干循环来执行。在图1中,当在典型管线型CPU中执行传统的返回(“RET”)指令时,需要五个循环10来执行所述指令。在图2中,典型的管线型CPU含有程序计数器(“PC”)42和指令存储器44。所述CPU具有分离不同管线级的四个不同管线寄存器46、52、56和60。(寄存器46与52之间的)指令解码级含有用于对当前指令解码且产生控制信号的控制/解码单元(“CU”)48以及寄存器文件50两者。(寄存器52与56之间的)执行级含有算术逻辑单元(“ALU”)54。(寄存器56与60之间的)存储器级含有数据存储器58。继续参看图1,在循环1期间,在指令获取(“IF”)级12中,获取RET指令(方框22)。在循环2中,在指令解码(“ID”)级14中,产生正确的控制信号且从寄存器文件读取返回地址寄存器(方框24)。在循环3中,在执行(“EX”)级16中,通过算术逻辑单元(“ALU”)无变化地写入返回地址寄存器内容(方框26)。在循环4期间,在存储器(“MEM”)级中,经过数据存储器写入返回地址寄存器内容。最后,在循环5中,在回写(“WB”)20级中,将返回地址寄存器内容写入到程序计数器(“PC”)且清洗管线(方框30)。一旦管线得以清洗,管线便不会含有任何指令,直到从程序存储器读取返回地址处的指令为止。因此,在管线清洗过程中浪费了若干个时钟循环。
对于从存储器中的堆栈弹出返回地址寄存器的返回指令(“RETMEM”)来说存在类似问题。如图3所示,在循环1中,在IF级中,获取RETMEM指令(方框32)。在循环2期间,在ID级中,产生正确的控制信号。在循环3中,在EX级期间,经过ALU将控制信号路由到数据存储器(方框36)。在循环4中,在MEM级中,从数据存储器读取返回地址(方框38)。最后,在循环5中,在WB级中,将从存储器读取的返回地址写入到PC且清洗管线(方框40)。如同图1中所论述的返回指令,在管线清洗之后浪费了若干个循环。
提供一种较为有效的子例行程序返回操作将是有利的。
发明内容
在示范性实施例中,获取需要返回操作且基于返回值寄存器的内容设置状态旗标的指令。与用以处理返回指令所需的至少一个其它操作并行地设置状态旗标。在以下情况之一发生之前设置状态旗标:i)返回地址寄存器的内容移动到程序计数器中;ii)返回地址从堆栈处弹出并进入程序计数器中。在另一实施例中,处理器可读存储媒体促使处理器执行此子例行程序返回操作。
在本发明的又一示范性实施例中,子例行程序返回操作将返回地址放置到程序计数器中。对返回值寄存器执行测试操作;与用以处理返回操作所需的至少一个其它操作并行地执行所述测试操作。程序流改变为目标地址。响应于单个指令来执行上文提到的步骤中的每一者。在一个实施例中,处理器可读存储媒体存储促使处理器执行此子例行程序返回操作的指令。
附图说明
图1是展示如何在现有技术中执行返回指令的图。
图2是现有技术中的管线型CPU的方框图。
图3是展示如何在现有技术中执行从存储器中的堆栈弹出返回地址寄存器的返回指令的图。
图4是本发明示范性实施例中的管线型CPU的方框图。
图5是展示本发明实施例中返回指令的示范性执行的图。
图6是展示在本发明实施例中执行从存储器中的堆栈弹出返回地址寄存器的返回指令的示范性执行的图。
具体实施方式
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于爱特梅尔公司,未经爱特梅尔公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200680020713.8/2.html,转载请声明来源钻瓜专利网。





