A memory system, comprising: a resistive nonvolatile memory array configured to store data, [[and]] look-ahead bits, and error correction code bits corresponding to the stored data and the stored look-ahead bits, wherein the look-ahead bits indicate a quality of the data bits stored in the nonvolatile memory array, and a total number of the look-ahead bits is fewer than a total number of the data bits, characterized in that a memory controller is configured to: (510, 610) perform a read operation on the look-ahead bits and the ECC bits to detect data bit errors in units of the stored data and look-ahead bit errors among the stored look-ahead bits; (520, 620) detect a number of the look-ahead bit errors; (530, 650) compare the number of the look-ahead bit errors to a threshold number for the look-ahead bit errors; (550, 670) perform a strong refresh on all of the data bits and the look-ahead bits stored in the resistive nonvolatile memory array when the number of the look-ahead bit errors equals or exceeds the threshold number for the look-ahead bit errors; and (540, 660) perform a weak refresh by refreshing only the units of the stored data having the data bit errors and the stored look-ahead bits having the look-ahead bit errors when the number of the look-ahead bit errors is less than the threshold number for the look-ahead bit errors. a resistive nonvolatile memory array configured to store data, [[and]] look-ahead bits, and error correction code bits corresponding to the stored data and the stored look-ahead bits, wherein the look-ahead bits indicate a quality of the data bits stored in the nonvolatile memory array, and a total number of the look-ahead bits is fewer than a total number of the data bits, characterized in that a memory controller is configured to: (510, 610) perform a read operation on the look-ahead bits and the ECC bits to detect data bit errors in units of the stored data and look-ahead bit errors among the stored look-ahead bits; (520, 620) detect a number of the look-ahead bit errors; (530, 650) compare the number of the look-ahead bit errors to a threshold number for the look-ahead bit errors; (550, 670) perform a strong refresh on all of the data bits and the look-ahead bits stored in the resistive nonvolatile memory array when the number of the look-ahead bit errors equals or exceeds the threshold number for the look-ahead bit errors; and (540, 660) perform a weak refresh by refreshing only the units of the stored data having the data bit errors and the stored look-ahead bits having the look-ahead bit errors when the number of the look-ahead bit errors is less than the threshold number for the look-ahead bit errors. (510, 610) perform a read operation on the look-ahead bits and the ECC bits to detect data bit errors in units of the stored data and look-ahead bit errors among the stored look-ahead bits; (520, 620) detect a number of the look-ahead bit errors; (530, 650) compare the number of the look-ahead bit errors to a threshold number for the look-ahead bit errors; (550, 670) perform a strong refresh on all of the data bits and the look-ahead bits stored in the resistive nonvolatile memory array when the number of the look-ahead bit errors equals or exceeds the threshold number for the look-ahead bit errors; and (540, 660) perform a weak refresh by refreshing only the units of the stored data having the data bit errors and the stored look-ahead bits having the look-ahead bit errors when the number of the look-ahead bit errors is less than the threshold number for the look-ahead bit errors.