一种装置、程序产品与方法,使用具有多个硬件线程中的至少一个硬件线程的多线程处理器,该线程能够响应于控制电路地被激活与灭活。该控制电路还提供控制非活动线程在该线程被灭活后如何被激活的能力,例如,通过使能或废止响应于中断的重新激活。(*该技术在2024年保护过期,可自由使用*)
【技术实现步骤摘要】
本专利技术涉及计算机与计算机软件,具体地说,涉及多线程处理器及其在单线程与并发(simultaneous)多线程运行模式之间的切换。
技术介绍
由于当今社会越来越依赖于计算机,所以计算机技术必须在许多方面发展以满足增长的需求。一个具体的重要研究与开发课题是并行性,即并行地执行多个任务。已经开发了许多计算机软机与硬件技术以促进增长的并行处理。从软件的观点看,已经开发了多线程操作系统与内核,其使计算机程序能够以多个“线程”并发执行,从而在实质上可以在同时执行多个任务。一般线程表示程序的独立执行路径。例如,对于电子商务计算机应用,可能将不同的线程分配给不同的顾客,从而在独立的线程中处理每一顾客的特有电子商务交易。从软件的观点看,某些计算机实现了逻辑分区的观念,其中允许一单一的物理计算机实质上如同多个独立“虚拟”计算机(称为逻辑分区)一样运行,在该物理计算机中的各种资源(例如,处理器、内存、输入/输出设备)在各个逻辑分区中分配。每一逻辑分区执行独立的操作系统,并且从用户以及运行在该逻辑分区上的软件应用的角度看,每一逻辑分区都如同完全独立的计算机一样运行。从硬件的观点看,计算机越来越依赖于多微处理器以提供更高的工作负荷能力。此外,已经开发的一些微处理器支持并行执行多线程的能力,从而有效地提供了与通过使用多微处理器一样所能达到的许多性能上的改善。例如,一种形式的多线程处理器支持并发地或同时地执行在硬件中的多个线程,这种功能常被称为并行多线程(SMT)。在SMT处理器中,在该处理器中定义多个硬件线程,其中每一线程都能够执行分配给该线程的特定任务。配置适当数量的执行单元(诸如算术逻辑单元、定点数单元、加载存储单元、浮点数单元等等)以并发执行来自多个线程的指令。一般地,大部分通用寄存器(GPR)与表示体系状态(architectedstate)的专用寄存器(SPR)都为该处理器中每一硬件线程所复制。然而,其他片上资源(诸如某些SPR、片上高速缓存、地址切换缓存器)以及其他非体系资源一般在多个线程之间共享,所希望的结果是当一个或更多个硬件线程阻塞在长延迟事件时(例如在高速缓存未命中时等待),其他线程能够继续行进并且使用某些芯片资源。对于许多工作负荷来说,SMT提高了计算机系统的总体性能(即总体吞吐量)。然而,此改善经常是以单一任务的周转时间为代价的,这是因为在SMT处理器上运行的每一任务都被要求与在同一处理器上并发运行的其他任务共享某些片上资源。例如,在其他硬件线程上运行的任务的高速缓存访问模式可能对特定任务的性能具有不利影响,而最终结果是对于每一单个任务的更长的而且经常无法预测的周转时间。但是,已经发现在某些应用中(例如科学与工程应用),对迅速且可预测的单个任务周转时间的需求可能超过对高速系统吞吐总量的需求。在这些情况下,多线程实际上可能阻碍了系统性能。某些多线程处理器设计也支持以单线程模式执行的能力,由此实质上废止SMT并使任务能够以更加可预测的周转时间运行。然而,对这种功能的支持要求通过系统重启,或初始程序加载(LPL),以在单线程与多线程模式之间切换。然而,由于对许多高性能计算机系统的可用性要求,系统重启是非常不受欢迎的,并且对许多顾客来说常常是无法接受的。另外,即使当需要以SMT模式运行处理器时,由于该处理器中各个硬件线程对共享资源的消耗,仍然可能引起效率不足。例如,即使当硬件线程执行空闲循环时,即没有执行有用的活动时,该硬件线程仍然在消耗着共享资源,由此从其他活动线程夺走资源,而这些活动线程可能本来能够使用这些资源的。结果,由于未执行该系统有用工作的线程对资源的此类消耗,可能引起次优性能。人们非常希望促进这一能力对在多线程处理器中执行的硬件线程所消耗的资源,提供更多的控制;具体地,减少由于在多线程处理器中此类线程的一个或更多个之间的资源低效率分配而可能发生的效率不足。
技术实现思路
为处理与现有技术有关的这些以及其他问题,本专利技术提供了一种装置、程序产品与方法,该装置、程序产品与方法使用多线程处理器,在多个硬件线程之中,该处理器具有至少一个硬件线程能够响应于控制电路地被选择性地激活(activate)与灭活(deactivate)。另外,该控制电路还提供能力以控制非活动线程在该线程在被灭活后如何被激活,一般是通过为该线程指明重新激活条件。通过提供控制电路,可以实现许多有用的性能改善,其中该控制电路能够控制硬件线程为活动或非活动,以及控制如何激活非活动线程。例如,根据本专利技术的某些实施例通过控制是否能够响应于中断地重新激活线程来支持控制如何激活非活动线程的能力。使非活动线程能够响应于中断地被激活使(例如)线程能够有效地被拿(taken)“下线(offline)”,而没有什么系统耗费,由此允许该线程所消耗的所有处理器资源可以由其他线程所使用,但仍然允许通过中断迅速高效地重新激活该被灭活线程以恢复运行。这样一来,就可能(例如)允许释放由在空闲循环中执行的线程所消耗的共享资源,以备其他线程使用,但仍然允许较迅速地重新激活该线程(以及重新获取共享资源),并且没有什么系统耗费。相反,废止线程被响应于中断地激活的能力可以支持以下能力将共享资源释放较长时间,以利于多线程处理器中仍然为活动的任意线程的更高效的运行。另外,由于提供了防止通过中断来重新激活的保护,所以常常可以不用要求系统重启地激活或灭活线程。这样一来,即使在硬件线程长时间灭活的情况下,也很少甚至不会降低系统可用性。表现本专利技术特征的这些以及其他优点与特征在权利要求书中列出,该权利要求书构成此文的另一部分。然而,为更好地理解本专利技术以及通过其使用所达到的优点与目的,应该参照附图以及伴随的描述文字,其中描述了本专利技术的示范性实施例。附图说明图1为依据本专利技术的逻辑分区计算机中主要硬件组件的方框图。图2为图1所参照的多线程处理器中所使用的共享与专用资源的方框图。图3的流程图示出了由图1的逻辑分区计算机所执行的切换到单线程模式的例程程序流程,以将多线程处理器切换到单线程模式。图4的流程图示出了由图1的逻辑分区计算机所执行的切换到并发多线程模式的例程程序流程,以根据本专利技术的方法,将多线程处理器切换到并发多线程模式。图5的流程图示出了由图1的逻辑分区计算机所执行的逻辑处理器空闲循环的例程程序流程。图6的流程图示出了由非逻辑分区计算机所执行的切换到单线程模式的例程程序流程,以根据本专利技术的方法,将多线程处理器切换到单线程模式。图7的流程图示出了非逻辑分区计算机所执行的切换到并发多线程模式的例程程序流程,以根据本专利技术的方法,将多线程处理器切换到并发多线程模式。图8的流程图示出了非逻辑分区计算机所执行的逻辑处理器空闲循环的例程程序流程。具体实施例方式此后所描述的实施例支持多线程处理器中所选择的硬件线程的动态激活与灭活,以及选择性地控制非活动硬件线程一旦被灭活后如何被激活。依据本专利技术的多线程计算机一般为并行多线程处理器,但可替换地,也可能使用其他形式的多线程处理器。另外,在依据本专利技术的多线程处理器中可以支持几乎任意数目的硬件线程,而且可以用此处所描述的方法选择性地激活任意数目的此类硬件线程。例如,在所示实施例中,公开的并行多线程处理器(SMT)包括两个硬件线程,其中一个线程能够被选择性地本文档来自技高网...
【技术保护点】
一种用于控制位于逻辑分区计算机中的多线程处理器的方法,其中该逻辑分区处理器支持多个硬件线程的执行,其中该逻辑分区计算机包含分区管理器与多个分区,其中该多个硬件线程中的第一硬件线程被分配给位于该多个分区中的第一分区中的逻辑处理器,该方法包括:与在第一分区中将该逻辑处理器拿下线相关联,灭活该第一硬件线程,同时响应于中断声明禁止该第一硬件线程的重新激活;以及响应于该逻辑处理器进入空闲循环,灭活该第一硬件线程,同时响应于中断声明允许该第一硬件线程的重新激活。
【技术特征摘要】
...
【专利技术属性】
技术研发人员:威廉J阿姆斯特朗,布鲁斯G米利,纳尔什内亚,巴拉拉姆辛哈罗伊,
申请(专利权)人:国际商业机器公司,
类型:发明
国别省市:US[美国]
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。