Initially, if the timestamp of an erased block exceeds a duration limit, Step 240 in the aforementioned process will be triggered to write to erased blocks. As mentioned above, writing to erased blocks may also trigger the garbage collection operation in the meantime. Hence, the first reading command in the aforementioned command sequence is to perform the garbage collection operation, in order to read data from the valid pages in the blocks DB0-DBK that located outside the spare pool 138. The readout data will later be transmitted to the controller 120 to be processed with error correction. Next, the processed data (i.e. the second written command in the aforementioned command sequence) will be written to erased blocks. Lastly, the flow goes to Step 250 to select another block from the spare pool to erase, as an alternative of the erased blocks, i.e. the third erase command in the aforementioned command sequence. As can be further seen from the timing diagram in bottom of