Patent ID: 8589638

Claim:
Data access control circuitry for controlling an order of data access requests to a data storage recipient, said data storage recipient being a point of convergence of said data with no downstream reconvergence and no side effects of said read or write requests, said data access requests comprising read requests received as a stream of requests on a read channel and write requests received as a stream of requests on a write channel, each of said streams of requests further comprising corresponding barrier transactions, said corresponding barrier transactions indicating corresponding points in said streams of requests that at least some requests should not be reordered around in order to maintain data consistency, said data access control circuitry comprising: barrier response generating circuitry located on said read and said write channels and being responsive to receipt of one of said barrier transactions: to issue a response to said received barrier transaction such that subsequent requests in said stream of requests are not blocked by said barrier transaction and can be received and to terminate said received barrier transaction and not transmit said received barrier transaction further; and to mark requests subsequent to said received barrier transaction in said stream of requests with a barrier context value identifying said received barrier transaction; wherein said data access control circuitry comprises a point of data consistency on said write channel prior to said data storage recipient and said data access control circuitry comprises comparison circuitry configured to compare said barrier context value of each write request to be issued to said data storage recipient with said barrier context values of at least some pending read requests, said pending read requests being requests received at said data access control circuitry but not yet issued to said data storage recipient and: in response to detecting at least one of said pending read requests with an earlier barrier context value identifying a barrier transaction that has a corresponding barrier transaction in said stream of requests on said write channel that is earlier in said stream of requests than said write request, stalling said write request until said at least one pending read request has been performed; and in response to detecting no pending read requests with said earlier barrier context value, issuing said write request to said data storage recipient.