多线程计算机系统中的线程上下文恢复技术方案

技术编号:14026553 阅读:112 留言:0更新日期:2016-11-19 04:01
一种多线程计算机系统包括配置,所述配置具有能在单线程(ST)模式与多线程(MT)模式之间配置的核心。所述ST模式处理主要线程,且所述MT模式处理所述主要线程及所述核心的共享资源上的一个或多个次要线程。多线程工具被配置为控制对所述配置的利用以执行一种方法,所述方法包括基于自MT模式至ST模式的切换来停用一个或多个次要线程。使次要线程的线程上下文不可用于程序。基于指示MT的最后设定程序指定最大线程id,通过以下操作获得所述线程上下文:a)执行设定MT指令以重新继续所述MT模式;及b)基于处于被重新继续的MT模式中,存取所述线程上下文。

【技术实现步骤摘要】
【国外来华专利技术】
本专利技术一般地涉及一种支持多个线程的计算机系统,且更具体言之,涉及多线程计算机系统中的线程上下文恢复
技术介绍
当计算机系统的处理器速度在过去数十年内增加时,可存取此类计算机系统的存储器所藉以的速度未成比例增加。因此,处理器的周期时间愈快,等待数据自存储器中取回的延迟愈明显。藉由各种级别的缓存且在最新处理器中藉由多线程(MT)减轻此类延迟的影响。MT允许处理器的各种核心资源由多个指令流(称为线程)共享。核心资源可包括执行单元、高速缓存、转换后备缓冲器(TLB)及其类似者,其可一般统称为核心。在由高速缓存未命中所产生的延时或一个线程中的其他延迟期间,一个或多个其他线程可利用核心资源,因此增加核心资源的利用率。在超标量处理器同时多线程(SMT)实施中,多个线程可同时由一个或多个核心的核心资源来服务。在现代硬件平台中,MT通常以对在MT硬件上运行的操作系统(OS)透明的方式实施。此特性的一个方面为OS不需要修改以利用MT硬件。然而,相对于OS的透明MT操作可导致响应时间、容量供应、容量规划及计费的高可变性。此可变性可出现是因为OS不感知其任务是否具有核心的独占性控制,或其任务是否作为共享核心的线程执行。借助设计,当在核心在使用中时存在高平均线程密度时,可获得具MT能力的硬件上的存储器密集工作负荷的最高容量。额外容量可归因于由MT提供的增加的高速缓存利用。如果OS不一致地维持所利用核心的高平均线程密度,则由MT提供的额外总吞吐量容量将不可用。举例而言,如果当存在低计算利用率时硬件每核心执行单一MT线程且当存在高计算利用率时以高线程密度执行,则其可非常难以判定多少总MT计算容量可用于工作负荷。MT线程利用的此硬件可变性可以以类似于先前关于容量所描述的方式导致事务响应时间及计费两者的可变性。
技术实现思路
各实施例包括一种用于多线程计算机系统中的线程上下文恢复的系统、方法及计算机程序产品。一个方面为一种配置,所述配置包括能在单线程(ST)模式与多线程(MT)模式之间配置的核心(core)。所述ST模式处理主要线程,且所述MT模式处理所述主要线程及所述核心的共享资源上的一个或多个次要线程。多线程工具被配置为控制对所述配置的利用以执行一种方法,所述方法包括基于自MT模式至ST模式的切换来停用一个或多个次要线程。使所述一个或多个次要线程的包括程序可存取寄存器值及程序计数器值的线程上下文不可用于程序。在所述ST模式中查询最后指定最大MT级别以确定所述配置的最后设定程序指定最大线程id。基于所述最后设定程序指定最大线程id指示MT,通过执行包括以下操作的a)及b)获得所述一个或多个次要线程的所述线程上下文:a)执行设定MT指令以重新继续所述MT模式;及b)基于处于被重新继续的MT模式中,存取所述一个或多个次要线程的所述线程上下文。根据另一方面,提供一种用于配置中的线程上下文恢复的计算机实施的方法。所述配置包括能在单线程(ST)模式与多线程(MT)模式之间配置的核心,其中所述ST模式处理主要线程,且所述MT模式处理所述主要线程及所述核心的共享资源上的一个或多个次要线程。所述方法包括基于自所述MT模式至所述ST模式的切换,停用所述一个或多个次要线程。使所述一个或多个次要线程的包括程序可存取寄存器值及程序计数器值的线程上下文不可用于程序。在所述ST模式中查询最后指定最大MT级别以确定所述配置的最后设定程序指定最大线程id。基于所述最后设定程序指定最大线程id指示MT,通过执行包括以下操作的a)及b)获得所述一个或多个次要线程的所述线程上下文:a)执行设定MT指令以重新继续所述MT模式;及b)基于处于被重新继续的MT模式中,存取所述一个或多个次要线程的所述线程上下文。另一方面包括一种用于配置中的线程上下文恢复的计算机程序产品。所述配置包括能在单线程(ST)模式与多线程(MT)模式之间配置的核心,所述ST模式处理主要线程,且所述MT模式处理所述主要线程及所述核心的共享资源上的一个或多个次要线程。所述计算机程序产品包括具有程序指令的计算机可读存储介质,其中所述计算机可读存储介质并非信号。所述程序指令能由处理电路读取以使所述处理电路执行一种方法。所述方法包括基于自所述MT模式至所述ST模式的切换,停用所述一个或多个次要线程。使所述一个或多个次要线程的包括程序可存取寄存器值及程序计数器值的线程上下文不可用于程序。在所述ST模式中查询最后指定最大MT级别以确定所述配置的最后设定程序指定最大线程id。基于所述最后设定程序指定最大线程id指示MT,通过执行包括以下操作的a)及b)获得所述一个或多个次要线程的所述线程上下文:a)执行设定MT指令以重新继续所述MT模式;及b)基于处于被重新继续的MT模式中,存取所述一个或多个次要线程的所述线程上下文。附图说明当本说明书完结时在权利要求中特定地指出且清楚地要求保护被视为实施例的主题。实施例的前述及其他特征及优点自结合附图而进行的以下详细描述显而易见,在附图中:图1A描绘可根据一个实施例实施的计算环境;图1B描绘可根据一个实施例实施的计算环境;图2描绘可根据一个实施例实施的核心的处理电路;图3描绘可根据一个实施例实施的计算环境;图4描绘可根据一个实施例实施的计算环境中的系统管理程序(hypervisor)上下文保持的一个实例;图5描绘根据一个实施例的用于多线程的动态启用的过程流;图6A描绘根据一个实施例的CPU地址扩展过程的一个实例;图6B描绘根据一个实施例的CPU地址缩短过程的一个实例;图7描绘根据一个实施例的用于设定多线程命令(order)的过程流;图8描绘根据一个实施例的存储多线程能力信息的一个实例;图9描绘根据一个实施例的用于确定多线程能力的过程流;图10描绘根据一个实施例的各种线程上下文位置的一个实例;图11描绘根据一个实施例的多线程寄存器保留的一个实例;图12描绘根据一个实施例的用于多线程寄存器保留的过程流;图13描绘根据一个实施例的多线程寄存器恢复的一个实例;图14描绘根据一个实施例的用于多线程寄存器恢复的过程流;及图15描绘根据一个实施例的计算机可读介质。具体实施方式例示性实施例提供支持单线程及多线程操作模式的计算机系统中的多线程操作。如本文所使用,逻辑线程是指单一指令流及其相关联状态。亦即,在架构级别处,每一逻辑线程表示独立中央处理单元(CPU)或处理器。在硬件级别处,当分派线程时,线程为与客体状态的维持组合的与逻辑线程相关联的指令流的执行。因此,本文中可互换地使用术语“线程”与“CPU”。在一个例示性实施例中,CPU含有用于指令执行、中断动作、时序功能、初始程序加载及其他机器相关功能的定序及处理工具。CPU定义可映射至多种基础物理实施的逻辑功能。CPU在执行指令时可处理固定长度的二进制整数及浮点数(例如,二进制、十进制及十六进制)、可变长度的十进制整数,及固定或可变长度的逻辑信息。处理可为并行或串行的。处理元素的宽度、移位路径的多重性及执行不同类型算术中的同时性程度可在不影响逻辑结果的情况下在CPU的一个模型与另一模型之间不同。CPU执行的指令可包括多个指令类别,诸如通用、十进制、浮点支持(FPS)、二进制浮点(BFP)、十进制浮点(DFP)、十六进制浮点(HFP)、控制本文档来自技高网
...
多线程计算机系统中的线程上下文恢复

