Hi exports:
In ARMv8 spec(K_a), it says:
A Memory Read effect E2 Reads-from-memory a Memory Write effect E1, if and only if E1 and E2 are to the same location and E2 takes its data from E1.
A Memory Read effect E2 of a Location is the Local read successor of a Memory Write effect E1 to the same Location if E1 appears in program order before E2 and there is no Memory Write effect E3 to the same Location appearing in program order between E1 and E2.
what the difference between them ?
An example would be better, thanks very much.
Looking at the Arm ARM definition:
A Read Memory effect R2 of a Location is the Local read successor of a Write Memory effect W1 from the same Observer to the same Location if W1 appears in program order before R2 and there is not a Write Memory effect W3 from the same Observer to the same Location appearing in program order between W1 and R2
(my emphasis)
So the difference is that "Local read successor" requires the Memory Read effect and Memory Write effect to be from the same observer. While for "Reads-from-memory" the read and write effects could be from different observers (e.g. two different cores).
Thank you for the reply.
But in the latest Spec (version:k.a), ARM removes the "from the same observer" description from the definition. That's strange.
Sorry, had the wrong version already open when I went to answer the question.
The new definition has "..appearing in program order..". That implies that it is the same observer, as it doesn't really make sense to talk about program order across PEs.