baron · 5 天前

Arm架构中的Activity monitors扩展

  1. Activity monitors扩展支持
    DynamIQ™ 共享单元-120 核心实现了对 Arm®v8.4-A 架构的Activity monitors扩展。活动监视具有类似于性能监视的功能,但主要用于系统管理,而性能监视则面向用户和调试应用程序。

Activity monitors为系统电源管理和持续监视提供了有用的信息。Activity monitors是只读的,通过实用总线访问。

DynamIQ™ 共享单元-120 在一组中实现了五个计数器,每个计数器都是一个64位的计数器,用于计数固定事件。

1.1 Activity monitors访问
DynamIQ™ 共享单元-120 支持通过实用总线接口的内存映射访问Activity monitors。

集群活动监视单元 (AMU) 寄存器在实用总线接口上的基地址是 0x040000。如果集群启用了领域管理扩展 (RME),则这些寄存器从根状态访问,否则从安全状态访问。

如果出现以下情况,这些寄存器将被视为 RAZ/WI:

  • 寄存器被标记为保留。
  • 在错误的安全状态下访问寄存器。
  • 集群已关闭电源。

有关这些寄存器内存映射的信息,请参见《Arm® 架构参考手册 A-profile 架构》。

1.2 Activity monitors计数器
DynamIQ™ 共享单元-120 实现了五个Activity monitors计数器,编号为0-4。

每个计数器具有以下特点:

  • 所有事件都在64位环绕计数器中计数,当溢出时会环绕。没有溢出状态指示或中断支持。
  • 包括当 WFI 和 WFE 指令停止时,时钟频率的任何变化都可能影响任何计数器。
  • 所有事件0-4是固定的。有关集群Activity monitors事件的列表,请参见Activity monitors事件。

1.3 外部集群 AMU 寄存器
集群活动监视单元 (AMU) 寄存器仅能通过实用总线上的内存映射访问进行访问。

摘要表提供了从 DSU-120 的实用总线外部访问的所有集群 AMU 寄存器的概述。有关寄存器的更多信息,请点击表格中的寄存器名称。有关 AMU 寄存器架构的更多信息,请参见《Arm® CoreSight™ 性能监视单元架构》。

如果出现以下情况,集群 AMU 寄存器将被视为 RAZ/WI:

  • 寄存器被标记为保留。
  • 在错误的安全状态下访问寄存器。
  • 如果 DSU-120 配置为直接连接,则这些寄存器不存在,且任何对这些寄存器的访问都被视为 RAZ/WI。
  • 任何未记录的地址都被视为 RAZ/WI。
  • 部件编号为 0x04EA。
  • 集群 AMU 寄存器的基地址为 0x040000。

对于没有列出复位值的寄存器,请参考寄存器描述页面中记录的各个字段复位。
77bea336810544408840eb79d0de2f7f.png580157ecb8fe483994271444f427f8e0.png
1.4 Activity monitors事件
DynamIQ™ 共享单元-120 中的Activity monitors事件都是固定的,并且它们映射到Activity monitors计数器。

下表显示了计数器到固定事件的映射。5abfab3dbc2846628c81673672b064d8.png
事件0和1的使用取决于IMP_CLUSTERPWRCTLR.AUTOPRTN位的设置,如下所示:

  • 当IMP_CLUSTERPWRCTLR.AUTOPRTN位清除时,事件0和1用于缓存路径电源关闭功能。
  • 当IMP_CLUSTERPWRCTLR.AUTOPRTN位设置时,硬件使用事件0和1的计数器。因此,它们的值对于软件是不可用的,并读取为零。
  • 由执行读取和写入操作的原子指令引起的事务仅被计为一次读取,用于Activity monitors。这些指令的示例包括原子加载、交换和比较交换指令。原子存储指令仅计为一次写入。
  • 💋💋💋相关课程介绍:学好ARM让领导刮目相看《Armv8/Armv9架构从入门到精通(三期)》💋💋💋
    🌍咨询vx : sami01_2023
推荐阅读
关注数
9491
文章数
256
vx: coding_the_world
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息