Variable resistance memories (ReRAM: Resistance RAM) and so forth, which can be easily formed in 3 dimensions, have received attention as mass data storable memories. Technologies for storing mass data include not only the use of specific memory cells such as ReRAM but also multi-leveling of memory cells. This technology can be found, for example, in NAND flash memories.
When memory cells are multi-leveled in this way, data errors may occur easily. Therefore, a technology for detecting and correcting errors in data becomes essential. Therefore, up to now, there have been proposed memory controllers that contain various error detection and correction systems.
When memory devices are constructed using these memory controllers, the ability of discriminating the contents of processing in the memory controllers is effective from the viewpoint of the reliability of the entire memory system, the efficiency of data processing, and the extensibility of the memory system.