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

用于虚拟多线程处理的系统、设备和方法技术方案

技术编号:2846614 阅读:198 留言:0更新日期:2012-04-11 18:40
方法、装置和系统实施例为多个SMT逻辑线程环境上的多个SoEMT软件线程提供支持。睡眠状态机制为每个物理线程维护架构状态的元件的当前值。该当前值对应于当前在该物理线程上运行的活动的虚拟线程。睡眠状态机制还为每个非活动的线程维护架构状态元件的睡眠值。可在十字形配置中维护活动值和非活动值。一发生架构状态元件的读取,简化的多路复用逻辑即在当前值之中进行选择,来为适当的活动线程提供当前值。一发生线程切换,与睡眠状态机制相关联的控制逻辑就将当前线程的活动状态值与新线程的非活动状态值交换。

【技术实现步骤摘要】
【国外来华专利技术】
本专利技术所公开的内容一般涉及信息处理系统,尤其涉及为可在具有多个逻辑处理器的处理器上执行的活动和非活动软件线程维护架构状态值的机制。
技术介绍
为了提高诸如包括微处理器等的信息处理系统的性能,同时采用了硬件和软件技术。在硬件方面,提高微处理器性能的微处理器设计方法已包括了提高的时钟速度、管道化、分支预测、超标量执行、乱序执行、以及高速缓存。许多此类方法导致晶体管总数增长,甚至在一些情况下,导致晶体管总数以超过性能提高速率的速率增长。其它性能提高方案不是寻求通过额外的晶体管来提高性能,而是涉及软件技术。已被用来提高处理器性能的一种软件方法被称为“多线程处理”。在软件多线程处理中,一个指令流可被分成能被并行执行的多个指令流。或者,可并发地执行独立的软件线程。在一种称为时隙多线程处理或时分多路复用(“TMUX”)多线程处理的方法中,单个处理器在固定的一段时间之后在线程之间进行切换。在另一种方法中,一发生诸如长等待时间高速缓存丢失等触发事件,单个处理器即在线程之间进行切换。在称为事件触发切换多线程处理(“SoEMT”)的后一种方法中,在给定时间至多只有一个线程是活动的。多线程处理在硬件中受到越来越多的支持。例如,在一种方法中,诸如芯片多处理器(“CMP”)系统等多处理器系统中的处理器每一个可并发地作用于多个线程中的一个。在称为同时多线程处理(“SMT”)的另一种方法中,使单个物理处理器对操作系统和用户程序表现为多个逻辑处理器。对于SMT,可有多个线程是活动的,并且在单个处理器上并发地执行而无需切换。即,每个逻辑处理器维护一组完整的架构状态,但该物理处理器的许多其它资源,诸如高速缓存、执行单元、分支预测电路控制逻辑和总线是共享的。对于SMT,来自多个软件线程的指令由此可在每个逻辑处理器上并发地执行。附图简述本专利技术可参考以下附图来理解,附图中,相似的元素由相同的标号指示。并不试图使这些附图成为限制性的,而是提供这些附图来说明对为多个SMT逻辑线程环境上所支持的多个SoEMT软件线程维护架构状态值的机制的装置、系统和方法所选的实施例。附图说明图1是包括如本文中所公开的状态机制的多线程处理器的至少一个实施例的框图。图2是提供两个逻辑处理器的SMT处理器的现有技术的M路状态选择多路复用器逻辑的框图。图3是提供两个逻辑处理器并支持四(N)个虚拟软件线程的SMT处理器的N路状态选择多路复用器逻辑的至少一个实施例的框图。图4是示出使用提供两(M)个逻辑处理器并支持四(N)个虚拟软件线程的SMT处理器的简化M路状态选择多路复用器逻辑的一种状态机制的至少一个实施例的框图。图5是示出一种状态机制的至少一个实施例的具体细节的框图。图6是示出一种为多个虚拟软件线程维护架构状态的方法的至少一个实施例的流程图。图7是示出一个示意性线程切换示例的数据值的数据流框图。图8是示出一种能够使用所公开的技术的处理系统的至少一个实施例的框图。详细描述在以下描述中,阐述了诸如处理器类型、多线程处理环境、微架构结构、架构状态元件、以及线程切换方法等许多具体细节,以提供对本专利技术的全面理解。但是,本领域技术人员可以理解,本专利技术无需这些具体细节也可实施。此外,为免不必要地混淆本专利技术,没有详细示出某些公知的结构、电路等。本文中公开了多线程处理方法的一种特别的混合。具体而言,SoEMT和SMT多线程处理方法的组合在本文中被称为“虚拟多线程处理”环境。对于SMT,两个或多个软件线程可在单独的逻辑环境中并发地运行。对于SoEMT,在任何给定时刻,多个软件线程中仅有一个在逻辑环境中是活动的。这两种方法在虚拟多线程处理中被组合。在虚拟多线程处理中,两个或多个逻辑环境中的每一个都支持两个或多个被称为“虚拟线程”的SoEMT软件线程。例如,可有三个虚拟软件线程在支持两个单独逻辑线程环境的SMT处理器上运行。这三个软件线程中的任何一个都可开始运行,然后一旦发生SoEMT触发事件即进入非活动状态。非活动状态在本文中可被称为“睡眠”状态,尽管如本文中所使用的术语“睡眠状态”并不意在成为限制性的。由此,“睡眠状态”旨在一般地包括SoEMT线程的非活动状态。因为TMUX多线程处理定时器的到期可被视为一种类型的SoEMT触发事件,所以就本文中所描述的实施例而言,术语“SoEMT”的使用旨在包括其中一旦TMUX定时器、以及一旦发生诸如长等待时间高速缓存丢失、特定指令类型的执行等其它类型的触发事件时即执行线程切换的多线程处理。当继续进行时,睡眠的软件线程无需在其原来开始执行的同一个逻辑环境中继续进行-它可以在同一个逻辑环境中,或在另一个逻辑环境中继续进行。换言之,虚拟软件线程可随时间推移在逻辑环境之中来回切换。本文中所公开的是一种为多个活动和非活动软件线程维护架构状态值、以支持混合虚拟多线程处理(VMT)环境的机制。图1是示出一种能够执行所公开的技术的处理器104的框图,它以维护相对很低的硬件额外开销、对关键的定时路径具有极小或没有不利影响、以及支持SMT处理器的翻新的方式来为多个VMT软件线程维护架构状态,以支持虚拟多线程处理。处理器104可包括前端120,它预取可能会被执行的指令。对于至少一个实施例,前端120包括取址/解码单元222,该单元包括用于两个或多个物理线程环境中的每一个的逻辑上独立的定序器420A-420M。这些物理线程环境在本文中还可被互换地称为“逻辑处理器”和/或“物理线程”。单个物理取址/解码单元222由此包括多个逻辑上独立的定序器420A-420M,其中每一个对应于M个物理线程中的一个。图1示出处理器104的至少一个实施例包括状态机制130。状态机制130维护一个或多个架构状态元件140的值。为N个虚拟线程中的每一个维护架构状态元件140的一个副本。架构状态元件可以是为处理器104维护架构状态的单元的任何存储元件。因此,状态元件140可以是例如锁存器、寄存器、寄存器阵列等等。例如,状态元件140可以是特定的控制寄存器或一般的寄存器。尽管可实施本文中所公开的状态机制130的实施例来为单个物理线程上的多个(N个)SoEMT软件线程维护和交换活动和非活动状态元件值,但对于至少一个实施例,M≥2。图1还示出,状态机制130还可包括控制逻辑150。控制逻辑150允许相关联虚拟线程的执行期间对架构状态元件140的适当副本的正常写更新。控制逻辑150还执行状态选择功能,以使在执行对状态元件的访问(诸如读)时,适当的线程专用状态元件140的值被提供给处理器。如以下进一步详细讨论的,该选择功能是经由简化的多路复用逻辑来执行的,该逻辑将涉及为这一访问请求选择状态元件适当副本的值的定时最小化。对于至少一个实施例,在活动和非活动状态元件值的二叉模式中维护线程专用的状态元件值。通过仅为M个物理线程中的每一个维护一个当前活动状态元件值,就可由M路多路复用器而不是N路多路复用器来执行M个物理线程上的N个虚拟线程的状态选择多路复用(见以下图2-5的讨论)。除了状态选择功能以外,控制逻辑150还在虚拟线程切换期间执行活动状态元件值与非活动状态元件值的交换。该交换处理在以下进一步详细讨论。由此,状态机制130可包括控制逻辑150,用于维护、交换和选择N个软件线程的状态元件值。不应把图本文档来自技高网...

