A memory controller, system, and methods are disclosed. The system
comprises a memory controller interconnected to a plurality of memory
chips. Each memory chip stores data at a plurality of locations. The
memory controller performs a sparing transaction comprising reading data
from a given location of one or more of the memory chips including a
first memory chip, writing the data to a given location of one or more of
the memory chips including a second memory chip, wherein during writing,
data from the first memory chip is written to the second memory chip, and
allowing additional memory transactions directed to the memory chips
between the start of reading and the end of writing unless the additional
memory transaction is targeted to the given location. In a further
embodiment, the sparing transaction comprises correcting errors in the
data before writing the data.