TECED: A Two-Dimensional Error-Correction Codes Based Energy-Efficiency SRAM Design