对于ARM,为什么单个STM指令通常比多个STR指令更快?

Mar*_*Cao 3 arm

它与某些预取技术有关吗?或者具有DDR接入时序特性?

Nic*_*rth 6

IIRC从ARMv5TE开始,写缓冲区和L1高速缓存的路径为64位宽,以适应LDRD/STRD指令.这允许STM每个周期写入两个寄存器.

您还将节省一些L1指令缓存,并且在双发布内核上仅使用一个管道,这也是一个额外的增益.