Self-Optimizing Memory Controllers: Proposing Request-level Scheduling