什么是Intel LBR(上次分支记录),BTS(分支跟踪存储)和AET(体系结构事件跟踪)?

Posted rtoax

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了什么是Intel LBR(上次分支记录),BTS(分支跟踪存储)和AET(体系结构事件跟踪)?相关的知识,希望对你有一定的参考价值。

https://www.asset-intertech.com/resources/blog/2013/11/what-are-intel-lbr-bts-and-aet/

艾伦·斯吉尼亚(Alan Sguigna)

芯片内的跟踪资源允许查看执行代码和处理器事件。英特尔处理器支持诸如上次分支记录(LBR),分支跟踪存储(BTS)和体系结构事件跟踪(AET)之类的设施。这些是什么?

具有跟踪功能的硬件辅助调试工具可增强基本的源代码级调试功能,例如暂停处理器,单步执行代码以及对寄存器和内存值进行窥视/检查。跟踪允许及时查看代码和事件,以帮助确定系统行为异常的根本原因。在某些Intel处理器上,可以使用三个主要的跟踪资源:LBR,BTS和AET。

LBR在特定于模型的寄存器(MSR)中存储了非常有限的跟踪信息(通常为4 – 16个分支位置)。它几乎没有开销。

BTS使用RAM缓存(CAR)或系统DRAM来存储更多的指令和事件,仅受目标系统上的内存量限制。与LBR不同,BTS开销影响从20%到100%不等。

与LBR或BTS相比,AET提供了更多的选择性跟踪,并且跟踪数据可以通过处理器的XDP端口进行传输。可选择性跟踪的体系结构事件的示例包括中断,异常,从特定于模型的寄存器(RDMSR)读取,写入特定于模型的寄存器(WRMSR),IN / OUT指令,代码/数据断点,系统管理中断(SMI)和MWAIT 。开销取决于跟踪数据的范围,但是如果捕获所有事件,则开销可能很大。

LBR,BTS和AET一起使用,为希望快速发现错误并开发高质量代码的工程师提供了一套全面的片上嵌入式仪器。

可在以下位置对该主题进行更深入的处理:http : //www.asset-intertech.com/Products/Software-Debug-and-Trace/Faster_Firmware_Debug_Intel_Embedded_Trace_Tools

 

以上是关于什么是Intel LBR(上次分支记录),BTS(分支跟踪存储)和AET(体系结构事件跟踪)?的主要内容,如果未能解决你的问题,请参考以下文章

perf中branch-filter到底是干嘛的?

独行巨蟹:BTS2.0那些事儿

BTS3900和DBS3900有啥区别?谢谢

BTS3900和DBS3900有啥区别?谢谢

[BTS] BizTalk EDI character set and separator settings

如何使用 Intel Pin 工具生成分支列表?