Strictly necessary cookies are on by default and cannot be turned off. Functional, Performance and Tracking/targeting/sharing cookies can be turned on below based on your preferences (this banner will remain available for you to accept cookies). You may change your cookie settings by deleting cookies from your browser. Then this banner will appear again. You can learn more details about cookies HERE.
Strictly necessary (always on)
Functional, Performance and Tracking/targeting/sharing (default off)
Question: What is error correcting code (ECC)? How does it help in single-bit error detection and correction?
Error correcting codes are algorithms that allow data that is being read to be checked for errors and, when necessary, corrected on-the-fly. In case of an SRAM during a write operation, the error correction algorithm uses bits from the data word to incorporate parity check bits into the final word that will be stored in the internal memory array. These algorithms are superior to conventional parity-checking methods, where the errors are only detected but not corrected. In the case of ECC, whenever the data is read out, parity bits of the stored data are compared with parity bits of the data being read out. If a single-bit error has occurred, the above comparison will reveal this error. Thus, ECC allows for the detection of soft errors at a minimal cost in terms of circuit complexity and memory width. Figure 1 illustrates an ECC implementation.
Figure 1. ECC Implementation
Hamming code is one of the most popular algorithms for single-bit error detection and correction. Compared to other ECC schemes (for example, Viterbi decoding and Reed-Solomon codes), the Hamming Code circuit is less complex; it consumes the least power and provides the shortest decoding time. A Hamming Code is represented by (n, k), which implies that k-bit data words are mapped to n-bit code-words. The Hamming Code algorithm for single-error correction requires N+1 parity bits for 2^N bits of data.