Flash EEprom system
First Claim
1. A method of operating a data storage system formed of a controller and an array of erasable and re-programmable non-volatile memory cells organized in blocks of a minimum number of cells that are erasable together, comprising:
- maintaining a map of incoming addresses into physical addresses of portions within the memory array, including a list of addresses of defective array portions with pointers linking the defective portions with addresses of substitute good portions, and upon receiving an incoming address, comparing the incoming address with the list of addresses of defective array portions, and, (1) if the comparison is negative, translating the incoming address into an address of an array portion from said map, or (2) if the comparison is positive, translating the incoming address into the address of a substitute good portion from the defective array portion address list.
2 Assignments
0 Petitions
Accused Products
Abstract
A system of Flash EEprom memory chips with controlling circuits serves as non-volatile memory such as that provided by magnetic disk drives. Improvements include selective multiple sector erase, in which any combinations of Flash sectors may be erased together. Selective sectors among the selected combination may also be de-selected during the erase operation. Another improvement is the ability to remap and replace defective cells with substitute cells. The remapping is performed automatically as soon as a defective cell is detected. When the number of defects in a Flash sector becomes large, the whole sector is remapped. Yet another improvement is the use of a write cache to reduce the number of writes to the Flash EEprom memory, thereby minimizing the stress to the device from undergoing too many write/erase cycling.
-
Citations
9 Claims
-
1. A method of operating a data storage system formed of a controller and an array of erasable and re-programmable non-volatile memory cells organized in blocks of a minimum number of cells that are erasable together, comprising:
-
maintaining a map of incoming addresses into physical addresses of portions within the memory array, including a list of addresses of defective array portions with pointers linking the defective portions with addresses of substitute good portions, and upon receiving an incoming address, comparing the incoming address with the list of addresses of defective array portions, and, (1) if the comparison is negative, translating the incoming address into an address of an array portion from said map, or (2) if the comparison is positive, translating the incoming address into the address of a substitute good portion from the defective array portion address list. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
using an error correction code calculated from data stored in the array portions to identify defective ones of the array portions, and adding addresses of defective array portions identified by use of the error correction code to be defective to the list of addresses of defective array portions maintained within the map.
-
-
4. The method of claim 3, wherein the array portions are individual memory cells.
-
5. The method of claim 1, wherein the array portions are individual blocks of memory cells.
-
6. The method of claim 5, additionally comprising erasing a plurality of blocks of memory cells at a time selected by reference to the defective block list to omit any blocks on that list.
-
7. The method of claim 6, wherein the map is maintained within the blocks on the defective block list.
-
8. The method of any one of claims 1-6, wherein the map is maintained in a memory that is part of the controller.
-
9. The method of any one of claims 1-6, wherein the map is maintained within the non-volatile memory.
Specification