Cortex®-A715核心在Arm®v8.2-A架构中实现了可选的统计分析扩展(SPE)。SPE提供了对执行指令性能特征的统计视图,软件开发者可以利用这些信息来优化代码以获得更好的性能。
Cortex®-A715核心通过对微操作进行分析来最小化支持SPE所需的逻辑量。
下图展示了Cortex®-A715核心中SPE的行为特点。
SPE收集性能分析数据是周期性进行的,一个倒计数器驱动着选择要进行分析的微操作。该倒计数器记录了派发的推测微操作的数量,并在每个微操作执行后递减一次。当倒计数器达到零时,就会将一个微操作标识为样本,并在其在核心中的整个生命周期中进行分析。
SPE的分析数据使用虚拟地址(VA)写入内存,这意味着进行分析数据的写入必须具备内存管理单元(MMU)来将虚拟地址转换为物理地址(PA),并且必须有一种方式来将数据写入内存。
预计进行性能分析对核心性能的影响较小。在进行性能分析时,核心的性能不会受到实质性的干扰。
发生频率取决于采样率。您可以指定一个对核心性能有实质性干扰的采样率。Arm建议最小采样间隔为每1024个微操作一次。这个值通过PMSIDR_EL1.Interval的位[11:8]向软件进行传递。
更多信息,请参考《Arm® Architecture Reference Manual for A-profile architecture》。
22.1 Statistical Profiling Extension events packet
事件数据包指示采样操作生成的实现定义事件。 下表显示了在Cortex®-A715核心中实现的32位事件数据包中定义的事件。
22.2 Statistical Profiling Extension data source packet
数据源数据包指示加载或存储操作返回的数据来自哪里。 下表显示了在Cortex®-A715核心中实现的8位数据源数据包中定义的数据源。