NAND flash-based storage device and methods of using
First Claim
Patent Images
1. A NAND flash memory-based solid state drive comprising:
- at least one NAND flash memory component that is organized in blocks, pages and cells and defines a memory space partitioned into at least an overprovisioning pool and a user memory pool for host writes and permanent storage, respectively, a first number of the blocks being dynamically assigned to the overprovisioning pool and at least one bit per cell is stored in the first number of the blocks using only a first mode of operation, and data being consolidated in a second number of the blocks that are dynamically assigned to the user memory pool and two or more bits per cell are stored in the second number of the blocks using only a second mode of operation; and
means for dynamically cycling the first and second numbers of the blocks between the overprovisioning pool and the user memory pool on demand and based on wear history thereof;
wherein the first mode of operation entails programming fewer bits of a cell in fewer passes as compared to the second mode of operation, and all data written by a host computer to the at least one NAND flash memory component are written to the overprovisioning pool using the first mode.
13 Assignments
0 Petitions
Accused Products
Abstract
A solid state drive having at least one NAND flash memory component organized in blocks, pages and cells. Each cell is adapted to store at least two bits. Each block of the memory component is adapted to be dynamically configured to store at least one bit per cell using a first mode of operation and dynamically configured to store at least two bits per cell using a second mode of operation while the mass storage device is operating, wherein the first mode of operation entails programming fewer bits of a cell in fewer passes as compared to the second mode of operation.
18 Citations
20 Claims
-
1. A NAND flash memory-based solid state drive comprising:
-
at least one NAND flash memory component that is organized in blocks, pages and cells and defines a memory space partitioned into at least an overprovisioning pool and a user memory pool for host writes and permanent storage, respectively, a first number of the blocks being dynamically assigned to the overprovisioning pool and at least one bit per cell is stored in the first number of the blocks using only a first mode of operation, and data being consolidated in a second number of the blocks that are dynamically assigned to the user memory pool and two or more bits per cell are stored in the second number of the blocks using only a second mode of operation; and means for dynamically cycling the first and second numbers of the blocks between the overprovisioning pool and the user memory pool on demand and based on wear history thereof; wherein the first mode of operation entails programming fewer bits of a cell in fewer passes as compared to the second mode of operation, and all data written by a host computer to the at least one NAND flash memory component are written to the overprovisioning pool using the first mode.
-
-
2. A NAND flash memory-based solid state mass storage device comprising:
-
a substrate; at least one NAND flash memory component on the substrate, the at least one NAND flash memory component being organized in blocks, pages and cells, each of the cells being adapted to store at least two bits; a flash memory controller on the substrate; an interface on the substrate adapted to functionally connect the mass storage device to a host computer system; and a non-volatile memory on the substrate and storing firmware of the mass storage device; and
means for dynamically configuring each block to store at least one bit per cell using a first mode of operation and dynamically configuring each block to store two or more bits per cell using a second mode of operation while the mass storage device is operating,wherein the at least one NAND flash memory component defines a memory space partitioned into at least an overprovisioning pool and a user memory pool, each of the overprovisioning and user memory pools containing a plurality of the blocks that can be cycled from the overprovisioning pool to the user memory pool, wherein all data written by the host computer system to the storage device are written to the overprovisioning pool, and wherein blocks written to by the host computer system are written in the first mode, wherein the first mode of operation entails programming fewer bits of a cell in fewer passes as compared to the second mode of operation. - View Dependent Claims (3, 4, 5, 6, 7, 8, 9)
-
-
10. A method for increasing write performance and endurance of a NAND flash-based solid state drive having at least one NAND flash memory component organized in blocks, pages and cells with each cell adapted to store at least two bits, the method comprising:
-
directing all host writes of data to an overprovisioning pool containing a first number of blocks that are temporarily and dynamically reconfigured to be programmed to store at least one bit per cell using a first mode of operation; and subsequently coalescing the data in a second number of the blocks that are programmed to store two or more bits per cell using a second mode of operation; wherein the first mode of operation entails programming fewer bits of a cell in fewer passes as compared to the second mode of operation.
-
-
11. A method for increasing write performance of a NAND flash based solid state storage device operating with a host computer and having an array of NAND flash memory components that are organized into blocks and pages and having cells capable of storing at least two bits per cell, the method comprising:
-
partitioning the array into an over-provisioning pool and a user memory pool, wherein the blocks of the memory components are dynamically allocated to either the over-provisioning pool or the user memory pool; directing all host writes of data to the overprovisioning pool; and configuring blocks allocated to the overprovisioning pool to write fewer bits per cell in fewer passes if a write originates from the host computer as compared to blocks allocated to the user memory pool. - View Dependent Claims (12, 13, 14, 15)
-
-
16. A NAND flash-based solid state drive comprising:
-
a substrate; at least one NAND flash memory component mounted on the substrate, organized in blocks, pages and cells, and defining a memory space of the solid state drive, the blocks containing at least first and second pages associated with first and second bits stored in each of the cells; a flash memory controller operatively coupled to the at least one memory component, the flash memory controller receiving control and data signals from a host computer system, the flash memory controller further being configured through firmware to partition the memory space into an overprovisioning pool and a user memory pool, the controller further allocating the blocks of the at least one NAND flash memory component to the user memory pool and to the overprovisioning pool, and configuring the blocks allocated to the overprovisioning pool to disallow writing data to the second pages, the blocks of the at least one NAND flash memory component further containing third pages associated with third bits stored in each of the cells and configured to disallow writing data to the second and third pages of any one of the blocks if the one block is dynamically allocated to the overprovisioning pool. - View Dependent Claims (17, 18)
-
-
19. A method of increasing endurance of a solid state drive having NAND flash memory components organized in blocks, pages and cells, each of the cells being adapted to store at least two bits, the method comprising:
-
monitoring a bit error rate of each block; and dynamically reconfiguring a particular block to allow storing of a single bit per cell if the bit error rate of the particular block increases beyond a threshold, wherein the solid state drive is partitioned into an overprovisioning pool and a user memory pool, and all blocks configured to allow storing of a single bit per cell are allocated to the overprovisioning pool, wherein all data written to the solid state drive by a host computer are written to blocks in the overprovisioning pool, and wherein data from the blocks in the overprovisioning pool are consolidated in blocks allocated to the user memory pool using at least two bits per cell. - View Dependent Claims (20)
-
Specification