当前位置: 首页 > 专利查询>英特尔公司专利>正文

用于在一个多线程处理器内进行线程切换的方法和装置制造方法及图纸

技术编号:2861441 阅读:150 留言:0更新日期:2012-04-11 18:40
一种用于在一个多线程处理器内部执行一个线程切换操作的方法。检测用于第一个线程的第一个预定量的指令信息从一个指令流缓存器的发送。响应于对第一个预定量指令信息发送的检测,就指令流缓存器的输出执行一个线程切换操作。因此开始了从指令流缓存器发送用于第二个线程的指令信息。依据用于已经处理(或发送用于处理)的一个特定线程的指令数据的数量,而不是依据一个任意定时机制,在线程之间分配对处理器资源的利用。(*该技术在2020年保护过期,可自由使用*)

【技术实现步骤摘要】

本专利技术通常涉及多线程处理器领域,尤其是涉及一种用于在一个多线程处理器内执行上下文(或线程)切换的方法及其装置。
技术介绍
多线程处理器设计近来已经被认为是一种用于提高处理器性能的日益有吸引力的选择。此外,在一个处理器内的多线程处理为更有效地利用各种处理器资源提供了可能性,尤其是为更加有效地利用在一个处理器内的执行逻辑提供了可能性。特别地,通过将多个线程传送到一个处理器的执行逻辑,原先由于在一个特定线程处理过程中的停止或其它延迟而造成空闲的时钟周期可以被用来服务另外一个线程。在一个特定线程处理过程中的一个停止可以由一个处理器流水线内的许多事件引起。例如,用于一条包含在一个线程内的指令的一个高速缓存故障或一个分支错误预测(即一个长等待时间的操作),通常会导致有关线程处理过程的停止。长等待时间的操作在执行逻辑效率上的消极影响由于近来执行逻辑吞吐量的增加而有所加剧,其中该执行逻辑吞吐量在存储器访问和检索率方面有超前的增长。鉴于由许多普及的操作系统、诸如Windows NT和UNIX操作系统提供给这种多线程应用的支持,多线程的计算机应用也变得日益普及。多线程计算机应用在多媒体环境中尤其有效。依据在有关处理器内使用的线程交错或切换方案,多线程处理器可以被广泛地分为两类(即精细或粗糙设计)。精细的多线程设计在一个处理器内支持多个有效线程,并且通常在一个周期接一个周期的基础上交错两个不同的线程。粗糙的多线程设计通常在发生某些长等待时间的事件、诸如一个高速缓存故障时交错不同线程的指令。在以下文献中讨论了一种粗糙的多线程设计R.;Johnson,R.;et al.;“Evaluation of Multithreaded Uniprocessors for CommercialApplication Environments″,The 23rd Annual InternationalSymposium on Computer Architecture(第23届计算机体系结构国际年会论文集),pp.203-212,May 1996.而在以下文献中进一步讨论了精细和粗糙设计之间的区别Laudon,j;Gupta,A,“Architecturaland Implementation Tradeoffs in the Design of Multiple-Context Processors”,Multithreaded Computer Architectures(多线程结构)A Summary of the State of the Art(技术状态概述),edited by R.A.Iannuci dt al.,(由Lannuci等编辑),pp.167-200,Kluwer Academic Publishers,Norwell,Massachusetts,1994.Laudon进一步提出了一个交错方案,它将一个精细设计一个周期接一个周期的切换和一个粗糙设计的完全流水线联锁(或锁定方案)结合起来。为此,Laudon提出了一条“补偿”指令,使一个特定线程(或上下文)在一个特定数目的周期内无法使用。这样一条“补偿”指令可以依据预定事件、诸如一个高速缓存故障的发生来发布。这样,Laudon通过简单地使这些线程中的一个无法使用而避免了必须执行一个实际的线程切换。
技术实现思路
依据本专利技术,提供了一种用于在一个多线程处理器内执行一个线程切换操作的方法,该方法包括在一个多线程处理器内检测用于第一个线程的第一个预定量的指令信息预定量的指令信息从一个指令信息源的发送;确定用于第二个线程的第二个预定量的指令信息预定量的指令信息是否可用于从该指令信息源的发送;以及对用于第一个线程的第一个预定量的指令信息发送的检测做出响应,如果第二个线程的第二预定量的指令信息可用于从该指令信息源的发送,则从该指令信息源开始发送用于第二个线程的指令信息。本专利技术还提供了用于在一个多线程处理器内执行一个线程切换操作的设备,该设备包括检测逻辑,用于检测从该多线程处理器的一个指令信息源发送用于第一个线程的第一个预定量的指令信息,以及检测用于第二个线程的第二个预定量的指令信息可用于从该指令信息源的发送;以及选择逻辑,连接到该检测逻辑,对该检测逻辑对第一个预定量的指令信息的检测作出响应,并且当该检测逻辑检测到用于第二个线程的第二个预定量的指令信息可用于从该指令信息源发送时,由该选择逻辑指示该指令信息源开始发送用于第二个线程的指令信息, 其中该检测逻辑是用来检测用于第二个线程的第二个预定量的指令信息是否可用于从该指令信息源的发送,和如果第二个线程的第二预定量的指令信息可用于从该指令信息源的发送,则该选择逻辑从该指令信息源开始发送用于第二个线程的指令信息。本专利技术还提供了一种多线程处理器,包括一个处理器流水线,包括指令信息源;一个检测器,用于检测从该多线程处理器的一个指令信息源发送用于第一个线程的第一个预定量的指令信息,以及检测用于第二个线程的第二个预定量的指令信息可用于从该指令信息源的发送;以及一个选择器,连接到该检测器,对该检测器对第一个预定量的指令信息的检测作出响应,并且当该检测器检测到用于第二个线程的第二个预定量的指令信息可用于从该指令信息源发送时,由该选择器指示该指令信息源开始发送用于第二个线程的指令信息,其中检测器检测用于第二个线程的第二个预定量的指令信息是否可用于从指令信息源的发送,如果第二个线程的第二预定量的指令信息可用于从该指令信息源的发送,则选择器从该指令信息源开始发送用于第二个线程的指令信息。通过附图和随后的详细说明,本专利技术的其它特征将是显而易见的。附图说明本专利技术通过附图进行了举例说明,但是不局限于此,且附图中相似的标记表示相似的单元,其中图1的框图说明了在其内部可以实现本专利技术的一个处理器的一个示范流水线;图2的框图以一个通用多线程微处理器的形式说明了在其内部可以实现本专利技术的一个处理器的一个示范实施例;图3的框图为一个包含在如图2所示的通用微处理器内部的微指令翻译机的示例的体系结构提供了更多细节;图4的框图说明了一个示范性多线程微处理器的选定部件,而且特别地描述了由于为容纳多个线程而被逻辑分区的各种提供缓存能力的功能单元;图5的框图说明了关于依据本专利技术一个实施例的一个示范性指令流缓存器的结构和体系结构的更多细节;图6的框图说明了依据本专利技术一个示范实施例的线程切换控制逻辑的逻辑元件;图7的流程图说明了依据本专利技术一个示范实施例、用于当在一个多线程处理器内的多个线程空闲时确定一个开始线程的方法;图8的流程图说明了依据本专利技术示范实施例、用于当从一个指令源发送当前线程的分支指令时在一个多线程处理器内部执行线程切换操作的方法;图9的流程图说明了依据本专利技术一个示范实施例、用于当发生一个长等待时间的停止时在一个多线程处理器内执行线程切换操作的方法;图10的流程图说明了依据本专利技术一个示范实施例、用于当发生一个内部流水线清除时在一个多线程处理器内执行线程切换操作的方法;图11的流程图说明了依据本专利技术示范实施例、用于当出现关于一个特定线程的“无数据流”状态时在一个多线程处理器内执行线程切换操作的方法;图12的流程图说明了依据本专利技术一个示范实施例、用于当从一个指令本文档来自技高网
...

