A memory read and write request handling method is performed by a memory controller
which buffers incoming memory read and write requests and distributes the requests
across multiple memory banks of a memory system in connection with client processes.
The read and write requests are intelligently reordered utilizing grouping of both
memory reads and memory writes in such a way to minimize the requests processing
time while maintaining data coherency.