19. Embedded Trace Extension support

Cortex®‑A715核心实现了嵌入式跟踪扩展(ETE)。跟踪单元基于ETE执行实时指令流跟踪。跟踪单元是CoreSight组件的一部分,是Arm实时调试解决方案的重要组成部分。
下图显示了跟踪单元的主要组件:

核心接口
核心接口监视并生成P0元素,这些元素实质上是按程序顺序执行的分支和异常跟踪。
跟踪生成
跟踪生成逻辑根据P0元素生成各种跟踪数据包。
过滤和触发资源
您可以通过过滤来限制跟踪单元生成的跟踪数据量。例如,您可以将跟踪生成限制在某个地址范围内。跟踪单元支持其他逻辑分析器风格的过滤选项。跟踪单元还可以生成触发信号,用于指示跟踪捕获设备停止捕获跟踪数据。
FIFO(先进先出缓冲区)
跟踪单元以高度压缩的形式生成跟踪数据。先进先出(FIFO)缓冲区使得跟踪数据可以被平滑输出。当FIFO缓冲区已满时,会发出溢出信号。在FIFO缓冲区被清空之前,跟踪生成逻辑不会生成任何新的跟踪数据。这种行为在调试器中查看时会导致跟踪数据中的间断。
跟踪输出
跟踪数据从FIFO缓冲区输出到AMBA ATB接口或跟踪缓冲区。
有关更多信息,请参阅Arm® Architecture Reference Manual Supplement Armv9,适用于Armv9-A架构配置文件。
19.1 Trace unit resources
跟踪资源包括计数器、外部输入和输出信号以及比较器。
下表显示了跟踪单元的资源,并指示A715核心跟踪单元实现了哪些资源。

19.2 Trace unit generation options
Cortex®-A715核心跟踪单元实现了一组生成选项。
下表显示了跟踪生成选项,并指示Cortex®-A715核心跟踪单元实现了哪些选项。

19.3 Reset the trace unit
对于跟踪缓冲区的复位与核心的冷复位是相同的。当使用跟踪缓冲区扩展(TRBE)时,热复位会禁用跟踪缓冲区,因此无法使用跟踪缓冲区来捕获热复位的跟踪信息。
如果跟踪单元被复位,那么跟踪将停止直到重新编程和重新使能跟踪单元。
然而,如果使用热复位对核心进行复位,那么在复位之前由核心提供的最后几条指令可能无法被跟踪。
19.4 Program and read the trace unit registers
您可以使用Debug APB接口或系统寄存器接口来编程和读取跟踪单元寄存器。
在编程跟踪单元寄存器时,核心不必处于调试状态。当您编程跟踪单元寄存器时,必须同时启用所有更改。否则,如果您编程计数器,在正确设置触发条件之前,它可能开始基于不正确的事件计数。要禁用跟踪单元,请使用TRCPRGCTLR.EN位。有关以下寄存器的更多信息,请参阅Arm® Architecture Reference Manual Supplement Armv9,针对Armv9-A体系结构配置文件:
- Programming Control Register,TRCPRGCTLR
- Trace Status Register,TRCSTATR
以下图表显示了使用DebugBlock APB接口编程跟踪单元寄存器的流程:

以下图表显示了使用系统寄存器接口编程跟踪单元寄存器的流程:

19.5 Trace unit register interfaces
Cortex®‑A715核心支持一种APB内存映射接口和一种系统寄存器接口来访问跟踪单元寄存器。
根据跟踪单元的状态,寄存器访问方式有所不同。请参阅Arm® Architecture Reference Manual Supplement Armv9,关于Armv9-A体系结构配置文件中的行为和访问机制获取更多信息。
19.6 Interaction with the Performance Monitoring Unit and Debug
跟踪单元与性能监视单元(PMU)进行交互,并且可以访问PMU事件。
与PMU的交互:
Cortex®-A715核心包括一个PMU,可以在一段时间内计数缓存失效和执行指令等事件。
PMU和跟踪单元一起工作。
跟踪单元使用PMU事件:
通过扩展输入功能,PMU体系结构事件可供跟踪单元使用。
跟踪单元使用四个扩展外部输入选择器来访问PMU事件。每个选择器可以独立选择一个PMU事件,然后在相关事件发生的周期内激活。这些选定的事件可以由跟踪单元内的任何事件寄存器访问。
相关信息:
18. 第98页的性能监视器扩展支持
18.1. 第98页的性能监视器事件
19.7 ETE events
Cortex®‑A715核心的跟踪单元从设计中的其他单元收集事件,并使用数字来引用这些事件。
除了第98页上提到的性能监视器事件外,以下表格中列出的事件也被导出。由于我无法查看具体的表格内容,请您提供需要了解的事件列表,我将尽力提供相关信息。

19.8 AArch64 Trace unit registers
这个摘要表格提供了核心中的IMPLEMENTATION DEFINED跟踪寄存器的概述。
要获取有关寄存器的更多信息,请在表格中点击寄存器名称。
对于没有列出复位值的寄存器,请参考寄存器描述页面或Arm ARM中记录的各个字段复位值。

19.9 External ETE registers
这个摘要表格提供了核心中的IMPLEMENTATION DEFINED内存映射ETE寄存器的概述。
要获取有关寄存器的更多信息,请在表格中点击寄存器名称。
对于没有列出复位值的寄存器,请参考寄存器描述页面或Arm ARM中记录的各个字段复位值。


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值