Method and apparatus for synchronizing parallel pipelines in a superscalar microprocessor
    1.
    发明授权
    Method and apparatus for synchronizing parallel pipelines in a superscalar microprocessor 失效
    用于在超标量微处理器中同步并行管线的方法和装置

    公开(公告)号:US06385719B1

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

    申请号:US09345719

    申请日:1999-06-30

    IPC分类号: G06F938

    摘要: A transfer tag is generated by the Instruction Fetch Unit and passed to the decode unit in the instruction pipeline with each group of instructions fetched during a branch prediction by a fetcher. Individual instructions within the fetched group for the branch pipeline are assigned a concatenated version (group tag concatenated with instruction lane) of the transfer tag which is used to match on requests to flush any newer instructions. All potential instruction or Internal Operation latches in the decode pipeline must perform a match and if a match is encountered, all valid bits associated with newer instructions or internal operations upstream from the match are cleared. The transfer tag representing the next instruction to be processed in the branch pipeline is passed to the Instruction Dispatch Unit. The Instruction Dispatch Unit queries the branch pipeline to compare its transfer tag with transfer tags of instructions in the branch pipeline. If the transfer tag matches a branch instruction tag the Instruction Decode Unit is stalled until the branch instruction is processed thus, providing a synchronizing method for the parallel pipelines.

    摘要翻译: 传送标签由指令提取单元生成,并在指令流水线中传送给解码单元,每个指令组由读取器在分支预测期间取出。 为分支流水线提取的组中的单独指令被分配用于匹配在刷新任何较新指令的请求上的传送标签的级联版本(组标签与指令通道连接)。 解码流水线中的所有潜在指令或内部操作锁存器必须执行匹配,并且如果遇到匹配,将清除与较新指令相关联的所有有效位或匹配上游的内部操作。 表示在分支管线中要处理的下一条指令的传送标签被传递到指令调度单元。 指令调度单元查询分支流水线以将其传输标签与分支流水线中的指令的传输标签进行比较。 如果转移标签与分支指令标签匹配,则指令解码单元停止,直到处理分支指令为止,为并行管线提供同步方法。

    Method and system for optimizing the fetching of dispatch groups in a superscalar processor
    2.
    发明授权
    Method and system for optimizing the fetching of dispatch groups in a superscalar processor 有权
    用于优化超标量处理器中调度组的获取的方法和系统

    公开(公告)号:US06286094B1

    公开(公告)日:2001-09-04

    申请号:US09263663

    申请日:1999-03-05

    IPC分类号: G06F930

    摘要: A method and system for determining if a dispatch slot is required in a processing system is disclosed. The method and system comprises a plurality of predecode bits to provide routing information and utilizing the predecode bits to allow instructions to be directed to specific decode slots and to obey dispatch constraints without examining the instructions. The purpose of this precode encoding system scheme is to provide the most information possible about the grouping of the instructions without increasing the complexity of the logic which uses this information for decode and group formation. In a preferred embodiment, pre-decode bits for each instruction that may be issued in parallel are analyzed and the multiplexer controls are retained for each of the possible starting positions within the stream of instructions.

    摘要翻译: 公开了一种用于确定处理系统中是否需要调度槽的方法和系统。 所述方法和系统包括多个预解码比特,以提供路由信息并利用所述预解码比特来允许指令被引导到特定解码时隙,并且在不检查指令的情况下服从调度约束。 该预编码系统方案的目的是为了提供关于指令分组的可能性最大的信息,而不增加使用该信息进行解码和组形成的逻辑的复杂性。 在优选实施例中,分析可以并行发出的每个指令的预解码位,并且为指令流内的每个可能的起始位置保留多路复用器控制。

    Simplified method to generate BTAGs in a decode unit of a processing system
    3.
    发明授权
    Simplified method to generate BTAGs in a decode unit of a processing system 失效
    在处理系统的解码单元中生成BTAG的简化方法

    公开(公告)号:US06304959B1

    公开(公告)日:2001-10-16

    申请号:US09263669

    申请日:1999-03-05

    IPC分类号: G06F938

    摘要: A method and system for assigning unique branch tag (BTAG) values in a decode unit in a processing system are disclosed. The method and system comprise providing at least one BTAG value and incrementing the at least one BTAG value for each fetch group as required. The method includes allowing the decode unit to generate the appropriate BTAG values for all dispatch groups formed by instructions within the same fetch group. In the preferred implementation, the BTAG values comprise a major branch tag and two minor branch tags, a count branch tag, and a link branch tag. The “seed” value for each of the BTAGs is provided each time a branch redirection occurs. Because the branches are passed to the decode unit with little or no processing by the instruction fetch unit, and conditions can cause the branch execution to be delayed, more branches could be decoded and processed than the number of branch entry queues in the instruction fetch unit. Therefore the value of the next entry in the branch entry queue is broadcast to the decode unit and whenever the current branch in the last stage of the decode unit is identical to the broadcast value, the decode unit ceases to process any output instructions until the broadcast value changes.

    摘要翻译: 公开了一种用于在处理系统中的解码单元中分配唯一分支标签(BTAG)值的方法和系统。 该方法和系统包括提供至少一个BTAG值并根据需要递增每个获取组的至少一个BTAG值。 该方法包括允许解码单元为由同一取出组内的指令形成的所有调度组生成适当的BTAG值。 在优选实现中,BTAG值包括主要分支标签和两个次要分支标签,计数分支标签和链接分支标签。 每次发生分支重定向时都提供每个BTAG的“种子”值。 由于分支通过指令获取单元很少或不处理地被传递到解码单元,并且条件可以导致分支执行被延迟,所以可以比指令获取单元中的分支输入队列的数量更多的分支被解码和处理 。 因此,分支输入队列中的下一个条目的值被广播到解码单元,并且每当解码单元的最后一级中的当前分支与广播值相同时,解码单元停止处理任何输出指令直到广播 价值变化。

    METHODS FOR STORING BRANCH INFORMATION IN AN ADDRESS TABLE OF A PROCESSOR
    4.
    发明申请
    METHODS FOR STORING BRANCH INFORMATION IN AN ADDRESS TABLE OF A PROCESSOR 有权
    在处理器的地址表中存储分支信息的方法

    公开(公告)号:US20080276080A1

    公开(公告)日:2008-11-06

    申请号:US12171370

    申请日:2008-07-11

    IPC分类号: G06F9/38 G06F9/44

    CPC分类号: G06F9/3806

    摘要: Methods for storing branch information in an address table of a processor are disclosed. A processor of the disclosed embodiments may generally include an instruction fetch unit connected to an instruction cache, a branch execution unit, and an address table being connected to the instruction fetch unit and the branch execution unit. The address table may generally be adapted to store a plurality of entries with each entry of the address table being adapted to store a base address and a base instruction tag. In a further embodiment, the branch execution unit may be adapted to determine the address of a branch instruction having an instruction tag based on the base address and the base instruction tag of an entry of the address table associated with the instruction tag. In some embodiments, the address table may further be adapted to store branch information.

    摘要翻译: 公开了将分支信息存储在处理器的地址表中的方法。 所公开的实施例的处理器通常可以包括连接到指令高速缓存的指令获取单元,分支执行单元和连接到指令获取单元和分支执行单元的地址表。 地址表通常适于存储多个条目,其中地址表的每个条目适于存储基地址和基本指令标签。 在另一实施例中,分支执行单元可以适于基于与指令标签相关联的地址表的条目的基地址和基本指令标签来确定具有指令标签的分支指令的地址。 在一些实施例中,地址表还可以适于存储分支信息。

    Pipelined two-cycle branch target address cache
    5.
    发明授权
    Pipelined two-cycle branch target address cache 失效
    流水线两循环分支目标地址缓存

    公开(公告)号:US06279105B1

    公开(公告)日:2001-08-21

    申请号:US09173039

    申请日:1998-10-15

    IPC分类号: G06F1300

    摘要: In a branch instruction target address cache, an entry associated with a fetched block of instructions includes a target address of a branch instruction residing in the next sequential block of instructions. The entry will include a sequential address associated with the branch instruction and a prediction of whether the target address is taken or not taken.

    摘要翻译: 在分支指令目标地址高速缓存中,与获取的指令块相关联的条目包括驻留在下一个顺序指令块中的分支指令的目标地址。 条目将包括与分支指令相关联的顺序地址以及是否采取目标地址的预测。

    Storing branch information in an address table of a processor
    6.
    发明授权
    Storing branch information in an address table of a processor 有权
    将分支信息存储在处理器的地址表中

    公开(公告)号:US08943301B2

    公开(公告)日:2015-01-27

    申请号:US13101650

    申请日:2011-05-05

    CPC分类号: G06F9/3806

    摘要: Methods for storing branch information in an address table of a processor are disclosed. A processor of the disclosed embodiments may generally include an instruction fetch unit connected to an instruction cache, a branch execution unit, and an address table being connected to the instruction fetch unit and the branch execution unit. The address table may generally be adapted to store a plurality of entries with each entry of the address table being adapted to store a base address and a base instruction tag. In a further embodiment, the branch execution unit may be adapted to determine the address of a branch instruction having an instruction tag based on the base address and the base instruction tag of an entry of the address table associated with the instruction tag. In some embodiments, the address table may further be adapted to store branch information.

    摘要翻译: 公开了将分支信息存储在处理器的地址表中的方法。 所公开的实施例的处理器通常可以包括连接到指令高速缓存的指令获取单元,分支执行单元和连接到指令获取单元和分支执行单元的地址表。 地址表通常适于存储多个条目,其中地址表的每个条目适于存储基地址和基本指令标签。 在另一实施例中,分支执行单元可以适于基于与指令标签相关联的地址表的条目的基地址和基本指令标签来确定具有指令标签的分支指令的地址。 在一些实施例中,地址表还可以适于存储分支信息。

    Branch encoding before instruction cache write
    7.
    发明授权
    Branch encoding before instruction cache write 有权
    指令缓存写入前的分支编码

    公开(公告)号:US07487334B2

    公开(公告)日:2009-02-03

    申请号:US11050350

    申请日:2005-02-03

    IPC分类号: G06F9/34

    CPC分类号: G06F9/322 G06F9/382

    摘要: Method, system and computer program product for determining the targets of branches in a data processing system. A method for determining the target of a branch in a data processing system includes performing at least one pre-calculation relating to determining the target of the branch prior to writing the branch into a Level 1 (L1) cache to provide a pre-decoded branch, and then writing the pre-decoded branch into the L1 cache. By pre-calculating matters relating to the targets of branches before the branches are written into the L1 cache, for example, by re-encoding relative branches as absolute branches, a reduction in branch redirect delay can be achieved, thus providing a substantial improvement in overall processor performance.

    摘要翻译: 用于确定数据处理系统中分支目标的方法,系统和计算机程序产品。 一种用于确定数据处理系统中的分支的目标的方法包括在将分支写入级别1(L1)高速缓存之前执行与确定分支的目标有关的至少一个预计算,以提供预解码分支 ,然后将预解码的分支写入L1高速缓存。 通过在将分支写入L1高速缓存之前预先计算与分支目标相关的事项,例如通过将相关分支重新编码为绝对分支,可以实现分支重定向延迟的减少,从而提供了显着的改进 整体处理器性能。

    Storing branch information in an address table of a processor
    8.
    发明授权
    Storing branch information in an address table of a processor 有权
    将分支信息存储在处理器的地址表中

    公开(公告)号:US07984280B2

    公开(公告)日:2011-07-19

    申请号:US12171370

    申请日:2008-07-11

    IPC分类号: G06F9/00

    CPC分类号: G06F9/3806

    摘要: Methods for storing branch information in an address table of a processor are disclosed. A processor of the disclosed embodiments may generally include an instruction fetch unit connected to an instruction cache, a branch execution unit, and an address table being connected to the instruction fetch unit and the branch execution unit. The address table may generally be adapted to store a plurality of entries with each entry of the address table being adapted to store a base address and a base instruction tag. In a further embodiment, the branch execution unit may be adapted to determine the address of a branch instruction having an instruction tag based on the base address and the base instruction tag of an entry of the address table associated with the instruction tag. In some embodiments, the address table may further be adapted to store branch information.

    摘要翻译: 公开了将分支信息存储在处理器的地址表中的方法。 所公开的实施例的处理器通常可以包括连接到指令高速缓存的指令获取单元,分支执行单元和连接到指令获取单元和分支执行单元的地址表。 地址表通常适于存储多个条目,其中地址表的每个条目适于存储基地址和基本指令标签。 在另一实施例中,分支执行单元可以适于基于与指令标签相关联的地址表的条目的基地址和基本指令标签来确定具有指令标签的分支指令的地址。 在一些实施例中,地址表还可以适于存储分支信息。

    Storing Branch Information in an Address Table of a Processor
    9.
    发明申请
    Storing Branch Information in an Address Table of a Processor 审中-公开
    将分支信息存储在处理器的地址表中

    公开(公告)号:US20110213951A1

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

    申请号:US13101650

    申请日:2011-05-05

    IPC分类号: G06F9/38

    CPC分类号: G06F9/3806

    摘要: Methods for storing branch information in an address table of a processor are disclosed. A processor of the disclosed embodiments may generally include an instruction fetch unit connected to an instruction cache, a branch execution unit, and an address table being connected to the instruction fetch unit and the branch execution unit. The address table may generally be adapted to store a plurality of entries with each entry of the address table being adapted to store a base address and a base instruction tag. In a further embodiment, the branch execution unit may be adapted to determine the address of a branch instruction having an instruction tag based on the base address and the base instruction tag of an entry of the address table associated with the instruction tag. In some embodiments, the address table may further be adapted to store branch information.

    摘要翻译: 公开了将分支信息存储在处理器的地址表中的方法。 所公开的实施例的处理器通常可以包括连接到指令高速缓存的指令获取单元,分支执行单元和连接到指令获取单元和分支执行单元的地址表。 地址表通常适于存储多个条目,其中地址表的每个条目适于存储基地址和基本指令标签。 在另一实施例中,分支执行单元可以适于基于与指令标签相关联的地址表的条目的基地址和基本指令标签来确定具有指令标签的分支指令的地址。 在一些实施例中,地址表还可以适于存储分支信息。