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

使用固定计数器的高级别微体系结构事件性能监测的系统、方法和装置制造方法及图纸

技术编号:37982333 阅读:10 留言:0更新日期:2023-06-30 09:57
本公开涉及使用固定计数器进行高级微体系结构事件性能监测的系统、方法和装置。在一个实施例中,一种装置包括:至少一个核心,用于执行指令;以及多个固定计数器,耦合到至少一个核心,该多个固定计数器用于在至少一个核心执行期间对事件进行计数,多个固定计数器中的至少一些用于对层次体系性能监测组织的最高级别的事件信息进行计数。描述并要求保护其他实施例。实施例。实施例。

【技术实现步骤摘要】
使用固定计数器的高级别微体系结构事件性能监测的系统、方法和装置

技术介绍

[0001]现代处理器通常包括性能监测能力,使有技术能力的用户能够执行调试和代码分析功能。在一些处理器中,提供了自上而下的微体系结构分析(top

down microarchitecture analysis,TMA)方法论来用于标识软件性能问题。这种TMA方法论是基于事件的指标的层次体系组织,该指标标识应用中占主导地位的性能瓶颈。其目的在于平均显示(一个或多个)处理器管线在运行应用时的利用程度。然而,访问该信息的当前机制可受到缺乏精度和/或资源影响的影响。
附图说明
[0002]图1是根据实施例的处理器的框图。
[0003]图2是根据实施例的方法的流程图。
[0004]图3A和图3B图示更具体的示例性有序核心体系结构的框图。
[0005]图4是根据本专利技术的实施例的处理器的框图。
[0006]图5是根据本专利技术的实施例的第一更具体示例性系统的框图。
[0007]图6是根据本专利技术的实施例的SoC的框图。
[0008]图7是根据本专利技术的实施例的对照使用软件指令转换器将源指令集中的二进制指令转换成目标指令集中的二进制指令的框图。
具体实施方式
[0009]在各种实施例中,处理器可以配置有性能监测单元的多个专用或固定计数器,以便能够对多级性能监测方法论的最高层次体系级别的原始事件进行计数(本文也称为“性能监测布置”、“性能监测组织”和“性能监测系统”)。虽然实施例适用于任何性能监测布置,但本文描述的特定实现方式是用于但本文描述的特定实现方式是用于自上而下微体系结构分析(Top

Down Microarchitecture Analysis,TMA)方法论。在该方法论中,可以有多个级别的性能指标,这些指标可以从层次体系的最高级别监测到层次体系的最低级别。在不同情况下,可能会有2个、3个或更多个级别的性能指标。
[0010]在一个或多个示例中,可以提供固定计数器集合,每个计数器都与特定的最高级别性能指标相关联,根据上述TMA方法论,该指标是TMA级别1(level 1,L1)。通过这种方式,可以避免对于分配可编程计数器来计数此类指标信息或通过性能指标模型特定的寄存器(model specific register,MSR)获得信息的需要。
[0011]通过这些计数器,实现了一种低成本的机制来迁移宝贵的可编程计数器。这些固定计数器通过允许将特定的最高级别事件与可编程事件(其可以为较低级别的事件编程)一起收集来减少复用。这些固定计数器非常精确且访问起来很快,因为它们提供原始计数并且其大小可能引发在相对长的持续时间(例如,大约400秒)内清除溢出(overflow)。
[0012]在一个处理器实现方式中,可以假设在每个时钟周期中针对每个核心,有N个(例
如,4个)管线时间槽可用。某些性能监测单元(performance monitoring unit,PMU)事件可用于衡量这些管线时间槽的利用程度。在此实现方式中,应用的运行时期间可用的每个管线时间槽可以基于执行期间这些PMU事件的发生情况被分类为四个L1类别之一(前端约束、不良推测、后端约束、引退)。在其他情况下,可保持更多或不同的L1指标。在一些情况下,这四个L1类别中的一个可能无法保持在固定计数器中,但该L1性能指标可以从其他L1性能指标中导出,如下文进一步描述的。
[0013]与为性能监测布置的最高层次体系级别提供固定计数器的实施例不同,其他捕捉TMA数据的手段具有缺点。在没有实施例并且具有数量有限的可编程计数器的情况下,用户会跨工作负荷的多次运行复用事件,以获取完整的简档并收集在层次体系的最低级别的事件。TMA指标总共可以包括数十个事件。这种复用的过程可在简档中引入问题(需要更多时间来收集)并且有时还会生成不一致的数据,因为工作负荷的每次运行的行为可能有所不同(例如,基于系统上运行的其他内容、中断率等)。实施例可能会减少甚至避免对复用的需求,从而提高简档的保真度。
[0014]一些处理器可提供性能指标MSR(例如,称为PERF_METRICS MSR),其可以提供一种在不使用可编程计数器的情况下收集TMA L1数据的手段。然而,该计数器只能提供百分比信息,例如,落在TMA L1类别中的每个类别中的时间槽的百分比。但这个PERF_METRICS接口有缺点。首先,对PERF_METRICS MSR的访问速度比访问PMU计数器慢得多。虽然读取可编程PMU计数器的速度可以快至10个周期(例如,经由读取性能监测器计数器指令(read performance monitor counter,RDPMC)使用读取操作),但读取PERF_METRICS MSR大约需要100个周期。除此之外,获得百分比信息有额外的等待时间,因为处理器根据L1指标收集原始计数,然后将每个计数除以时间槽总数,以便计算为此MSR返回的百分比。此外,由于更多的时间槽由构成每个L1指标的百分比的8比特中的每个比特表示,因此L1指标的精度随着时间的推移而下降。为了使此误差的累积最小化,某些工具每次消耗该值时都会清除PERF_METRICS MSR。这个过程可能需要大约500个周期,并且通常可能每毫秒发生一次,从而增加了收集简档的开销。
[0015]在实施例中,处理器标识信息可被访问,以表示是否存在固定的性能监测计数器,包括本文描述的固定计数器。在特定示例中,软件或其他实体可以经由CPUID指令发现本文描述的固定计数器:CPUID.0xA.ECX[7:4]=0b1111(固定计数器比特图)。
[0016]在一个或多个示例中,四个固定计数器的集合可被提供来对4个TMA L1指标进行计数。当然,在其他示例中可以提供更多或更少的此类固定计数器,以便对额外的或不同的TMA级别1指标进行计数。并且在其他示例中,可以为其他级别的TMA指标和/或其他类型的指标提供额外的固定计数器。在一个实施例中,可以将以下固定计数器分配给TMA L1性能指标:
·
IA32_FIXED_CTR4