【技术保护点】
一种计算机系统,包括:配置,其包括能在单线程(ST)模式与多线程(MT)模式之间配置的核心,所述ST模式处理主要线程,且所述MT模式处理所述主要线程及所述核心的共享资源上的一个或多个次要线程;及多线程工具,其被配置为控制对所述配置的利用以执行一种方法,所述方法包括:基于自所述MT模式至所述ST模式的切换,停用所述一个或多个次要线程,其中使所述一个或多个次要线程的包括程序可存取寄存器值及程序计数器值的线程上下文不可用于程序;在所述ST模式中查询最后指定最大MT级别以确定所述配置的最后设定程序指定最大线程id;及基于所述最后设定程序指定最大线程id指示MT,通过执行包括以下操作的a)及b)获得所述一个或多个次要线程的所述线程上下文:a)执行设定MT指令以重新继续所述MT模式;及b)基于处于被重新继续的MT模式中,存取所述一个或多个次要线程的所述线程上下文。

【技术特征摘要】
【国外来华专利技术】2014.03.27 US 14/226,9111.一种计算机系统,包括:配置,其包括能在单线程(ST)模式与多线程(MT)模式之间配置的核心,所述ST模式处理主要线程,且所述MT模式处理所述主要线程及所述核心的共享资源上的一个或多个次要线程;及多线程工具,其被配置为控制对所述配置的利用以执行一种方法,所述方法包括:基于自所述MT模式至所述ST模式的切换,停用所述一个或多个次要线程,其中使所述一个或多个次要线程的包括程序可存取寄存器值及程序计数器值的线程上下文不可用于程序;在所述ST模式中查询最后指定最大MT级别以确定所述配置的最后设定程序指定最大线程id;及基于所述最后设定程序指定最大线程id指示MT,通过执行包括以下操作的a)及b)获得所述一个或多个次要线程的所述线程上下文:a)执行设定MT指令以重新继续所述MT模式;及b)基于处于被重新继续的MT模式中,存取所述一个或多个次要线程的所述线程上下文。2.如权利要求1所述的计算机系统,其中所述设定MT指令为包括设定MT命令及指示MT的程序指定最大线程id的信号处理器指令。3.如权利要求1所述的计算机系统,进一步包括基于至所述ST模式的切换而保存所述一个或多个次要线程的所述线程上下文。4.如权利要求1所述的计算机系统,其中自所述MT模式至所述ST模式的所述切换基于非清除重设操作,且进一步其中用于重新继续所述MT模式的所述设定MT指令的执行及所述一个或多个次要线程的所述线程上下文的存取由独立转储程序执行。5.如权利要求4所述的计算机系统,其中当发出设定MT命令以重新继续所述MT模式时,所述独立转储程序指定所述最后程序指定最大线程id作为程序指定最大线程id。6.如权利要求1所述的计算机系统,其中在加载不支持所述配置中的MT的操作系统之前执行清除重设以防止MT感知独立转储程序尝试自所述配置转储任何次要线程。7.如权利要求1所述的计算机系统,其中感知MT但不采用MT的程序在执行用于所述配置的独立转储程序之前发出具有为0的对应最大线程id的设定MT命令。8.如权利要求1所述的计算机系统,其中保留所述最后程序指定最大线程id,直至发生所述配置的清除重设或去激活。9.一种用于配置中的线程上下文恢复的计算机实施的方法,所述配置包括能在单线程(ST)模式与多线程(MT)模式之间配置的核心,所述ST模式处理主要线程,且所述MT模式处理所述主要线程及所述核心的共享资源上的一个或多个次要线程,所述方法包括:基于自所述MT模式至所述ST模式的切换,停用所述一个或多个次要线程,其中使所述一个或多个次要线程的包括程序可存取寄存器值及程序计数器值的线程上下文不可用于程序;在所述ST模式中查询最后指定最大MT级别以确定所述配置的最后设定程序指定最大线程id;及基于所述最后设定程序指定最大线程id指示MT,通过执行包括以下操作的a)及b)获得所述一个或多个次要线程的所述线程上下文:a)...

【专利技术属性】
技术研发人员:D·格雷纳M·法雷尔D·L·奥西塞克D·W·施密特F·Y·布萨巴J·P·库巴拉J·D·布拉德伯里L·C·海勒T·斯莱格尔C·小盖尼
申请(专利权)人:国际商业机器公司
类型:发明
国别省市:美国;US

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

1