Selectively prohibiting speculative execution of conditional branch type based on instruction bit
    2.
    发明授权
    Selectively prohibiting speculative execution of conditional branch type based on instruction bit 失效
    选择性地禁止基于指令位的推测性执行条件分支类型

    公开(公告)号:US07254693B2

    公开(公告)日:2007-08-07

    申请号:US11002522

    申请日:2004-12-02

    IPC分类号: G06F9/38

    摘要: A method, apparatus, and computer program product are disclosed for selectively prohibiting speculative conditional branch execution. A particular type of conditional branch instruction is selected. An indication is stored within each instruction that is the particular type of conditional branch instruction. A processor then fetches a first instruction from code that is to be executed. A determination is made regarding whether the first instruction includes the indication. In response to determining that the instruction includes the indication: speculative execution of the first instruction is prohibited, an actual location to which the first instruction will branch is resolved, and execution of the code is branched to the actual location. In response to determining that the instruction does not include the indication, the first instruction is speculatively executed.

    摘要翻译: 公开了用于选择性地禁止推测性条件分支执行的方法,装置和计算机程序产品。 选择特定类型的条件分支指令。 指示存储在作为条件分支指令的特定类型的每个指令内。 然后处理器从要执行的代码中获取第一条指令。 确定第一指令是否包括指示。 响应于确定指令包括指示:禁止第一指令的推测执行,第一指令将分支的实际位置被解析,并且代码的执行被分支到实际位置。 响应于确定指令不包括指示,推测性地执行第一指令。

    System for completing instruction out-of-order which performs target
