Dynamic branch prediction for branch instructions with multiple targets
    1.
    发明授权
    Dynamic branch prediction for branch instructions with multiple targets 失效
    具有多个目标的分支指令的动态分支预测

    公开(公告)号:US5903750A

    公开(公告)日:1999-05-11

    申请号:US752785

    申请日:1996-11-20

    IPC分类号: G06F9/38 G06F9/32

    CPC分类号: G06F9/3844

    摘要: A method and apparatus for dynamically predicting the outcome and the tar address of a multiple-target branch instruction, where the multiple-target branch instruction contains at least two potential target addresses, not including the fall through address. In addition, this method and apparatus can also be used to predict multiple single-target branches simultaneously. The apparatus stores information indicating the outcome of previous executions and predictions of the multiple-target branch instruction in a branch prediction table. In addition, multiple target addresses (at least two) are associated with the multiple-target branch instruction. Using the information indicating the outcome of the previous execution of the multiple-target branch instruction, the apparatus predicts the outcome of a next execution of the multiple-target branch instruction, and predicts which, if any, of the target addresses associated with the multiple-target branch instruction, will be taken.

    摘要翻译: 一种用于动态地预测多目标分支指令的结果和目标地址的方法和装置,其中所述多目标分支指令包含不包括所述落地址的至少两个潜在目标地址。 此外,该方法和装置也可以用于同时预测多个单目标分支。 该装置存储指示分支预测表中的先前执行结果和多目标分支指令的预测的信息。 另外,多个目标地址(至少两个)与多目标分支指令相关联。 使用指示多目标分支指令的先前执行的结果的信息,该装置预测下一次执行多目标分支指令的结果,并且预测与多个目标分支指令相关联的目标地址中的哪个(如果有的话) -target分支指令,将被采取。

    Branch prediction table having pointers identifying other branches
within common instruction cache lines
    2.
    发明授权
    Branch prediction table having pointers identifying other branches within common instruction cache lines 失效
    分支预测表具有标识公共指令高速缓存行内的其他分支的指针

    公开(公告)号:US5815700A

    公开(公告)日:1998-09-29

    申请号:US576954

    申请日:1995-12-22

    IPC分类号: G06F9/38 G06F9/32

    CPC分类号: G06F9/3844

    摘要: A branch prediction system is described for use within a microprocessor having an instruction cache capable of storing two or more instructions per cache line. Each entry of a branch prediction table (BPT) includes a value identifying whether at least one other instruction within a common cache line contains a branch. The value is referred to herein as a multiple-B bit value. The multiple-B bit value is examined by branch prediction logic while one branch prediction is being performed to determine whether a second branch prediction can be initiated for another branch within the same cache line. In one implementation, the multiple-B bit of one BPT entry is examined following a hit. A branch prediction for the entry generating a hit is initiated. Simultaneously, the BPT is reaccessed to search for an entry corresponding to another instruction within the same cache line if the multiple-B bit for the first entry was set. If the second entry is found, a secondary branch prediction is initiated. Eventually, the first branch prediction is output. If the first branch prediction is Not Taken, then the second branch prediction is output during the next clock cycle. If the first branch prediction is Taken, then the second branch prediction may be aborted as it is not needed. Method and apparatus embodiments of the invention are described.

    摘要翻译: 描述了一种在具有每个高速缓存行存储两个或多个指令的指令高速缓存器的微处理器内使用的分支预测系统。 分支预测表(BPT)的每个条目包括标识公共高速缓存行中的至少一个其他指令是否包含分支的值。 该值在本文中称为多B位值。 通过分支预测逻辑检查多个B比特值,同时执行一个分支预测以确定是否可以针对同一高速缓存行内的另一个分支启动第二分支预测。 在一个实现中,在命中之后检查一个BPT条目的多个B位。 开始生成命中的条目的分支预测。 同时,如果设置了第一个条目的多个B位,则BPT被重新访问以搜索与同一高速缓存行内的另一个指令相对应的条目。 如果找到第二个条目,则启动辅助分支预测。 最终输出第一个分支预测。 如果第一分支预测未被采用,则在下一个时钟周期期间输出第二分支预测。 如果采用第一分支预测,那么第二分支预测可能因不需要而中止。 描述本发明的方法和设备实施例。

    Instruction prefetch mechanism utilizing a branch predict instruction
    3.
    发明授权
    Instruction prefetch mechanism utilizing a branch predict instruction 失效
    使用分支预测指令的指令预取机制

    公开(公告)号:US5742804A

    公开(公告)日:1998-04-21

    申请号:US685607

    申请日:1996-07-24

    IPC分类号: G06F9/38

    摘要: A processor and method that reduces instruction fetch penalty in the execution of a program sequence of instructions comprises a branch predict instruction that is inserted into the program at a location which precedes the branch. The branch predict instruction has an opcode that specifies a branch as likely to be taken or not taken, and which also specifies a target address of the branch. A block of target instructions, starting at the target address, is prefetched into the instruction cache of the processor so that the instructions are available for execution prior to the point in the program where the branch is encountered. Also specified by the opcode is an indication of the size of the block of target instructions, and a trace vector of a path in the program sequence that leads to the target from the branch predict instruction for better utilization of limited memory bandwidth.

    摘要翻译: 在程序指令序列的执行中减少指令提取损失的处理器和方法包括在分支之前的位置处插入到程序中的分支预测指令。 分支预测指令具有指定可能被采用或未被采用的分支的操作​​码,并且还指定分支的目标地址。 从目标地址开始的目标指令块被预取到处理器的指令高速缓存中,使得指令在程序中遇到分支的点之前可用于执行。 操作码还指定了目标指令块的大小的指示,以及由分支预测指令导致目标的程序序列中的路径的跟踪向量,以更好地利用有限的存储器带宽。

    Method and apparatus for performing reads of related data from a
