A design methodology for robust, energy-efficient, application-aware memory systems