Method of managing defects in flash disk memories
First Claim
1. A method for write defect management in a memory array divided into individually erasable blocks of memory, said method comprising the steps of:
- generating a block status table for each block in each memory array;
executing a program operation with data to a block of memory at a first offset address;
determining whether an error occurred in said program operation to said block;
checking said block status table to determine whether a previous error occurred in said block if an error occurred in said program operation;
generating a first questionable indication for said block in said block status table including identifying said first offset address in said block if an error occurred in said program operation and if said block has no previous questionable indications at said first offset address;
allocating a new offset address in said block for said data if an error occurred in said program operation and if said status table indicates said block was previously marked questionable at said first offset address;
generating a second questionable indication for said block in said block status table if an error occurred in said program operation, and said block has a previous questionable indication but said block has no previous questionable indications at said block offset address; and
marking said block bad if an error occurred in said program operation and if said block has two previous questionable indications; and
allocating a new block for said data if an error occurred in said program operation.
1 Assignment
0 Petitions
Accused Products
Abstract
A method for monitoring the operations of a flash memory array divided into individually erasable blocks of memory in order to assure the integrity of data stored in the array in which each read or write operation is verified to detect an error which may have occurred in the operation including the steps of attempting at least one retry operation whenever an error occurs to determine whether the error is repeatable, marking the block to indicate valid data should be removed from the block if the error is found to be repeatable, removing the valid information from the block if the error is found to be repeatable, and removing a block with a repeatable error from operation.
157 Citations
10 Claims
-
1. A method for write defect management in a memory array divided into individually erasable blocks of memory, said method comprising the steps of:
-
generating a block status table for each block in each memory array; executing a program operation with data to a block of memory at a first offset address; determining whether an error occurred in said program operation to said block; checking said block status table to determine whether a previous error occurred in said block if an error occurred in said program operation; generating a first questionable indication for said block in said block status table including identifying said first offset address in said block if an error occurred in said program operation and if said block has no previous questionable indications at said first offset address; allocating a new offset address in said block for said data if an error occurred in said program operation and if said status table indicates said block was previously marked questionable at said first offset address; generating a second questionable indication for said block in said block status table if an error occurred in said program operation, and said block has a previous questionable indication but said block has no previous questionable indications at said block offset address; and marking said block bad if an error occurred in said program operation and if said block has two previous questionable indications; and allocating a new block for said data if an error occurred in said program operation. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A method for read defect management in a memory comprising a plurality of memory arrays divided into individually erasable blocks of memory, said method comprising the steps
generating a bad block status area on said array; -
executing a read operation to a block at an offset address to retrieve data stored in said block; determining whether an error occurred in said read operation to said block; signaling a priority clean-up for said block; marking said block bad in said bad block status area after priority clean-up for said block; polling said bad block status area on said array to determine a status for any block in said array such that determination of bad blocks on said array is readily ascertainable; generating a questionable status table on said array; marking said block questionable in said questionable status table including identifying said offset address if an error occurred in said read operation to said block; executing an erase operation on said block if marked questionable twice including saving said questionable status table; and marking said block bad in said bad block status area if said erase operation fails; and removing said questionable status of said block if said erase operation is successful. - View Dependent Claims (9, 10)
-
Specification