Design and Analysis of an Adjacent Multi-bit Error Correcting Code for Nanoscale SRAMs