set-associative cache memory
    4.
    发明授权
    Method and apparatus for performing reads of related data from a set-associative cache memory 失效
    用于从组相关高速缓冲存储器执行相关数据的读取的方法和装置

    公开(公告)号:US5802602A

    公开(公告)日:1998-09-01

    申请号:US785199

    申请日:1997-01-17

    IPC分类号: G06F9/38 G06F12/08 G06F1/00

    CPC分类号: G06F9/3806 G06F12/0864

    摘要: Allocation circuitry for allocating entries within a set-associative cache memory is disclosed. The set-associative cache memory comprises N ways, each way having M entries and corresponding entries in each of the N ways constituting a set of entries. The allocation circuitry has a first circuit which identifies related data units by identifying a probability that the related data units may be successively read from the cache memory. A second circuit within the allocation circuitry allocates the corresponding entries in each of the ways to the related data units, so that related data units are stored in a common set of entries. Accordingly, the related data units will be simultaneously outputted from the set-associative cache memory, and are thus concurrently available for processing. The invention may find application in allocating entries of a common set in a branch prediction table (BPT) to branch prediction information for related branch instructions.

    摘要翻译: 公开了用于在集合关联高速缓冲存储器内分配条目的分配电路。 集合关联高速缓冲存储器包括N个方式,每个路径具有M个条目和N个路径中的每一个中的相应条目,构成一组条目。 分配电路具有通过识别相关数据单元可以从高速缓冲存储器连续读取的概率来识别相关数据单元的第一电路。 分配电路内的第二电路以相应数据单元的每一种方式分配相应的条目,使得相关的数据单元被存储在一组共同的条目中。 因此,相关数据单元将从集合关联高速缓冲存储器同时输出,因此同时可用于处理。 本发明可以在将分支预测表(BPT)中的公共集合的条目分配给用于相关分支指令的分支预测信息的应用中。

    Method and apparatus for predicting loop exit branches
    5.
    发明授权
    Method and apparatus for predicting loop exit branches 有权
    用于预测环路出口分支的方法和装置

    公开(公告)号:US06438682B1

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

    申请号:US09169866

    申请日:1998-10-12

    IPC分类号: G06F932

    CPC分类号: G06F9/325

    摘要: A loop branch prediction system is provided to predict a final iteration of a loop and resteer an associated fetch module to an appropriate target address. The loop prediction system includes a counter and an end of loop (EOL) module. In one mode, the counter tracks loop branches in process. When a termination condition is detected, the counter switches to a second mode to track the number of loop branches still to be issued. The EOL module compares the number of loop branches still to be issued with one or more threshold values and generates a resteer signal when a match is detected.

    摘要翻译: 提供循环分支预测系统以预测循环的最终迭代并将相关联的获取模块修复到适当的目标地址。 环路预测系统包括计数器和结束循环(EOL)模块。 在一种模式下,计数器跟踪正在进行的循环分支。 当检测到终止条件时,计数器切换到第二模式以跟踪仍然发布的循环分支的数量。 EOL模块将仍然要发出的环路分支数与一个或多个阈值进行比较,并在检测到匹配时产生一个恢复信号。

    Processor and instruction set with predict instructions
    7.
    发明授权
    Processor and instruction set with predict instructions 有权
    具有预测指令的处理器和指令集

    公开(公告)号:US6092188A

    公开(公告)日:2000-07-18

    申请号:US348406

    申请日:1999-07-07

    IPC分类号: G06F9/32 G06F9/38 G06F15/00

    摘要: A processor architecture with an instruction set having a predict instruction, the predict instruction providing static prediction information and a statically predicted target address to the processor for a branch instruction. The processor decodes a predict instruction to obtain an associated pair of addresses comprising a predicted target address and a referenced instruction address, and fetches a predicted target instruction having an instruction address matching the predicted target address when a fetched and decoded branch instruction has an instruction address matching the referenced instruction address.

    摘要翻译: 一种具有指令集的处理器架构,具有预测指令,所述预测指令提供静态预测信息和静态预测的目标地址给处理器用于分支指令。 处理器对预测指令进行解码以获得包括预测目标地址和参考指令地址的相关联的地址对,并且当获取和解码的分支指令具有指令地址时,获取具有与预测目标地址匹配的指令地址的预测目标指令 匹配引用的指令地址。

    Target instructions prefetch cache
    9.
    发明授权
    Target instructions prefetch cache 失效
    目标指令预取缓存

    公开(公告)号:US5987599A

    公开(公告)日:1999-11-16

    申请号:US827296

    申请日:1997-03-28

    IPC分类号: G06F9/38

    CPC分类号: G06F9/3806

    摘要: A processor that includes an execution pipeline that executes a programmed flow of instructions is provided. The processor also includes an instruction pointer generator configured to generate an instruction pointer. Furthermore, the processor includes a branch prediction circuit configured to receive the instruction pointer. In response to the instruction pointer, the branch prediction circuit is configured to determine if an instruction corresponding to the instruction pointer includes a branch that is predicted taken and if so to provide to said execution pipeline a target instruction corresponding to said instruction. The branch prediction circuit provides to the execution pipeline at least one target instruction corresponding to the instruction corresponding to the instruction pointer.

    摘要翻译: 提供了一种处理器,其包括执行编程的指令流程的执行流水线。 处理器还包括被配置为生成指令指针的指令指针发生器。 此外,处理器包括被配置为接收指令指针的分支预测电路。 响应于指令指针,分支预测电路被配置为确定与指令指针相对应的指令是否包括预测的分支,并且如果是,则向所述执行流水线提供与所述指令相对应的目标指令。 分支预测电路向执行流水线提供对应于与指令指针相对应的指令的至少一个目标指令。

    Method and apparatus for generating branch predictions for multiple
