Flash EEPROM system with simultaneous multiple data sector programming and storage of physical block characteristics in other designated blocks
First Claim
1. A method of operating a re-programmable non-volatile memory system having its memory cells organized into distinct blocks of a minimum number of cells that are simultaneously erased prior to re-programming, comprising:
- storing user data in a plurality of said blocks of a first group thereof, storing, in a second group of one or more of said blocks, records of characteristics of individual ones of the first group of blocks, the second group of blocks individually storing a plurality of said records for a plurality of the first group of blocks and a redundancy code calculated from said plurality of records, reading a plurality of records from at least one of the plurality of blocks of the second group and storing them in an additional memory, when accessing a given block of the first group, determining whether a given one of the records containing characteristics of the given block exists in the additional memory, and, if so, thereafter reading the given record from the additional memory, if the given record is determined not to be in the additional memory, reading a plurality of records from at least one of the second group of blocks including the given record and the redundancy code stored therewith, checking the validity of the read records by use of the read redundancy code, storing the plurality of records in the additional memory, and thereafter reading the given record from the additional memory, and utilizing the characteristics read from the given record in connection with accessing the given block.
2 Assignments
0 Petitions
Accused Products
Abstract
A non-volatile memory system is formed of floating gate memory cells arranged in blocks as the smallest unit of memory cells that are erasable together. The system includes a number of features that may be implemented individually or in various cooperative combinations. One feature is the storage in separate blocks of the characteristics of a large number of blocks of cells in which user data is stored. These characteristics for user data blocks being accessed may, during operation of the memory system by its controller, be stored in a random access memory for ease of access and updating. According to another feature, multiple sectors of user data are stored at one time by alternately streaming chunks of data from the sectors to multiple memory blocks. Bytes of data in the stream may be shifted to avoid defective locations in the memory such as bad columns. Error correction codes may also be generated from the streaming data with a single generation circuit for the multiple sectors of data. The stream of data may further be transformed in order to tend to even out the wear among the blocks of memory. Yet another feature, for memory systems having multiple memory integrated circuit chips, provides a single system record that includes the capacity of each of the chips and assigned contiguous logical address ranges of user data blocks within the chips which the memory controller accesses when addressing a block, making it easier to manufacture a memory system with memory chips having different capacities. A typical form of the memory system is as a card that is removably connectable with a host system but may alternatively be implemented in a memory embedded in a host system. The memory cells may be operated with multiple states in order to store more than one bit of data per cell.
-
Citations
20 Claims
-
1. A method of operating a re-programmable non-volatile memory system having its memory cells organized into distinct blocks of a minimum number of cells that are simultaneously erased prior to re-programming, comprising:
-
storing user data in a plurality of said blocks of a first group thereof, storing, in a second group of one or more of said blocks, records of characteristics of individual ones of the first group of blocks, the second group of blocks individually storing a plurality of said records for a plurality of the first group of blocks and a redundancy code calculated from said plurality of records, reading a plurality of records from at least one of the plurality of blocks of the second group and storing them in an additional memory, when accessing a given block of the first group, determining whether a given one of the records containing characteristics of the given block exists in the additional memory, and, if so, thereafter reading the given record from the additional memory, if the given record is determined not to be in the additional memory, reading a plurality of records from at least one of the second group of blocks including the given record and the redundancy code stored therewith, checking the validity of the read records by use of the read redundancy code, storing the plurality of records in the additional memory, and thereafter reading the given record from the additional memory, and utilizing the characteristics read from the given record in connection with accessing the given block. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A method of operating a re-programmable non-volatile memory system having its memory cells organized into distinct blocks of a minimum number of cells that are simultaneously erasable, comprising:
-
storing user data in a first group of said blocks, storing a plurality of data records of characteristics of the first group of blocks in a second group of one or more of said blocks, the second group of blocks individually storing a plurality of such records, in response to a given block of the first group being accessed to perform one or more of programming user data therein, reading user data therefrom or erasing the given block, reading the data of a given one of the records in the second group of blocks containing the characteristics of the given block, and utilizing the read given record data in connection with accessing the given block of the first group. - View Dependent Claims (10, 11, 12, 13)
reading all the records within at least the block of the second group that contains the one record and from which one of the redundancy codes stored therein was calculated, simultaneously reading the one redundancy code, and utilizing the read redundancy code to validate the data read from at least said given record.
-
-
12. The method of claim 11, wherein the characteristics stored in the records include data of one or more of status, programming, reading, erase or wear characteristics of a corresponding one of the blocks of the first group.
-
13. The method of claim 9, wherein utilizing the read given record characteristics data includes setting at least one parameter applied to said given block during its said accessing.
-
14. A method of operating a re-programmable non-volatile memory system having its memory cells organized into distinct blocks of simultaneously erasable cells, comprising:
-
utilizing a first plurality of said blocks for storing user data, storing individually, in at least some of the first plurality of said blocks, two or more sectors of user data without data of characteristics of the first plurality of blocks, utilizing a second plurality of one or more of said blocks for storing data of the characteristics of said first plurality of blocks, and storing, in at least some of the second plurality of said blocks, two or more sectors of records of the characteristics of said at least some of the first plurality of blocks but without storing user data in the second plurality of blocks, the individual sectors containing a plurality of said records. - View Dependent Claims (15, 16, 17)
-
-
18. A method of operating a re-programmable non-volatile memory system having its memory cells organized into distinct blocks of a minimum number of cells that are simultaneously erased prior to re-programming, comprising:
-
storing user data in a first group of said blocks, storing two or more sets of data records of characteristics of the first group of blocks in at least one individual block of a second group of said blocks, the sets of data records individually including a plurality of said records arranged contiguously in an order of sequential addresses of the blocks of the first group to which the data records pertain and a redundancy code calculated from the data records in the set, in response to a given plurality of blocks of the first group having contiguous addresses being accessed sequentially in order of their addresses, reading the data records of one of the sets containing the characteristics of the given plurality of blocks of the first group and the redundancy code of said one set, and validating the read data records of said one set by use of the redundancy code and temporarily storing the validated data records in said order in another memory, associating the individual data records with the plurality of blocks of the first group being accessed sequentially in order of their addresses by reading the validated data records from said another memory in said order, thereby to provide data of the individual records pertaining to the plurality of the blocks of the first group being accessed in the order of their access. - View Dependent Claims (19, 20)
-
Specification