对于Cortex M0 M3 M4 的我知道可以在其《Technical Reference Manual 》> Programmers Model > Instruction set summary 里面查看
http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0432c/CHDCICDF.html
但是到了M7, 他告诉我去ARM-V7-M的手册中找
“The processor implements the ARMv7-M instruction set and features provided by the ARMv7E-M architecture profile. For more information about the ARMv7-M instructions, see the ARM®v7-M Architecture Reference Manual.” -----《ARM Cortex-M7 Processor Technical Reference Manual》Programmers Model > Instruction set summary > Binary compatibility with other Cortex processors
但是在 V7-M 手册里,也没有找到具体的指令执行周期。请问应该去哪里找呢
这种算法性能评估就是典型的应用,不建议用CPI。而普通benchemark生成最终跑分的方法非常具有参考价值。简单说,就是统计跑一个算法用了多少时间,然后normalized到某个频率下的数值就是结果。比如,你用100MHz频率跑某个算法用了时间T,那么T/100 (Normalized to 1MHz)的结果就是性能的跑分。
前面说过,由于测不准的问题,你现在就算跑出一个CPI,我跟你很负责任的讲,换个编译器,换个编译器版本,换个编译选项,甚至改了几行无关紧要的代码,最后CPI都会变的。这里水很深。不然Benchmark也不会有人说水很深了。
这样啊,感觉不只是水很深的样子了,简直是毫不可测。loop的时候,branch predicter 是不是也有影响,branch predicter里面是不是有pid什么的算法