Block-Enabled Memory Macros: Design Space Exploration and  Application-Specific Tuning