TOPDOWN_BAD_SPECULATION(MSR 0x30D)
·
IA32_FIXED_CTR5

TOPDOWN_FE_BOUND(MSR 0x30E)
·
IA32_FIXED_CTR6

TOPDOWN_RETIRING(MSR 0x30F)
·
IA32_FIXED_CTR7

TOPDOWN_BE_BOUND(MSR 0x310)
[0017]注意,如果任何单个计数器不被支持,则可以根据SLOTS

SUM(FixedCtr[7:4])计
算缺失的指标,其中SLOTS可以从另一个固定计数器或经由其他手段获得。在示例处理器中,可能有额外的固定计数器来计数额外事件,额外事件包括引本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种装置,包括:至少一个核心,用于执行指令;以及多个固定计数器,耦合到所述至少一个核心,所述多个固定计数器用于在所述至少一个核心执行期间对事件进行计数,所述多个固定计数器中的至少一些固定计数器用于对层次体系性能监测组织的最高级别的事件信息进行计数。2.如权利要求1所述的装置,其特征在于,所述多个固定计数器中的第一固定计数器被配置成用于对与前端约束条件相关联的第一事件进行计数。3.如权利要求2所述的装置,其特征在于,所述多个固定计数器中的第二固定计数器被配置成用于对与后端约束条件相关联的第二事件进行计数。4.如权利要求3所述的装置,其特征在于,所述多个固定计数器中的第三固定计数器被配置成用于对误推测事件进行计数。5.如权利要求4所述的装置,其特征在于,所述多个固定计数器中的第四固定计数器被配置成用于对引退事件进行计数。6.如权利要求2所述的装置,进一步包括用于存储配置信息的配置寄存器,其中所述配置寄存器包括第一字段,用于存储在被置位时使所述第一固定计数器能够对所述第一事件进行计数的第一指示符。7.如权利要求2所述的装置,其特征在于,所述第一固定计数器用于对所述第一事件的原始数量进行计数。8.如权利要求7所述的装置,进一步包括计算电路,用于至少部分基于所述第一事件的所述原始数量来确定发生所述第一事件期间的时间槽的百分比。9.如权利要求1

8中的任一项所述的装置,进一步包括多个可编程计数器。10.如权利要求9所述的装置,进一步包括性能监测单元,耦合到所述至少一个核心,其中,所述性能监测单元包括所述多个固定计数器和所述多个可编程计数器。11.一种方法,包括:经由控制电路启用处理器的性能监测器单元的第一固定计数器以保持第一事件的计数,所述第一事件是性能监测系统的最高层次体系级别的事件;响应于在所述处理器上执行工作负荷期间发生所述第一事件而更新所述第一固定计数器;以及读取所述第一固定计数器的值并将所述值存储到存储装置中,所述值包括执行所述工作负荷期间发生的第一事件的原始计数。12.如权利要求11所述的方法,进一步包括启用所述第一固定计数器以保持与前端约束条件相关联的第一事件的计数。13.如权利要求11所述的方法,进一步包括经由所述控制电路启用所述性能监测器单元的第二固定计数器以保持第二事件的计数,所述第二事件是所述性能监测系统的最高层次体系级别的事件。14.如权利要求11所述的方法,进一步包括至少部分基于第一事件的计数来确定发生所述第一事件期间的时间槽的百分比。15.如权利要求14所述的方法,其特征在于,确定时间槽的所述百分比包括:使用第一事件的所述计数和从所述性能监测器单元的另一个...

【专利技术属性】
技术研发人员:C
申请(专利权)人:英特尔公司
类型:发明
国别省市:

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

1