refactored for memory controller per channel architecture