gpt4 book ai didi

x86 - MSROM 程序中的条件跳转指令?

转载 作者:行者123 更新时间:2023-12-04 14:20:12 25 4
gpt4 key购买 nike

这涉及到 this问题

不过考虑一下,在现代英特尔 CPU 上,SEC 阶段是在微码中实现的,这意味着会有一个检查,使用烧录的 key 来验证 PEI ACM 上的签名。如果不匹配,则需要做某事,如果匹配,则需要做其他事情。鉴于这是作为 MSROM 过程实现的,因此必须有一种分支方式,但鉴于 MSROM 指令没有 RIP。

通常,当一个分支错误预测为被采用时,当指令退出时,ROB 将检查异常代码,因此将指令长度添加到 ROB 行的 RIP 或仅使用下一个 ROB 条目的 IP,这将导致前端在分支预测更新中被重新引导到该地址。对于 BOB,此功能现在已借给跳转执行单元。显然,这不会发生在 MSROM 例程中,因为前端与它无关。

我的想法是,有一个特定的跳转指令,只有 MSROM 例程可以发出,它跳转到 MSROM 中的不同位置,并且可以配置为始终预测不采用 MSROM 分支指令,并且当分支执行单元遇到这个指令和分支被执行,它产生一个异常代码,并可能将特殊跳转目标连接到它,并且在退出时发生异常。或者,执行单元可以处理它并且它可以使用 BOB,但我的印象是 BOB 由分支指令 RIP 索引,然后还有一个事实是生成 MSROM 代码的异常通常在退休时处理;分支错误预测不需要我认为不需要的 MSROM,而是所有操作都是在内部执行的。

最佳答案

我现在知道的是,分支是由 MSROM 静态预测的,它在下一个微码行的下一个 IP 逻辑中使用该预测。这些预测可能已经在存储在 MSROM 中的微指令中提供。
对于更小、更频繁的 MSROM 例程,复杂的解码器可以发出 1-4 uop,然后将控制权交给 MSROM 以完成解码。否则,它会延迟将控制权交给 MSROM。

In the preferred embodiment, some of the more frequently-used macroinstructions are decoded by the XLAT PLAs 510-516 into one, two, three, or four of the first Cuops in the micro-operation sequence, which provides high performance at the cost of additional minterms in the XLAT PLAs 510-516. Alternately, for some less frequently-used macroinstructions, the four XLAT PLAs 510-516 issue no Cuops, but simply allow the MS unit 534 to issue all Cuops. This second alternative has a disadvantage of lower performance (i.e., a loss of at least one clock cycle), but can save minterms (entries) in the XLAT PLAs 510-516, which is a design trade-off that reduces die space at the expense of lower performance. This trade-off can be useful for less frequently used instructions or for long microcode flows where the significance of one additional clock is lessened.


The opcodes from the macroinstruction 502 are supplied to the entry point PLA 530 that decodes the opcodes to generate an entry point address into microcode ROM. The generated entry point address is supplied to the MS unit 534 that, responsive to the entry point, generates a series of Cuops. The MS unit 534 includes a microcode ROM ("UROM") that includes microcode routines to supply UROM Cuops for long instructions flows, which in some examples may require over a hundred UROM Cuops. The UROM also includes assist handling routines and other microcode.


其余的在这里回答: https://stackoverflow.com/a/65796517/7194773

关于x86 - MSROM 程序中的条件跳转指令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55813084/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com