SYSTEM AND METHOD FOR ALLOCATING AND USING SPARE BLOCKS IN A FLASH MEMORY
First Claim
1. A method of operating a Flash memory array comprising:
- allocating a first portion of spare blocks in the Flash memory as a single level cell (SLC) spare block pool, and a second portion of spare blocks in the Flash memory as a multi-level cell (MLC) spare block pool;
replacing bad SLC blocks in the Flash memory with spare blocks from the SLC spare block pool; and
if the number of spare blocks in the SLC spare block pool is less than a minimum SLC spare pool threshold, then re-allocating spare blocks from the MLC spare block pool to the SLC spare block pool.
9 Assignments
0 Petitions
Accused Products
Abstract
A method for using a single spare block pool in flash memory comprising: allocating a plurality of flash memory arrays, wherein each flash memory array comprises a plurality of flash memory blocks; within a main flash memory array: allocating a used block pool comprising a plurality of used blocks and allocating a main spare block pool comprising a plurality of spare blocks; within each of the other flash memory arrays: allocating a used block pool comprising multiple used blocks; allocating a minimum spare block pool comprising a minimum number of spare blocks; allocating the main spare block pool and each of the minimum spare block pools to a single spare block pool; transferring a spare block from the main spare block pool to one of the minimum spare block pools; and transferring a spare block from a first minimum spare block pool to a second minimum spare block pool.
-
Citations
16 Claims
-
1. A method of operating a Flash memory array comprising:
-
allocating a first portion of spare blocks in the Flash memory as a single level cell (SLC) spare block pool, and a second portion of spare blocks in the Flash memory as a multi-level cell (MLC) spare block pool; replacing bad SLC blocks in the Flash memory with spare blocks from the SLC spare block pool; and if the number of spare blocks in the SLC spare block pool is less than a minimum SLC spare pool threshold, then re-allocating spare blocks from the MLC spare block pool to the SLC spare block pool. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A Flash memory device comprising:
-
a plurality of Flash memory blocks; and a controller to; allocate a first portion of spare blocks in the Flash memory as a single level cell (SLC) spare block pool, and a second portion of spare blocks in the Flash memory as a multi-level cell (MLC) spare block pool; replace bad SLC blocks in the Flash memory with spare blocks from the SLC spare block pool; and if the number of spare blocks in the SLC spare block pool is less than a minimum SLC spare pool threshold, then re-allocate spare blocks from the MLC spare block pool to the SLC spare block pool. - View Dependent Claims (7, 8, 9, 10)
-
-
11. A method of operating a non-volatile memory array comprising:
-
allocating N number of portions of spare blocks in the non-volatile memory as N number of multi-level cell (MLCx(N)) spare block pools; exchanging bad MLCx(j) blocks in the non-volatile memory with spare blocks from the MLCx(j) spare block pool; and if the number of spare blocks in an MLCx(j) spare block pool is less than a minimum MLCx(j) spare pool threshold, then transferring spare blocks from the MLCx(j+1) spare block pool to the MLCx(j) spare block pool. - View Dependent Claims (12, 13, 14, 15, 16)
-
Specification