[发明专利]用于超前运行操作的指令分类无效
申请号: | 201310658889.8 | 申请日: | 2013-12-06 |
公开(公告)号: | CN103870240A | 公开(公告)日: | 2014-06-18 |
发明(设计)人: | 马格努斯·埃克曼;吉列尔莫·J·罗扎斯;亚历山大·克莱贝尔;詹姆斯·范·策恩;保罗·塞维斯;布拉德·霍伊特;斯里达兰·罗摩克里希纳;亨斯·凡德斯库特;罗斯·泽格尔肯;达雷尔·D·博格斯 | 申请(专利权)人: | 辉达公司 |
主分类号: | G06F9/30 | 分类号: | G06F9/30;G06F9/38 |
代理公司: | 北京市磐华律师事务所 11336 | 代理人: | 谢栒;魏宁 |
地址: | 美国加利*** | 国省代码: | 美国;US |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 用于 超前 运行 操作 指令 分类 | ||
背景技术
微处理器中的指令常常由于管线错误或数据冲突而被重新分派一次或多次用于执行。例如,当指令引用尚未被计算或检索的结果时可能需要被重新分派。从不可用信息中产生的未命中可能使微处理器停顿(stall)。因为不知道在该未命中的解决期间是否将由于其他未命中而出现其他始料未及的停顿,所以微处理器可实施配置为在正在解决初始未命中的同时检测其他未命中的超前运行(runahead)操作。
附图说明
图1示意性地示出根据本公开实施例的计算设备的微处理器。
图2A示出根据本公开实施例的、在超前运行中执行微处理器而不重新发出已使微处理器进入超前运行的指令的方法的一部分。
图2B示出图2A所示出的方法的另一部分。
图3A示意性地示出根据本公开的实施例的、一旦检测到超前运行事件的微处理器管线。
图3B示出在进入超前运行之后的、图3A所示出的微处理器管线。
具体实施方式
在现代微处理器中,架构级指令常常在管线中执行。可以将这类指令单独地或作为微操作束(bundle)发出到管线中的各执行机制。无论指令被发出用于执行时采取的形式如何,当发出指令时,并不知道指令的执行是否将完成。换句话说,在分派时不知道在指令的执行期间是否将出现未命中或异常。
在指令的执行期间可能出现的常见的管线执行停顿是导致高速缓存未命中的加载操作。这类高速缓存未命中可触发进入操作的超前运行模式(此后称为“超前运行”),该超前运行配置为例如在解决初始加载未命中的同时检测其他高速缓存未命中、指令转译后备缓冲区未命中、或分支误预测。如本文所使用的,超前运行描述从长时延事件中产生的任何合适的推测性(speculative)执行方案,诸如在产生的加载事件从较慢的访问存储器位置拉取未命中的指令或数据的情况下的高速缓存未命中。一旦初始加载未命中被解决,那么微处理器退出超前运行并且指令被重新执行。因为其他未命中可能出现,所以指令在指令的完成之前可被重新执行数次是可能的。
一旦检测到触发超前运行的事件,则微处理器的状态(例如,寄存器和其它合适的状态)被设立检查点使得微处理器在超前运行之后可返回到该状态。微处理器随后在超前运行期间继续在工作状态中执行。在一些设定中,微处理器可立即进入超前运行,并且可选地可重新发出已使微处理器进入超前运行的指令用于执行。因为重新发出指令可能花费一些时间,所以微处理器当处于超前运行中时能够检测新潜在长时延事件的有效时间可减少。在诸如加载未命中的一些其他设定中,微处理器可延迟进入超前运行直到可确定是否可通过在存储器层级的另一高速缓存中的命中来满足一个高速缓存中的加载未命中为止。例如,在指令使L1高速缓存未命中的场景中,微处理器可延迟重新发出指令,使得指令一旦被重新发出,则如果该指令到达,就将与来自L2高速缓存的命中相吻合。换句话说,在这类场景中,微处理器将短暂停顿而不立即进入超前运行,接着重新发出指令。因为在知悉L2高速缓存中是否将存在命中之前可重新发出指令,所以如果L2高速缓存未命中,那么微处理器仍可进入超前运行。
然而,在上文所预期的场景的每一个中,可启动指令而不知悉是否将产生触发超前运行的事件是可能的。因为在超前运行模式中可以与在正常模式中不同地对待一些指令,并且因为可在发出时应用一些这类不同,所以进入超前运行而不重新发出已致使进入超前运行的指令可能是困难的。例如,一些微处理器动作如果在超前运行期间被实施,则可能不利地影响微处理器状态,因为那些动作可能导致高速缓存污染和/或使得难以返回到正常操作模式。
因此,本文所描述的实施例涉及方法和硬件,该方法和硬件在指令的执行产生触发超前运行的事件的情况下可操作以使微处理器进入超前运行模式并在超前运行模式中操作而不重新发出指令。在一些示例中,本文所描述的实施例可实行一个或多个超前运行策略,其支配微处理器的操作并在当微处理器处于超前运行中时使微处理器与不处于超前运行时不同地进行操作。换句话说,微处理器可取决于超前运行状态针对一些指令采取不同的动作。
例如,将理解的是,在超前运行期间可相对于非超前运行操作而不同地将一些动作优先化,和/或一些动作可被视为在超前运行期间是可选的。因此,在一些实施例中,一些动作可被分类为是许可的(permissive),而其他动作可被分类为是绝对的。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于辉达公司,未经辉达公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310658889.8/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种雷达用软电缆
- 下一篇:一种终端操作方法及终端