【发布时间】:2014-06-03 08:57:51
【问题描述】:
我目前正在阅读 ARMv7 内核的 ARM 架构手册。在 A3.5.3 关于内存访问原子性的章节中,它指出:
如果单副本原子加载与单副本原子存储重叠并且 对于任何重叠字节,加载返回由写入的数据 插入到该字节的一致性顺序中的写入由 单副本原子存储,则加载必须从一个点返回数据 在连贯顺序不早于写入插入到 所有数据的单副本原子存储的一致性顺序 重叠字节。
作为非英语母语者,我承认我在理解这句话时有些困难。
是否存在对内存字节的写入未插入到一致性顺序中的情况,因此上述内容不适用?如果不是,我是否正确地说将句子缩短并改写为以下内容:
如果加载恰好返回至少一个字节的 写入,则加载必须从一个点返回所有重叠字节 不早于写入将它们插入的位置 所有重叠字节的一致性顺序。
还是一样的意思吗?
【问题讨论】:
-
这也是我的理解。我感觉到你的痛苦;读到这让我头晕目眩。我不确定这是一个很好的 SO 问题,但这是一个很好的问题。无论如何,有很多学术论文,人们用段落和段落来说明一个简单的观点。可能一个重要的问题是保持一致。例如,
strb到字节 0、1、2、3 和完整单词上的ldr应该表现相似。我认为这是 single-copy atomic 位。ldr到 addr+2 不会是单拷贝原子。即,未对齐的读取。 -
@Vroomfondel,这是一个非常令人困惑的话题,作为一个以英语为母语的人,我也不清楚这句话。此外,由于您和我都引用了同一 mcu 系列的技术参考手册 (A3.5.3) 的完全相同的部分,因此我也想在此处发布我的相关问答,因为我认为这与讨论非常相关:@ 987654321@.
标签: memory arm atomic cortex-a