Behavioral model based multi-threaded architecture
    6.
    发明授权
    Behavioral model based multi-threaded architecture 有权
    基于行为模型的多线程架构

    公开(公告)号:US08914800B2

    公开(公告)日:2014-12-16

    申请号:US12611919

    申请日:2009-11-03

    摘要: Multiple parallel passive threads of instructions coordinate access to shared resources using “active” and “proactive” semaphores. The active semaphores send messages to execution and/or control circuitry to cause the state of a thread to change. A thread can be placed in an inactive state by a thread scheduler in response to an unresolved dependency, which can be indicated by a semaphore. A thread state variable corresponding to the dependency is used to indicate that the thread is in inactive mode. When the dependency is resolved a message is passed to control circuitry causing the dependency variable to be cleared. In response to the cleared dependency variable the thread is placed in an active state. Execution can proceed on the threads in the active state. A proactive semaphore operates in a similar manner except that the semaphore is configured by the thread dispatcher before or after the thread is dispatched to the execution circuitry for execution.

    摘要翻译: 指令的多个并行被动线程使用“主动”和“主动”信号量协调对共享资源的访问。 主动信号量将消息发送到执行和/或控制电路,以使线程的状态发生变化。 线程调度程序可以响应未解决的依赖关系将线程置于无效状态,这可以由信号量指示。 与依赖关系对应的线程状态变量用于指示线程处于非活动模式。 当依赖关系被解析时,消息被传递给控制电路,导致依赖变量被清除。 响应于清除的依赖变量,线程处于活动状态。 处于活动状态的线程可执行。 主动信号量以类似的方式运行,除了信号量由线程分派器在线程发送到执行电路执行之前或之后配置。

    Sleep state mechanism for virtual multithreading
    9.
    发明授权
    Sleep state mechanism for virtual multithreading 有权
    虚拟多线程的休眠状态机制

    公开(公告)号:US08694976B2

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

    申请号:US10742707

    申请日:2003-12-19

    申请人: Nicholas G. Samra

    发明人: Nicholas G. Samra

    IPC分类号: G06F9/44

    CPC分类号: G06F9/485 G06F9/3851

    摘要: Method, apparatus and system embodiments provide support for multiple SoEMT software threads on multiple SMT logical thread contexts. A sleep state mechanism maintains a current value of an element of architecture state for each physical thread. The current value corresponds to an active virtual thread currently running on the physical thread. The sleep state mechanism also maintains sleep values of the architecture state element for each inactive thread. The active and inactive values may be maintained in a cross-bar configuration. Upon a read of the architecture state element, simplified mux logic selects among the current values to provide the current value for the appropriate active thread. Upon a thread switch, control logic associated with the sleep state mechanism swaps the active state value for the current thread with the inactive state value for the new thread.

    摘要翻译: 方法,装置和系统实施例提供对多个SMT逻辑线程上下文上的多个SoEMT软件线程的支持。 休眠状态机制维护每个物理线程的架构状态元素的当前值。 当前值对应于当前在物理线程上运行的活动虚拟线程。 睡眠状态机制还为每个非活动线程维护体系结构状态元素的睡眠值。 活动和非活动值可以保持在横杆配置中。 在读取体系结构状态元素之后,简化的多路复用逻辑在当前值之间进行选择,以提供适当活动线程的当前值。 在线程切换时,与休眠状态机制相关联的控制逻辑将为当前线程的活动状态值与新线程的非活动状态值进行交换。

    Mixing instructions with different register sizes
    10.
    发明授权
    Mixing instructions with different register sizes 有权
    混合使用不同寄存器大小的指令

    公开(公告)号:US08694758B2

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

    申请号:US11965667

    申请日:2007-12-27

    IPC分类号: G06F9/34

    摘要: When legacy instructions, that can only operate on smaller registers, are mixed with new instructions in a processor with larger registers, special handling and architecture are used to prevent the legacy instructions from causing problems with the data in the upper portion of the registers, i.e., the portion that they cannot directly access. In some embodiments, the upper portion of the registers are saved to temporary storage while the legacy instructions are operating, and restored to the upper portion of the registers when the new instructions are operating. A special instruction may also be used to disable this save/restore operation if the new instruction are not going to use the upper part of the registers.

    摘要翻译: 当只能在较小寄存器上运行的传统指令与具有较大寄存器的处理器中的新指令混合时,使用特殊处理和架构来防止遗留指令在寄存器上部的数据引起问题,即 ,他们不能直接访问的部分。 在一些实施例中,当旧指令正在操作时,寄存器的上部保存到临时存储器中,并且当新指令正在操作时将寄存器的上部部分恢复到寄存器的上部。 如果新指令不会使用寄存器的上半部分,也可以使用特殊指令禁用此保存/恢复操作。