Patent ID: 7711891
Filing Date: 2010-05-04
Classification: G06F,G11C

Abstract:
1. A method for simultaneously programming the contents of a plurality of memory devices, the contents of each of the plurality of memory devices organized as a plurality of blocks, the method comprising: (a) selecting one of the plurality of memory devices as a current device; (b) determining whether a first block of the plurality of blocks of the current device needs to be programmed, wherein determining whether the first block of the plurality of blocks of the current device needs to be programmed comprises determining whether the first block of the plurality of blocks needs to be erased, and wherein determining whether the first block of the plurality of blocks needs to be erased comprises (c) if it is determined that the first block of the current device needs to be programmed then, (d) if it is determined that the first block of the current device does not need to be programmed then determining whether the next block of the plurality of blocks of the current device needs to be programmed; (e) in response to the first memory wait state being generated by the current device, determining whether any of the plurality of blocks contained in any of the plurality of memory devices other than the current device remain to be programmed; (f) in response to determining that the plurality of blocks contained in at least one of the plurality of memory devices other than the current device remain to be programmed, identifying a next memory device having a plurality of blocks to be programmed other than the current device; (g) selecting the next memory device; (h) determining whether a first block of the plurality of blocks of the next memory device needs to be programmed; (i) if it is determined that the first block of the next memory device needs to be programmed then, j) if it is determined that the first block of the next memory device does not need to be programmed then determining whether the next block of the plurality of blocks of the current device needs to be programmed; (k) in response to the second memory wait state being generated by the next memory device, determining whether any of the plurality of blocks contained in any of the plurality of memory devices other than the current device and the next memory device remain to be programmed; (l) in response to determining that none of the plurality of blocks contained in at least one of the plurality of memory devices other than the current device and the next memory device remain to be programmed, (m) repeating the operations (b)-(l) until the plurality of blocks contained in each of the plurality of memory devices have been programmed, wherein at least two of the plurality of memory devices are simultaneously programmed.