Flash EEprom system
DC CAFCFirst Claim
1. A method of operating a memory system with a host system, wherein the memory system includes an array of non-volatile memory cells on an integrated circuit memory chip that is partitioned into a plurality of blocks that individually include a distinct group of memory cells that are erasable together as a unit, comprising:
- utilizing said memory chip and a memory controller within a card that is removably connectable to the host system, said controller being connectable to the host system for controlling operation of the memory system when the card is connected thereto, operating individual blocks of memory cells with non-overlapping portions thereof storing at least user data and overhead information, detecting a predefined condition when individual blocks become unusable and linking the addresses of such unusable blocks with addresses of other blocks that are useable, causing the controller, in response to receipt from the host system of an address in a format designating at least one mass memory storage block, to generate an address of a non-volatile memory block that corresponds to said at least one mass memory storage block, accessing a usable block of the memory system, if the block with the generated address is unusable, by referring to the linked address of another block that is usable and then accessing that other block, either writing data to, or reading data from, the user data portion of the accessed usable block, and either writing to, or reading from, said overhead portion of the accessed usable block, information related to either the accessed usable block or data stored in the user data portion of said accessed useful block.
2 Assignments
Litigations
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.
354 Citations
72 Claims
-
1. A method of operating a memory system with a host system, wherein the memory system includes an array of non-volatile memory cells on an integrated circuit memory chip that is partitioned into a plurality of blocks that individually include a distinct group of memory cells that are erasable together as a unit, comprising:
-
utilizing said memory chip and a memory controller within a card that is removably connectable to the host system, said controller being connectable to the host system for controlling operation of the memory system when the card is connected thereto, operating individual blocks of memory cells with non-overlapping portions thereof storing at least user data and overhead information, detecting a predefined condition when individual blocks become unusable and linking the addresses of such unusable blocks with addresses of other blocks that are useable, causing the controller, in response to receipt from the host system of an address in a format designating at least one mass memory storage block, to generate an address of a non-volatile memory block that corresponds to said at least one mass memory storage block, accessing a usable block of the memory system, if the block with the generated address is unusable, by referring to the linked address of another block that is usable and then accessing that other block, either writing data to, or reading data from, the user data portion of the accessed usable block, and either writing to, or reading from, said overhead portion of the accessed usable block, information related to either the accessed usable block or data stored in the user data portion of said accessed useful block. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A method of operating a memory system with a host system, wherein the memory system includes an array of non-volatile memory cells on an integrated circuit memory chip that is partitioned into a plurality of blocks that individually include a distinct group of memory cells that are erasable together as a unit, comprising:
-
utilizing said memory chip and a memory controller within a card that is removably connectable to the host system, said controller being connectable to the host system for controlling operation of the memory system when the card is connected thereto, operating individual blocks of memory cells with non-overlapping portions thereof storing at least user data and overhead information, causing the controller, in response to receipt from the host system of an address in a format designating at least one mass memory storage block, to designate an address of at least one non-volatile memory block that corresponds with said at least one mass memory storage block, either writing user data to, or reading user data from, the user data portion of said at least one non-volatile memory block, and either writing to, or reading from, said overhead portion of said at least one non-volatile memory block, overhead data related either to said at least one non-volatile memory block or to data stored in the user data portion of said at least one non-volatile memory block. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17, 18, 19, 20)
-
-
21. A method of operating, with a host system, a non-volatile memory system that includes an array of non-volatile memory cells on an integrated circuit chip that is partitioned into blocks of memory cells that are erasable together as a unit, comprising:
-
providing said memory array and a memory controller within a card that is removably connectable to the host system, the controller being connectable to said host system for controlling operation of the memory array when the card is connected to the host system, and storage elements of the memory cells within said memory array being individually programmable into one of more than two distinct threshold level ranges corresponding to more than one bit of data per storage element, causing the controller, in response to receipt from the host system of an address in a format designating at least one mass memory storage block, to designate an address of at least one non-volatile memory block that corresponds with said at least one mass memory storage block, either writing user data to, or reading user data from, said at least one non-volatile memory block, either writing to, or reading from, said at least one non-volatile memory block, overhead data related either to said at least one non-volatile memory block or to user data stored in said at least one non-volatile memory block, and wherein the writing of user and overhead data includes programming the storage elements of the individual memory cells of the array into said one of more than two distinct threshold level ranges. - View Dependent Claims (22, 23, 24, 25, 26, 27, 28, 29, 30)
-
-
31. A method of operating a computer system including a processor and a memory system, wherein the memory system includes an array of non-volatile floating gate memory cells on an integrated circuit memory chip that is partitioned into a plurality of sectors that individually include a distinct group of said array of memory cells that are erasable together as a unit, comprising:
-
providing said memory chip and a memory controller within a card that is removably connectable to the computer system, said controller being connectable to said processor for controlling operation of the array when the card is connected to the computer system, partitioning memory cells within individual sectors into at least a user data portion and an overhead portion, detecting a predefined condition when individual sectors become unusable and linking the addresses of such unusable sectors with addresses of other sectors that are useable, causing the controller, in response to receipt from the processor of an address in a format designating at least one magnetic disk sector, to generate an address of a non-volatile memory sector that corresponds to said at least one magnetic disk sector, accessing a usable sector of the memory system, if the sector with the generated address is unusable, by referring to the linked address of another sector that is usable and then accessing that other sector, either writing data to, or reading data from, the user data portion of the accessed usable sector, and either writing to, or reading from, said overhead portion of the accessed usable sector, information related to either the accessed usable sector or data stored in the user data portion of said accessed useful sector. - View Dependent Claims (32, 33, 34, 35, 36, 37, 38, 39)
-
-
40. A method of operating a computer system including a processor and a memory system, wherein the memory system includes an array of non-volatile floating gate memory cells on an integrated circuit chip that is partitioned into a plurality of sectors that individually include a distinct group of said array of memory cells that are erasable together as a unit, comprising:
-
providing said memory chip and a memory controller within a card that is removably connectable to the computer system, said controller being connectable to said processor for controlling operation of the array when the card is connected to the computer system, partitioning memory cells within individual sectors into at least a user data portion and an overhead portion, causing the controller, in response to receipt from the processor of an address in a format designating at least one magnetic disk sector, to designate an address of at least one non-volatile memory sector that corresponds with said at least one magnetic disk sector, either writing user data to, or reading user data from, the user data portion of said at least one non-volatile memory sector, and either writing to, or reading from, said overhead portion of said at least one non-volatile memory sector, overhead data related either to said at least one non-volatile memory sector or to data stored in the user data portion of said at least one non-volatile memory sector. - View Dependent Claims (41, 42, 43, 44, 45, 46)
-
-
47. A method of operating a memory system with a host system that includes a processor, wherein the memory system includes one or more integrated circuit chips individually including an array of non-volatile memory cells partitioned into a plurality of sectors that individually include a distinct group of memory cells that are erasable together as a unit, comprising:
-
providing said one or more chips and a memory controller within a card that is removably connectable to the host system, said controller being connectable to said processor for controlling operation of the memory system when the card is connected to the host system, operating memory cells within individual sectors with at least a user data portion and an overhead portion, detecting a predefined condition when individual sectors become unusable and linking the addresses of such unusable sectors with addresses of other sectors that are useable, causing the controller, in response to receipt from the processor of an address in a format designating at least one mass memory storage block, to generate an address of a non-volatile memory sector that corresponds to said at least one mass memory storage block, accessing a usable sector of the memory system, if the sector with the generated address is unusable, by referring to the linked address of another sector that is usable and then accessing that other sector, either writing data to, or reading data from, the user data portion of the accessed usable sector, and either writing to, or reading from, said overhead portion of the accessed usable sector, information related to either the accessed usable sector or data stored in the user data portion of said accessed useful sector. - View Dependent Claims (48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60)
-
-
61. A method of operating a memory system with a host system that includes a processor, wherein the memory system includes one or more integrated circuit chips individually including an array of non-volatile floating gate memory cells partitioned into a plurality of sectors that individually include a distinct group of memory cells that are erasable together as a unit, comprising:
-
providing said one or more of the memory integrated circuit chips and a memory controller within a card that is removably connectable to the host system, said controller being connectable to said processor for controlling operation of the memory system when the card is connected to the host system, operating memory cells within individual sectors with at least a user data portion and an overhead portion, causing the controller, in response to receipt from the processor of an address in a format designating at least one mass memory storage block, to designate an address of at least one non-volatile memory sector that corresponds with said at least one mass memory storage block, either writing user data to, or reading from, the user data portion of said at least one non-volatile memory sector, and either writing to, or reading from, said overhead portion of said at least one non-volatile memory sector, overhead data related either to said at least one non-volatile memory sector or to data stored in the user data portion of said at least one non-volatile memory sector. - View Dependent Claims (62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72)
-
Specification