一种组合指令的技术的制作方法

文档序号:6560710阅读:121来源:国知局
专利名称:一种组合指令的技术的制作方法
技术领域
本发明的实施例涉及微处理器体系结构。本发明的实施例尤其涉及使用其数 量要少于微处理器指令内的微操作(uop)的数量来表示两条或更多条微处理器指令的技术。
技术背景在典型的高性能超标量微处理器中, 一种用于改善性能的技术是通过将一个或多个微操作("uop")转换成一个可作为单个uop执行的"融合"u叩来降低执 行各种微处理器指令的uop数量。在本公开通篇使用的术语"uop"用于描述由指令解码成的任何子指令或操作,以便处理器执行由所述指令描述的所述操作。现有的u叩融合技术通常用于组合由单条指令生成的u叩。此外,现有的某些 u叩融合技术可以在处理器流水线内或者可以在这些uop被退回并提交给处理器状 态之前解融合这些已融合的uop。在相应指令退回之前正在解融合已融合的uop会 降低受益于u叩融合的某些性能。在任一情况下,现有的uop融合技术按照处理器和/或计算机系统性能来说在某些环境中仍是效率低下的。


本发明的实施例以实例的方式示出,并且不限于附图所示的情况,在附图中相同的编号指代相似的元素并且所述附图包括图l根据本发明的一个实施例示出了用于表示一种指令组合技术的逻辑元件。图2是根据本发明的一个实施例示出了要被执行以判定在程序顺序中相邻的 两个微操作(uop)是否应该融合的操作流程图。图3是根据本发明的一个实施例示出了要被执行以判定在程序顺序中不相邻的两个微操作(u叩)是否应该融合的操作流程图。
图4是根据本发明的一个实施例示出了要被执行以判定在程序顺序中相邻的 两个微操作(uop)是否应被退回的操作流程图。图5是根据本发明的一个实施例示出了要被执行以判定在程序顺序中不相邻 的两个微操作(uop)是否应被退回的操作流程图。图6是在其中可以使用本发明一个实施例的具有点对点总线体系结构的计算 机系统。图7是在其中可以使用本发明一个实施例的具有共享总线体系结构的计算机 系统。
具体实施方式
本发明的实施例涉及微处理器体系结构。更具体地,本发明的实施例涉及使 用其数量要少于两条或更多条微处理器指令中任何指令所包含数量的微操作 ("u叩")表示所述两条或更多条指令或uop的技术,其中所述微处理器以与执行 和退回这些指令或uop本身所导致的处理器状态实质上相同的方式执行并退回所 述uop。在一个实施例中,可以识别由单个uop表示的两条指令,其中对该单个uop指令的执行和退回会导致与执行和退回所述两条指令实质上相同的处理器状态。 在本发明的某些实施例中,在程序顺序中彼此相邻或不相邻出现的两条或更多条指令在它们适于组合的情况下都能被一个uop表示。在一个实施例中,如果与 第一条指令相关联的第一uop的执行结果可由与第二条指令相关联的第二uop所使用,这些指令无论在程序顺序中相邻还是不相邻地出现都适于组合。两条指令的组合结果可由两个uop的部分结果组成,例如可由第一 uop的寄存器值和第二 uop 的标志组成。由于第二uop的标志覆盖了第一uop的标志,因此就删除该第一uop 的标志。例如,相加两个操作数的指令("add"指令)可用作将所述加法指令的 结果与另一个操作数相比较的另一条指令("cmp"指令)的源。因此在本发明的 一个实施例中,负责执行所述加法操作的uop与负责执行所述比较运算的uop可由 执行加法和比较两种操作的一个uop表示。在另一个实施例中,在程序顺序中彼此相邻或不相邻出现的多于两条的指令 也可由单个uop表示。例如在一个实施例中,引起操作数值递增的指令("inc" 指令)、cmp指令和基于cmp指令比较结果改变指令指针的指令("jump"指令)
可由单个uop表示以在执行时完成所有三条指令,因为与这三条指令相关联的uop 在功能上是相连的(例如,cmp指令使用的inc指令的输出,而cmp指令的输出又 为jump指令所用)。在此情况下,组合的结果由寄存器值组成,而任何标志或目 标地址则被存储在其他地方。但在其它实施例中,这些标志和目标地址也可以连同 寄存器值一并存储。通常,本发明的实施例有助于改进实施例对应的微处理器或计算机系统的性 能。例如,至少一个实施例可以允许对于现有技术相同的解码资源量实现更多的指 令被解码来增加指令解码带宽。本发明的某些实施例还可以进一步改进性能以增加 u叩重命名的带宽、增强u叩保留和/或重排序能力、降低uop执行延迟时间、减小 功耗或增加退回带宽。从在此描述的本发明一个或多个实施例中可以认识到的上述 的部分或全部优势。图1根据本发明的一个实施例示出了用于表示一种指令组合技术的逻辑元件。 在其他实施例中,图1可以包括其他逻辑元件。此外,图1中的所述逻辑元件还可 以用于电子设备,诸如微处理器、微控制器或其他设备。图l所示的逻辑元件还可 被分配给多个电子设备,诸如多个处理器。此外,图1中的一个或多个逻辑元件还 可以表示硬件逻辑(诸如由互补金属氧化物半导体(CMOS)门组成的逻辑)、软 件(诸如由计算机可读指令组成的程序例程)或者硬件逻辑和软件的组合。更具体地,图1示出了其中存储有指令的指令队列101,其中的指令在由解码 器105-120解码成u叩之后将由处理器执行单元150执行。图1所示的一个实施例 是以自下而上的顺序从指令队列中读取指令,而在其他实施例中,也可以其他的顺 序读取指令,例如自上而下。在一个实施例中,第一指令由解码器105解码而相应 的uop则存储在寄存器140内,第二指令由解码器11O解码而相应的uop则存储在 寄存器135内,第四指令由解码器115解码而相应的uop则存储在寄存器130内并 且第五指令由解码器120解码而相应的uop则存储在寄存器125内。在其它实施例 中,被解码的uop可被存储在其他存储结构中或被组合入一个或多个寄存器。在一个实施例中,发现第三指令与第二指令相关联并且可由单个uop表示第 二和第三指令。例如在一个实施例中,第二指令可以是比较两个值的指令("cmp" 指令),而第三指令可以是基于比较结果改变指令指针的指令(例如,"jump" 指令)(例如,如果cmp指令比较的值不相等就跳转,或"jne"指令)。在第二 指令和第三指令分别是cmp和jne指令的情况下, 一个实施例可以使用一个能够执 行这两条指令的uop来表示这两条指令,诸如比较两个值并基于比较结果的否定 (off)行进至条件分支(例如,"cmpjcc" uop),并且产生CMP的跳转目标和标志。在此情况下就无需解码第三指令,并且只需将该指令的跳转目标送至cmpjcc uop。在一个实施例中,对cmp指令的解码就指示出下一条指令将会是某种跳转指 令,因此就无需再对该跳转指令进行解码。然而在其它实施例中,第二指令可以是 尚未设定后续指令的另一条指令,而必须被实际解码。在此实例中,在表示第二和 第三指令的uop被确定之前,必须通过解码逻辑发送该第三指令。在其它实施例中,由单个uop表示的两条指令在指令队列中不是彼此相邻的, 而是由一条或多条指令隔开的。通常,本发明的实施例允许由少于两条或多条指令中所含u叩数量的一个u叩 数量来表示所述的两条或多条指令。因此,本发明的实施例基于对能够与其他指令 组合并能由单个u叩或者至少比被组合指令所包括的uop数量要少的uop所表示的 一条或多条指令的识别,就能因为无需解码一条或多条指令而增加可用解码逻辑的 带宽。重新参考图1,存储在独立寄存器125-140中的u叩取决于存储在指令队列里 相应的指令。例如在一个实施例中,第一和第四指令可以是从存储器源中载入数据 的指令(例如,"load"指令)。因此,存储在寄存器140和130内的uop就可以 是对应于load指令的uop (例如"load" uop)。类似的,第五指令可以是算术指 令,诸如乘以2或更多值的指令(例如,"mul"指令)。因此,存储在寄存器125 内的u叩就可以是对应于mul指令的uop (例如"mul"uop)。因为在一个实施例 中,是通过它们可由一个uop表示(例如,"cmpjcc" uop)来确定第二和第三指 令相关,所以寄存器135就包括被执行时将执行第二和第三两条指令的uop。图1还示出了其中存储在寄存器125-140内的uop可被排序和预定用于执行单 元150的执行的保留站145。更具体地,保留站可以存储诸如cmpjcc u叩147的表 示一条或多条指令的uop直到其被送入执行单元。在执行单元执行了该cmpjcc或 其他u叩之后,处理器状态信息就必须改变并因此通过"退回(retiring)"该cmpjcc uop而能被其他电子设备和程序所见。因
的uop,所以必须以uop的数目犹如等于其表示指令的数目来反映uop的执行的方式表示所得的状态信息。在执行表示两条或多条指令的uop而导致错误、陷阱或帮助的实施例中,通 常需要确定该u叩的哪一部分导致错误、陷阱或帮助的产生,从而在退回期间保持 适当的机器状态。例如在一个实施例中,页错误仅由cmpjccuop的cmp部分引起。 在此情况下,页错误服务例程就就可连同cmpjcc uop的cmp部分被执行之前的状 态信息被一并调用。在一个实施例中,可以使用本领域内已知的技术来处理由 cmpjcc u叩的cmp部分引起的页错误的情况。类似地在一个实施例中,陷阱通常 仅由cmpjccuop的jcc部分引起。在此情况下,服务例程就就可连同由cmpjccuop 完成所产生的机器状态被一并调用以服务该陷阱。在一个实施例中,服务该陷阱的 技术可以是与服务未融合的jcc操作的那些已知的技术大致类似或相同的现有技 术。在此公幵中除非特别指出,通常由异常处理程序连同在产生错误的指令执行 之前在程序顺序中出现的指令执行结果的状态信息来服务错误指令。例如在一个实 施例中,如果出现页错误,由执行在产生页错误的指令之前在程序顺序中出现的指 令而产生的状态信息被送至故障处理例程,从而能够退回预期页并重新执行发生错 误的指令。另一方面,除非特别指出,通常由异常处理程序连同由执行引发陷阱的指令 所产生的状态信息来服务该引起陷阱情形的指令。例如在一个实施例中,如果出现 断点调试陷阱,就退回引起该陷阱的所述指令并在服务例程被调用之前调拨相应的 处理器状态以服务该陷阱。在由uop表示两条或多条指令并且该uop的各组成错误、陷阱助状态并 非相互排斥的情况下,诸如由uop执行多次jcc操作或cmp操作的情况下,可能无 法弄清恰好在该u叩执行之前的状态是否被用于uop的退回或者恰好在该u叩执行 之后的状态是否被用作服务陷阱、错误或帮助的正确状态信息。在此情况下,就需 要调用一个特殊的服务例程以生成由该uop各组成操作单独产生的条件。例如在一个cmpjcc uop表示比较和跳转指令的实施例中,对应于u叩的cmp 部分或该u叩的jcc部分的操作执行结果都可能产生代码段的无效。为了确定是哪 部分的操作引起代码段无效并且确定应该被提供给服务例程以纠正错误的正确状
态,首先就需要调用一个特殊服务例程以重新存储该uop的cmp部分的状态以确 定所述代码段的无效是否由cmp操作产生。如果不是,就能推论出代码段无效是 由uop的jcc部分引起的,于是就能够连同执行cmpjcc所产生的状态信息而不是 cmpjcc uop的cmp和jcc部分之间的中间状态来调用服务例程以处理该无效。如果错误或其他条件是由表示两条或多条指令的uop的全部两个(或者多个, 在uop表示多于两条指令的情况下)组成操作的执行所产生的,则可通过独立执行 各组成操作而非执行表示两条或多条指令的uop来确定导致该条件的u叩部分。尽 管如此,由执行表示两条或多条指令的uop的两个或多个组成操作的结果而出现多 于一个条件的情况十分罕见。如下将参考图2、 3、 4和5来描述如何执行本发明至少一个实施例的各个方 面。也可使用参考图2、 3、 4和5而明确讨论的技术之外的其他技术来实现本发明 其他实施例的相应方面。此外,如下参考图2、 3、 4和5的某些讨论示出了在其中 组合两条指令并由至少一个融合uop来表示的至少一个实施例的各个方面。然而, 在其它实施例中,也可将如下参考图2、 3、 4和5的描述应用于在其中组合多于两 条指令并由一个或多个融合u叩表示的实施例。图2是根据本发明的一个实施例示出了要被执行以判定对应于程序顺序中相 邻指令的两个uop是否应该被融合的操作流程图。在操作201判定所述两个u叩 是否适于融合。在一个实施例中,若一u叩的输出是要被融合的其他uop的来源, 则所述的两个或多个uop就适于融合。如果不适合,则在操作210处就不融合这些 uop。如果适合,就在操作205判定两个uop所使用的寄存器是否相容。在一个实 施例中,若两个u叩的寄存器是用于这两个uop的同一目的寄存器,即在该对u叩 的第二 uop的目的寄存器盖写第一 u叩的目的寄存器或者u叩之一不具有目的寄存 器因此任一uop都可使用该目的寄存器的情况下,这些寄存器相容。如果这些寄存 器不相容,则在操作215处就不融合这些uop。如果两个uop的寄存器相容,则在 操作220判定两个uop的标志目标是否相容。在一个实施例中,如果两个u叩都改 写相同的标志,这些标志目标相容,即在来两个uop的第二u叩是最后更新标志或 者uop中只有一个更新标志字段。如果两个uop的标志目标不相容,则在操作225 处就不融合这些uop。如果所述标志目标相容,则在操作230判定这两个uop的源操作数是否相容。
在一个实施例中,如果来自这两个uop的寄存器操作数未溢出可用于存储所述源操 作数的寄存器、即时/置换值未溢出可用存储,同时由第一uop转发给第二u叩的结果可被隐含地或显式地处理,则这些源操作数相容。如果这些源操作数不相容,则在操作235处就不融合这些uop。如果这些源操作数相容,则在操作240判定这两个uop是否对应于在程序顺 序中彼此相邻的指令。如果是,就在操作245使用分别执行所述两个指令的至少两 个uop功能的单个融合uop来表示两个指令。否则,在操作250处就不融合这些 uop。图3是示出了可用于本发明一个实施例的操作的流程图,在该实施例中的两 个或多个uop对应于在程序顺序中不相邻的指令。在一个实施例中,所述流程图示 出了结合在程序顺序中由一个或多个中间uop隔开的第一和第二uop的实施例而使 用的操作。例如,在操作301判定中间uop是否要读取目标寄存器,其中这些寄存 器含有在程序顺序中要被融合的第一 uop的结果。如果是,则在操作305处就不融 合第一和第二 uop。如果中间uop不读取含有要来自在程序顺序中要被融合的第一 uop的结果的 目标寄存器,就在操作310判定在程序顺序中要被融合的所述第一 u叩写入的标 志是否会被中间uop读取。如果是,则在操作315处就不融合这些uop。如果在程 序顺序中要被融合的所述第一 uop的标志不由中间uop读取,则随后在操作320 就判定所述中间uop是否要写入任何用来为在程序顺序中要被融合的所述第二 uop 存储源操作数的任何寄存器。如果是,则在操作325处就不融合这些uop。如果中间uop没有写入任何用来为在程序顺序中要被融合的所述第二 uop存 储源操作数的寄存器,则随后在操作330处确定所述中间uop是否写入任何可由在 程序顺序中要被融合的所述第二uop读取的标志。如果是,则在操作335处就不融 合第一和第二 u叩。但若所述中间值没有写入任何可由在程序顺序中要被融合的所 述第二 uop读取的标志,随后就在操作340处确定所述中间uop是否要在第二 uop 将要存储数据的任何标志或寄存器中存储数据。如果不是,则在操作345处就不融 合第一禾口第二 uop。如果是,则在操作350处判定由所述中间uop存储的数据是否会被另一个中 间uop读取。如果是,则随后在操作355处就不融合第一和第二u叩。如果不是,
随后就在操作360处融合所述第一和第二 uop并可忽略要在第二 uop将要存储数据 的任何标志或寄存器中存储数据的中间uop。在某些实施例中,中间uop可被标记 为"非写入"中间u叩,从而为程序或逻辑指明可忽略所述中间值并可融合所述第 一禾口第二 uop。图4是根据本发明的一个实施例示出了要被执行以判定对应于程序顺序中相 邻指令的两个uop如何被退回的操作流程图。在操作401,判定对由至少一个融合 uop表示的组合指令的执行是否导致了陷阱或错误条件。如果不是,随后就在操作 405处退回所述组合指令并将程序顺序中组合指令中的最末条的状态提交给处理 器体系结构。如果出现了错误或陷阱,就在操作410确定错误的产生是否是因为执 行了程序顺序中组合指令中的第一条而引起的。如果是,则在操作420处使用由执 行程序顺序中组合指令中的第一条而产生的状态信息来调用故障处理例程。如果不 是,就在操作425处确定是否作为执行程序顺序中组合指令中的第二条的结果产生 了陷阱。如果是,就在操作430使用由执行程序顺序中组合指令中的第二条而产生 的状态信息来调用陷阱处理例程。如果不是,则可能已经出现了作为执行程序顺序中组合指令中的第一条的结 果的陷阱或者出现了作为执行程序顺序中组合指令中的第二条的结果的错误。另外 也可能会出现多个异常,从而不能确定正确的结果状态。于是在操作435处,诸如 在处理器固件中实现的那样("ucode"),软件例程可重建由执行第一指令产生 的状态,从而就能退回所述第一指令。由于所述第一u叩的结果(标志和目标寄存 器)可用,因此就可能实现以上描述。在一个实施例中,ucode可以确定通过执行由一个或多个融合uop表示的组合 指令中第一指令产生的异常情形,并将其列入优先。此外,在重建执行所述组合指 令中的第一条所产生的状态之后,对所述组合指令中的第一条的退回就会引起对错 误或陷阱处理例程的调用。在一个实施例中,如果所述组合指令中的第一条指令引 起一陷阱,就可使用上述ucode例程确定执行第一和第二组合指令之间形成的处理 器状态("中间"状态)。另一方面,如果执行组合指令中的第一条指令没有产生 异常状态并且从组合指令中的第二条指令产生的异常状态是模糊的,则ucode就重 新执行所述组合指令中的第二条指令并以与犹如分别执行组合指令相同的方式响 应异常。 图5是根据本发明的一个实施例示出了要被执行以确定对应于程序顺序中不相邻指令的两个uop如何被退回的操作流程图。在操作501,确定对由至少一个融 合uop表示的组合指令的执行是否导致了陷阱或错误。如果没有,就在操作510 处使用由执行程序顺序中组合指令中的最末条指令所产生的状态信息退回所述组 合指令。如果有,随后就在操作515调用异常处理例程。在一个实施例中,异常处 理例程可以从所述组合指令中带有适当机构(诸如,标志)的第一条指令中重新启 动对所述组合指令的执行以避免将所述组合指令当作融合u叩而再次执行。在一个 实施例中,所述组合指令的第一条指令的完成会带有错误或陷阱,而可使用错误或 陷阱处理例程来对上述错误或陷阱进行处理。另外,如果错误是因为执行在程序顺 序中被融合的uop之间出现的中间u叩的结果而出现的,就能仅简单退回所述组合 指令中的第一条指令。图6示出了其中可使用本发明一个实施例的点对点(PtP)计算机系统。更具 体地,图6示出了其中通过多个点对点接口互连处理器、存储器和输入/输出设备 的系统。图6中的系统可以包括多个处理器,但为了显示的明晰仅示出了两个处理器 670和680。处理器670和680分别包括各自与存储器62和64相连的本地存储器 控制集线器(MCH) 672和682。处理器670和680可以使用PtP接口电路678和 688经由点对点(PtP)接口 650交换数据。处理器670和680可以经由独立的PtP 接口 652和652使用点对点接口电路676、694、686和698与芯片组690交换数据。 芯片组690还可以经由高性能图形接口 639与高性能图形电路638交换数据。本发明的至少一个实施例可以位于图6每个PtP总线代理中的处理核内。而 本发明的其它实施例则可位于图6系统中的其他电路、逻辑单元或设备内。此外, 还可将本发明的其它实施例分配给图6所示的各电路、逻辑单元或设备。图7示出了其中可使用本发明一个实施例的正面总线(front-side-bus) (FSB) 计算机系统。处理器705访问一级(Ll)高速缓存710和主存储器715中的数据。 在本发明的其它实施例中,高速缓存具有二级(L2)高速缓存或位于计算机系统 存储器层次结构中的其他存储器。此外在某些实施例中,图7的计算机系统同时包 括Ll高速缓存和L2高速缓存,它们组成了在其中可在Ll和L2高速缓存之间共 享相干数据的相容高速缓存分级结构。在其他实施例中,可以存在多于1高速缓存
的分级结构。在图7的处理器中示出了的是本发明的一个实施例706。而本发明的其它实施例则可在本系统内的其他设备(诸如图形控制器)中实现,或者被分配给系统中的 硬件、软件或它们的组合。所述主存储器可由各种存储器源实现,诸如包括动态随机存取存储器(DRAM)、硬盘驱动器(HDD) 720或者位于经由网络接口 730的连接的包含各 种存储设备和技术的远程计算机系统内的存储器源。高速缓存可以位于处理器内或 非常接近处理器,诸如位于处理器的局域总线707上。此外,高速缓存还可以包括 相对较快的存储器单元,诸如六-晶体管(6T)单元或者大致等于或快于存取速度 的其他存储器单元。其中或者至少相关联,每个总线代理是本发明的至少一个实施 例706,以便于在所述总线代理之间迅速存储操作。可以使用互补金属氧化物半导体(CMOS)电路和逻辑器件(硬件)实现本发 明实施例的各个方面,同时可使用存储在机器可读介质上的指令(软件)执行其他 方面,其中上述软件可由处理器执行从而引发本发明一个实施例的执行。此外,本 发明的某些实施例可以在硬件中独立执行而其他实施例则可在软件中独立执行。虽然本发明业己参考了示出的实施例,但是本说明书并不以限定的方式进行 解释。所示实施例的各种修改及其其他实施例对本领域普通技术人员来说都是显而 易见的,并且位于本发明的精神和范围内。
权利要求
1.一种装置,包括存储由单个微操作(uop)表示的多条指令的存储单元,其中所述多条指令中仅有一条要被解码成一个或多个uop。
2. 如权利要求l所述的装置,其特征在于,所述多条指令中第一条指令的执行结果的目标存储位置是所述多条指令中第二条指令的操作数的源存储位置。
3. 如权利要求2所述的装置,其特征在于,所述多条指令中的第一条和第二 条指令在程序顺序中彼此相邻出现。
4. 如权利要求2所述的装置,其特征在于,所述多条指令中的第一条和第二 条指令在程序顺序中彼此不相邻出现。
5. 如权利要求2所述的装置,其特征在于,所述单个uop被按顺序退回以保 持将要执行所述单个u叩的处理器内部的正确状态。
6. 如权利要求l所述的装置,其特征在于,还包括存储与所述单个uop相关 联的操作数、存储器偏移量和分支目标的保留站。
7. 如权利要求6所述的装置,其特征在于,还包括执行所述单个uop的执行
8. 如权利要求7所述的装置,其特征在于,还包括将所述单个uop的执行结 果状态信息提交至机器状态的退回单元。
9. 一种方法,包括在解码两条或多条指令中任一条指令之前确定所述两条或多条指令是否可由争个微操作(U0p)表示; 使用单个uop表示所述两条或多条指令。
10. 如权利要求9所述的方法,其特征在于,所述确定包括检査所述两条或 多条指令中第一条指令的源操作数存储位置和所述两条或多条指令中第二条指令 的结果目标存储位置之间的关系。
11. 如权利要求IO所述的方法,其特征在于,还包括使用单个uop表示两条 或多条指令
12. 如权利要求11所述的方法,其特征在于,还包括仅解码所述两条或多条 指令中的一条指令。
13. 如权利要求12所述的方法,其特征在于,包括重新排列所述单个uop相 对于其执行可能会导致不正确机器状态的其他uop的顺序。
14. 如权利要求13所述的方法,其特征在于,还包括如果执行所述单个u叩 会导致错误、帮助和陷阱情形之一的情况调用服务例程以产生正确的机器状态。
15. 如权利要求14所述的方法,其特征在于,所述服务例程使用恰好在执行 所述单个uop之前的uop执行结果的状态信息。
16. 如权利要求14所述的方法,其特征在于,所述服务例程使用所述单个uop 执行结果的状态信息。
17. 如权利要求14所述的方法,其特征在于,所述服务例程使用与所述两条 或多条指令的程序顺序中的第一条指令相对应的uop执行结果的状态信息。
18. —种系统,包括;存储由单个微操作(UOp)表示的两条或多条指令的存储器单元; 仅解码所述两条或多条指令中一条指令的解码逻辑;在由所述解码逻辑解码两条或多条指令中所述一条指令之前确定所述两条或多条指令是否由单个uop表示的第一逻辑。
19. 如权利要求18所述的系统,其特征在于,还包括执行所述单个u叩并退 回所述单个uop以保持正确处理器状态的处理器。
20. 如权利要求18所述的系统,其特征在于,还包括与所述存储器单元耦合 的音频设备。
21. 如权利要求19所述的系统,其特征在于,所述处理器包括存储在被所述 解码逻辑解码之前彼此相邻的两条或多条指令的指令队列。
22. 如权利要求19所述的系统,其特征在于,所述处理器包括存储在被所述 解码逻辑解码之前彼此不相邻的两条或多条指令的指令队列。
23. 如权利要求18所述的系统,其特征在于,所述两条或多条指令包括比较 两个操作数的第一指令以及响应于所述两个操作数的比较结果而改变指令指针的第二指令。
24. 如权利要求18所述的系统,其特征在于,所述两条或多条指令包括生成 第 和第二操作数之和的第一指令以及将所得和与第三操作数比较的第二指令。
25. 如权利要求18所述的系统,其特征在于,所述第一逻辑包括至少一条指 令,其中当所述指令被处理器执行时,会引发所述处理器确定所述两条或多条指令 是否要由单个u叩表示。
26. -种具有一组指令存储其上的机器可读介质,当机器执行所述指令时会 导致所述机器执行如下方法- 确定执行由单个微操作(uop)表示的两条或多条指令是否会导致错误、辅助 和陷阱之一的情形;仅在未出现上述情形时才存储所述单个U叩执行结果的机器状态。
27. 如权利要求26所述的机器可读介质,其特征在于,如果出现的情形之一 是执行对应于所述两条或多条指令中第一条而非两条或多条指令中第二条的操作 所得的结果,就存储对应于所述两条或多条指令中第一条指令操作结果的机器状 态。
28. 如权利要求26所述的机器可读介质,其特征在于,如果出现的情形之一 是执行对应于所述两条或多条指令中第二条操作所得的结果,就存储对应于所述两 条或多条指令中第二条指令操作结果的机器状态。
29. 如权利要求26所述的机器可读介质,其特征在于,如果出现的情形之一是执行对应r所述两条或多条指令中的第- 一条和第二条操作所得的结果,就单独执行所述第 一和第二条指令以代替执行所述单个uop。
30. 如权利要求26所述的机器可读介质,其特征在于,还包括在存储所述机 器状态之后退回所述两条或多条指令的第一和第二指令。
全文摘要
一种微操作(uop)融合技术。更具体地,本发明的实施例涉及了将源自两条或多条指令的两个或多个uop相融合的技术。
文档编号G06F9/30GK101110017SQ200610111159
公开日2008年1月23日 申请日期2006年8月8日 优先权日2005年8月9日
发明者A·雷波韦茨, G·普瑞布什, I·奥泽尔, I·阿乃提, R·瓦伦蒂恩, Z·司珀勃 申请人:英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1