Armv7 Store Buffer


Store Buffer holds store operation before it is commited to Cache or Main Memory.

So only if the proper store buffer entry is drained, can we get the right data by a load operation. Am I right?

If yes, is it possible that we read a unexpected value after a write without a drain request(e.g. DMB)?


No Data
  • Which CPU? v7-M, R or A?

    The reference manual for the CM7 says this:

    5.8.2 Store buffer

    "... The store buffer is drained of all stores to Strongly-ordered or Device memory before a load is
    performed from Strongly-ordered or Device memory."

    But interestingly, nothing can be found about read from normal memory ...