大家好,
如第一篇文章所说,今天开始ARM架构的解析与讨论。重点关注架构层面,Memory Model、Exception、Interrupt等。个人见解,可能有偏颇,欢迎大家指正。
ARM架构解析与讨论,基于DDI0487G_b_armv8_arm.pdf版本中A64部分。(不讨论A32部分)
在文章中,会逐个章节讨论。
本文是B2 The AArch64 Application Level Memory Model章节中的B2.1 About the Arm Memory Model节的overview内容。是B2章节内容的开始。
[原文]:
[解析与讨论]:
ARM架构的memory model是weak memory model,它允许memory访问的可见与完成的顺序与程序实际顺序不一致。这里提到的可见与完成,对于Store指令来说,可见与完成由两方面含义:
(1) 本地可见,即执行此Store指令的处理器可见。任何与此地址相关的read都能看到Store的数据。
(2) 全局可见,即在一个Coherence Domain下,多个Observer都可能看到。
这里讨论的可见指的是全局可见。
一般来说,处理器要进行memory访问,需要执行Load/Store等指令。
从程序执行顺序看,Load/Store指令的生命周期是: