15. A method of operating a memory, the method comprising: detecting an error which occurs during accessing an address in a memory array; correcting data corresponding with the detected error; storing the corrected data in a corrected data cache; associating the corrected data with the address in the memory array; outputting the corrected data to circuitry external to the memory; determining whether the error is a hard error or a soft error; and writing the corrected data stored in the corrected data cache back into the memory array if the error is a soft error.
17. The method of claim 15 , further comprising: if the error is a hard error, writing the corrected data back into a redundancy memory; and associating the address in the memory array with an address of the corrected data in the redundancy memory.