Management of non-volatile memory systems having large erase blocks
First Claim
1. A method of writing data into a non-volatile memory system of a type having blocks of memory cells that are simultaneously erasable and which individually store a given number of host units of data, comprising:
- designating a first of the blocks for storage of a number of units of data with sequential logical addresses that is less than a pre-set proportion of the given number, the pre-set proportion being less than the given number,thereafter responding to a plurality of successive host commands to write a number of units of data less than the pre-set proportion of the given number that have sequential logical addresses by writing their data into the first designated block with sequential physical addresses, andresponding to host commands to write a number of units of data having sequential logical addresses that is equal to or in excess of the pre-set proportion of said given number by writing their data into a block other than the first designated block.
3 Assignments
0 Petitions
Accused Products
Abstract
A non-volatile memory system of a type having blocks of memory cells erased together and which are programmable from an erased state in units of a large number of pages per block. If the data of only a few pages of a block are to be updated, the updated pages are written into another block provided for this purpose. The valid original and updated data are then combined at a later time, when doing so does not impact on the performance of the memory. If the data of a large number of pages of a block are to be updated, however, the updated pages are written into an unused erased block and the unchanged pages are also written to the same unused block. By handling the updating of a few pages differently, memory performance is improved when small updates are being made.
78 Citations
19 Claims
-
1. A method of writing data into a non-volatile memory system of a type having blocks of memory cells that are simultaneously erasable and which individually store a given number of host units of data, comprising:
-
designating a first of the blocks for storage of a number of units of data with sequential logical addresses that is less than a pre-set proportion of the given number, the pre-set proportion being less than the given number, thereafter responding to a plurality of successive host commands to write a number of units of data less than the pre-set proportion of the given number that have sequential logical addresses by writing their data into the first designated block with sequential physical addresses, and responding to host commands to write a number of units of data having sequential logical addresses that is equal to or in excess of the pre-set proportion of said given number by writing their data into a block other than the first designated block. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A method of writing data into a non-volatile memory system of a type having blocks of memory cells that are simultaneously erasable and which individually store a given number of host units of data, comprising:
-
designating at least a first one of the blocks to store a number of units of data having sequential logical addresses that is less than a pre-set fraction of said given number, thereafter responding to a plurality of successive host commands to individually write units of data into the memory system by determining whether a number of the units of data with sequential logical addresses is less than the pre-set fraction, and, if so, by writing the data into the first dedicated block, and responding to host commands to write units of data having a number of sequential logical addresses that is equal to or in excess of the pre-set fraction of said given number by writing the data into a block other than the first dedicated block. - View Dependent Claims (7, 8)
-
-
9. A method of operating a non-volatile memory system in response to commands received from a host to individually write logically addressed units of data therein, the memory system having memory cells grouped into blocks of memory cells that are simultaneously erasable and which individually store a given number of units of data at individual physical addresses, the logical addresses of received units of data being mapped within the memory system into corresponding physical addresses where the received units of data are stored, comprising:
-
allocating a first one of the blocks to store units of data having a number of sequential logical addresses less than a pre-determined fraction of said given number, allocating a second one of the blocks to store units of data having a number of sequential logical addresses equal to or in excess of the fraction of said given number, in response to receipt of a command to write data having a number of sequential logical addresses less than said fraction, determining whether the first block has sufficient erased capacity to store the received data and, if so, writing the received data into sequential physical addresses of the first block, and in response to receipt of a command to write data having a number of sequential logical addresses equal to or in excess of said fraction, determining whether the second block has erased capacity to store the data and, if so, writing the data into sequential physical addresses of the second block. - View Dependent Claims (10, 11, 12, 13)
-
-
14. A method of writing data into a non-volatile memory system of a type having blocks of memory cells that are simultaneously erasable and which individually store a given number of host units of data, comprising:
-
designating at least a first one of the blocks to store a number of units of data received by the memory system with individual ones of multiple write commands that have sequential logical addresses less than a pre-set fraction of said given number, responding to the receipt of multiple commands by the memory system to individually write one or more units of data thereinto by, for individual commands, (a) determining whether the command specifies the writing of a number of units of data having sequential logical addresses that is less than the pre-set fraction, and (b) determining whether the first block has enough erased capacity to store the number of units of data provided with the command, wherein when both of conditions (a) and (b) above are determined to exist, thereafter writing the units of data into the first block, but when either one of conditions (a) or (b) above is determined not to exist, writing the units of data into one of the blocks other than the first block. - View Dependent Claims (15, 16, 17)
-
-
18. In a non-volatile memory system having memory cells grouped into blocks of memory cells that are simultaneously erasable and which individually store a given number of units of data at individual physical addresses, the logical addresses of received units of data being mapped within the memory system into corresponding physical addresses where the received units of data are stored, a method of operation in response to received commands to individually write logically addressed units of data therein, comprising:
-
designating a first one of the blocks to store units of data having a number of sequential logical addresses that is less than a pre-determined fraction of said given number, designating a second one of the blocks to store units of data having a number of sequential logical addresses that is greater than the fraction of said given number, providing at least another one of the blocks that is fully erased, and in response to receipt of a command to write data into the memory system, identifying the number of units of the data that have sequential logical addresses, determine whether the number of such units with sequential logical addresses are less than the fraction, and, if so, writing the data to the first of the blocks, but if the amount of data is not less than the fraction, then writing the data to the second of the blocks if there is sufficient capacity therein, but if there is not sufficient capacity in the second of the blocks, writing the data to the fully erased block. - View Dependent Claims (19)
-
Specification