Arm 返回堆栈是否在Zynq 7000 SOC中实现

Arm 返回堆栈是否在Zynq 7000 SOC中实现,arm,xilinx,branch-prediction,zynq,Arm,Xilinx,Branch Prediction,Zynq,我正在从事一些基于ZC706板的研究项目,该板包含Zynq-7000 soc。我需要知道Zynq-7000中的Cortex-A9 Cpu实现了返回堆栈缓冲区(返回堆栈缓冲区是一种程序流推测技术,如分支预测)或否。在Zynq-7000技术参考手册中,我看到一些寄存器表明返回堆栈已实现或否 正如您在ETMCCER寄存器中看到的,位23指示返回堆栈实现细节,其重置值为0 现在我想知道,这意味着返回堆栈没有在这个SOC中实现?对吧? 请原谅我提出一个简单的问题,但我真的很怀疑,我想知道在ARM内核中实

我正在从事一些基于ZC706板的研究项目,该板包含Zynq-7000 soc。我需要知道Zynq-7000中的Cortex-A9 Cpu实现了返回堆栈缓冲区(返回堆栈缓冲区是一种程序流推测技术,如分支预测)或否。在Zynq-7000技术参考手册中,我看到一些寄存器表明返回堆栈已实现或否

正如您在ETMCCER寄存器中看到的,位23指示返回堆栈实现细节,其重置值为0

现在我想知道,这意味着返回堆栈没有在这个SOC中实现?对吧?


请原谅我提出一个简单的问题,但我真的很怀疑,我想知道在ARM内核中实现返回堆栈缓冲区是可选的。

PTM中的返回堆栈功能与处理器中的性能功能无关

对于PTM(和ETMv4),如果间接分支地址与先前跟踪的分支和链接指令的状态相匹配,则无需对其进行跟踪。这样可以在一定程度上减少跟踪带宽


所有为A级CPU构建的PTM和ETM都可能实现返回堆栈。由于上面所有的寄存器都是RAZ,我猜这个设备中没有PTM(但这与实际情况相矛盾)。

许多SOC功能都是可选的。考虑具有128kb或4Mb的L2高速缓存的CordX-A9;他们将在不同的时间完成相同的代码。RSB是一种优化,可以避免内存负载并保持管道已满。相同的二进制代码将产生相同的结果,但时间不同。供应商为核心内存(DDR)填充的内容也会影响计时。某些DDR比其他DDR更快,如果没有缓存有数据,则可能有更多的等待状态/延迟。因此,返回堆栈是可选的,就像文档状态一样。