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