【技术保护点】
一种方法,包括:    在一个多线程处理器内检测第一线程的一个预定量指令信息从一个指令信息源的发送;    检测将被从所述指令信息源发送的所述第一线程的指令信息内的分支指令;以及    对第一线程的预定量的指令信息发送的检测做出响应,并对所述分支指令的检测做出响应,从所述指令信息源开始发送第二线程的指令信息。

【技术特征摘要】
US 1999-4-29 09/3026331.一种方法,包括在一个多线程处理器内检测第一线程的一个预定量指令信息从一个指令信息源的发送;检测将被从所述指令信息源发送的所述第一线程的指令信息内的分支指令;以及对第一线程的预定量的指令信息发送的检测做出响应,并对所述分支指令的检测做出响应,从所述指令信息源开始发送第二线程的指令信息。2.如权利要求1所述的方法,其中对第一线程的预定量指令信息的发送的检测包括保持对从所述指令信息资源发送的、第一线程的指令信息的非连续数量的计数,以及确定何时所述指令信息的非连续数量计数大于第一预定阈值。3.如权利要求2所述的方法,其中所述检测包括在一个预定阈值和一个计数器的内容之间执行一个比较操作,其中所述计数器保持从指令信息源发送的第一线程的非连续数量指令信息的计数。4.如权利要求1所述的方法,其中指令信息源被进行分区为第一分区,以便提供第一线程的指令信息,和第二分区,以提供第二线程的指令信息,以及其中开始发送第二线程的指令信息包括操作线程选择逻辑,以便选择从第二分区发送的指令信息。5.如权利要求1所述的方法,包括在检测所述分支指令之前检测第一线程的另一个预定量指令信息的发送,对另一个预定量的检测包括对来自所述指令信息资源的、第一线程的指令信息的非连续数量的发送进行计数,以及确定何时所述指令信息的非连续数量计数大于第四预定阈值。6.如权利要求1所述的方法,其中所述指令信息源包括一个指令流缓冲器。7.如权利要求1所述的方法,其中所述指令信息包括宏指令信息,和所述指令信息是从所述指令信息源发送到一个指令解码器。8.如权利要求7所述的方法,其中所述指令解码器解码从指令信息源发送的指令信息,而不执行在第一线程的指令信息和第二线程的指令信息之间的任何识别。9.一种设备,包括检测逻辑,检测从在多线程处理器中的一个指令信息源发送的第一线程的一个预定量的指令信息的排序,并且检测将被从所述指令信息源发送的所述第一线程的指令信息内的分支指令;以及选择逻辑,与所述检测逻辑相连,对所述指令信息源发送的第一线程的预定量的指令信息的排序的检测做出响应,开始对从所述指令信息源发送的第二线程的指令信息排...

【专利技术属性】
技术研发人员:S卡拉法蒂斯AB凯克RD菲施
申请(专利权)人:英特尔公司
类型:发明
国别省市:US[美国]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1