Method and apparatus for enforcing memory reference dependencies through a load store unit
    1.
    发明授权
    Method and apparatus for enforcing memory reference dependencies through a load store unit 有权
    用于通过加载存储单元来执行存储器参考依赖性的方法和装置

    公开(公告)号:US06430649B1

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

    申请号:US09327398

    申请日:1999-06-07

    IPC分类号: G06F938

    摘要: One embodiment of the present invention provides a system that enforces dependencies between memory references within a load store unit (LSU) in a processor. When a write request is received in the load store unit, the write request is loaded into a store buffer in the LSU. The write request may include a “watch address” specifying that a subsequent load from the watch address cannot occur before the write request completes. Note that the watch address is not necessarily the same as the destination address of the write operation. When a read request is received in the load store unit, the read request is loaded into a load buffer of the LSU. The system determines if the read request is directed to the same address as a matching watch address in the store buffer. If so, the system waits for the write request associated with the matching watch address to complete before completing the read request. In one embodiment of the present invention, if the read request is directed to the same address as a matching write request in the store buffer, the system completes the read request by returning a data value contained in the matching write request without going out to memory. In one embodiment of the present invention, the system provides an executable code write instruction that specifies the watch address.

    摘要翻译: 本发明的一个实施例提供了一种在处理器中的加载存储单元(LSU)内实现存储器引用之间的依赖性的系统。 当在加载存储单元中接收到写请求时,写请求被加载到LSU中的存储缓冲器中。 写请求可以包括指定来自监视地址的后续加载在写请求完成之前不会发生的“监视地址”。 请注意,手表地址不一定与写入操作的目标地址相同。 当在加载存储单元中接收到读请求时,读请求被加载到LSU的加载缓冲器中。 系统确定读请求是否与存储缓冲区中匹配的监视地址指向相同的地址。 如果是这样,则在完成读取请求之前,系统等待与匹配的监视地址相关联的写入请求完成。 在本发明的一个实施例中,如果读请求针对与存储缓冲器中的匹配写请求相同的地址,则系统通过返回包含在匹配写请求中的数据值来完成读请求,而不用外存 。 在本发明的一个实施例中,系统提供了一个指定监视地址的可执行代码写入指令。

    Logical power throttling of instruction decode rate for successive time periods
    2.
    发明授权
    Logical power throttling of instruction decode rate for successive time periods 有权
    连续时间段的逻辑功率节制指令解码速率

    公开(公告)号:US08745419B2

    公开(公告)日:2014-06-03

    申请号:US13529761

    申请日:2012-06-21

    IPC分类号: G06F1/32 G06F9/30

    摘要: A processor includes a device providing a throttling power output signal. The throttling power output signal is used to determine when to logically throttle the power consumed by the processor. At least one core in the processor includes a pipeline having a decode pipe; and a logical power throttling unit coupled to the device to receive the output signal, and coupled to the decode pipe. Following the logical power throttling unit receiving the power throttling output signal satisfying a predetermined criterion, the logical power throttling unit causes the decode pipe to reduce an average number of instructions decoded per processor cycle without physically changing the processor cycle or any processor supply voltages.

    摘要翻译: 处理器包括提供节流功率输出信号的装置。 节流电源输出信号用于确定何时逻辑地调节处理器消耗的功率。 处理器中的至少一个核心包括具有解码管道的管线; 以及耦合到所述设备以接收所述输出信号并且耦合到所述解码管的逻辑功率节流单元。 在接收到满足预定标准的功率节流输出信号的逻辑功率节流单元之后,逻辑功率节流单元使得解码管减少在每个处理器周期解码的平均指令数,而不会物理地改变处理器周期或任何处理器供电电压。

    METHOD AND STRUCTURE FOR SOLVING THE EVIL-TWIN PROBLEM
    3.
    发明申请
    METHOD AND STRUCTURE FOR SOLVING THE EVIL-TWIN PROBLEM 有权
    解决双向问题的方法与结构

    公开(公告)号:US20100268919A1

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

    申请号:US12426550

    申请日:2009-04-20

    IPC分类号: G06F9/30

    摘要: A register file, in a processor, includes a first plurality of registers of a first size, n-bits. A decoder uses a mapping that divides the register file into a second plurality M of registers having a second size. Each of the registers having the second size is assigned a different name in a continuous name space. Each register of the second size includes a plurality N of registers of the first size, n-bits. Each register in the plurality N of registers is assigned the same name as the register of the second size that includes that plurality. State information is maintained in the register file for each n-bit register. The dependence of an instruction on other instructions is detected through the continuous name space. The state information allows the processor to determine when the information in any portion, or all, of a register is valid.

    摘要翻译: 在处理器中的寄存器文件包括第一大小的n位的第一多个寄存器。 解码器使用将寄存器文件分成具有第二大小的第二多个寄存器M的映射。 具有第二大小的每个寄存器在连续的名称空间中被分配不同的名称。 第二大小的每个寄存器包括多个N个第一大小的寄存器,n位。 多个N个寄存器中的每个寄存器被分配与包括该多个寄存器的第二大小的寄存器相同的名称。 状态信息保存在每个n位寄存器的寄存器文件中。 通过连续名称空间检测指令对其他指令的依赖性。 状态信息允许处理器确定寄存器的任何部分或全部中的信息何时有效。

    CHECKPOINTING IN A PROCESSOR THAT SUPPORTS SIMULTANEOUS SPECULATIVE THREADING
    4.
    发明申请
    CHECKPOINTING IN A PROCESSOR THAT SUPPORTS SIMULTANEOUS SPECULATIVE THREADING 审中-公开
    在支持同时进行线性加工的处理器中进行检查

    公开(公告)号:US20100031084A1

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

    申请号:US12185683

    申请日:2008-08-04

    IPC分类号: G06F11/00

    摘要: Embodiments of the present invention provide a system for executing program code on a processor. In these embodiments, the processor is configured to start by using a primary strand to execute program code. Upon detecting a predetermined condition, the processor is configured to instantaneously checkpoint an architectural state of the primary strand and then use the subordinate strand to copy the checkpointed state to memory while using the primary strand to continue executing the program code without interruption.

    摘要翻译: 本发明的实施例提供一种用于在处理器上执行程序代码的系统。 在这些实施例中,处理器被配置为通过使用主链来执行程序代码。 在检测到预定条件时,处理器被配置为立即检查主链的架构状态,然后使用下级链将检查点状态复制到存储器,同时使用主链继续执行程序代码而不中断。

    Preventing register data flow hazards in an SST processor
    5.
    发明授权
    Preventing register data flow hazards in an SST processor 有权
    防止SST处理器中的寄存器数据流危害

    公开(公告)号:US07610470B2

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

    申请号:US11703462

    申请日:2007-02-06

    IPC分类号: G06F9/38

    摘要: One embodiment of the present invention provides a system that prevents data hazards during simultaneous speculative threading. The system starts by executing instructions in an execute-ahead mode using a first thread. While executing instructions in the execute-ahead mode, the system maintains dependency information for each register indicating whether the register is subject to an unresolved data dependency. Upon the resolution of a data dependency during execute-ahead mode, the system copies dependency information to a speculative copy of the dependency information. The system then commences execution of the deferred instructions in a deferred mode using a second thread. While executing instructions in the deferred mode, if the speculative copy of the dependency information for a destination register indicates that a write-after-write (WAW) hazard exists with a subsequent non-deferred instruction executed by the first thread in execute-ahead mode, the system uses the second thread to execute the deferred instruction to produce a result and forwards the result to be used by subsequent deferred instructions without committing the result to the architectural state of the destination register. Hence, the system makes the result available to the subsequent deferred instructions without overwriting the result produced by a following non-deferred instruction.

    摘要翻译: 本发明的一个实施例提供一种在同时推测的线程中防止数据危害的系统。 系统通过使用第一个线程以执行模式执行指令来启动。 在执行执行模式下执行指令时,系统维护每个寄存器的依赖信息,指示寄存器是否受到未解析的数据依赖。 在执行提前模式下解析数据依赖关系时,系统将依赖关系信息复制到依赖关系信息的推测性副本。 然后,系统使用第二个线程以延迟模式开始执行延迟指令。 在延迟模式下执行指令时,如果目的寄存器的依赖关系信息的推测性副本指示在执行提前模式下由第一线程执行的后续非延迟指令存在写后写入(WAW)危险 ,系统使用第二个线程执行延迟指令以产生结果,并转发后续延迟指令使用的结果,而不将结果提交到目标寄存器的体系结构状态。 因此,系统使结果可用于后续延期指令,而不会覆盖由以下非延迟指令产生的结果。

    Generation of multiple checkpoints in a processor that supports speculative execution
    6.
    发明授权
    Generation of multiple checkpoints in a processor that supports speculative execution 有权
    在支持推测性执行的处理器中生成多个检查点

    公开(公告)号:US07571304B2

    公开(公告)日:2009-08-04

    申请号:US11084655

    申请日:2005-03-18

    摘要: One embodiment of the present invention provides a system which creates multiple checkpoints in a processor that supports speculative-execution. The system starts by issuing instructions for execution in program order during execution of a program in a normal-execution mode. Upon encountering a launch condition during an instruction which causes a processor to enter execute-ahead mode, the system performs an initial checkpoint and commences execution of instructions in execute-ahead mode. Upon encountering a predefined condition during execute-ahead mode, the system generates an additional checkpoint and continues to execute instructions in execute-ahead mode. Generating the additional checkpoint allows the processor to return to the additional checkpoint, instead of the previous checkpoint, if the processor subsequently encounters a condition that requires the processor to return to a checkpoint.

    摘要翻译: 本发明的一个实施例提供一种在支持推测执行的处理器中创建多个检查点的系统。 系统以正常执行模式在程序执行期间以程序顺序发出指令来开始。 在使处理器进入执行模式的指令期间遇到启动条件时,系统执行初始检查点并以执行提前模式开始执行指令。 在执行提前模式期间遇到预定义的条件时,系统生成附加检查点,并以执行提前模式继续执行指令。 如果处理器随后遇到需要处理器返回到检查点的条件,则生成附加检查点将允许处理器返回到附加检查点,而不是先前检查点。

    Method and apparatus for enforcing memory reference ordering requirements at the L1 cache level
    7.
    发明授权
    Method and apparatus for enforcing memory reference ordering requirements at the L1 cache level 有权
    在L1高速缓存级别执行存储器引用排序要求的方法和装置

    公开(公告)号:US07523266B2

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

    申请号:US11592836

    申请日:2006-11-03

    IPC分类号: G06F12/00

    摘要: One embodiment of the present invention provides a system that enforces memory reference ordering requirements, such as Total Store Ordering (TSO), at a Level 1 (L1) cache in a multiprocessor. During operation, while executing instructions in a speculative-execution mode, the system receives an invalidation signal for a cache line at the L1 cache wherein the invalidation signal is received from a cache-coherence system within the multiprocessor. In response to the invalidation signal, if the cache line exists in the L1 cache, the system examines a load-mark in the cache line, wherein the load-mark being set indicates that the cache line has been loaded from during speculative execution. If the load-mark is set, the system fails the speculative-execution mode and resumes a normal-execution mode from a checkpoint. By failing the speculative-execution mode, the system ensures that a potential update to the cache line indicated by the invalidation signal will not cause the memory reference ordering requirements to be violated during the speculative-execution mode.

    摘要翻译: 本发明的一个实施例提供了一种在多处理器中的级别1(L1)高速缓存上实施存储器参考排序要求(诸如总存储订购(TSO))的系统。 在操作期间,当以推测执行模式执行指令时,系统在L1高速缓存中接收用于高速缓存线的无效信号,其中从多处理器内的高速缓存相干系统接收到无效信号。 响应于无效信号,如果高速缓存行存在于L1高速缓存中,则系统检查高速缓存行中的加载标记,其中设置的加载标记指示在推测执行期间已经加载了高速缓存行。 如果设置了加载标记,则系统将失败推测执行模式,并从检查点恢复正常执行模式。 通过失败推测执行模式,系统确保由无效信号指示的高速缓存行的潜在更新不会导致在推测执行模式期间违反存储器引用排序要求。

    Fail instruction to support transactional program execution
    9.
    发明授权
    Fail instruction to support transactional program execution 有权
    支持事务性程序执行的失败指令

    公开(公告)号:US07418577B2

    公开(公告)日:2008-08-26

    申请号:US10637169

    申请日:2003-08-08

    IPC分类号: G06F9/00

    摘要: One embodiment of the present invention provides a system that supports executing a fail instruction, which terminates transactional execution of a block of instructions. During operation, the system facilitates transactional execution of a block of instructions within a program, wherein changes made during the transactional execution are not committed to the architectural state of the processor until the transactional execution successfully completes. If a fail instruction is encountered during this transactional execution, the system terminates the transactional execution without committing results of the transactional execution to the architectural state of the processor.

    摘要翻译: 本发明的一个实施例提供一种支持执行失败指令的系统,其终止指令块的事务执行。 在操作期间,系统促进程序内的指令块的事务执行,其中在事务执行期间所做的更改不会被提交到处理器的体系结构状态,直到事务执行成功完成。 如果在此事务执行期间遇到失败指令,则系统终止事务执行,而不将事务执行的结果提交给处理器的体系结构状态。

    Method and apparatus for synchronizing threads on a processor that supports transactional memory
    10.
    发明申请
    Method and apparatus for synchronizing threads on a processor that supports transactional memory 有权
    用于在支持事务性存储器的处理器上同步线程的方法和装置

    公开(公告)号:US20070240158A1

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

    申请号:US11418652

    申请日:2006-05-05

    IPC分类号: G06F9/46

    摘要: One embodiment of the present invention provides a system that synchronizes threads on a multi-threaded processor. The system starts by executing instructions from a multi-threaded program using a first thread and a second thread. When the first thread reaches a predetermined location in the multi-threaded program, the first thread executes a Start-Transactional-Execution (STE) instruction to commence transactional execution, wherein the STE instruction specifies a location to branch to if transactional execution fails. During the subsequent transactional execution, the first thread accesses a mailbox location in memory (which is also accessible by the second thread) and then executes instructions that cause the first thread to wait. When the second thread reaches a second predetermined location in the multi-threaded program, the second thread signals the first thread by accessing the mailbox location, which causes the transactional execution of the first thread to fail, thereby causing the first thread to resume non-transactional execution from the location specified in the STE instruction. In this way, the second thread can signal to the first thread without the first thread having to poll a shared variable.

    摘要翻译: 本发明的一个实施例提供了一种在多线程处理器上同步线程的系统。 系统通过使用第一个线程和第二个线程执行来自多线程程序的指令来启动。 当第一线程到达多线程程序中的预定位置时,第一线程执行开始 - 事务执行(STE)指令以开始事务执行,其中STE指令指定分支到事务执行失败的位置。 在随后的事务执行期间,第一个线程访问存储器中的邮箱位置(也可由第二个线程访问),然后执行使第一个线程等待的指令。 当第二线程到达多线程程序中的第二预定位置时,第二线程通过访问邮箱位置来发信号通知第一线程,这导致第一线程的事务执行失败,从而使第一线程恢复为非线程, 从STE指令中指定的位置进行事务执行。 以这种方式,第二线程可以向第一线程发信号,而第一线程不必轮询共享变量。