A method of data processing in a data processing system implementing a weak memory model, wherein the data processing system includes an interconnect fabric and a processor core having a store-through upper level cache and a store-in lower level cache, the method comprising:
- the lower level cache receiving, from the processor core, a plurality of copy-type requests specifying addresses from which data is to copied and a plurality of paste-type requests specifying addresses to which the data is to be copied, wherein the plurality of copy-type requests and the plurality of paste-type requests together indicate a memory move to be performed;
- the lower level cache receiving, from the processor core, a barrier request that requests enforcement of ordering of all memory access requests prior to the barrier request with respect to all memory access requests after the barrier request;
- and
- prior to completion of processing of the barrier request by the lower level cache, the lower level cache speculatively issuing a request on the interconnect fabric to obtain a copy of a data granule specified by a particular copy-type request among the plurality of copy-type requests, wherein the particular copy-type request follows the barrier request in program order.