我正在研究一些基于ZC706板的研究项目,其中包含Zynq-7000 soc。我需要知道Zynq-7000中的Cortex-A9 Cpu实现了返回堆栈缓冲区(返回堆栈缓冲区是一种类似于分支预测的程序流推测技术)或否。在Zynq-7000技术参考手册中,我看到了一些寄存器,它们指示是否已实现Return Stack。
在ETMCCER寄存器中可以看到,第23位指示返回堆栈实现的详细信息,其重置值为0。
现在我想知道这意味着在此SOC中未实现Return Stack吗?对吧?
请问一个简单的问题,但我确实对此表示怀疑,我想知道在ARM内核中实现返回堆栈缓冲区是可选的。
答案 0 :(得分:1)
PTM中的返回堆栈功能与处理器中的性能功能无关。
对于PTM(和ETMv4),如果间接分支地址与先前跟踪的分支和链接指令的状态匹配,则无需跟踪。这样可以减少跟踪带宽。
为A级CPU构建的所有PTM和ETM都可能实现返回堆栈。由于上面所有这些寄存器都是RAZ,因此我猜测此设备中没有PTM(但这与datasheet相矛盾)。