a memory system having a number of partitions each operative to independently service memory requests from a plurality of memory clients while maintaining the appearance to the memory client of a single partition memory subsystem . the memory request specifies a location in the memory system and a transfer size . a partition receives input from an arbiter circuit which , in turn , receives input from a number of client queues for the partition . the arbiter circuit selects a client queue based on a priority policy such as round robin or least recently used or a static or dynamic policy . a router receives a memory request , determines the one or more partitions needed to service the request and stores the request in the client queues for the servicing partitions . in one embodiment , an additional arbiter circuit selects memory requests from one of a subset of the memory clients and forwards the requests to a routing circuit , thereby providing a way for the subset of memory clients to share the client queues and routing circuit . alternatively , a memory client can make requests directed to a particular partition in which case no routing circuit is required . for a read request that requires more than one partition to service , the memory system must collect the read data from read queues for the various partitions and deliver the collected data back to the proper client . read queues can provide data in non - fifo order to satisfy an memory client that can receive data out - of - order .