1. A method for dispatching read and write requests to a memory, comprising: queuing at least one write request in a write queue; queuing an incoming read request in a read queue; comparing the read request with the write request(s) in the write queue to detect a matching write request; if there is a matching write request, storing a write queue index of the matching write request as a first entry in an ordering queue; and dispatching one or more of the write request(s) to the memory in response to the first ordering queue entry.