Adaptive mode switching of flash memory address mapping based on host usage characteristics
First Claim
Patent Images
1. A non-volatile memory system, comprising:
- an array of non-volatile memory cells divided into at least two sub-arrays wherein data are simultaneously accessible in each of the at least two sub-arrays, and data stored within the at least two sub-arrays with at least first and second different interleaving arrangements.
3 Assignments
0 Petitions
Accused Products
Abstract
In a non-volatile memory storage system such as a flash EEPROM system, a controller switches the manner in which data sectors are mapped into blocks and metablocks of the memory in response to host programming and controller data consolidation patterns, in order to improve performance and reduce wear. Data are programmed into the memory with different degrees of parallelism.
314 Citations
13 Claims
-
1. A non-volatile memory system, comprising:
-
an array of non-volatile memory cells divided into at least two sub-arrays wherein data are simultaneously accessible in each of the at least two sub-arrays, and data stored within the at least two sub-arrays with at least first and second different interleaving arrangements. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A method of operating a non-volatile memory system that logically links a block individually a plurality of memory cell sub-arrays
-
7. In a non-volatile memory having a plurality of memory cell sub-arrays that are simultaneously accessible for programming units of data thereto and reading data therefrom in parallel, the individual sub-arrays being divided into blocks of a minimum number of memory cells that are simultaneously erasable, a method of operating the memory, comprising:
-
receiving a command for programming into the memory a specified number of units data less than a total data storage capacity of one block in each of the plurality of sub-arrays and having sequential logical addresses, receiving the specified number of units of data to be programmed, and programming the received units of data with their sequential logical addresses arranged in order across blocks of one or more of the plurality of memory cell sub-arrays according to the specified number of units of data being programmed relative to the total data storage capacity of one block in each of the sub-arrays.
-
-
8. A method of operating a non-volatile memory system, comprising:
-
operating the memory with data being written and read with each of at least a first degree of parallelism and a second degree of parallelism, observing data write requests received by the memory system, and writing data accompanying individual ones of the received write requests with one of said at least first and second degrees of parallelism in response to at least one characteristic of the received write requests. - View Dependent Claims (9)
-
-
10. In a flash memory system having an array of non-volatile memory cells arranged in blocks as a unit of erase, pages therein as a unit of data programming and reading, and planes of a plurality of blocks that are independently accessible, a method of operation, comprising:
logically forming metablocks that individually include a block from a plurality of the planes, sequentially receiving write commands with varying amounts of data, and variously writing the received data in parallel either sequentially into pages within individual blocks of one of the planes or in parallel into pages within two or more blocks of one of the metablocks in response to varying characteristics of the host write commands. - View Dependent Claims (11)
-
12. In a non-volatile memory system having an array of memory cells organized into blocks of cells that are erasable together and which individually store a plurality of units of data, a method of responding to a series of write commands that individually designate a logical address of one or more units of data to be written and which are accompanied by the designated one or more units of data being received sequentially, comprising:
-
converting the logical address of an individual write command into a physical address within one or more of the blocks of memory cells that allow writing the accompanying one or more units of data in parallel, wherein a number of said one or more blocks are selected for receiving said one or more units of data as a function of the number of units of data specified by at least one of the received series of write commands, the number of units of data specified by the received series of write commands varying, and writing the selected one or more units of data into said one or more blocks in parallel.
-
-
13. A method of operating a non-volatile memory array of memory cells, comprising:
-
storing data with first and second different interleaving arrangements, and in response to receiving a command to update at least some of the data stored with the first interleaving arrangement that would result in more optimal performance characteristics by being stored with the second interleaving arrangement, reading data stored with the first interleaving arrangement, and writing the read data and the updated data into the memory array with the second interleaving arrangement.
-
Specification