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

上下文切换采样制造技术

技术编号:4028051 阅读:292 留言:0更新日期:2012-04-11 18:40
本文描述了用于在计算系统中进行性能监视的方法。在一些实施例中,可寻址存储器存储用于执行上下文切换采样的数据和指令。处理器包括硬件事件计数器,并与所述可寻址存储器耦合以访问所述指令,并且响应于所述指令,所述处理器在第一硬件事件计数器中对第一硬件事件的发生进行计数,并在第二硬件事件计数器中对第二硬件事件的发生进行计数。在所述第一硬件事件的发生已经被计数达到规定数目之后,对所述第二硬件事件计数器进行采样,并且重置硬件事件计数器。在一些实施例中,所述处理器在第一硬件事件计数器中对段寄存器加载事件的发生进行计数,然后记录所采样的第二硬件事件计数器的值与进程标识符的值和/或线程标识符的值。

【技术实现步骤摘要】
上下文切换采样
本公开总体上涉及微处理器领域。具体地说,本公开涉及基于处理器中的硬件事件触发来对进程或线程事件进行上下文切换采样。
技术介绍
在多任务、多进程和/或多线程系统中,监视性能度量可能是很复杂的。过去使用的技术(例如,基于时间的采样或基于事件的采样)采用一致规则测量网格来概述和表征应用的行为,而所述应用的活动可能有时根本不是规则的。之前对于监视特定进程的上下文内的活动的尝试可能需要专用探测版的操作系统。这些技术还可能具有对专门的探测(instrumentation)以及所关注的特定进程的上下文中的期望性能度量进行监视的副作用。因此,之前技术的结果可能受到来自其它进程、线程或操作系统探测的活动的干扰(contamination)。到目前为止,尚未充分研究在多任务、多进程和/或多线程系统中进行更有效率的性能监视,以避免受到从其它进程和/或线程捕捉的事件的干扰。附图说明在附图中通过示例而非限制的方式说明了本专利技术。图1说明了用于执行上下文切换采样的多进程系统的一个实施例。图2说明了用于执行上下文切换采样的处理的一个实施例的流程图。图3说明了用于执行上下文切换采样的处理的替代实施例的流程图。具体实施方式下面描述用于在计算系统中进行性能监视的方法。在一些实施例中,可寻址存储器存储用于执行上下文切换采样的数据和指令。处理器包括用于进行性能监视的硬件事件计数器,并与可寻址存储器耦合以访问所述指令,并且响应于所述指令,该处理器在第一硬件事件计数器中对第一硬件事件的发生进行计数,并在第二硬件事件计数器中对第二硬件事件的发生进行计数。在第一硬件事件的发生已经被计数达到规定数目之后,可以确定上下文切换已经发生。然后,第二硬件事件计数器被采样并且硬件事件计数器被重置。在一些实施例中,处理器在第一硬件事件计数器中对段寄存器加载事件的发生进行计数,然后将所采样的第二硬件事件计数器的值与进程标识符的值和/或线程标识符的值一起进行记录。因此,这种技术可以用来更准确地捕捉和测量特定进程和/或线程的事件,而不会将来自从其它进程和/或线程捕捉的事件的干扰包括在内。可以根据以下教导来实现本专利技术的这些和其它实施例,并且应该显而易见的是,可以在不脱离本专利技术较宽泛的精神和范围的情况下,在以下教导中进行各种修改和变型。说明书和附图相应地被认为是说明性而非限制性的意义,并且本专利技术仅按照权利要求及其等价物来限定。图1说明了用于执行上下文切换采样的多进程系统101的一个实施例。系统101的实施例可以包括具有存储区域141-149的可寻址存储器140,所述可寻址存储器140存储用于执行上下文切换采样的数据和机器可执行指令。多个进程111-131经由总线或任何其它互连110与可寻址存储器140耦合,并且进程111-131同时执行它们各自的线程。将理解,进程111-131的实施例可以包括在不同管芯上或者在同一管芯上的软件进程或硬件线程或者多个单独的处理器核心。系统101的一些实施例还可以包括处理器,例如处理器102,其具有多个硬件线程进程111和121。进程111-131分别包括执行单元112-132、寄存器113-133以及硬件事件计数器114-134和115-135。将理解,在一些实施例中,一个或多个执行单元112-132可以被一些进程111-131物理地共享。还将理解,在进程111-131的一些实施例中,寄存器113-133和/或硬件事件计数器114-134和115-135也可以被一些进程111-131共享或共用。一个或多个进程111-131可以与可寻址存储器140耦合以访问机器可执行指令149,并且响应于机器可执行指令149,一个或多个进程111-131可以分别在硬件事件计数器114-134中对第一硬件事件的发生进行计数。在一些实施例中,第一硬件事件可以是段寄存器加载事件,如用在“x86”处理器(例如,由位于SantaClara,CA的英特尔公司制造的处理器)上的上下文切换中。将理解,通过分别在硬件事件计数器114-134中对硬件事件(例如,段寄存器加载事件)的发生进行计数,一个或多个进程111-131能够确定何时已经发生上下文切换。例如,运行在特定的x86处理器上的给定操作系统可能需要执行4个段寄存器加载来在环3(ring3)处的应用进程之间执行上下文切换。通过设置采样频率值(sample-aftervalue,SAV)以在计数值超过4之后对硬件事件计数器进行采样,所采样的硬件事件计数器的值更准确地捕捉和测量特定进程和/或线程的事件,而不会将来自从其它进程和/或线程捕捉的事件的干扰包括在内。特别地,如果SAV计数值设置为8(4的两倍),那么进程之间的上下文切换将会被检测到。另一方面,如果SAV计数值设置为5(比4大1),那么在同一进程的线程之间的上下文切换将会被检测到。如果SAV计数值设置为临界值(在本示例中为4)或被设置为在临界值以下,那么采样将不能捕捉到期望的应用数据,这是因为采样将在收集到期望的应用中的事件统计信息之前发生。将理解,检测上下文切换所需的段寄存器加载的数量在各操作系统间可能有很大改变(例如,在1个和超过100个段寄存器加载之间),这取决于具体的操作系统和具体的处理器。将理解,一些实施例可以使用其它技术或指令而不是段寄存器加载来执行上下文切换采样。例如,上下文切换还可以与描述符表的加载相关联,由此,在加载(全局或者局部的)描述符表之后触发事件计数数据的采样可以提供替代技术来执行上下文切换采样。在另一替代实施例中,可以选择可寻址存储器140中的特定地址,以用于以下特别目的:每当该地址被访问时,触发上下文切换采样。在再一替代实施例中,可以使用每当进程和/或线程标识符被改变时的硬件事件触发,或者特殊指令可以被添加到处理器架构中以专门用于触发上下文切换采样。在第一硬件事件的发生已经分别在硬件事件计数器114-134中被计数达到规定数目之后,第二硬件事件计数器115-135分别被采样,并且第一和第二硬件事件计数器114-134和115-135分别被重置。如上所指出的,将理解,进程111和121的实施例可以共享或者共用硬件事件计数器114-124和115-125,所以处理器102例如可以仅具有单组硬件事件计数器。在第一硬件事件的发生已经被计数达到规定数目并且第二硬件事件计数器115-135已经分别被采样之后,所采样的第二硬件事件计数器115-135的值可以与进程标识符141-145的值一起被记录和/或聚集在可寻址存储器140中的存储单元143-147内。在一些实施例中,所采样的第二硬件事件计数器115-135的值也可以与线程标识符144-148的值一起被记录和/或聚集在可寻址存储器140中的存储单元143-147内。将理解,这种技术可以用来更准确地捕捉和测量特定进程和/或线程的事件,而不会将来自从其它进程和/或线程捕捉的硬件事件的干扰包括在内。图2说明了执行上下文切换采样以在多进程系统中进行性能监视的处理201的一个实施例的流程图。本文公开的处理201和其它处理由处理块来执行,所述处理块可以包括专用硬件或者可以由通用机器或专用机器或二者的组合来执行的软件或固件操作代码。在处理块211中,在第一硬件事件计数器(例如,EC本文档来自技高网...
上下文切换采样

【技术保护点】
一种用于在多进程系统中进行性能监视的方法,所述方法包括:在第一硬件事件计数器中对第一硬件事件的发生进行计数;在第二硬件事件计数器中对第二硬件事件的发生进行计数;在所述第一硬件事件的发生已经被计数达到规定数目之后,对所述第二硬件事件计数器进行采样,并且重置所述第一硬件事件计数器和所述第二硬件事件计数器。

【技术特征摘要】
US 2009-4-8 12/420,8151.一种用于在多进程系统中进行性能监视的方法,所述方法包括:在第一硬件事件计数器中对第一硬件事件的发生进行计数以确定何时发生上下文切换;在第二硬件事件计数器中对第二硬件事件的发生进行计数;在所述第一硬件事件的发生已经被计数达到规定数目之后,对所述第二硬件事件计数器进行采样,并且重置所述第一硬件事件计数器和所述第二硬件事件计数器,其中通过设置不同的采样频率值SAV来检测进程之间的上下文切换或同一进程的线程之间的上下文切换;其中对应于所采样的第二硬件事件计数器的值与进程标识符或与线程标识符一起被记录和/或聚集在可寻址存储器,并且第一硬件事件计数器与第二硬件事件计数器被用于特定进程和/或线程,而不会将来自其它进程和/或线程捕捉的事件的干扰包括在内。2.根据权利要求1所述的方法,其中,所述第一硬件事件是描述符表加载事件。3.根据权利要求2所述的方法,其中,所述第一硬件事件是局部描述符表加载事件。4.根据权利要求1所述的方法,其中,所述第一硬件事件是用于触发对所述第二硬件事件计数器进行所述采样的针对预定地址的存储器加载事件。5.根据权利要求1所述的方法,其中,所述第一硬件事件是进程标识符改变事件。6.根据权利要求1所述的方法,其中,所述第一硬件事件是线程标识符改变事件。7.一种用于在多进程系统中进行性能监视的方法,所述方法包括:在第一硬件事件计数器中对段寄存器加载事件的发生进行计数以确定何时发生上下文切换;在第二硬件事件计数器中对第二硬件事件的发生进行计数;在所述段寄存器加载事件的发生已经被计数达到规定数目之后,对所述第二硬件事件计数器进行采样,并且重置所述第一硬件事件计数器和所述第二硬件事件计数器,其中通过设置不同的采样频率值SAV来检测进程之间的上下文切换或同一进程的线程之间的上下文切换;其中对应于所采样的第二硬件事件计数器的值与进程标识符或与线程标识符一起被记录和/或聚集在可寻址存储器,并且第一硬件事件计数器与第二硬件事件计数器被用于特定进程和/或线程,而不会将来自其它进程和/或线程捕捉的事件的干扰包括在内。8.根据权利要求7所述的方法,还包括:记录所采样的第二硬件事件计数器的值以及所述进程标识符的值与线程标识符的值。9.一种用于在多进程系统中进行性能监视的装置,所述装置包括:用于在第一硬件事件计数器中对第一硬件事件的发生进行计数以确定何时发生上下文切换的单元;用于在第二硬件事件计数器中对第二硬件事件的发生进行计数的单元;用于在所述第一硬件事件的发生已经被计数达到规定数目之后,对所述第二硬件事件计数器进行采样,并且重置所述第一硬件事件计数器和所述第二硬件事件计数器的单元,其中通过设置不同的采样频率值SAV来检测进程之间的上下文切换或同一进程的线程之间的上下文切换;其中第一硬件事件计数器与第二硬件事件计数器被用于特定进程和/或线程,而不会将来自其它进程和/或线程捕捉的事件的干扰包括在内。10.根据权利要求9所述的装置,其中,所述第一硬件事件是描述符表加载事件。11.根据权利要求10所述的装置,其中,所述第一硬件事件是局部描述符表加载事件。12.根据权利要求9所述的装置,其中,所述...

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

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

1