branch instructions indexed by a single instruction pointer
    10.
    发明授权
    Method and apparatus for generating branch predictions for multiple branch instructions indexed by a single instruction pointer 失效
    用于为由单个指令指针索引的多个分支指令生成分支预测的方法和装置

    公开(公告)号:US5805878A

    公开(公告)日:1998-09-08

    申请号:US792115

    申请日:1997-01-31

    IPC分类号: G06F9/38 G06F9/40

    摘要: A method and apparatus for generating respective branch predictions for first and second branch instructions, both indexed by a first instruction pointer, is disclosed. The apparatus includes dynamic branch prediction circuitry for generating a branch prediction based on the outcome of previous branch resolution activity, as well as static branch prediction circuitry configured to generate a branch prediction based on static branch prediction information. Prediction output circuitry, coupled to the both the dynamic and static branch prediction circuitry, outputs the respective branch predictions for the first and second branch instructions in first and second clock cycles to an instruction buffer (or "rotator"). Specifically, the prediction output control circuitry outputs the branch prediction for the second branch instruction in the second clock cycle and in response to the initiation of a recycle stall during the first clock cycle. The receipt of the predictions and their corresponding branch instructions at the instruction buffer is thus synchronized, and the opportunity of generating a prediction for the second branch instruction is not lost.

    摘要翻译: 公开了一种用于产生由第一指令指针索引的第一和第二分支指令的分支预测的方法和装置。 该装置包括用于基于先前分支分辨率活动的结果生成分支预测的动态分支预测电路,以及被配置为基于静态分支预测信息生成分支预测的静态分支预测电路。 耦合到动态和静态分支预测电路的预测输出电路将第一和第二时钟周期中的第一和第二分支指令的相应分支预测输出到指令缓冲器(或“转子”)。 具体地,预测输出控制电路在第二时钟周期中输出第二分支指令的分支预测,并且响应于在第一时钟周期期间启动再循环停止。 因此,在指令缓冲器处接收预测及其相应的分支指令是同步的,并且不会丢失产生第二分支指令的预测的机会。