Patent ID: 8689077

Claim:
An apparatus for refreshing memory cells in a memory that may have relatively short data retention times, the apparatus comprising: an ECC generator located in a memory controller, the ECC generator coupled to receive write data from a memory module having the memory and to generate respective ECC syndrome bits corresponding to the write data; a storage device located in the memory module; an ECC checker located in the memory controller, the ECC checker coupled to receive read data from the memory module along with corresponding stored ECC syndrome bits, the ECC checker being operable to detect if the read data are in error based on the ECC syndrome bits corresponding to the read data, the ECC checker being operable to output an error signal responsive to detecting a read data error; a refresh shadow counter located in the memory controller, the refresh counter being operable to generate row addresses that are provided to the memory for refreshing rows of the memory cells, wherein the refresh shadow counter is configured to shadow a refresh counter in the memory; a memory control state machine located in the memory controller, the memory control state machine coupled to receive the error signal from the ECC checker and being operable to cause to be stored in the storage device the respective addresses corresponding to memory cells from which the erroneous read data was read, the memory control state machine further being operable to issue refresh commands to the memory and control the refresh shadow counter to provide the row addresses to the memory for refreshing rows of memory, wherein a refresh command issued by the memory control state machine comprises a command to insert a refresh command to a row address identified by the refresh shadow counter; and a refresh circuit coupled to the storage device and being operable to refresh rows of the memory cells corresponding to the respective addresses stored in the storage device more frequently than the rate which other rows of memory cells are refreshed.