【技术保护点】
一种装置,包括:M个物理线程,用于支持N个事件触发切换的软件线程,其中N>M;状态机制,用于为状态元件维护M个当前值;所述状态机制还用于为所述状态元件维护N-M个非活动值;以及所述状态机制还包括控制逻辑,用于响应于线程切换指示符,修改所述非活动值中被选择的一个、以及所述当前值中被选择的一个。

【技术特征摘要】
【国外来华专利技术】US 2003-12-19 10/742,7071.一种装置,包括M个物理线程,用于支持N个事件触发切换的软件线程,其中N>M;状态机制,用于为状态元件维护M个当前值;所述状态机制还用于为所述状态元件维护N-M个非活动值;以及所述状态机制还包括控制逻辑,用于响应于线程切换指示符,修改所述非活动值中被选择的一个、以及所述当前值中被选择的一个。2.如权利要求1所述的装置,其特征在于,还包括所述控制逻辑还用于响应于所述线程切换指示符,将所选择的非活动值的值与所选择的当前值交换。3.如权利要求1所述的装置,其特征在于所述控制逻辑还用于响应于访问请求,从所述M个当前值中进行选择,以提供输出值。4.如权利要求1所述的装置,其特征在于所述控制逻辑还用于接收指示所选择的非活动值的虚拟线程标识符。5.如权利要求1所述的装置,其特征在于所述控制逻辑还用于接收指示所选择的当前值的物理线程标识符。6.如权利要求1所述的装置,其特征在于所述状态机制还包括第一组存储结构,用于维护所述M个当前值;所述状态机制还包括第二组存储结构,用于维护所述N-M个非活动值;以及所述第一组存储结构和所述第二组存储结构以十字形配置被相互耦合。7.如权利要求1所述的装置,其特征在于所述控制逻辑还用于响应于写更新指示符,修改所述M个当前值中被选择的一个的值。8.一种处理器,包括M个逻辑处理器,其中M≥1;以及状态机制,用于跟踪N个虚拟线程中的每一个的状态元件值,其中N>M;所述状态机制还包括控制逻辑,用于响应于线程切换指示符来执行状态值交换。9.如权利要求8所述的处理器,其特征在于所述状态机制还用于维护所述状态值中的M个以作为活动状态值。10.如权利要求9所述的处理器,其特征在于所述状态机制还用于维护其余的(N-M)个状态值以作为非活动状态值。11.如权利要求9所述的处理器,其特征在于所述控制逻辑还包括选择逻辑,用于响应于访问操作,选择所述活动状态值中的一个作为输出值。12.如权利要求10所述的处理器,其特征在于所述控制逻辑还包括选择逻辑,用于响应于访问操作,选择所述活动状态值中的一个作为输出值;其中所述选择逻辑还用于排除对所述非活动状态值的考虑。13.如权利要求10所述的处理器,其特征在于所述控制逻辑还用于响应于所述线程切换指示符,将所述状态值中的一个活动状态值与所述状态值...

【专利技术属性】
技术研发人员:N萨姆拉
申请(专利权)人:英特尔公司
类型:发明
国别省市:US[美国]

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

1