#5972·FEX

未对齐加载和存储实现的内存模型问题

作者: stkstoyanov创建于 2026年9月19日更新于 2026年9月19日

这是我在 Discord 上与 @Sonicadvance1 讨论的问题的总结。我对 FEX 不够熟悉,无法实现补丁,因此我在此处记录它们以供后世参考。模拟内存模型有两个主要问题:修改可见性的顺序和(单份)原子性。前者涉及核心观察变量变化的顺序,后者则涉及观察到的变化是否实际与修改事件相匹配。通常假设只要存储不跨越缓存行边界,就应该具有单份原子性。这在 x86 上是有保证的,参见 最新的英特尔手册 (2026 年 6 月,第三卷系统编程指南) 第 11.1.1 节“保证原子操作”,其中指出原子性适用于:

与缓存行内的未对齐 16、32 和 64 位存取。