我是一个Cortex A的新手,我知道ARM采用了弱序内存模型,并且有三种互斥的内存类型:
- 强序
- 设备
- 一般
我大致理解了一般内存的作用,以及强序和设备的含义。然而,强序和设备之间的差异令我感到困惑。
根据Cortex-A系列程序员指南,两者唯一的区别在于:
写入强序内存只有在到达被该写入访问的外围设备或内存组件时才能完成。
可以在写入设备内存之前允许其完成。
我不太确定这意味着什么。我猜想,对于使用强序或设备类型的内存访问顺序应与程序员代码一致(无乱序访问)。但如果类型为设备,CPU可能会在访问内存时执行下一个指令,而如果类型为强序,则会等待访问完成。
如果我理解有误,请纠正我,并请告诉我这样做的意义。
提前感谢。