address comparisons prior to dispatch
    3.
    发明授权
    System for completing instruction out-of-order which performs target address comparisons prior to dispatch 失效
    用于完成在发送前执行目标地址比较的无序指令的系统

    公开(公告)号:US6098168A

    公开(公告)日:2000-08-01

    申请号:US46867

    申请日:1998-03-24

    IPC分类号: G06F9/38

    摘要: A mechanism structured to check for instruction collisions at the Dispatch Unit rather than the Completion Unit. In processors which issue multiple commands simultaneously, a flag bit is sent to the Completion Unit and attached to the instruction in the queue that follows the other in program order if they both have the same targeted address. When the instructions from position 1 and position 2 of the instruction queue are ready to issue, the Completion Unit checks position 2 for a flag bit. If there is a bit, then the instruction in position 1 is discarded and the instruction in position 2 is written to the target address. If there is no flag bit with the instruction in position 2, the instruction in position 1 is written to the target register. This method eliminates the need to compare all the targeted addresses that are associated with the rename registers. It requires two comparisons instead of a minimum of 15 comparisons.

    摘要翻译: 一种结构化的检查在调度单位而不是完成单位的指令冲突的机制。 在同时发出多个命令的处理器中,如果标志位都具有相同的目标地址,则将标志位发送到完成单元并附加到队列中的跟随另一命令的指令。 当指令队列的位置1和位置2的指令准备发出时,完成单元检查位置2是否有一个标志位。 如果有位,则丢弃位置1的指令,将位置2中的指令写入目标地址。 如果位置2中的指令没有标志位,则将位置1的指令写入目标寄存器。 该方法不需要比较与重命名寄存器相关的所有目标地址。 它需要两次比较,而不是至少15次比较。

    Load register instruction short circuiting method
    4.
    发明授权
    Load register instruction short circuiting method 有权
    加载寄存器指令短路方式

    公开(公告)号:US07904697B2

    公开(公告)日:2011-03-08

    申请号:US12044013

    申请日:2008-03-07

    IPC分类号: G06F7/38 G06F9/00 G06F9/44

    CPC分类号: G06F9/30032 G06F9/384

    摘要: An apparatus and method for executing a Load Register instruction in which the source data of the Load Register instruction is retained in its original physical register while the architected target register is mapped to this same physical target register. In this state the two architected registers alias to one physical register. When the source register of the Load Address instruction is specified as the target address of a subsequent instruction, a free physical register is assigned to the Load Registers source register. And with this assignment the alias is thus broken. Similarly when the target register of the Load Address instruction is the target address of a subsequent instruction, a new physical register is assigned to the Load Registers target address. And with this assignment the alias is thus broken.

    摘要翻译: 一种用于执行加载寄存器指令的装置和方法,其中将负载寄存器指令的源数据保留在其原始物理寄存器中,同时将架构化目标寄存器映射到同一物理目标寄存器。 在这种状态下,两个架构的寄存器对一个物理寄存器进行了别名。 当加载地址指令的源寄存器被指定为后续指令的目标地址时,将自由物理寄存器分配给加载寄存器源寄存器。 并且通过这个任务,别名被破坏了。 类似地,当加载地址指令的目标寄存器是后续指令的目标地址时,新的物理寄存器被分配给加载寄存器目标地址。 并且通过这个任务,别名被破坏了。

    Load Register Instruction Short Circuiting Method
    5.
    发明申请
    Load Register Instruction Short Circuiting Method 有权
    加载寄存器指令短路方法

    公开(公告)号:US20090228692A1

    公开(公告)日:2009-09-10

    申请号:US12044013

    申请日:2008-03-07

    IPC分类号: G06F9/30

    CPC分类号: G06F9/30032 G06F9/384

    摘要: An apparatus and method for executing a Load Register instruction in which the source data of the Load Register instruction is retained in its original physical register while the architected target register is mapped to this same physical target register. In this state the two architected registers alias to one physical register. When the source register of the Load Address instruction is specified as the target address of a subsequent instruction, a free physical register is assigned to the Load Registers source register. And with this assignment the alias is thus broken. Similarly when the target register of the Load Address instruction is the target address of a subsequent instruction, a new physical register is assigned to the Load Registers target address. And with this assignment the alias is thus broken.

    摘要翻译: 一种用于执行加载寄存器指令的装置和方法,其中将负载寄存器指令的源数据保留在其原始物理寄存器中,同时将架构化目标寄存器映射到同一物理目标寄存器。 在这种状态下,两个架构的寄存器对一个物理寄存器进行了别名。 当加载地址指令的源寄存器被指定为后续指令的目标地址时,将自由物理寄存器分配给加载寄存器源寄存器。 并且通过这个任务,别名被破坏了。 类似地,当加载地址指令的目标寄存器是后续指令的目标地址时,新的物理寄存器被分配给加载寄存器目标地址。 并且通过这个任务,别名被破坏了。

    Scoreboard mechanism for serialized string operations utilizing the XER
    6.
    发明授权
    Scoreboard mechanism for serialized string operations utilizing the XER 失效
    使用XER的串行字符串操作的记分板机制

    公开(公告)号:US06430678B1

    公开(公告)日:2002-08-06

    申请号:US09363463

    申请日:1999-07-29

    IPC分类号: G06F930

    摘要: An XER scoreboard function is provided by utilizing the instruction sequencer unit scoreboard. A scoreboard bit is set if the XER is being used by a previous instruction. If a new instruction is fetched that uses the XER, a dummy read to the XER is generated to test the scoreboard bit to determine if the scoreboard bit is set. If the scoreboard bit is not set when the dummy read is executed, the X-form string proceeds to execution. If the scoreboard bit is set when the dummy is executed, the pipeline is stalled until the scoreboard bit is cleared, and then the X-form string padded with generated padding IOPs (Dummy or NOPs) is executed. After an accessing instruction is executed, the scoreboard bit is cleared.

    摘要翻译: 通过使用指令排序器单元记分板提供XER记分板功能。 如果XER由前一条指令使用,记分板位将被置位。 如果获取使用XER的新指令,则生成对XER的虚拟读取以测试记分板位以确定记分板位是否设置。 如果执行虚拟读取时记分板位未设置,则X形式的字符串将继续执行。 如果在执行虚拟机时设置了记分板位,则流水线停止,直到记分板位被清除,然后执行填充有生成的填充IOP(虚拟或NOP)的X形式字符串。 执行访问指令后,记分板位被清除。

    Method and apparatus for modifying instruction operations in a processor
    7.
    发明授权
    Method and apparatus for modifying instruction operations in a processor 有权
    用于修改处理器中的指令操作的方法和装置

    公开(公告)号:US06321380B1

    公开(公告)日:2001-11-20

    申请号:US09345161

    申请日:1999-06-29

    IPC分类号: G06F1212

    摘要: A “soft-patch” allows an instruction or group of instructions to be replaced with a pre-loaded instruction or group of instructions. When an Instruction Fetch Unit (IFU) fetches an instruction, the instruction is sent through a Compare and Mask (CAM) circuit which masks and compares, in parallel, the instruction with up to eight pre-defined masks and values. The masks and values are pre-loaded by a service processor to CAM circuits which are located in an Instruction Dispatch Unit (IDU) and the IFU in the central processor. An instruction that is deemed a match, is tagged by the IFU as a “soft-microcode” instruction. When the IDU receives the soft-microcode instruction for decoding, it detects the soft microcode marking and sends the marked instruction to a soft-microcode unit; a separate parallel pipeline in the IDU. The soft-microcode unit then sends the instruction through a CAM circuit which returns an index (or address) for RAM. The index is used to read values out of IDU RAM and generate replacement instructions. Additionally, an Internal Operation that will cause the processor core to perform an unconditional branch to a fixed real address, can be loaded into the IDU RAM allowing an instruction to be replaced by a subroutine or handler routine contained outside the processor core.

    摘要翻译: “软补丁”允许用预加载指令或指令组替换指令或指令组。 当指令获取单元(IFU)取指令时,该指令通过比较和掩码(CAM)电路发送,该电路将指令与多达八个预定义的掩码和值并行进行掩蔽和比较。 掩码和值由服务处理器预加载到位于指令调度单元(IDU)中的CAM电路和中央处理器中的IFU。 被认为是匹配的指令被IFU标记为“软微码”指令。 当IDU接收到用于解码的软微码指令时,它检测软微码标记,并将标记的指令发送到软微码单元; 在IDU中单独的并行管道。 软微码单元然后通过CAM电路发送指令,CAM电路返回RAM的索引(或地址)。 该索引用于读取IDU RAM中的值,并生成替换指令。 此外,将使处理器内核对固定的实际地址执行无条件分支的内部操作可以被加载到IDU RAM中,从而允许由包含在处理器核心外部的子程序或处理程序例程替换指令。

    Compressed string and multiple generation engine
    8.
    发明授权
    Compressed string and multiple generation engine 失效
    压缩字符串和多代引擎

    公开(公告)号:US06442675B1

    公开(公告)日:2002-08-27

    申请号:US09363464

    申请日:1999-07-29

    IPC分类号: G06F938

    CPC分类号: G06F9/30043 G06F9/3017

    摘要: A generalized, programmable dataflow state-machine is provided to receive information about a particular string instruction. The string instruction is parsed into all the operations contained in the string instruction. The operations that make up the string instruction are routed to parallel functional units and executed. The state-machine manipulates the size of the operations in the string instruction and whether or not the instructions need to be generated.

    摘要翻译: 提供通用的可编程数据流状态机以接收关于特定字符串指令的信息。 字符串指令被解析为字符串指令中包含的所有操作。 构成字符串指令的操作被路由到并行功能单元并执行。 状态机在字符串指令中操作操作的大小以及是否需要生成指令。

    Circuits and methods for recovering link stack data upon branch instruction mis-speculation
    9.
    发明授权
    Circuits and methods for recovering link stack data upon branch instruction mis-speculation 失效
    在分支指令错误猜测时恢复链路栈数据的电路和方法

    公开(公告)号:US06848044B2

    公开(公告)日:2005-01-25

    申请号:US09801608

    申请日:2001-03-08

    IPC分类号: G06F9/38 G06F15/00

    摘要: A method of performing operations to a link stack including the step of performing a Pop operation from the link stack which includes the substeps of storing a first pointer value to the link stack, the first pointer value being the value of a pointer to the link stack before the Pop operation, and storing a first address including a first tag popped from the link stack. The method further includes the step of performing a Push operation to the link stack which includes the substeps of storing a second address including a second tag being Pushed into the link stack and storing a second pointer to the link stack, the second pointer being the value of the pointer to the link stack after the Push operation. The method additionally provides for the recovering of the link stack following an instruction flush which includes the substeps of comparing the first pointer value and the second value, comparing the first tag and the second tag, and replacing an address at the top of the link stack with the first address when the first and second pointers match and the first and second tags match.

    摘要翻译: 一种对链接堆栈执行操作的方法,包括从链路堆栈执行弹出操作的步骤,该链路栈包括将第一指针值存储到链路栈的子步骤,第一指针值是指向链路栈的指针的值 并且存储包括从链接堆栈弹出的第一标签的第一地址。 该方法还包括对链路堆栈执行Push操作的步骤,该链路栈包括存储第二地址的子步骤,该第二地址包括被推入到链路栈中的第二标签,并将第二指针存储到链路栈,第二指针是值 在Push操作后指向链接堆栈的指针。 该方法另外提供了在包括比较第一指针值和第二值的子步骤的指令刷新之后恢复链路栈,比较第一标签和第二标签,以及替换链路栈顶部的地址 当第一和第二指针匹配并且第一和第二标签匹配时具有第一地址。

    Method and apparatus for software-based dispatch stall mechanism for scoreboarded IOPs
    10.
    发明授权
    Method and apparatus for software-based dispatch stall mechanism for scoreboarded IOPs 失效
    用于记分板的IOP的基于软件的调度失速机制的方法和装置

    公开(公告)号:US06345356B1

    公开(公告)日:2002-02-05

    申请号:US09354498

    申请日:1999-07-16

    IPC分类号: G06F9312

    摘要: A dummy instruction is issued, followed by several groups of No Operations (NOPs). The instruction sequencer unit (ISU) detects the dummy instruction and stalls the pipeline until the scoreboard indicates the XER count is valid. After a read from a scoreboarded Special Purpose Register (SPR), No Operation—Internal Operations (NOP—IOPs) are inserted between write and read SPR IOPs to allow an ISU scoreboard mechanism to be activated before being tested by a read SPR IOP. A read-write-read sequence is utilized: a dummy read of the string count field from a scoreboarded SPR, writing that value back to the same SPR and then performing a read of the SPR once again. A predetermined number of dummy IOPs follow the initial dummy read to prevent the value of the string count field from being read too soon.

    摘要翻译: 发出虚拟指令,其次是几组无操作(NOP)。 指令定序器单元(ISU)检测虚拟指令并停止流水线,直到记分板指示XER计数有效。 从记分板专用寄存器(SPR)读取后,在写入和读取SPR IOP之间插入无操作内部操作(NOP-IOP),以允许在读取SPR IOP测试之前激活ISU记分板机制。 使用读写读取序列:从记分板SPR中读取字符串计数字段,将该值写回相同的SPR,然后再次执行SPR的读取。 预定数量的虚拟IOP跟随初始伪读取,以防止字串计数字段的值被读取太快。