ARM CPU 之 PMU部件(性能监控单元)

ARM CPU 之 PMU部件(性能监控单元)本文详细介绍了 Cortex A7 处理器的性能监控单元 PMU 包括其功能 寄存器描述 事件和中断机制 以及与外部硬件的交互

大家好,欢迎来到IT知识分享网。

目录

11 PMU性能监控单元

11.1 关于PMU

11.2 PMU功能描述

11.3 PMU寄存器汇总

11.4 PMU寄存器描述

11.4.1 PMCR性能监控寄存器

11.4.2 性能监控辅助识别寄存器

11.4.3 性能监视组件识别寄存器PMCID

11.5 事件

11.6 中断

11.7 导出PMU事件

11.7.1 外部硬件

11.7.2 调试跟踪硬件

CPU相关术语:



11 PMU性能监控单元

11.1 关于PMU

       处理器PMU部件提供了4个计数器。每个计数器都可以对处理器的任何事件(可用的)计数。

11.2 PMU功能描述

ARM CPU 之 PMU部件(性能监控单元)

上图为PMU部件的组成,主要是那5个计数器。

Eventinterface

       Events from all other units from acrossthe design are provided to the PMU.

       提供给PMU部件的所有事件,这些事件全部来自其他的部件。

CP15 andAPB interface

The PMUregisters can be programmed using the CP15 system control coprocessor orexternal APB interface.

       PMU 寄存器可以通过CP15 协处理器和外部APB接口来编程。

Counters计数器

       PMU含有4个随事件增加32位计数器。

       PMU含有1个随处理器时钟周期增加的循环计数器。

11.3 PMU寄存器汇总

       表11-1为Cortex-A7MPCore PMU 寄存器。

表11-1 PMU 寄存器汇总

ARM CPU 之 PMU部件(性能监控单元)

ARM CPU 之 PMU部件(性能监控单元)

ARM CPU 之 PMU部件(性能监控单元)

ARM CPU 之 PMU部件(性能监控单元)

操作PMU部件需要通过mrc和mcr指令来操作cp15协处理器。

11.4 PMU寄存器描述

11.4.1 PMCR性能监控寄存器

要访问PMCR寄存器,需要采用以下方式读或者写CP15寄存器:

MRC p15,0, <Rt>, c9, c12, 0; 读PMCR

MCR p15,0, <Rt>, c9, c12, 0; 写PMCR

PMCR特征表现在以下4个方面:

目的:

提供监控性能的各种细节行为(包含计数器)

              配置和控制计数器

使用限制:

              一个可读可写的寄存器。

              对于安全和非安全模式是公共的。

              PL1或者更高级别可访问。

              在PMUSERENR.EN位被置1时可以在用户模式下访问。

配置:

              所有的配置都可用

属性:

              参见PMU寄存器汇总表11-1

图11-2及表11-2展示了PMCR寄存器的位分布图

ARM CPU 之 PMU部件(性能监控单元)

图11-2 PMCR位分布图

ARM CPU 之 PMU部件(性能监控单元)

ARM CPU 之 PMU部件(性能监控单元)

11.4.2 性能监控辅助识别寄存器

ARM CPU 之 PMU部件(性能监控单元)

每个PMPID的[0,7]位可使用,[8,31]位是保留位。8个PMPID寄存器定义了一个64位的辅助识别寄存器。

ARMArchitecture Reference Manual该手册详细描述了这些寄存器。

11.4.3 性能监视组件识别寄存器PMCID

ARM CPU 之 PMU部件(性能监控单元)

性能监视组件识别寄存器PMCID将性能监视器视为ARMPMUv2架构。

ARM Architecture Reference Manual该手册详细描述了这些寄存器。

11.5 事件

ARM CPU 之 PMU部件(性能监控单元)

ARM CPU 之 PMU部件(性能监控单元)

ARM CPU 之 PMU部件(性能监控单元)

ARM CPU 之 PMU部件(性能监控单元)

11.6 中断

11.7 导出PMU事件

11.7.1 外部硬件

11.7.2 调试跟踪硬件

CPU相关术语:

2.缓冲行(cache line)CPU高速缓存中可以分配的最小存储单位。处理器填写缓存行时会加载整个缓存行,现在CPU需要执行几百次CPU指令。

3.原子操作(atomicoperations)不可中断的一个或一系列操作。

4.缓存行填充(cache line fill)当处理器识别到从内存中读取操作数是可缓存的,处理器填写整个高速缓存行到适当的缓存(L1,L2,L3的或所有)。

5.缓存命中(cache hit)如果进行高速缓存行填充操作的内存位置仍然是下次处理器访问的地址时,处理器从缓存中读取操作数,而不是从内存读取。

6.写命中(write hit)当处理器将操作数写回到一个内存缓存的区域时,它首先会检查这个缓存的内存地址是否存在行中,如果存在一个有效的缓存行,则处理器将这个操作数写回到缓存,而不是写回到内存,这个操作被称为写命中。

7.写缺失(write misses thecache)一个有效的缓存行被写入到不存在的内存区域。

8.比较并交换(compare andswap)CAS操作需要输入两个数值,一个旧值(期望操作前的值)和一个新值,在操作期间先比较旧值有没有发生变化,如果没有发生变化,才交换成新值,发生了变化则不交换。

9.CPU流水线(CPU pipeline)CPU流水线的工作方式就像工业生产上的装配流水线,在CPU中由5-6个不同功能的电路单元组成一条指令处理流水线,然后将一条X86指令分成5-6步后再由这些电路单元分别执行,这样就能实现一个CPU时钟周期完成一条指令,因此提高CPU的运算速度。

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/140758.html

(0)
上一篇 2025-05-24 17:20
下一篇 2025-05-24 17:26

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信