Universal register rename mechanism for targets of different instruction types in a microprocessor
    31.
    发明授权
    Universal register rename mechanism for targets of different instruction types in a microprocessor 失效
    微处理器中不同指令类型的目标通用寄存器重命名机制

    公开(公告)号:US07765384B2

    公开(公告)日:2010-07-27

    申请号:US11736844

    申请日:2007-04-18

    IPC分类号: G06F9/30

    摘要: A unified register rename mechanism for targets of different instruction types is provided in a microprocessor. The universal rename mechanism renames destinations of different instruction types using a single rename structure. Thus, an instruction that is updating a floating point register (FPR) can be renamed along with an instruction that is updating a general purpose register (GPR) or vector multimedia extensions (VMX) instructions register (VR) using the same rename structure because the number of architected states for GPR is the same as the number of architected states for FPR and VR. Each destination tag (DTAG) is assigned to one destination. A floating point instruction may be assigned to a DTAG, and then a fixed point instruction may be assigned to the next DTAG and so forth. With a universal rename mechanism, significant silicon and power can be saved by having only one rename structure for all instruction types.

    摘要翻译: 在微处理器中提供了用于不同指令类型的目标的统一寄存器重命名机制。 通用重命名机制使用单个重命名结构重命名不同指令​​类型的目标。 因此,更新浮点寄存器(FPR)的指令可以与使用相同的重命名结构更新通用寄存器(GPR)或向量多媒体扩展(VMX)指令寄存器(VR))的指令一起重命名,因为 GPR的架构状态数量与FPR和VR的架构状态数量相同。 每个目的地标签(DTAG)被分配到一个目的地。 可将浮点指令分配给DTAG,然后将固定点指令分配给下一个DTAG等等。 使用通用重命名机制,可以通过为所有指令类型只有一个重命名结构来节省显着的硅和功率。

    Universal register rename mechanism for instructions with multiple targets in a microprocessor
    32.
    发明授权
    Universal register rename mechanism for instructions with multiple targets in a microprocessor 有权
    通用寄存器重命名机制,用于在微处理器中具有多个目标的指令

    公开(公告)号:US07809929B2

    公开(公告)日:2010-10-05

    申请号:US11736855

    申请日:2007-04-18

    IPC分类号: G06F9/30

    CPC分类号: G06F9/3861 G06F9/384

    摘要: A universal register rename mechanism for instructions with multiple targets using a common destination tag. For each instruction that updates multiple destinations, a single rename entry is allocated to handle all destinations associated with it. A rename entry now consists of a DTAG and a vector to indicate the type of destination(s) that is/are being updated by such a particular instruction. For example, a common DTAG can be assigned to a fixed point unit instruction (FXU) that updates general purpose register (GPR), fixed point exception register (XER), and condition code register (CR) destinations. During flush time, the DTAGs in the recovery link may be used to restore the information indicating that the youngest instruction updates a particular architected register. By using a single, universal rename structure for all types of destinations, a large saving in silicon and power can be realized without the need to sacrifice performance.

    摘要翻译: 通用寄存器重命名机制,用于使用公共目标标签的多个目标的指令。 对于更新多个目的地的每个指令,分配单个重命名条目来处理与其相关联的所有目的地。 现在,一个重命名条目由一个DTAG和一个向量组成,用于指示由这样的特定指令更新的目标的类型。 例如,可以将普通DTAG分配给更新通用寄存器(GPR),定点异常寄存器(XER)和条件码寄存器(CR)目的地的固定点单元指令(FXU)。 在冲洗时间期间,恢复链路中的DTAG可以用于恢复指示最年轻的指令更新特定架构的寄存器的信息。 通过为所有类型的目的地使用单一的通用重命名结构,可以实现大量的硅和电源节省,而不需要牺牲性能。

    System for managing data dependency using bit field instruction destination vector identifying destination for execution results
    33.
    发明授权
    System for managing data dependency using bit field instruction destination vector identifying destination for execution results 失效
    用于使用位字段指令目的地向量识别执行结果的目的地来管理数据依赖性的系统

    公开(公告)号:US07475226B2

    公开(公告)日:2009-01-06

    申请号:US11533379

    申请日:2006-09-20

    IPC分类号: G06F9/30

    摘要: A method of data processing includes fetching a sequence of instructions, assigning each instruction within the sequence a respective unique instruction tag, and associating a respective destination vector with each instruction. The destination vectors, which are of uniform size, identify which of a plurality of possible destinations for execution results are targeted by the associated instructions. Data dependency between instructions in the sequence is managed by reference to the destination vectors associated with the instructions.

    摘要翻译: 一种数据处理方法包括获取一系列指令,在序列内分配相应唯一指令标签中的每条指令,并将各目标向量与每条指令相关联。 具有相同大小的目的地向量识别用于执行结果的多个可能目的地中的哪一个被相关联的指令所针对。 通过参考与指令相关联的目的地向量来管理序列中的指令之间的数据相关性。

    Selective Execution Dependency Matrix
    34.
    发明申请
    Selective Execution Dependency Matrix 审中-公开
    选择性执行依赖矩阵

    公开(公告)号:US20100257341A1

    公开(公告)日:2010-10-07

    申请号:US12417801

    申请日:2009-04-03

    IPC分类号: G06F9/30

    CPC分类号: G06F9/3838

    摘要: A processor having a dependency matrix comprises a first array comprising a plurality of cells arranged in a plurality of columns and a plurality of rows. Each row represents an instruction in a processor execution queue and each cell represents a dependency relationship between two instructions in the processor execution queue. A first latch couples to the first array and comprises a first bit, the first bit indicating a first status. A second latch couples to the first array and comprises a second bit, the second bit indicating a second status. A first read port couples to the first array, comprising a first read wordline and a first read bitline. The first read wordline couples to the first latch and a first column and asserts a first available signal based on the first bit. The first read bitline couples to a first row and generates a first ready signal based on the first available signal and a first cell. A second read port couples to the first array and comprises a second read wordline and a second read bitline. The second read wordline couples to the second latch and the first column and asserts a second available signal based on the second bit. The second read bitline couples to the first row and generates a second ready signal based on the second read wordline and the first cell.

    摘要翻译: 具有依赖矩阵的处理器包括第一阵列,其包括以多个列排列的多个单元和多个行。 每行表示处理器执行队列中的指令,每个单元表示处理器执行队列中的两个指令之间的依赖关系。 第一锁存器耦合到第一阵列并且包括第一位,第一位指示第一状态。 第二锁存器耦合到第一阵列并且包括第二位,第二位指示第二状态。 第一读取端口耦合到第一阵列,包括第一读取字线和第一读取位线。 第一读取字线耦合到第一锁存器和第一列,并基于第一位置位第一可用信号。 第一读取位线耦合到第一行并且基于第一可用信号和第一单元产生第一就绪信号。 第二读取端口耦合到第一阵列并且包括第二读取字线和第二读取位线。 第二读取字线耦合到第二锁存器和第一列,并基于第二位置位第二可用信号。 第二读取位线耦合到第一行,并且基于第二读取字线和第一单元产生第二就绪信号。

    Dependency Matrix with Improved Performance
    35.
    发明申请
    Dependency Matrix with Improved Performance 审中-公开
    具有改进性能的依赖矩阵

    公开(公告)号:US20100257339A1

    公开(公告)日:2010-10-07

    申请号:US12417831

    申请日:2009-04-03

    IPC分类号: G06F9/30

    CPC分类号: G06F9/3842 G06F9/3838

    摘要: A processor having a dependency matrix comprises a first array comprising a plurality of cells arranged in a plurality of columns and a plurality of rows. Each row represents an instruction in a processor execution queue and each cell in the first array represents a dependency relationship between two instructions in the processor execution queue. A clear port couples to the first array and clears a column of the first array. A producer status module couples to the clear port and the first array and determines an execution status of a producer instruction, wherein the producer instruction is an instruction in the processor execution queue. An available-status port couples to the first array and the producer status module and sets a read wordline column corresponding to the producer instruction based on the execution status of the producer instruction. The available-status port deasserts the read wordline column in response to a selection of the producer for execution. The available-status port reasserts the read wordline column in the event the producer status module determines the producer instruction has been rejected. The clear port clears the column of the first array corresponding to the producer instruction in the event the producer status module determines the producer instruction has been executed.

    摘要翻译: 具有依赖矩阵的处理器包括第一阵列,其包括以多个列排列的多个单元和多个行。 每行代表处理器执行队列中的指令,第一个数组中的每个单元表示处理器执行队列中的两个指令之间的依赖关系。 清除端口耦合到第一个数组,并清除第一个数组的列。 生产者状态模块耦合到清除端口和第一阵列,并且确定生成器指令的执行状态,其中生成器指令是处理器执行队列中的指令。 可用状态端口耦合到第一阵列和生成器状态模块,并且基于生成器指令的执行状态设置与生成器指令相对应的读字线列。 可用状态端口取消对读取的字线列的响应,以选择要执行的生产者。 在生产者状态模块确定生产者指令已被拒绝的情况下,可用状态端口重新发送读取字线列。 在生产者状态模块确定生产者指令已执行的情况下,清除端口清除与生产者指令对应的第一个阵列的列。

    Partial Flush Handling with Multiple Branches Per Group
    36.
    发明申请
    Partial Flush Handling with Multiple Branches Per Group 有权
    部分冲洗处理与每个分支

    公开(公告)号:US20100262807A1

    公开(公告)日:2010-10-14

    申请号:US12423495

    申请日:2009-04-14

    IPC分类号: G06F9/38 G06F9/30

    摘要: Mechanisms are provided for partial flush handling with multiple branches per instruction group. The instruction fetch unit sorts instructions into groups. A group may include a floating branch instruction and a boundary branch instruction. For each group of instructions, the instruction sequencing unit creates an entry in a global completion table (GCT), which may also be referred to herein as a group completion table. The instruction sequencing unit uses the GCT to manage completion of instructions within each outstanding group. Because each group may include up to two branches, the instruction sequencing unit may dispatch instructions beyond the first branch, i.e. the floating branch. Therefore, if the floating branch results in a misprediction, the processor performs a partial flush of that group, as well as a flush of every group younger than that group.

    摘要翻译: 提供了用于部分刷新处理的机制,每个指令组具有多个分支。 指令提取单元将指令分组分组。 组可以包括浮动分支指令和边界分支指令。 对于每组指令,指令排序单元在全局完成表(GCT)中创建条目,其也可以在此被称为组完成表。 指令排序单元使用GCT来管理每个优秀组内的指令完成。 因为每个组可以包括多达两个分支,所以指令排序单元可以分派指令超出第一分支,即浮动分支。 因此,如果浮动分支导致错误预测,则处理器将对该组进行部分刷新,以及每个小于该组的组的刷新。

    Processor and method for partially flushing a dispatched instruction group including a mispredicted branch
    37.
    发明授权
    Processor and method for partially flushing a dispatched instruction group including a mispredicted branch 有权
    用于部分刷新分派指令组的处理器和方法,包括错误预测的分支

    公开(公告)号:US09489207B2

    公开(公告)日:2016-11-08

    申请号:US12423495

    申请日:2009-04-14

    IPC分类号: G06F9/30 G06F9/38

    摘要: Mechanisms are provided for partial flush handling with multiple branches per instruction group. The instruction fetch unit sorts instructions into groups. A group may include a floating branch instruction and a boundary branch instruction. For each group of instructions, the instruction sequencing unit creates an entry in a global completion table (GCT), which may also be referred to herein as a group completion table. The instruction sequencing unit uses the GCT to manage completion of instructions within each outstanding group. Because each group may include up to two branches, the instruction sequencing unit may dispatch instructions beyond the first branch, i.e. the floating branch. Therefore, if the floating branch results in a misprediction, the processor performs a partial flush of that group, as well as a flush of every group younger than that group.

    摘要翻译: 提供了用于部分刷新处理的机制,每个指令组具有多个分支。 指令提取单元将指令分组分组。 组可以包括浮动分支指令和边界分支指令。 对于每组指令,指令排序单元在全局完成表(GCT)中创建条目,其也可以在此被称为组完成表。 指令排序单元使用GCT来管理每个优秀组内的指令完成。 因为每个组可以包括多达两个分支,所以指令排序单元可以分派指令超出第一分支,即浮动分支。 因此,如果浮动分支导致错误预测,则处理器将对该组进行部分刷新,以及每个小于该组的组的刷新。

    Method and circuit for reading and writing an instruction buffer
    38.
    发明授权
    Method and circuit for reading and writing an instruction buffer 有权
    用于读写指令缓冲器的方法和电路

    公开(公告)号:US07243170B2

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

    申请号:US10707149

    申请日:2003-11-24

    IPC分类号: G06F3/00 G06F5/00

    CPC分类号: G06F9/3802 G06F9/3814

    摘要: An instruction buffer and a method of buffering instructions. The instruction buffer including: a memory array partitioned into multiple identical memory sub-arrays arranged in sequential order from a first memory sub-array to a last memory sub-array, each memory sub-array having multiple instruction entry positions and adapted to store a different instruction of a set of concurrent instructions in a single instruction entry position of any one of the memory sub-arrays, the set of concurrent instructions arranged in sequential order from a first instruction to a last instruction

    摘要翻译: 指令缓冲器和缓冲指令的方法。 所述指令缓冲器包括:分割成从第一存储器子阵列到最后存储器子阵列的顺序排列的多个相同的存储器子阵列的存储器阵列,每个存储器子阵列具有多个指令条目位置,并且适于存储 任何一个存储器子阵列的单个指令输入位置中的一组并行指令的不同指令,以从第一指令到最后指令的顺序排列的并发指令集

    Adaptive allocation of reservation station entries to an instruction set with variable operands in a microprocessor
    39.
    发明授权
    Adaptive allocation of reservation station entries to an instruction set with variable operands in a microprocessor 失效
    将保留站条目自适应分配给具有微处理器中可变操作数的指令集

    公开(公告)号:US07979677B2

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

    申请号:US11833561

    申请日:2007-08-03

    申请人: Dung Q. Nguyen

    发明人: Dung Q. Nguyen

    IPC分类号: G06F9/30 G06F9/38

    摘要: A method and device for adaptively allocating reservation station entries to an instruction set with variable operands in a microprocessor. The device includes logic for determining free reservation station queue positions in a reservation station. The device allocates an issue queue to an instruction and writes the instruction into the issue queue as an issue queue entry. The device reads an operand corresponding to the instruction from a general purpose register and writes the operand into a reservation station using one of the free reservations station positions as a write address. The device writes each reservation station queue position corresponding to said instruction into said issue queue entry. When the instruction is ready for issue to an execution unit, the device reads out the instruction from the issue queue entry the reservation station queue positions to the execution unit.

    摘要翻译: 一种用于将保留站条目自适应地分配给具有微处理器中的可变操作数的指令集的方法和装置。 该设备包括用于确定保留站中的空闲保留站队列位置的逻辑。 该设备为指令分配一个问题队列,并将该指令写入发布队列作为问题队列条目。 设备从通用寄存器读取与该指令对应的操作数,并使用空闲保留站位置之一将操作数写入保留站作为写入地址。 设备将对应于所述指令的每个保留站队列位置写入所述发布队列条目。 当指令准备发送到执行单元时,设备从保留站队列位置的发布队列条目读出执行单元的指令。

    Register rename array with individual thread bits set upon allocation and cleared upon instruction completion
    40.
    发明授权
    Register rename array with individual thread bits set upon allocation and cleared upon instruction completion 失效
    注册重命名数组,分配后设置单个线程位,并在指令完成时清零

    公开(公告)号:US07093106B2

    公开(公告)日:2006-08-15

    申请号:US10422021

    申请日:2003-04-23

    IPC分类号: G06F9/38 G06F9/46

    摘要: A single rename register array is used in an SMT processor. Two bits are added to each register address of the rename register array, one for bit for thread zero (CTB0) and one bit for thread one (CTB1). The CTB bits are all set to a logic value on power on or start-up. A control instruction (CI) that sets control bits used by other instructions is assigned a register in the rename register array having an address designated as pointer (PTR) address. When a control instruction with an assigned entry with PTR address M completes, then the CTB bit at the PTR address M is flipped to its opposite logic state; likewise, its Valid bit is set to a “not” Valid state. The self resetting CTB bit is used to determine whether an issued instruction sources a register in the rename register array or a corresponding architected register.

    摘要翻译: 在SMT处理器中使用单个重命名寄存器阵列。 两个位被添加到重命名寄存器阵列的每个寄存器地址中,一个用于线程零(CTB 0)的位和一个位线(CTB 1)。 CTB位在上电或启动时均设置为逻辑值。 设置由其他指令使用的控制位的控制指令(CI)在具有指定为指针(PTR)地址的地址的重命名寄存器阵列中分配一个寄存器。 当具有PTR地址M的分配条目的控制指令完成时,PTR地址M处的CTB位被翻转到相反的逻辑状态; 同样,其有效位设置为“不”有效状态。 自复位CTB位用于确定发出的指令是否发送重命名寄存器阵列中的寄存器或相应的架构寄存器。