本发明专利技术的实施方式涉及对多个辅助硬件线程进行可缩放状态跟踪的方法和系统。其中处理器包括发起硬件线程,该发起硬件线程发起第一辅助硬件线程以执行第一代码段。接下来,发起硬件线程响应于发起第一辅助硬件线程而设置辅助线程执行指示符。所设置的辅助线程执行指示符指示辅助硬件线程是否正在执行。第二辅助硬件线程发起和开始执行第二代码段。接着,发起硬件线程检测辅助线程执行指示符中的改变,该改变表示第一辅助硬件线程和第二辅助硬件线程两者终止。照这样,发起硬件线程响应于这两个辅助硬件线程终止而评估辅助硬件线程结果。
【技术实现步骤摘要】
本公开涉及在没有管理程序(hypervisor)介入的情况下跟踪辅助硬件线程状态。更特别地,本公开涉及利用辅助线程状态寄存器来跟踪辅助硬件线程活动的发起硬件线程。
技术介绍
当今的计算机系统通常包括执行独立指令流的多线程处理器。在硬件线程上执行的软件程序可以从监控程序(supervisor program)(例如管理程序)请求对另一硬件线程的控制。例如,软件程序可以向用于另一硬件线程的监控程序发送请求以便让该另一个硬件线程执行代码段(例如子例程)。监控程序检查硬件线程可用性,并且如果可用则向软件程序指派该另一个硬件线程。接着,软件程序利用该另一个硬件线程来执行代码段。在很多情况下,软件程序利用该另一个硬件线程持续有限时间。照这样,当该另一个硬件线程完成代码执行时,监控程序从软件程序释放该另一个硬件线程的资源。
技术实现思路
处理器包括发起硬件线程,该发起硬件线程发起第一辅助硬件线程以执行第一代码段。接下来,发起硬件线程响应于发起第一辅助硬件线程而设置辅助线程执行指示符。所设置的辅助线程执行指示符指示辅助硬件线程是否正在执行。第二辅助硬件线程发起和开始执行第二代码段。接着,发起硬件线程检测辅助线程执行指示符中的改变,该改变表示第一辅助硬件线程和第二辅助硬件线程两者终止。照这样,发起硬件线程响应于这两个辅助硬件线程终止而评估辅助硬件线程结果。由于前文是概要,因而不得已包含简化、概括以及对细节的省略;因此,本领域技术人员将意识到该概要仅是说明性的,而并非旨在以任何方式进行限制。本公开的其他方面、创造性特征以及优点(其仅仅由权利要求书限定)在以下阐明的非限制性详细描述中将变得明显。附图说明通过参考附图,可以更好地理解本公开,并且本公开的大量对象、特征和优点对于本领域技术人员而言将变得明显,其中图1是示出在多线程处理器上发起辅助硬件线程的处理器的软件程序的示例性示图;图2是示出辅助线程状态寄存器(ATSR)的示例性示图;图3A是示出由软件程序利用来管理辅助硬件线程状态的软件状态存储区的示例性示图;图;3B是示出由发起硬件线程利用来管理辅助硬件线程状态的硬件状态存储区的示例性示图4是示出在发起硬件线程调用辅助硬件线程时采取的步骤的示例性流程图;图5是示出在辅助硬件线程执行软件代码时采取的步骤的示例性流程图;图6是示出分支和发起轻型(BAIL)指令的示例性示图;图7是示出分支和发起重型(BAIH)指令的示例性示图;图8是示出停止辅助线程(SAT)指令的示例性示图;图9是示出由发起硬件线程在分支和发起指令期间向辅助线程寄存器复制的寄存器值的示例性示图;图10是示出在执行分支条件if辅助线程执行(BCE)指令时所采取的步骤的示例性流程图;图11是示出在执行条件寄存器设置if辅助线程执行(CRSE)指令时所采取的步骤的示例性流程图;图12是示出分支条件if辅助线程执行(BCE)指令的示例性示图;图13是示出条件寄存器设置if辅助线程执行(CRSE)指令的示例性示图;图14是示出调用多个辅助硬件线程的发起硬件线程的示例性示图;图15是示出调用辅助硬件线程的发起硬件线程(该辅助硬件线程接着调用其他辅助硬件线程)的示例性示图;图16是示出在不同处理器上调用辅助硬件线程的发起硬件线程的示例性示图; 以及图17是其中可以实现在此描述的方法的信息处理系统的框图示例。 具体实施例方式在以下描述和附图中,阐明了某些特定细节以便提供对本公开各种实施方式的透彻理解。然而,在以下公开中并不阐明通常与计算和软件技术相关联的特定公知细节,以避免不必要地使得本公开的各种实施方式变得模糊。此外,本领域普通技术人员将理解,他们可以在没有以下描述的细节中的一个或多个的情况下实践本公开的其他实施方式。最后, 尽管参考了以下公开中的步骤和序列来描述各种方法,但这种描述是为了提供对本公开的实施方式的清楚的实现,并且不应当将这些步骤和步骤的序列视为是实践本公开所必需的。而是,下文旨在提供对本公开的示例的详细描述,并且不应当被视为是对本公开本身的限制。相反地,任何数目的变型均可以落入本公开的范围内,本公开的范围由说明书所附的权利要求书限定。如本领域技术人员将意识到的,本公开的方面可以体现为系统、方法或者计算机程序产品。相应地,本公开的方面可以采取完全硬件实施方式、完全软件实施方式(包括固件、驻留软件、微代码等)或者组合了软件和硬件方面的实施方式的形式,在此可以将其统称为“电路”、“模块”或者“系统”。另外,本公开的方面可以采取计算机程序产品的形式,该计算机程序产品体现在具有体现在其上的计算机可读程序代码的一个或多个计算机可读介质中。可以利用一个或多个计算机可读介质的任何组合。计算机可读介质可以是计算机可读信号介质或计算机可读存储介质。计算机可读存储介质可以例如是但不限于电子的、 磁的、光的、电磁的、红外的或半导体的系统、装置或设备,或者前述各项的任何合适的组合。计算机可读存储介质的更多特定示例(非穷举列表)将包括以下各项具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPR0M或闪速存储器)、光纤、便携式压缩光盘只读存储器(CD-ROM)、 光存储设备、磁存储设备,或者前述各项的任何合适的组合。在本文献的上下文中,计算机可读存储介质可以是可以包含或存储用于由指令执行系统、装置或者设备使用的或者结合指令执行系统、装置或者设备而使用的程序的任何有形介质。计算机可读信号介质可以包括所传播的其中(例如在基带中或者作为载波的一部分)体现有计算机可读程序代码的数据信号。此类所传播的信号可以采取各种形式中的任何种类,包括但不限于电磁的、光学的或者其任何合适的组合。计算机可读信号介质可以是并非计算机可读存储介质的并且能够传递、传播或者传输用于由指令执行系统、装置或者设备使用的或者结合指令执行系统、装置或者设备而使用的程序的任何计算机可读介质。可以使用任何适当的介质来传送体现在计算机可读介质上的程序代码,这些介质包括但不限于无线的、有线的、光纤电缆、RF等,或者前述各项的任何合适的组合。用于执行针对本公开的方面的操作的计算机程序代码可以采用一种或多种编程语言的任何组合来编写,这些编程语言包括诸如Java、Smalltalk, C++等面向对象的编程语言以及诸如“C”编程语言或类似的编程语言之类的常规的过程编程语言。程序代码可以作为独立软件包完全在用户的计算机上执行、部分地在用户的计算机上执行,部分地在用户的计算机上并且部分地在远程计算机上执行,或者完全在远程计算机或服务器上执行。在后一种场景中,远程计算机可以通过任何类型的网络(包括局域网(LAN)或广域网 (WAN))连接到用户的计算机,或者可以连接到外部计算机(例如使用因特网服务提供商、 通过因特网)。下文参考根据本公开的实施方式的方法、装置(系统)以及计算机程序产品的流程示和/或框图来描述本公开的方面。应当理解,流程示和/或框图的每个块以及流程示和/或框图中的块的组合可以通过计算机程序指令来实现。可以将这些计算机程序指令提供给通用计算机、专用计算机或者其他可编程数据处理装置的处理器以产生机器,从而使得经由计算机或其他可编程数据处理装置的处理本文档来自技高网...
【技术保护点】
【技术特征摘要】
...
【专利技术属性】
技术研发人员:R·L·阿恩特,G·R·弗雷泽,R·P·霍尔,
申请(专利权)人:国际商业机器公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。