Data storage in memory array with less than half of cells in any row and column in low-resistance states
First Claim
1. A method of storing binary data in a memory array with less than half of memory elements in any row and column of the array in a low-resistance state, the method comprising:
- arranging the binary data in a first portion of an encoding array, the encoding array having as many rows and columns as the memory array;
entering high-resistance values in a second portion of the encoding array;
selecting, from a covering code with a radius equal to a predetermined number that is less than half the number of rows in the encoding array, a codeword for each row in which more entries than the predetermined number are low-resistance values;
using the codeword for each such row to reduce the number of low-resistance values in that row;
selecting from the covering code a codeword for each column in which more entries than the predetermined number are low-resistance values;
using the codeword for each such column to reduce the number of low-resistance values in that column;
if any row or column still has too many low-resistance values, repealing the preceding steps of selecting and using codewords until no row and no column has more low-resistance values than the predetermined number; and
storing the entries from the encoding array in corresponding memory elements of the memory array.
2 Assignments
0 Petitions
Accused Products
Abstract
A method of storing data in a memory array with less than half of memory elements in any row and column in a low-resistance state. The data are arranged in a first portion of an encoding array. High-resistance values are entered in a second portion. A codeword is selected from a covering code for each row in which too many entries have low-resistance values. The selected codeword is used to reduce the number of low-resistance values in that row. A codeword is selected for each column in which too many entries have low-resistance values and the codeword is used to reduce the number of such values in that column. The process is repeated until no row and no column has too many low-resistance values. The array entries are stored in corresponding memory elements.
9 Citations
15 Claims
-
1. A method of storing binary data in a memory array with less than half of memory elements in any row and column of the array in a low-resistance state, the method comprising:
-
arranging the binary data in a first portion of an encoding array, the encoding array having as many rows and columns as the memory array; entering high-resistance values in a second portion of the encoding array; selecting, from a covering code with a radius equal to a predetermined number that is less than half the number of rows in the encoding array, a codeword for each row in which more entries than the predetermined number are low-resistance values; using the codeword for each such row to reduce the number of low-resistance values in that row; selecting from the covering code a codeword for each column in which more entries than the predetermined number are low-resistance values; using the codeword for each such column to reduce the number of low-resistance values in that column; if any row or column still has too many low-resistance values, repealing the preceding steps of selecting and using codewords until no row and no column has more low-resistance values than the predetermined number; and storing the entries from the encoding array in corresponding memory elements of the memory array. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A memory system that stores binary data with less than one-half of storage cells in any row and column of a memory array in low resistance states at the same time, the system comprising:
- a plurality of row and column conductors;
a plurality of storage cells capable of being placed into any of two or more resistance states, each cell connected between a different combination of row and column conductors to define a memory array; and
a memory controller to;receive binary data for storage; arrange the data in a first portion of an encoding array, the encoding array having as many rows and columns as the memory array; enter high-resistance values in a second portion of the encoding array; select a codeword, from a covering code having a covering radius equal to a predetermined number that is less than one-half the number of rows of the encoder array, for each row of the encoder array having more entries than the predetermined number corresponding with low resistance states, and change the entries in that row according to the selected codeword; select a codeword from the covering code for each column of the encoder array having more entries than the predetermined number corresponding with low resistance states, and change the entries in that column according to the selected codeword; if any row or column still has too many low-resistance values, repeating the preceding steps of selecting codewords and changing entries until no row and no column has more low-resistance values than the predetermined number; and apply signals to the row and column conductors to write entries from the encoder array into the cells. - View Dependent Claims (13, 14, 15)
- a plurality of row and column conductors;
Specification