英特尔处理器如何访问Branch Trace Store缓冲区?

时间:2015-07-07 14:26:47

标签: linux linux-kernel x86 kernel intel

英特尔处理器具有分支跟踪存储(BTS)功能,可记录分支并将其存储在用户/程序指定的缓冲区中。实际上我想知道处理器是通过MMU单元(页面表)访问BTS缓冲区还是直接物理访问BTS缓冲区?

1 个答案:

答案 0 :(得分:4)

来自Intel Manual Volume 3, Chapter 17.4.9 (BTS and DS Save Area) 32位版本 Debug Store 区域的图像

enter image description here

  

BTS缓冲区基础 - BTS缓冲区第一个字节的线性地址。该地址应指向自然双字边界。

IA32_DS_AREA MSR

  

将DS缓冲区管理区域的基本线性地址写入IA32_DS_AREA MSR。

通常,您设置到处理器的每个地址都是一个线性地址,因此它与所设置的段无关,因此只有在激活时才会进行分页。
当然,只有在不创建递归依赖的情况下才会这样,例如 CR3 寄存器。

直接回答您的问题:如果激活了分页,则会转换给定的地址,否则会按原样使用