Multi-mode register rename mechanism that augments logical registers by switching a physical register from the register rename buffer when switching between in-order and out-of-order instruction processing in a simultaneous multi-threaded microprocessor
    1.
    发明授权
    Multi-mode register rename mechanism that augments logical registers by switching a physical register from the register rename buffer when switching between in-order and out-of-order instruction processing in a simultaneous multi-threaded microprocessor 有权
    多模式寄存器重命名机制,通过在同时多线程微处理器中的顺序和无序指令处理之间切换时,通过从寄存器重命名缓冲器切换物理寄存器来增加逻辑寄存器

    公开(公告)号:US08347068B2

    公开(公告)日:2013-01-01

    申请号:US11696363

    申请日:2007-04-04

    Abstract: A multi-mode register rename mechanism which allows a simultaneous multi-threaded processor to support full out-of-order thread execution when the number of threads is low and in-order thread execution when the number of threads increases. Responsive to changing an execution mode of a processor to operate in in-order thread execution mode, the illustrative embodiments switch a physical register in the data processing system to an architected facility, thereby forming a switched physical register. When an instruction is issued to an execution unit, wherein the issued instruction comprises a thread bit, the thread bit is examined to determine if the instruction accesses an architected facility. If the issued instruction accesses an architected facility, the instruction is executed, and the results of the executed instruction are written to the switched physical register.

    Abstract translation: 多模式寄存器重命名机制,允许同时多线程处理器在线程数量低时支持完全无序的线程执行,并且当线程数增加时按顺序执行线程。 响应于改变处理器的执行模式以按顺序执行线程执行模式,所述说明性实施例将数据处理系统中的物理寄存器切换到架构设施,从而形成切换的物理寄存器。 当向执行单元发出指令时,其中发出的指令包括一个线程位,检查该线程位以确定该指令是否访问一个架构设施。 如果发出的指令访问架构设施,则执行该指令,并且将所执行的指令的结果写入切换的物理寄存器。

    Data stream prefetching in a microprocessor
    2.
    发明授权
    Data stream prefetching in a microprocessor 失效
    数据流在微处理器中预取

    公开(公告)号:US07904661B2

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

    申请号:US11953637

    申请日:2007-12-10

    CPC classification number: G06F12/0862 G06F2212/6028

    Abstract: A method of prefetching data in a microprocessor includes identifying a data stream associated with a process and determining a depth associated with the data stream based upon prefetch factors including the number of currently concurrent data streams and data consumption rates associated with the concurrent data streams. Data prefetch requests are allocated with the data stream to reflect the determined depth of the data stream. Allocating data prefetch requests may include allocating prefetch requests for a number of cache lines away from the cache line currently being referenced, wherein the number of cache lines is equal to the determined depth. The method may include, responsive to determining the depth associated with a data stream, configuring prefetch hardware to reflect the determined depth for the identified data stream. Prefetch control bits in an instruction executed by the processor control the prefetch hardware configuration.

    Abstract translation: 在微处理器中预取数据的方法包括基于包括当前并发数据流的数量和与并发数据流相关联的数据消耗速率的预取因子来识别与进程相关联的数据流并确定与数据流相关联的深度。 数据预取请求被分配与数据流以反映确定的数据流的深度。 分配数据预取请求可以包括为当前被引用的高速缓存行分配多个高速缓存行的预取请求,其中高速缓存行的数量等于所确定的深度。 该方法可以响应于确定与数据流相关联的深度,配置预取硬件以反映所识别的数据流的确定的深度。 由处理器执行的指令中的预取控制位控制预取硬件配置。

    Processor instruction retry recovery
    3.
    发明授权
    Processor instruction retry recovery 失效
    处理器指令重试恢复

    公开(公告)号:US07827443B2

    公开(公告)日:2010-11-02

    申请号:US12270300

    申请日:2008-11-13

    Abstract: Recovery circuits react to errors in a processor core by waiting for an error-free completion of any pending store-conditional instruction or a cache-inhibited load before ceasing to checkpoint or backup progress of a processor core. Recovery circuits remove the processor core from the logical configuration of the symmetric multiprocessor system, potentially reducing propagation of errors to other parts of the system. The processor core is reset and the checkpointed values may be restored to registers of the processor core. The core processor is allowed not just to resume execution just prior to the instructions that failed to execute correctly the first time, but is allowed to operate in a reduced execution mode for a preprogrammed number of groups. If the preprogrammed number of instruction groups execute without error, the processor core is allowed to resume normal execution.

    Abstract translation: 恢复电路通过在停止处理器核心的检查点或备份进程之前等待任何挂起的存储条件指令或高速缓存禁止负载的无差错完成来响应处理器内核中的错误。 恢复电路将处理器核从对称多处理器系统的逻辑配置中移除,可能会将错误的传播减少到系统的其他部分。 处理器内核被复位,检查点值可以恢复到处理器内核的寄存器。 允许核心处理器不仅在第一次执行失败的指令之前恢复执行,而且允许以预编程的组数减少执行模式运行。 如果指令组的预编程数量无错误地执行,则允许处理器内核恢复正常执行。

    Dynamic recalculation of resource vector at issue queue for steering of dependent instructions
    4.
    发明授权
    Dynamic recalculation of resource vector at issue queue for steering of dependent instructions 有权
    动态重新计算依赖指令转向问题队列中的资源向量

    公开(公告)号:US07650486B2

    公开(公告)日:2010-01-19

    申请号:US12013572

    申请日:2008-01-14

    CPC classification number: G06F9/3851 G06F9/3836

    Abstract: A method and apparatus for steering instructions dynamically, at issue time, so as to maximize the efficiency of use of execution units being shared by multiple threads being processed by an SMT processor. Resource vectors are used at issue time to redirect instructions, from threads being processed simultaneously, to shared resources for which the multiple threads are competing. The existing resource vectors for instructions that are queued for issuance are analyzed and, where appropriate, dynamically recalculated and modified for maximum efficiency.

    Abstract translation: 一种用于在问题时刻动态地转向指令的方法和装置,以便最大化由SMT处理器处理的多个线程共享的执行单元的使用效率。 在发布时使用资源向量将来自正在被处理的线程的指令重定向到多个线程正在竞争的共享资源。 分析用于发行排队的指令的现有资源向量,并在适当情况下动态重新计算和修改以最大限度地提高效率。

    Using a modified value GPR to enhance lookahead prefetch
    7.
    发明授权
    Using a modified value GPR to enhance lookahead prefetch 失效
    使用修改值GPR来增强前瞻预取

    公开(公告)号:US07421567B2

    公开(公告)日:2008-09-02

    申请号:US11016206

    申请日:2004-12-17

    CPC classification number: G06F9/3842 G06F9/3804 G06F9/383 G06F9/3838

    Abstract: The present invention allows a microprocessor to identify and speculatively execute future instructions during a stall condition. This allows forward progress to be made through the instruction stream during the stall condition which would otherwise cause the microprocessor or thread of execution to be idle. The execution of such future instructions can initiate a prefetch of data or instructions from a distant cache or main memory, or otherwise make forward progress through the instruction stream. In this manner, when the instructions are re-executed (non speculatively executed) after the stall condition expires, they will execute with a reduced execution latency; e.g. by accessing data prefetched into the L1 cache, or enroute to the processor, or by executing the target instructions following a speculatively resolved mispredicted branch. In speculative mode, instruction operands may be invalid due to source loads that miss the L1 cache, facilities not available in speculative execution mode, or due to speculative instruction results that are not available. Dependency and dirty (i.e. invalid result) bits are tracked and used to determine which speculative instructions are valid for execution. A modified value register storage and bit vector are used to improve the availability of speculative results that would otherwise be discarded once they leave the execution pipeline because they cannot be written to the architected registers. The modified general purpose registers are used to store speculative results when the corresponding instruction reaches writeback and the modified bit vector tracks the results that have been stored there. Younger speculative instructions that do not bypass directly from older instructions will then use this modified data when the corresponding bit in the modified bit vector indicates the data has been modified. Otherwise, data from the architected registers will be used.

    Abstract translation: 本发明允许微处理器在失速状态期间识别和推测地执行未来的指令。 这允许在停顿条件期间通过指令流进行正向进展,否则将导致微处理器或执行线程空闲。 这样的未来指令的执行可以启动来自远程高速缓存或主存储器的数据或指令的预取,或以其他方式通过指令流进行进展。 以这种方式,当在停止条件到期之后重新执行(不推测地执行)指令时,它们将以降低的执行延迟执行; 例如 通过访问预取到L1高速缓存中的数据,或者进入处理器,或通过在推测性地解决的误预测分支之后执行目标指令。 在推测模式中,由于缺少L1缓存的源加载,在推测执行模式下不可用的设备,或由于不可用的推测指令结果,指令操作数可能无效。 跟踪依赖关系和脏(即无效结果)位,并用于确定哪些推测指令对执行有效。 改进的值寄存器存储和位向量被用于提高推测结果的可用性,否则,由于不能将其写入到架构化的寄存器,否则将抛弃执行流水线。 修改后的通用寄存器用于在对应指令到达回写时存储推测结果,修改后的位向量跟踪存储在其中的结果。 当修改的位向量中的相应位指示数据已被修改时,不直接从旧指令旁路的较小的推测指令将使用该修改的数据。 否则,将使用来自架构化寄存器的数据。

    Apparatus, system and method for quickly determining an oldest instruction in a non-moving instruction queue
    8.
    发明授权
    Apparatus, system and method for quickly determining an oldest instruction in a non-moving instruction queue 有权
    用于快速确定非移动指令队列中最旧指令的装置,系统和方法

    公开(公告)号:US07302553B2

    公开(公告)日:2007-11-27

    申请号:US10351556

    申请日:2003-01-23

    CPC classification number: G06F9/3836 G06F9/3855 G06F9/3857

    Abstract: An apparatus, system and method for quickly determining an oldest instruction in a non-moving instruction queue of a processor are provided. Particularly, instructions are stored, one at a time at a clock cycle, in the non-moving queue. At every clock cycle, a present status of the instructions in the queue is recorded. Using the present status of the instructions in the queue in conjunction with previously recorded statuses of the instructions, the oldest instruction in the queue is determined. The status of the instructions in the queue includes whether or not the instruction has been issued for execution as well as whether or not it is known that the issued instruction has been accepted for execution.

    Abstract translation: 提供了一种用于快速确定处理器的非移动指令队列中的最旧指令的装置,系统和方法。 特别地,在不移动队列中,以时钟周期一次存储指令。 在每个时钟周期,记录队列中的指令的当前状态。 结合队列中的指令的当前状态结合先前记录的指令状态,确定队列中最早的指令。 队列中的指令的状态包括是否已经发出指令执行,以及是否知道发出的指令已被接受执行。

    Instruction group formation and mechanism for SMT dispatch
    9.
    发明授权
    Instruction group formation and mechanism for SMT dispatch 失效
    SMT派遣指导小组组织和机制

    公开(公告)号:US07237094B2

    公开(公告)日:2007-06-26

    申请号:US10965143

    申请日:2004-10-14

    Abstract: A more efficient method of handling instructions in a computer processor, by associating resource fields with respective program instructions wherein the resource fields indicate which of the processor hardware resources are required to carry out the program instructions, calculating resource requirements for merging two or more program instructions based on their resource fields, and determining resource availability for simultaneously executing the merged program instructions based on the calculated resource requirements. Resource vectors indicative of the required resource may be encoded into the resource fields, and the resource fields decoded at a later stage to derive the resource vectors. The resource fields can be stored in the instruction cache associated with the respective program instructions. The processor may operate in a simultaneous multithreading mode with different program instructions being part of different hardware threads. When the resource availability equals or exceeds the resource requirements for a group of instructions, those instructions can be dispatched simultaneously to the hardware resources. A start bit may be inserted in one of the program instructions to define the instruction group. The hardware resources may in particular be execution units such as a fixed-point unit, a load/store unit, a floating-point unit, or a branch processing unit.

    Abstract translation: 通过将资源字段与相应的程序指令相关联来处理计算机处理器中的指令的更有效的方法,其中资源字段指示需要哪个处理器硬件资源来执行程序指令,计算用于合并两个或多个程序指令的资源需求 并且基于所计算的资源需求来确定用于同时执行所合并的程序指令的资源可用性。 指示所需资源的资源矢量可以被编码到资源字段中,并且在稍后阶段解码资源字段以导出资源向量。 资源字段可以存储在与相应的程序指令相关联的指令高速缓存中。 处理器可以以同时多线程模式操作,其中不同的程序指令是不同硬件线程的一部分。 当资源可用性等于或超过一组指令的资源需求时,可以将这些指令同时发送到硬件资源。 可以在程序指令之一中插入起始位以定义指令组。 硬件资源可以特别地是诸如定点单元,加载/存储单元,浮点单元或分支处理单元之类的执行单元。

    Mechanism to reduce instruction cache miss penalties and methods therefor
    10.
    发明授权
    Mechanism to reduce instruction cache miss penalties and methods therefor 失效
    降低指令高速缓存的机制错误惩罚及其方法

    公开(公告)号:US06658534B1

    公开(公告)日:2003-12-02

    申请号:US09052247

    申请日:1998-03-31

    CPC classification number: G06F9/382 G06F9/3804 G06F12/0862

    Abstract: The mechanism to reduce instruction cache miss penalties by initiating an early cache line prefetch is implemented. The mechanism provides for an early prefetch of a next succeeding cache line before an instruction cache miss is detected during a fetch which causes an instruction cache miss. The prefetch is initiated when it is guaranteed that instructions in the subsequent cache line will be referenced. This occurs when the current instruction is either a non-branch instruction, so instructions will execute sequentially, or if the current instruction is a branch instruction, but the branch forward is sufficiently short. If the current instruction is a branch, but the branch forward is to the next sequential cache line, a prefetch of the next sequential cache line may be performed. In this way, cache miss latencies may be reduced without generating cache pollution due to the prefetch of cache lines which are subsequently unreferenced.

    Abstract translation: 实现了通过启动早期高速缓存行预取来减少指令高速缓存未达错误的机制。 该机制在提取期间检测到指令高速缓存未命中导致指令高速缓存未命中之前提供对下一个后续高速缓存行的早期预取。 当保证将引用后续高速缓存行中的指令时,启动预取。 当当前指令是非分支指令时,会发生这种情况,因此指令将顺序执行,或者当前指令是分支指令,但分支前进足够短。 如果当前指令是分支,而分支转发到下一个顺序高速缓存行,则可以执行下一个顺序高速缓存行的预取。 以这种方式,可以减少高速缓存未命中延迟,而不会由于先前未被引用的高速缓存线的预取而产生高速缓存污染。

Patent Agency Ranking