Fixed weight codewords for ternary memory cells
AssigneeMicron Technology, Inc.
InventorsChristophe Vincent Antoine Laurent, Riccardo Muzzetto
Life of this patent
Estimating the term…
Abstract
Methods, systems, and devices for fixed weight codewords for ternary memory cells are described. A memory device may generate a codeword from a set of data bits and invert a portion of the codeword so that the codeword is associated with a target distribution of programmable states. After inverting the portion of the codeword, the memory device store the codeword in a set of ternary cells according to a coding scheme. The memory device may read the codeword from the set of ternary cells and select one or more reference voltages for the set of ternary cells based on the target distribution for the codeword and the states of the ternary cells.
Claims30
A method, comprising:
- dividing a set of received data bits into subsets of data bits for storage in respective pairs of ternary cells according to a coding scheme, each ternary cell programmable to a first state, a second state, or a third state;
- generating a first codeword that includes a first group of data bits comprising data bits from at least some of the subsets of data bits and a second codeword that includes a second group of data bits comprising data bits from each subset of data bits, where in the first group and the second group comprise different data bits from the subsets of data bits;
- inverting a portion of the first codeword, a portion of the second codeword, or a portion of both codewords, based at least in part on the coding scheme and a respective target distribution of states for each codeword;
- and
- storing, after the inverting and according to the coding scheme, the first codeword and the second codeword in a set of ternary cells comprising the respective pairs of ternary cells wherein, for the coding scheme, each state change of one of a respective pair of ternary cells results in less than two bit errors for each of the first codeword and the second codeword.
A method, comprising:
- reading, using a first voltage level, a first codeword from pairs of ternary cells in a memory array, each ternary cell programmable to store a first state, a second state, or a third state, wherein the first codeword is based on a first group of data bits from subsets of data bits stored in the pairs of ternary cells;
- selecting a level for a first reference voltage based at least in part on the first codeword, the first voltage level and a quantity of the ternary cells in the first state;
- reading, using a second voltage level, a second codeword from the pairs of ternary cells, wherein the second codeword is based on a second group of data bits from the subsets of data bits stored in the pairs of ternary cells, and wherein each state change of one of a respective pair of ternary cells results in less than two bit errors for each of the first codeword and the second codeword;
- and
- selecting a level for a second reference voltage based at least in part on the second codeword, the second voltage level and a quantity of the ternary cells in the second state.
A method, comprising:
- receiving a set of data bits for storage in a memory array comprising ternary cells, each ternary cell programmable to a first state, a second state, or a third state;
- assigning each data bit of the set of data bits to one of plurality of groups associated with a coding scheme that maps a plurality of data bits to a pair of ternary cells;
- generating a codeword that includes subsets of data bits mapped to respective pairs of ternary cells, each subset comprising a data bit from two or more of the groups;
- inverting a portion of the codeword based at least in part on the coding scheme and a target distribution of states represented by bits from the subsets of data bits for the codeword;
- and
- storing, after the inverting and according to the coding scheme, the codeword in a set of ternary cells wherein, for the coding scheme, each state change of one of a respective pair of ternary cells results in less than two bit errors for the codeword.
A method, comprising:
- reading, using a first voltage level, a codeword from ternary cells in a memory array, each ternary cell programmable to a first state, a second state, or a third state;
- determining, based at least in part on reading the ternary cells using the first voltage level or an adjusted first voltage level, a quantity of the of ternary cells in the first state;
- selecting a level for a first reference voltage based at least in part on the first voltage level, the adjusted first voltage level, the quantity of the ternary cells in the first state, or a combination thereof;
- reading, using a second voltage level, the codeword from the ternary cells;
- determining, based at least in part on reading the ternary cells using the second voltage level or an adjusted second voltage level, a quantity of the ternary cells in the second state;
- and
- selecting a level for a second reference voltage based at least in part on the codeword, the second voltage level, the adjusted second voltage level, the quantity of the ternary cells in the second state, or a combination thereof.
A method, comprising:
- generating a first codeword that includes a data bit from a subset of data bits and a second codeword that includes two data bits from the subset of data bits, the subset of data bits for storage in a pair of ternary cells according to a coding scheme;
- inverting a portion of the first codeword based at least in part on the coding scheme and a target distribution of states for the first codeword, the target distribution comprising a target quantity for a first state;
- storing, after the inverting, the first and second codewords in a set of ternary cells according to the coding scheme;
- reading, using a voltage level, the first codeword from the set of ternary cells;
- determining, based at least in part on reading the set of ternary cells using the voltage level or an adjusted voltage level, a quantity of the set of ternary cells in the first state;
- and
- selecting a level for a first reference voltage based at least in part on the first code word, the voltage level, the adjusted voltage level, the quantity of the set of ternary cells in the first state, the target quantity for the first state, or a combination thereof.
Dependencies are inferred from the claim text.