cpu性能优化之流水线以及cache问题

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接口)?

Parents
  • 你好,

    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。如果有更进一步的问题,建议向工具专家咨询。

Reply Children
No Data