IP Library Granted Patent US 8,797,798
Granted Patent B2
US 8,797,798 · App. 13/957,234 · Granted Aug 5, 2014

Flash EEPROM system with simultaneous multiple data sector programming and storage of physical block characteristics in other designated blocks

Inventors: Kevin M. Conley (San Jose, CA); John S. Mangan (Santa Cruz, CA); Jeffrey G. Craig (Fremont, CA)
Assignee: Sandisk Corporation
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,797,798
App. No.
13/957,234
Granted
Aug 5, 2014
Kind
B2
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. 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. 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.

Claims (20)

1. A method of operating a re-programmable non-volatile memory system having its memory cells organized into distinct blocks of simultaneously erasable cells, comprising:

receiving data from outside the memory system for storage in the memory system,

designating a first group of one or more blocks of memory cells for storage of the received data,

generating records of characteristics of individual ones of the first group of blocks of memory cells,

writing the received data into a first group of blocks of memory cells but not including the generated records of characteristics of said first group of blocks of memory cells,

writing the generated records of characteristics of individual ones of the first group of blocks of memory cells into a second group of one or more blocks of memory cells but without including the received data.

2. The method of claim 1 , wherein storing the plurality of records in individual ones of the second group of said blocks includes storing a redundancy code generated from records written therein.

3. The method of claim 1 , wherein storing, in the second group of blocks, the plurality of records of characteristics of the first group of blocks individually includes storing programming and reading characteristics of a corresponding one of the first group of blocks.

4. The method of claim 1 , additionally comprising:

reading the records from a plurality of said second group of blocks and storing the read records in a controller memory, and

when accessing one or more of the first group of blocks to program received data therein or to read received data therefrom, reading from the controller memory those of the records stored therein which contain the characteristics of said one or more of the first group of blocks being accessed.

5. The method of claim 4 , wherein records of at least one of the plurality of second blocks stored in the controller memory which have the longest time since being read are removed therefrom when a limited capacity of the controller memory requires space to be made for records from another of the plurality of said second blocks to be stored therein in order to be read when one or more of corresponding ones of the first group of blocks is being accessed.

6. The method of claim 4 , wherein, when a plurality of the first group of blocks with successive addresses are being accessed, an address of a record stored in the controller memory that corresponds to a first of the addressed block within the first group of blocks is calculated and remaining records within the controller memory that correspond to others of the plurality of the first group of blocks being accessed are addressed by incrementing from one record address to another.

7. The method of claim 1 , wherein storing, in the second group of blocks, the plurality of records of characteristics of the first group of blocks individually includes storing an indication of whether a corresponding block within said first group is defective or not, and, if so, storing in the second group of blocks an address of a substitute block, and, if not, storing in the second group of blocks operating characteristics of the corresponding block within said first group.

8. The method of claim 7 , wherein storing operating characteristics includes storing any of programming, reading, erase or wear characteristics of the corresponding block within the first group.

9. The method of claim 1 , wherein storing, in the second group of blocks, the plurality of records of characteristics of the first group of blocks individually includes storing indications of locations of any bad columns that extend through corresponding blocks within said first group.

10. The method of claim 9 , wherein storing received data into individual ones of the first group of blocks and storing block characteristic records into individual ones of the second group of blocks includes skipping any bad column locations in the respective blocks.

11. The method of any one of claim 1 , 3 or 7 , wherein characteristics of the received data being stored in individual ones of the first group of said blocks are additionally stored therein along with the received data to which such characteristics relate.

12. The method of any one of claim 1 , 3 or 7 , wherein the memory cells within at least a plurality of said blocks are individually operated with more than two storage states in order to store more than one bit of data per memory cell.

13. The method of any one of claim 1 , 3 or 7 , wherein the memory cells within at least a plurality of said blocks are individually operated with exactly two storage states in order to store exactly one bit of data per memory cell.

Assignments (2)
CHANGE OF NAME Recorded May 25, 2016
From: SANDISK TECHNOLOGIES INC
To: SANDISK TECHNOLOGIES LLC
Reel/Frame 038807/0948 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 14, 2016
From: SANDISK CORPORATION
To: SANDISK TECHNOLOGIES INC.
Reel/Frame 038438/0904 →
Continuity (12)
Continuation 13550157 · Jul 16, 2012
Continuation 13027055 · Feb 14, 2011
Continuation 12624258 · Nov 23, 2009
Division 12403014 · Mar 12, 2009
Division 12061020 · Apr 2, 2008
Continuation 11679012 · Feb 26, 2007
Continuation 11323576 · Dec 29, 2005
Continuation 10841406 · May 6, 2004
Continuation 10422216 · Apr 23, 2003
Continuation 10176880 · Jun 21, 2002
Continuation 09505555 · Feb 17, 2000
Related Publication 20140133234A1 · May 15, 2014