CN1926514A - 从处理器中的并发物理线程的数目中去耦合逻辑线程的数目 - Google Patents

从处理器中的并发物理线程的数目中去耦合逻辑线程的数目 Download PDF

Info

Publication number
CN1926514A
CN1926514A CNA2004800394192A CN200480039419A CN1926514A CN 1926514 A CN1926514 A CN 1926514A CN A2004800394192 A CNA2004800394192 A CN A2004800394192A CN 200480039419 A CN200480039419 A CN 200480039419A CN 1926514 A CN1926514 A CN 1926514A
Authority
CN
China
Prior art keywords
thread
logic
threads
trigger event
state
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CNA2004800394192A
Other languages
English (en)
Other versions
CN1926514B (zh
Inventor
P·哈马伦德
A·法西
M·马登
D·卡米恩
P·米肖
R·欣顿
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of CN1926514A publication Critical patent/CN1926514A/zh
Application granted granted Critical
Publication of CN1926514B publication Critical patent/CN1926514B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3851Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming

Abstract

一种用于管理线程的系统和方法,用于利用多个并发物理线程来支持多个逻辑线程,其中逻辑线程的数目可以大于或小于物理线程的数目。依照一个方法,把多个逻辑线程中的每个保持在等待状态、活动状态、消耗状态和停滞状态之一中。可以使用状态机和硬件定序器来根据触发事件和在逻辑线程中是否已经遇到可中断点来使所述逻辑线程在状态之间转变。在物理线程上调度逻辑线程以满足例如优先级、性能或公平性目标。还可以指定可用于每个逻辑线程的资源以满足这些及其它目标。在一个例子中,单个逻辑线程可以推测地使用一个以上的物理线程,挂起对应当提交的物理线程的选择。

Description

从处理器中的并发物理线程的数目中去耦合逻辑线程的数目
技术领域
本发明实施例总体上涉及计算机。更具体地说,实施例涉及增强具有并发执行线程的计算机体系结构。
背景技术
由于对现今计算机增强功能的需求持续增长,处理器设计者以及制造商面临许多挑战。例如,对因特网和多媒体应用使用的稳定增长已经导致所多个进程或多个执行线程同时要求访问处理器和存储器资源。虽然诸如超线程之类的改进增加了处理器的吞吐量,所述超线程使单个处理器能够同时运行多个线程,但是还存在相当大的改进空间。特别地是,常规方法在于把线程的逻辑组件耦合到所述线程的物理组件。不幸地是,把线程的逻辑组件耦合到所述线程的物理组件可能存在与吞吐量以及推测有关的问题。例如,用于增加吞吐量的一个方法可能是增加并发线程的数目。然而,给定处理器中的物理资源受到与设计以及制造相关的许多成本因素的限制。结果,通过增加线程数目可以增加处理器吞吐量的程度受实际因素的约束。因此需要一种多线程方法,其能够在不要求增加实际线程数目的情况下增加有效的并发线程数目。
此外,在把每个线程的逻辑组件耦合到所述线程的物理组件的常规技术下不能实现推测,所述推测可能会使所述逻辑组件在不止一个线程物理组件上执行。结果,处理器性能的可改进的程度也受到了限制。因此需要一种能够推测性执行的多线程方法。
附图说明
通过参考附图,阅读以下描述及所附权利要求,本发明实施例的各个优点对本领域技术人员将变得更加清楚,其中:
图1是依照本发明一个实施例的状态机的例子的图;
图2是依照本发明一个实施例用于把逻辑线程保持在活动状态中的过程的例子的流程图;
图3是依照本发明一个实施例用于把逻辑线程保持在消耗(drain)状态中的过程的例子的流程图;
图4是依照本发明一个实施例用于把逻辑线程保持在停滞(stall)状态中的过程的例子的流程图;
图5是依照本发明一个实施例用于把逻辑线程保持在等待状态中的过程的例子的流程图;
图6是依照本发明一个实施例的线程管理表的图;
图7是依照本发明一个实施例的吞吐量操作模式的例子的图;
图8是依照本发明候选实施例的推测性操作模式的例子的图;和
图9是依照本发明一个实施例的计算机系统的例子的图。
具体实施方式
用于管理线程的系统和方法利用多个并发物理线程来支持多个逻辑线程,以便在没有与常规方法相关联的制造和设计缺陷的情况下实现更大的效率。图1中的图解10示出了一种技术,所述技术把多个逻辑线程中的每个保持在等待状态12、活动状态14、消耗状态16和停滞状态18之一中。每个逻辑线程保持在活动状态14中直到存在一个或多个触发事件,其中所述触发事件可以涉及许多关系,诸如等待时间、公平性、优先级等。当存在触发事件时,逻辑线程进入消耗状态16,在所述消耗状态16中处理器在所述逻辑线程中寻找可中断点。可中断点被定义为可以保存逻辑线程状态的点。可中断点还取决于所遇到的触发事件类型。一旦遇到可中断点,那么把逻辑线程置于停滞状态18中直到不存在任何触发事件,或者发信号通知具有比原始触发事件更高优先级的另一事件。当存在任何一种情况时,逻辑线程被切换到等待状态12。例如,当触发事件为高速缓存器未命中时,逻辑线程保持在停滞状态18中直到已经从存储器服务所述高速缓存器未命中。逻辑线程保持在等待状态中直到遇到可用的物理线程并且可以把所述逻辑线程切换到活动状态14。因而,当逻辑线程被从活动状态14“驱逐”出去时,其它逻辑线程可以被无缝地切换到所述活动状态14。结果,在逻辑线程和并发物理线程之间获得了唯一的去耦合效果。
现在转向图2,非常详细地示出了用于把逻辑线程保持在活动状态中的一个方法。特别地是,处理块20用于把与逻辑线程相关联的宏指令映射到物理线程的指令指针(instruction pointer NIP)。逻辑线程可以被视为一个宏指令序列,所述宏指令被解码为微操作(或微指令uop)。例如,“调用”宏指令可以被解码为“存储”、“测试”和“跳转”微指令。每个并发物理线程具有一个对应的NIP,用于有效地表示所要处理的宏指令的地址。据此,当给定逻辑线程的宏指令被映射到NIP时,它们可以被取出、解码为微指令并且馈送到其余的处理器流水线。
这些技术同样适用于精简指令集计算机(RISC)体系结构和复杂指令系统计算机(CISC)体系结构。宏指令到微操作序列的转换不是必需的。
块22用于针对一个或多个触发事件来监视处理器。触发事件可以包括但不局限于存储器等待时间事件、睡眠请求和线程优先级事件。例如,存储器等待时间事件可以是高速缓存器未命中,其要求相对较长的等待时间来从存储器中读取数据。在这种情况下,触发事件被从执行流水线传送到线程管理逻辑。作为另一例子,存储器等待时间事件可以是预测的高速缓存器未命中,其可能会要求从存储器分级体系更下游的存储器中取出数据或指令(需要更长的等待时间)。可以利用任何可用的技术来完成预测高速缓存器未命中。例如,一种算法可以当在解码时间中加载微操作比未解决的分支更年轻时向其分配更高的概率,其中所述加载微操作在高速缓存器中未命中。特定的预测技术并非是本论述的中心,并且以上例子仅仅是用于产生触发事件的一种方式。触发事件还可以是这样的事实,只利用弱置信度来预测条件分支——在等待状态中存在可用的逻辑线程的情况下,执行这些逻辑线程可能比在推测性模式中执行当前逻辑线程更高效。预测置信度的强度还可以取决于当前逻辑线程的优先级。
另一类型的触发事件是睡眠请求,例如当执行HALT或MONITOR/MWAIT指令时,其可能命令线程管理体系结构中止处理逻辑线程直到遇到对特定地址的存储或直到接收了“复活”信号(例如外部中断)。触发事件还可以是来自具有比所述活动逻辑线程更高优先级的另一逻辑线程的中断命令。这种高优先级逻辑线程的例子可以是屏幕更新线程,如果不能获得对物理线程的访问,那么所述屏幕更新线程可能会呈现所不想要的“闪烁”显示。此外,线程优先级事件可能依照公平性规则出现,所述公平性规则允许由逻辑线程对并发物理线程平均或加权地访问。
在任何情况下,如果块24确定存在一个或多个触发事件,那么在块26可以使映射停止并且在块28中把逻辑线程切换到消耗状态。块30用于把逻辑线程保持在活动状态中直到存在一个或多个触发事件。
图3非常详细地示出了用于把逻辑线程保持在消耗状态中的一个方法。在块32针对可中断点来监视逻辑线程。如已经所论述的那样,当处理逻辑线程时,典型情况下宏指令被解码为一个或多个微指令。微指令可以根据情况而被标记为宏指令的开始(BOM)或宏指令的结束(EOM)。在这种情况下,可中断点可以对应于被标记为EOM的微指令。这种方法可能会消除与互相依赖相关联的某些困难并且实际上还可能会进一步增强效率。可中断点还可以仅仅对应于从所讨论的逻辑线程中最后微指令的离开。如果在块34确定已经遇到可中断点,那么块36用于把逻辑线程切换到停滞状态。块38用于把逻辑线程保持在消耗状态中直到遇到可中断点。
现在转向图4,非常详细地示出了用于把逻辑线程保持在停滞状态中的一个方法。特别地是,块40用于针对一个或多个触发事件来监视处理器。如已经所讨论的那样,触发事件可以包括但不局限于等待时间事件、睡眠请求和线程优先级事件等。如果在块42确定不存在任何触发事件,那么块44用于把逻辑线程切换到等待状态。块46用于把逻辑线程保持在停滞状态中直到不存在任何触发事件。例如,逻辑线程被保持在停滞状态中直到已经服务高速缓存器未命中触发事件并且存在数据。应当注意,使逻辑线程切换到消耗状态的触发事件可以相同于或不同于把逻辑线程带出停滞状态的触发事件。
应当注意,使逻辑线程切换到消耗状态的触发事件可以相同于或不同于把逻辑线程带出停滞状态的触发事件。例如,逻辑线程可以通过执行HALT指令被带入停滞状态中,并且可以保持在所述停滞状态中直到接收了外部中断。作为另一例子,逻辑线程可以通过执行未命中高速缓存器的加载指令而被带入停滞状态中,并且可以通过接收外部中断而被带出所述停滞状态,这是因为服务外部中断常常比等待推测性高速缓存器未命中完成更重要。
图5非常详细地示出了用于把逻辑线程保持在等待状态中的一个方法。特别地是,在块48针对可用物理线程来监视多个并发物理线程。如果在块50确定已经遇到可用的物理线程,那么块52用于把所述逻辑线程切换到活动状态。块54用于把逻辑线程保持在等待状态中直到遇到可用的物理线程。因而,在等待状态中的所有逻辑线程都已准备好在物理线程上执行。当物理线程变得可用时,逻辑线程被选择并且移到活动状态。物理线程可以依照上述例子而变得可用。逻辑线程的选择可以基于但不局限于在逻辑线程之间的优先级和/或公平性要求。
现在转向图6,示出了线程管理表56。线程管理表56存储逻辑线程信息,所述逻辑线程信息可以为多个逻辑线程中每个识别状态和一个或多个触发事件。例如,所图示的T0处于活动状态中并且可以触发具体的存储器请求或外部存储器以便监视地址AF09。另一方面,线程T1处于停滞状态中并且触发外部存储器以便监视地址AF09和“MWAIT”命令。还可以在线程管理表56中存储附加信息,诸如当激活时所要使用的IP和用于支持逻辑线程所需要的硬件资源简档。在这点上应当注意,不必在所有逻辑线程上平均地分配资源。所述资源包括但不局限于在处理器中用来支持快速推测性执行的临时寄存器,典型情况下更多资源意味着更快速地执行。实际上,系统中的任何平台资源可以被包括在硬件资源简档中并且依照这种方式来控制。例如,可以向更多要求的逻辑线程分配比向较少要求的逻辑线程更多资源。资源分配还可以包括但不局限于使用优先级、性能反馈或公平性输入。还应当注意,线程管理表56的组件可以按照实际实现方式关系的要求来在处理器的不同部分上分布,并且不必位于中心。
图7示出了其中多个逻辑线程58比多个并发物理线程60在数目上要大的例子。在这种情况下,线程管理体系结构依照“吞吐量模式”操作,这是因为并发物理线程60可以通过连续地激活已经准备好处理的逻辑线程来保持尽可能地忙碌。另一方面在图8中,多个逻辑线程62比多个并发物理线程64在数目上要小以便获得操作的“推测性模式”。可以通过当遇到程序调用或其它间接程序结构时向相同的逻辑线程分配附加的并发物理线程来实现推测。例如在程序调用的情况下,可以推断适当编写的、具有调用指令的程序最后会返回到调用点。据此,可能希望在所预计的返回点开始附加的并发物理线程,并且当出现实际返回时相对于所述实际返回来测试所推测的返回。如果测试成功,那么已经由附加并发物理线程所处理的微指令有效。还应当注意,线程管理体系结构可以容易地被配置为在“混合”操作模式中运行,其中上述吞吐量和推测模式并发操作。
现在转向图9,示出了计算机系统66。计算机系统66具有用于存储宏指令的系统存储器68。系统存储器可以包括随机存取存储器(RAM)、只读存储器(ROM)、闪速存储器等。系统总线70被耦合到系统存储器68和处理器72以获取宏指令。处理器72具有线程管理体系结构74,所述线程管理体系结构74具有状态机76和硬件定序器78。状态机76可以依照与在图10中所图示的状态机类似的方式操作(图1)。状态机76通过把多个逻辑线程中的每个保持在等待状态、活动状态、消耗状态和停滞状态之一中来利用多个并发物理线程支持对应于宏指令的多个逻辑线程。硬件定序器78针对对应于逻辑线程的可用物理线程来监视多个并发物理线程。状态机76把逻辑线程保持在等待状态中直到遇到可用的物理线程。应当注意,尽管在所图示的例子中,把对应于多个逻辑线程的宏指令存储在系统存储器中,还可以从诸如跟踪高速缓存器、指令高速缓存器等“芯片内”存储器中获取指令及其相应的微指令。
还应当注意,逻辑线程可能处于的精确状态数目可以根据环境而改变。例如,为了使实际实现便于进行,消耗状态可以被拆分成许多状态,其中每个子状态表示“消耗”操作的一部分。
那些本领域技术人员根据上述描述可以理解,可以依照各种形式来实现本发明的广阔教导。因此,虽然已经结合特定的例子描述了本发明,然而本发明的真正范围不应当被这样限制,这是因为当学习附图、说明书和随后的权利要求之后其它修改对技术人员来说是显而易见的。

Claims (36)

1.一种用于管理线程的方法,包括:
利用多个并发物理线程来支持多个逻辑线程。
2.如权利要求1所述的方法,还包括把多个逻辑线程中的每个保持在等待状态、活动状态、消耗状态和停滞状态之一中。
3.如权利要求2所述的方法,其中第一逻辑线程被保持在所述活动状态中,所述方法还包括:
把与所述第一逻辑线程相关联的宏指令映射到物理线程的下一指令指针;并且
针对触发事件来监视处理器;
把所述第一逻辑线程保持在所述活动状态中直到存在触发事件。
4.如权利要求3所述的方法,还包括:
如果存在触发事件,那么使映射停止;并且
把所述第一逻辑线程切换到所述消耗状态。
5.如权利要求3所述的方法,其中所述触发事件包括存储器等待时间事件、睡眠请求和线程优先级事件中的至少一个。
6.如权利要求2所述的方法,其中第一逻辑线程被保持在所述消耗状态中,所述方法还包括:
针对可中断点来监视所述第一逻辑线程;并且
把所述第一逻辑线程保持在所述消耗状态中直到遇到可中断点。
7.如权利要求6所述的方法,还包括如果遇到可中断点,那么把所述第一逻辑线程切换到所述停滞状态。
8.如权利要求6所述的方法,其中可中断点对应于所述第一逻辑线程中的宏指令的结束或与所述第一逻辑线程相关联的最后微操作的退出。
9.如权利要求2所述的方法,其中第一逻辑线程被保持在所述停滞状态中,所述方法还包括:
针对触发事件来监视处理器;并且
把所述第一逻辑线程保持在所述停滞状态中直到不存在触发事件。
10.如权利要求9所述的方法,还包括如果不存在触发事件,那么把所述第一逻辑线程切换到所述等待状态。
11.如权利要求9所述的方法,还包括如果发信号通知具有比所述触发事件更高优先级的另一事件,那么把所述第一逻辑线程切换到所述等待状态。
12.如权利要求9所述的方法,其中所述触发事件包括存储器等待时间事件、睡眠请求和线程优先级事件中的至少一个。
13.如权利要求2所述的方法,其中第一逻辑线程被保持在所述等待状态中,所述方法还包括:
针对可用物理线程来监视多个并发物理线程;并且
把所述第一逻辑线程保持在等待状态中直到遇到可用的物理线程。
14.如权利要求13所述的方法,还包括如果遇到可用的物理线程,那么把所述第一逻辑线程切换到所述活动状态。
15.如权利要求1所述的方法,还包括把线程信息存储在线程管理表中,所述线程信息用于为多个逻辑线程中的每个识别状态、一个或多个触发事件和线性指令指针。
16.如权利要求15所述的方法,其中所述线程信息还包括用于多个逻辑线程中的每个的资源要求简档。
17.如权利要求1所述的方法,其中所述多个逻辑线程比多个并发物理线程在数目上要大。
18.如权利要求1所述的方法,其中所述多个逻辑线程比多个并发物理线程在数目上要小。
19.一种用于利用多个并发物理线程来支持多个逻辑线程的方法,包括:
把与第一逻辑线程相关联的宏指令映射到并发物理线程的下一指令指针;
针对第一次的触发事件来监视处理器;
把所述第一逻辑线程保持在活动状态中直到存在触发事件;
如果存在触发事件,那么使映射停止并且把所述第一逻辑线程切换到消耗状态;
针对可中断点来监视所述第一逻辑线程;
把所述第一逻辑线程保持在所述消耗状态中直到遇到可中断点;
如果遇到可中断点,那么把所述第一逻辑线程切换到停滞状态;
针对第二次的触发事件来监视处理器;
把所述第一逻辑线程保持在所述停滞状态中直到不存在触发事件;
如果不存在触发事件,那么把所述第一逻辑线程切换到等待状态;
针对可用物理线程来监视多个并发物理线程;
把所述第一逻辑线程保持在等待状态中直到遇到可用的物理线程;并且
如果遇到可用的物理线程,那么把所述第一逻辑线程切换到所述活动状态。
20.如权利要求19所述的方法,其中所述触发事件包括存储器等待时间事件、睡眠请求和线程优先级事件中的至少一个。
21.如权利要求19所述的方法,其中可中断点对应于所述第一逻辑线程中的宏指令结束或与第一逻辑线程相关联的最终微操作的退出。
22.如权利要求19所述的方法,还包括把线程信息存储在线程管理表中,所述线程信息用于为多个逻辑线程中的每个识别状态、一个或多个触发事件和线性指令指针。
23.一种线程管理体系结构,包括:
状态机,用于通过把多个逻辑线程中的每个保持在等待状态、活动状态、消耗状态和停滞状态之一中来利用多个并发物理线程支持多个逻辑线程。
24.如权利要求23所述的线程管理体系结构,其中所述状态机将把与第一逻辑线程相关联的宏指令映射到物理线程的下一指令指针,针对触发事件来监视处理器并且把所述第一逻辑线程保持在所述活动状态中直到存在触发事件。
25.如权利要求23所述的线程管理体系结构,其中所述状态机将针对可中断点来监视第一逻辑线程,并且把所述第一逻辑线程保持在所述消耗状态中直到遇到可中断点。
26.如权利要求23所述的线程管理体系结构,其中所述状态机将针对触发事件来监视处理器,并且把第一逻辑线程保持在所述停滞状态中直到不存在触发事件。
27.如权利要求23所述的线程管理体系结构,还包括硬件定序器,所述硬件定序器用于针对可用物理线程来监视多个并发物理线程,所述状态机用于把所述第一逻辑线程保持在所述等待状态中直到遇到可用的物理线程。
28.一种计算机系统,包括:
随机访问存储器,用于存储宏指令;
系统总线,被耦合到所述存储器,和
耦合到所述系统总线的处理器,用于获取所述宏指令,所述处理器包括具有状态机的线程管理体系结构,所述状态机通过把多个逻辑线程中的每个保持在等待状态、活动状态、消耗状态和停滞状态之一中来利用多个并发物理线程支持对应于所述宏指令的多个逻辑线程。
29.如权利要求28所述的计算机系统,其中所述状态机将把与第一逻辑线程相关联的宏指令映射到物理线程的下一指令指针,针对触发事件来监视所述处理器,并且把所述第一逻辑线程保持在所述活动状态中直到存在触发事件。
30.如权利要求28所述的计算机系统,其中所述状态机将针对可中断点来监视第一逻辑线程,并且把所述第一逻辑线程保持在所述消耗状态中直到遇到可中断点。
31.如权利要求28所述的计算机系统,其中所述状态机将针对触发事件来监视所述处理器并且把第一逻辑线程保持在所述停滞状态中直到不存在触发事件。
32.如权利要求28所述的计算机系统,其中所述线程管理体系结构还包括硬件定序器,所述硬件定序器用于针对对应于第一逻辑线程的可用物理线程来监视多个并发物理线程,所述状态机用于把所述第一逻辑线程保持在所述等待状态中直到遇到可用的物理线程。
33.如权利要求28所述的计算机系统,还包括线程管理表,用于存储线程信息,所述线程信息用于为多个逻辑线程中的每个识别状态、一个或多个触发事件和线性指令指针。
34.如权利要求33所述的计算机系统,其中所述线程信息还将为多个逻辑线程中的每个识别资源要求简档。
35.如权利要求28所述的计算机系统,其中所述多个逻辑线程将比多个并发物理线程在数目上要大。
36.如权利要求28所述的计算机系统,其中所述多个逻辑线程将比多个并发物理线程在数目上要小。
CN2004800394192A 2003-12-29 2004-12-20 从处理器中的并发物理线程的数目中去耦合逻辑线程的数目 Expired - Fee Related CN1926514B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10/745,527 US7797683B2 (en) 2003-12-29 2003-12-29 Decoupling the number of logical threads from the number of simultaneous physical threads in a processor
US10/745,527 2003-12-29
PCT/US2004/043036 WO2006057647A2 (en) 2003-12-29 2004-12-20 Decoupling the number of logical threads from the number of simultaneous physical threads in a processor

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN2011101002621A Division CN102193828B (zh) 2003-12-29 2004-12-20 从处理器中的并发物理线程的数目中去耦合逻辑线程的数目

Publications (2)

Publication Number Publication Date
CN1926514A true CN1926514A (zh) 2007-03-07
CN1926514B CN1926514B (zh) 2011-06-08

Family

ID=34886484

Family Applications (2)

Application Number Title Priority Date Filing Date
CN2011101002621A Expired - Fee Related CN102193828B (zh) 2003-12-29 2004-12-20 从处理器中的并发物理线程的数目中去耦合逻辑线程的数目
CN2004800394192A Expired - Fee Related CN1926514B (zh) 2003-12-29 2004-12-20 从处理器中的并发物理线程的数目中去耦合逻辑线程的数目

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN2011101002621A Expired - Fee Related CN102193828B (zh) 2003-12-29 2004-12-20 从处理器中的并发物理线程的数目中去耦合逻辑线程的数目

Country Status (6)

Country Link
US (1) US7797683B2 (zh)
JP (1) JP4599365B2 (zh)
KR (1) KR100856144B1 (zh)
CN (2) CN102193828B (zh)
DE (2) DE112004002505T5 (zh)
WO (1) WO2006057647A2 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103052930A (zh) * 2011-07-27 2013-04-17 赛普拉斯半导体公司 用于触摸感测阵列的并行扫描和数据处理的方法及装置
CN106325512A (zh) * 2016-08-24 2017-01-11 韩龙潇 一种使用状态下监测周围环境的终端

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7765547B2 (en) * 2004-11-24 2010-07-27 Maxim Integrated Products, Inc. Hardware multithreading systems with state registers having thread profiling data
US7793291B2 (en) * 2004-12-22 2010-09-07 International Business Machines Corporation Thermal management of a multi-processor computer system
US9146745B2 (en) * 2006-06-29 2015-09-29 Intel Corporation Method and apparatus for partitioned pipelined execution of multiple execution threads
US7454596B2 (en) * 2006-06-29 2008-11-18 Intel Corporation Method and apparatus for partitioned pipelined fetching of multiple execution threads
US7698540B2 (en) * 2006-10-31 2010-04-13 Hewlett-Packard Development Company, L.P. Dynamic hardware multithreading and partitioned hardware multithreading
US9032254B2 (en) 2008-10-29 2015-05-12 Aternity Information Systems Ltd. Real time monitoring of computer for determining speed and energy consumption of various processes
US8307246B2 (en) * 2008-10-29 2012-11-06 Aternity Information Systems Ltd. Real time monitoring of computer for determining speed of various processes
US9542236B2 (en) 2011-12-29 2017-01-10 Oracle International Corporation Efficiency sequencer for multiple concurrently-executing threads of execution
US9715411B2 (en) 2014-02-05 2017-07-25 International Business Machines Corporation Techniques for mapping logical threads to physical threads in a simultaneous multithreading data processing system
US9213569B2 (en) * 2014-03-27 2015-12-15 International Business Machines Corporation Exiting multiple threads in a computer
US9898351B2 (en) * 2015-12-24 2018-02-20 Intel Corporation Method and apparatus for user-level thread synchronization with a monitor and MWAIT architecture

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2078315A1 (en) * 1991-09-20 1993-03-21 Christopher L. Reeve Parallel processing apparatus and method for utilizing tiling
US5442797A (en) * 1991-12-04 1995-08-15 Casavant; Thomas L. Latency tolerant risc-based multiple processor with event driven locality managers resulting from variable tagging
JPH05181670A (ja) * 1992-01-06 1993-07-23 Fujitsu Ltd マイクロプログラム方式計算機
JP2991598B2 (ja) * 1993-09-09 1999-12-20 富士通株式会社 Lsi設計装置及びlsi設計方法
JP3231571B2 (ja) 1994-12-20 2001-11-26 日本電気株式会社 順序付きマルチスレッド実行方法とその実行装置
US5913925A (en) * 1996-12-16 1999-06-22 International Business Machines Corporation Method and system for constructing a program including out-of-order threads and processor and method for executing threads out-of-order
US6192514B1 (en) * 1997-02-19 2001-02-20 Unisys Corporation Multicomputer system
US5999734A (en) * 1997-10-21 1999-12-07 Ftl Systems, Inc. Compiler-oriented apparatus for parallel compilation, simulation and execution of computer programs and hardware models
US7085670B2 (en) * 1998-02-17 2006-08-01 National Instruments Corporation Reconfigurable measurement system utilizing a programmable hardware element and fixed hardware resources
US6557064B1 (en) * 1999-02-19 2003-04-29 Hewlett-Packard Development Company Set up time adjust
US6496925B1 (en) * 1999-12-09 2002-12-17 Intel Corporation Method and apparatus for processing an event occurrence within a multithreaded processor
US6708269B1 (en) * 1999-12-30 2004-03-16 Intel Corporation Method and apparatus for multi-mode fencing in a microprocessor system
US7103586B2 (en) * 2001-03-16 2006-09-05 Gravic, Inc. Collision avoidance in database replication systems
US6964049B2 (en) * 2001-07-18 2005-11-08 Smartmatic Corporation Smart internetworking operating system for low computational power microprocessors
US7127561B2 (en) * 2001-12-31 2006-10-24 Intel Corporation Coherency techniques for suspending execution of a thread until a specified memory access occurs
US7487504B2 (en) * 2002-02-06 2009-02-03 International Business Machines Corporation Thread dispatch for multiprocessor computer systems
US7155708B2 (en) * 2002-10-31 2006-12-26 Src Computers, Inc. Debugging and performance profiling using control-dataflow graph representations with reconfigurable hardware emulation

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103052930A (zh) * 2011-07-27 2013-04-17 赛普拉斯半导体公司 用于触摸感测阵列的并行扫描和数据处理的方法及装置
CN106325512A (zh) * 2016-08-24 2017-01-11 韩龙潇 一种使用状态下监测周围环境的终端

Also Published As

Publication number Publication date
US20050193278A1 (en) 2005-09-01
CN102193828B (zh) 2013-06-12
KR100856144B1 (ko) 2008-09-03
CN1926514B (zh) 2011-06-08
WO2006057647A2 (en) 2006-06-01
DE112004003142A5 (de) 2013-03-21
KR20060111626A (ko) 2006-10-27
JP4599365B2 (ja) 2010-12-15
CN102193828A (zh) 2011-09-21
DE112004002505T5 (de) 2006-11-23
JP2007517322A (ja) 2007-06-28
US7797683B2 (en) 2010-09-14
WO2006057647A3 (en) 2006-07-20

Similar Documents

Publication Publication Date Title
US7155600B2 (en) Method and logical apparatus for switching between single-threaded and multi-threaded execution states in a simultaneous multi-threaded (SMT) processor
US7290261B2 (en) Method and logical apparatus for rename register reallocation in a simultaneous multi-threaded (SMT) processor
US20060136915A1 (en) Method and apparatus for scheduling multiple threads for execution in a shared microprocessor pipeline
US20040216101A1 (en) Method and logical apparatus for managing resource redistribution in a simultaneous multi-threaded (SMT) processor
US8397236B2 (en) Credit based performance managment of computer systems
KR100936601B1 (ko) 멀티 프로세서 시스템
CN1926514B (zh) 从处理器中的并发物理线程的数目中去耦合逻辑线程的数目
JP2001350638A (ja) 多重スレッド使用方法、多重スレッド処理システム、スレッド実行コントローラおよびバッファ使用方法
GB2421325A (en) Setting a thread to a wait state using a wait instruction
US20050132138A1 (en) Memory cache bank prediction
IL135459A (en) Thread switch control in a multi threaded processor system
CN1959644A (zh) 在数据处理系统中仲裁线程访问共享资源的系统和方法
CN101395586A (zh) 基于任务的执行阶段动态调整高速缓存分区大小的方法和设备
KR101100144B1 (ko) 정보처리장치
US6631446B1 (en) Self-tuning buffer management
US8869172B2 (en) Method and system method and system for exception-less system calls for event driven programs
JP3981238B2 (ja) 情報処理装置
US20200097297A1 (en) System and method for dynamic determination of a number of parallel threads for a request
JPWO2003040948A1 (ja) コンピュータ及び制御方法
CN100377076C (zh) 一种应用于同时多线程处理器的取指控制装置及其方法
US11144353B2 (en) Soft watermarking in thread shared resources implemented through thread mediation
JPH10340197A (ja) キャッシング制御方法及びマイクロコンピュータ
US20040128488A1 (en) Strand switching algorithm to avoid strand starvation
Wang et al. LWSDP: Locality-Aware Warp Scheduling and Dynamic Data Prefetching Co-design in the Per-SM Private Cache of GPGPUs
Suijkerbuijk et al. Performance Evaluation of Interleaved Multithreading in a VLIW Architecture

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20110608

Termination date: 20131220