METHODS FOR WRITING DATA TO NON-VOLATILE MEMORY-BASED MASS STORAGE DEVICES
First Claim
1. In a computer system comprising a host, a method of storing data in a non-volatile solid state memory-based mass storage device, the mass storage device having a substrate and at least one non-volatile memory component mounted thereon, memory locations in the non-volatile memory component having first order addresses and second order addresses, the method comprising:
- generating with the non-volatile memory component a record of the number of programming cycles relating to the first order address;
transmitting the record to the host;
selecting with the host a low number of programming cycles within a range of numbers of programming cycles of records relating to the first order addresses as an initial address for a write access to the non-volatile memory device.
2 Assignments
0 Petitions
Accused Products
Abstract
Methods of operating a non-volatile solid state memory-based mass storage device having at least one non-volatile memory component. In one aspect of the invention, the one or more memory components define a memory space partitioned into user memory and over-provisioning pools based on a P/E cycle count stored in a block information record. The storage device transfers the P/E cycle count of erased blocks to a host and the host stores the P/E cycle count in a content addressable memory. During a host write to the storage device, the host issues a low P/E cycle count number as a primary address to the content addressable memory, which returns available block addresses of blocks within the over-provisioning pool as a first dimension in a multidimensional address space. Changed files are preferably updated in append mode and the previous version can be maintained for version control.
26 Citations
18 Claims
-
1. In a computer system comprising a host, a method of storing data in a non-volatile solid state memory-based mass storage device, the mass storage device having a substrate and at least one non-volatile memory component mounted thereon, memory locations in the non-volatile memory component having first order addresses and second order addresses, the method comprising:
-
generating with the non-volatile memory component a record of the number of programming cycles relating to the first order address; transmitting the record to the host; selecting with the host a low number of programming cycles within a range of numbers of programming cycles of records relating to the first order addresses as an initial address for a write access to the non-volatile memory device. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A method for writing data from a host computer system to a NAND flash memory-based mass storage device comprising an array of NAND flash memory components, the mass storage device having a substrate and having mounted thereon a connector to interface with the host computer system, the NAND flash memory components, and a controller IC to provide functional connectivity between the NAND flash memory components and the host computer system, each of the NAND flash memory components having blocks and pages and each block having a block information record, the method comprising:
-
partitioning the array of the NAND flash memory components into a user memory pool and a over-provisioning pool, wherein blocks are dynamically assigned to either pool; transferring the block information record of the program/erase cycle counts of all blocks in the over-provisioning pool to the host; storing the block information records in a content addressable memory on the host; sorting the program/erase cycle counts in the content-addressable memory; selecting a low number of program/erase cycle count to generate the address of a block in the over-provisioning pool; writing the data to pages in the selected block; moving the block from the over-provisioning pool to the user memory pool; replenishing the over-provisioning pool with an erased block from the user memory pool; and updating the block information records stored in the content-addressable memory. - View Dependent Claims (8, 9, 10, 11, 12, 13, 15, 16, 17, 18)
-
-
14. A method for writing data from a host computer system to a NAND flash memory-based mass storage device comprising an array of multi-level cell NAND flash memory components, the mass storage device having a substrate and having mounted thereon a connector to interface with the host computer system, the NAND flash memory components, and a controller IC to provide functional connectivity between the NAND flash memory components and the host computer system, each of the NAND flash memory components having blocks and pages and each block having a block information record, the method comprising:
-
partitioning the array of NAND flash memory components into a user memory pool and a over-provisioning pool, wherein blocks are dynamically assigned to either pool; specifying first blocks of the blocks in the over-provisioning pool to only store a single bit in each cell when a write from the host occurs; transferring the block information record of the program/erase cycle counts of all blocks in the over-provisioning pool to the host; storing the block information records in a content addressable memory on the host; selecting a low number of program/erase cycle count to generate the address of a block in the over-provisioning pool; writing the data to pages in the selected block; moving the block from the over-provisioning pool to the user memory pool; replenishing the over-provisioning pool with an erased block from the user memory pool; and updating the block information records stored in the content-addressable memory.
-
Specification