1、A53的8 stage in-order流水线信息可以去哪查找(fmla是9cycles的latency,那么在8级流水线里面是怎么分配这9个cycles的呢)?2、同样的指令,如FMLA,在A57下是9个cycle,但是在A72下却是7个cycle,那么在A53下是多少个呢(官网上没找到数据)?3、cpu访问L1 cache需要几个cycles? L1 cache访问L2 cache呢? L2 cache访问DRAM呢?4、CPU读内存优化有什么技巧呢?5、有没有什么比较好的profire工具呢(目前在Linux下用perf接口)?
你好,
1)这里可能先要搞清楚 9 cycle latency的定义是什么。通常来讲Arm文档里出现的latency都是指的是从operand available到指令完成时候的cycle数,而不是指令从第一次fetch到完成,在pipeline的所有时间。所以这个cycle数和流水线的级数没有直接的关系。
2)关于流水线的详细信息已经每条指令执行的cycle数,应该没有太多的公开信息可以参考。
3)不同CPU的L1 hit,L2 hit latency都是不一样的。A53 L1 hit是1个Cycle,L2 hit大约是11个cycle。访问DDR的latency由系统决定。
4)这个问题比较难回答。一般来讲,performance会受外部memory system (总线,DDR等)的影响较大。有没有优化的空间,怎么优化也要看实际的系统。
5)Arm的DSTREAM支持profiling。如果有更进一步的问题,建议向工具专家咨询。
首先非常感谢您的回答!
A53的具体指令 execute latency我通过设计一定的实验结合手推流水线得出来了。
再次感谢您~