This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

cortex-A15 汇编执行的cycle数与手册中的不一致

各位好,

我在A15上运行裸机程序,我编写一个汇编文件,在调试的时候,单步执行每条指令,通过观察C9_PMCCNTR 寄存器的值,发现汇编执行ADD 指令的时候C9_PMCCNTR 寄存器的值会增加几十个cycle,这个跟手册中执行ADD指令只需要一个cycle的说法不一致。希望各位技术支持给出解答,谢谢。

Parents
  • 你好,

    Add指令需要一个cycle是指add指令停留在pipeline的execution stage需要一个cycle。PMU可以用来做code的profilling,但是不会有这么高的精度。

    另外对于CA15,要实现单步执行,debugger通常会设software breakpoint,这些操作也会影响PMU counter的值。所以你的方法不适合 用来测试单条指令执行需要花费的cycle数。

    手册中的数据并不是测试出来的,而是designer根据pipeline的设计计算出来的。

Reply
  • 你好,

    Add指令需要一个cycle是指add指令停留在pipeline的execution stage需要一个cycle。PMU可以用来做code的profilling,但是不会有这么高的精度。

    另外对于CA15,要实现单步执行,debugger通常会设software breakpoint,这些操作也会影响PMU counter的值。所以你的方法不适合 用来测试单条指令执行需要花费的cycle数。

    手册中的数据并不是测试出来的,而是designer根据pipeline的设计计算出来的。

Children