System and method for pre-encoding of data for direct write to multi-level cell memory
First Claim
1. A non-volatile memory system comprising:
- a multi-level cell (MLC) non-volatile memory having a plurality word lines, each word line (WL) having a plurality of MLC memory cells and programmable in a plurality of programming passes; and
circuitry comprising;
volatile memory configured to receive, in a first portion, an amount of data from a data source, the amount of received data corresponding to a storage capacity of a word line (WL) in the MLC non-volatile memory;
a pre-encoding engine configured to convert the amount of received data in the first portion into direct WL programming data for all of the plurality of programming passes to be performed in one of the plurality of word lines, and to store the direct WL programming data for all of the plurality of programming passes for the one of the plurality of wordlines in a second portion of the volatile memory; and
a processor configured to transmit a different portion of the direct WL programming data from the second portion to the one of the plurality of wordlines for each of the plurality of programming passes.
2 Assignments
0 Petitions
Accused Products
Abstract
A method and system for reducing data transfers between memory controller and multi-level cell (MLC) non-volatile memory during programming passes of a word line (WL) in the non-volatile memory. The system includes a controller and non-volatile memory having multiple WLs, each WL having a plurality of MLC memory cells. The controller stores received data in volatile memory until a target WL amount of data is received. The controller pre-encodes the received data into direct WL programming data for each programming pass necessary to program a target MLC WL. All direct WL programming data for all programming passes are stored in the volatile memory before programming. Different portions of direct WL programming data are transmitted from the controller to the non-volatile memory each pass. The received data may be deleted from the volatile memory before transmitting at least a portion of the direct WL programming data to the non-volatile memory.
-
Citations
20 Claims
-
1. A non-volatile memory system comprising:
-
a multi-level cell (MLC) non-volatile memory having a plurality word lines, each word line (WL) having a plurality of MLC memory cells and programmable in a plurality of programming passes; and circuitry comprising; volatile memory configured to receive, in a first portion, an amount of data from a data source, the amount of received data corresponding to a storage capacity of a word line (WL) in the MLC non-volatile memory; a pre-encoding engine configured to convert the amount of received data in the first portion into direct WL programming data for all of the plurality of programming passes to be performed in one of the plurality of word lines, and to store the direct WL programming data for all of the plurality of programming passes for the one of the plurality of wordlines in a second portion of the volatile memory; and a processor configured to transmit a different portion of the direct WL programming data from the second portion to the one of the plurality of wordlines for each of the plurality of programming passes. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A method of operating a non-volatile memory system comprising:
in a non-volatile memory system having a multi-level cell (MLC) non-volatile memory having a plurality word lines, each word line (WL) having a plurality of MLC memory cells, and a controller in communication with the MLC non-volatile memory and a volatile memory; receiving data from a data source; storing the received data in a first portion of the volatile memory until a predetermined amount of data has been received, the predetermined amount comprising an amount of data corresponding to a storage capacity of a word line (WL) in the MLC non-volatile memory; converting the predetermined amount of received data into direct WL programming data for each of a plurality of programming passes to be performed in the MLC non-volatile memory for one of the plurality of word lines; storing the direct WL programming data for all of the plurality of programming passes for the one of the plurality of word lines in a second portion of the volatile memory; and for each of the plurality of programming passes for the one of the plurality of word lines, transmitting from the second portion of the volatile memory an amount of direct WL programming data that is less than the predetermined amount of data received. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19)
-
20. A non-volatile memory system comprising:
-
a multi-level cell (MLC) non-volatile memory having a plurality word lines, each word line (WL) having a plurality of MLC memory cells and programmable in a plurality of programming passes; and circuitry comprising; volatile memory configured to receive, in a first portion, an amount of received data from a data source, the amount of received data corresponding to a storage capacity of a word line (WL) in the MLC non-volatile memory; a pre-encoding engine configured to convert the amount of received data in the first portion into direct WL programming data for all of the plurality of programming passes to be performed in one of the plurality of word lines, and to store the direct WL programming data for all of the plurality of programming passes for the one of the plurality of wordlines in a second portion of the volatile memory; and a processor configured to delete the amount of received data from the volatile memory before transmitting at least a portion of the direct WL programming data to the MLC non-volatile memory from the volatile memory.
-
Specification