Define what a "write buffer" actually is? Really all it means is that writes are held internally and even though the load instruction has retired it may not be visible on the external memory interface yet. In that light you could really view the cache as a very large write buffer for cached memory.
For interest, why do you actually care? The presence of a write buffer is merely an optimization, and as long as you follow the architecture requirements for cache flushes and/or memory barriers you won't have to worry about it.
Write buffer is only used by "Normal" memory , "strongly-ordered" and "device" memory have nothing do do with it. Is this correct?
2. For the normal memory, despite the cacheability configuration, write buffer will always be used? Is this correct?
I got problem about understanding "the load instruction has retired", could you please explain it in other words?