A memory controller includes a write data module to write user data,
parity information, and error correction information in a memory. The
memory controller includes a read data module to read the user data and
parity information, determine whether there is error in the user data
based on the parity information, read the error correction information if
there is error as determined based on the parity information.