[发明专利]用于支持推测的访客返回地址栈仿真的方法和装置有效
申请号: | 201480021703.0 | 申请日: | 2014-03-13 |
公开(公告)号: | CN105122206B | 公开(公告)日: | 2018-11-09 |
发明(设计)人: | 穆罕默德·阿布达拉 | 申请(专利权)人: | 英特尔公司 |
主分类号: | G06F9/455 | 分类号: | G06F9/455;G06F9/38 |
代理公司: | 上海专利商标事务所有限公司 31100 | 代理人: | 黄嵩泉 |
地址: | 美国加利*** | 国省代码: | 美国;US |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 用于 支持 推测 访客 返回 地址 仿真 方法 装置 | ||
公开了一种用于维护乱序微处理器管线中的访客返回地址栈的微处理器实现的方法。方法包括将访客地址空间中的多个指令映射到本地地址空间中的对应的多个指令。针对在执行期间取回的所述本地地址空间中的每个函数调用指令,所述方法进一步包括实施以下步骤:(a)响应于函数调用将当前条目入栈到访客返回地址栈(GRAS)中,其中GRAS在管线的取回段处维护,并且其中当前条目包括关于与函数调用相关联的访客目标返回地址和对应的本地目标返回地址两者的信息;(b)响应于处理返回指令将当前条目从所述GRAS出栈;以及(c)在从GRAS出栈之后从当前条目中的本地目标返回地址取回指令。
技术领域
根据本发明的实施例一般地涉及微处理器体系架构,并且更具体地,涉及用于乱序(OOO)微处理器的仿真体系架构。
背景技术
很多类型的数字计算机系统利用代码变换/转译或仿真来实现基于软件的功能。通常,转译和仿真两者都涉及对软件程序指令进行检查并且实施由软件指令指定的功能和动作,即使指令对于计算机系统并非是“本地”(native)的。例如,在仿真体系架构中,非本地的(或访客)指令可以映射为本地指令的形式,其被设计为在计算机的硬件上执行。
如关于2012年1月27日提交的名为“GUEST INSTRUCTION TO NATIVE INSTRUCTIONRANGE BASED MAPPING USING A CONERSION LOOK ASIDE BUFFER OF A PROCESSOR”的、律师案号为SMII-0030的、Mohammad Abdallah的美国专利申请No.13/359,767(以下称为“申请No.13/359,767”)详细描述的,访客指令块在仿真体系架构中被转换或者映射为本地转换块。如申请No.13/359,767中所述,仿真体系架构中的访客指令可以来自若干不同的访客指令体系架构(例如,Java,x86,MIPS等)并且多个访客指令块可以被转换为一个或多个对应的本地转换块。该转换在每指令的基础上发生。例如,访客代码块可以转换为本地代码的数个对应指令系列。
另外,如申请No.13/359,767中所述,诸如转换后备缓冲器(CLB)的结构常用于在仿真体系架构中,以提供访客地址和本地地址之间的映射。转换后备缓冲器一般用于高速缓存访客块和本地块之间的地址映射,从而通过低的处理器可用延迟对最常遇到的本地转换块进行访问。使用CLB加速了来自访客指令体系架构的访客指令到用于在本地处理器上执行的本地指令体系架构的本地指令的转译处理。通过使用CLB,访客指令被快速转换为本地指令并且被管线化到本地处理器硬件用于快速执行。
在某些情况下,由于对访客空间中的相同函数的函数调用,转换后备缓冲器(CLB)可能临时充满太多条目。函数调用包括对来自指令序列内的对函数的调用以及在函数已经执行之后返回到指令序列。对于在调用后随后从访客空间的函数的每个返回(以下称为“函数返回”),新的对应指令系列在本地空间中一般从函数的返回地址处开始。因此,必须在CLB中为每个这样的返回创建新的映射。因为可以从来自访客代码块内的多个地方调用函数,所以结果是CLB中用于函数的数个访客-到-本地的映射。这导致在处理器管线中为宝贵的资源的CLB被临时充满,并且这是对CLB结构非常低效的使用。
发明内容
相应地,需要用于创建更高效和灵活的途径来对用于访客代码中的函数返回的访客-到-本地映射进行高速缓存的方法和装置。在一个实施例中,称为访客返回地址栈(GRAS)的专用硬件结构被用于推测性地高速缓存用于函数返回的映射,其中GRAS结构对用于函数返回的访客地址和本地地址两者进行高速缓存,并且其中GRAS驻留在处理器管线的前端,例如在取回段。在创建映射之后,当在代码中遇到函数时,查找GRAS以确定对函数返回的目标的预测。因此,防止CLB被与来自相同函数的函数返回相关联的多个条目充满并有利地节省了CLB中的宝贵空间。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于英特尔公司,未经英特尔公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201480021703.0/2.html,转载请声明来源钻瓜专利网。