A method and apparatus for storing data in a memory device is described.
The apparatus is configured to perform the following steps. The method
employs a two-step technique which allows the out-of-order completion of
read and write operations. When a write operation requires a resource
needed for the completion of a read operation, the data being written is
stored in a write data buffer in the memory device. The write data is
stored in the buffer until a datapath is available to communicate the
data to the memory device's memory core. Once the resource is free (or
the memory device, or its controller force the write to complete) the
data is written to the memory core of the memory device using the
now-free datapath.