1. A system for managing memory requests comprising: a first memory controller comprising a first set of processing logic operable to process a first plurality of memory requests according to a first set of rules to generate a first set of pre-scheduled memory requests; and a second memory controller comprising a second set of processing logic operable to process a second plurality of memory requests according to a second set of rules to generate a second set of pre-scheduled memory requests, wherein: the first set of pre-scheduled memory requests are provided to the second memory controller by the first memory controller and the second set of pre-scheduled memory requests are provided to the first memory controller by the second memory controller; and the first set of pre-scheduled memory requests are processed by the second set of processing logic to perform second memory operations and the second set of pre-scheduled memory requests are processed by the first set of processing logic to perform first memory operations.