System and method for encoding data to reduce power and time required to write the encoded data to a flash memory
First Claim
1. A memory a device comprising:
- an array of memory cells adapted to store data, the memory cells are pre-programmed to one of two binary data states;
control circuitry for receiving a plurality of packets of data bits, each of the packets includes a plurality of subsets of data bits to be written to the memory cells, the control circuitry analyses the plurality of subsets of data bits by accumulating data from each of the subsets using an accumulator, the control circuit also generates a count signal for each of the packets using a count generation circuit, wherein the count signal is generated based on the accumulated data of the subsets, wherein the count signal is used to determine a number of the bits of each of the packet having a second binary state; and
encoding circuitry to perform an encoding operation on each of the packets, wherein the encoding operation is selected from at least two different encoding states, wherein the encoding states is based on the count signal of each of the packets, wherein the encoding operation is performed to produce encoded data bits for each of the packets, and to invert a binary state of data bits of a packet if more than half of the data bits of the packet has the second binary state.
5 Assignments
0 Petitions
Accused Products
Abstract
A method and system in which X-bit packets of bits (where X is an integer) are encoded to generate X-bit packets of encoded bits for writing to erased cells of a flash memory array, where less power is consumed to write a bit having a first value to an erased cell than to write a bit having a second value to the cell. Preferably, a count signal is generated for each packet of raw bits indicating the number of bits of the packet having the first (or second) value, the count signal is processed to generate a control signal which determines an encoding for the packet, and the raw bits of the packet are encoded according to a scheme determined by the control signal. In some embodiments, each erased cell is indicative of the binary value “1”, the count signal is compared to a reference value (indicative of X/2) to generate a control signal determining whether the packet should undergo polarity inversion, and the packet is inverted (or not inverted) depending on the value of the control signal. In alternative embodiments, a count signal is generated for each packet of bits to be written to erased cells of an array (where the count signal indicates the number of bits in the packet having a particular value), and each packet is encoded in a manner determined by the corresponding count signal to reduce the power needed to write the encoded bits to the erased cells. Preferably, flag bits indicative of the encoding of each packet are generated, and the flag bits (as well as the encoded packets) are stored in cells of the flash memory array.
103 Citations
24 Claims
-
1. A memory a device comprising:
-
an array of memory cells adapted to store data, the memory cells are pre-programmed to one of two binary data states;
control circuitry for receiving a plurality of packets of data bits, each of the packets includes a plurality of subsets of data bits to be written to the memory cells, the control circuitry analyses the plurality of subsets of data bits by accumulating data from each of the subsets using an accumulator, the control circuit also generates a count signal for each of the packets using a count generation circuit, wherein the count signal is generated based on the accumulated data of the subsets, wherein the count signal is used to determine a number of the bits of each of the packet having a second binary state; and
encoding circuitry to perform an encoding operation on each of the packets, wherein the encoding operation is selected from at least two different encoding states, wherein the encoding states is based on the count signal of each of the packets, wherein the encoding operation is performed to produce encoded data bits for each of the packets, and to invert a binary state of data bits of a packet if more than half of the data bits of the packet has the second binary state. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A memory a device comprising:
-
an array of memory cells adapted to store data as either a binary one or a binary zero;
control circuitry for receiving a plurality of packets of input data bits to be written to the memory cells, each of the packets includes a plurality of subsets of data bits, the control circuitry adapted to analyze the plurality of the subsets of data bits by accumulating data from each of the subsets using an accumulator, the control circuit also generates a count signal for each of the packets using a count generation circuit, wherein the count signal is generated based on the accumulated data of the subsets, wherein the count signal is used to determine a number of binary zero input bits; and
encoding circuitry to perform an encoding operation on each of the packets, wherein the encoding operation is selected from at least two different encoding states, wherein the encoding states is based on the count signal of each of the packets, wherein the encoding operation is performed to produce encoded data bits for each of the packets, and to invert a binary state of data bits of a packet if more than half of the data bits of the packet are binary zero input bits. - View Dependent Claims (9, 10, 11)
-
-
12. A memory a device comprising:
-
an array of memory cells adapted to store data as either a binary one or a binary zero;
control circuitry for receiving a plurality of packets of input data bits to be written to the memory cells, each of the packets includes a plurality of subsets of data bits, the control circuitry adapted to analyze the plurality of the subsets of data bits by accumulating data from each of the subsets using an accumulator, the control circuit also generates a count signal for each of the packets using a count generation circuit, wherein the count signal is generated based on the accumulated data of the subsets, wherein the count signal is used to determine a number of binary one input bits; and
encoding circuitry to perform an encoding operation on each of the packets, wherein the encoding operation is selected from at least two different encoding states, wherein the encoding states is based on the count signal of each of the packets, wherein the encoding operation is performed to produce encoded data bits for each of the packets, and to invert a binary state of data bits of a packet if more than half of the data bits of the packet are binary one input bits. - View Dependent Claims (13)
-
-
14. A memory a device comprising:
-
an array of floating gate transistor memory cells adapted to store data as either a binary one or a binary zero by adjusting a voltage stored on the floating gate;
control circuitry for receiving a plurality of packets of input data bits to be written to the memory cells, each of the packets includes a plurality of subsets of data bits, the control circuitry adapted to analyze the plurality of the subsets of data bits by accumulating data from each of the subsets using an accumulator, the control circuit also generates a count signal for each of the packets using a count generation circuit, wherein the count signal is generated based on the accumulated data of the subsets, wherein the count signal is used to determine a number of binary zero input bits;
encoding circuitry to perform an encoding operation on each of the packets, wherein the encoding operation is selected from at least two different encoding states, wherein the encoding states is based on the count signal of each of the packets, wherein the encoding operation is performed to produce encoded data bits for each of the packets, and to invert a binary state of data bits of a packet if more than half of the data bits of the packet are binary zero input bits erase circuitry for pre-programming the memory cells to the binary one state; and
a register for storing data indicating if the encoding circuitry inverted the plurality of input data bits.
-
-
15. A memory a device comprising:
-
an array of floating gate transistor memory cells adapted to store data as either a binary one or a binary zero by adjusting a voltage stored on the floating gate;
control circuitry for receiving a plurality of packets of input data bits to be written to the memory cells, each of the packets includes a plurality of subsets of data bits, the control circuitry adapted to analyze the plurality of the subsets of data bits by accumulating data from each of the subsets using an accumulator, the control circuit also generates a count signal for each of the packets using a count generation circuit, wherein the count signal is generated based on the accumulated data of the subsets, wherein the count signal is used to determine a number of binary one input bits;
encoding circuitry to perform an encoding operation on each of the packets, wherein the encoding operation is selected from at least two different encoding states, wherein the encoding states is based on the count signal of each of the packets, wherein the encoding operation is performed to produce encoded data bits for each of the packets, and to invert a binary state of data bits of a packet if more than half of the data bits of the packet are binary one input bits;
erase circuitry for pre-programming the memory cells to the binary zero state; and
a register for storing data indicating if the encoding circuitry inverted the plurality of input data bits.
-
-
16. A processing system comprising:
-
a memory controller; and
a flash memory device comprising;
an array of floating gate transistor memory cells adapted to store data as either a binary one or a binary zero by adjusting a voltage stored on the floating gate;
control circuitry for receiving a plurality of packets of input data bits to be written to the memory cells, each of the packets includes a plurality of subsets of data bits, the control circuitry adapted to analyze the plurality of the subsets of data bits by accumulating data from each of the subsets using an accumulator, the control circuit also generates a count signal for each of the packets using a count generation circuit, wherein the count signal is generated based on the accumulated data of the subsets, wherein the count signal is used to determine a number of binary one input bits;
encoding circuitry to perform an encoding operation on each of the packets, wherein the encoding operation is selected from at least two different encoding states, wherein the encoding states is based on the count signal of each of the packets, wherein the encoding operation is performed to produce encoded data bits for each of the packets, and to invert a binary state of data bits of a packet if more than half of the data bits of the packet are binary one input bits;
erase circuitry for pre-programming the memory cells to the binary one state; and
a register for storing data indicating if the encoding circuitry inverted the plurality of input data bits.
-
-
17. A method of writing data to a memory device, the method comprising:
-
receiving a plurality of packets of input data bits, each of the packets includes a plurality of subsets of input data bits, each bit encoded as either a binary one or a binary zero state;
analyzing each of the subsets of input data bits, wherein analyzing includes;
accumulating data from each of the subsets;
generating a count signal for each of the packets, wherein the count signal is generated based on the accumulated data of the subsets, wherein the count signal is used to determine if more than half of the input data bits of each of the packets are encoded as a binary zero; and
encoding each of the packets based to produce encoded data bits for each of the packets;
inverting the input data bits of a subset if more than half of the input data bits within that subset are encoded as a binary zero, such that the inverted input data bits have more than half of the input data bits are encoded as a binary one; and
storing the inverted input data bits in memory cells. - View Dependent Claims (18, 19)
-
-
20. A method of writing data to a memory device, the method comprising:
-
pre-programming memory cells to a binary zero;
receiving a plurality of packets of input data bits, each of the packets includes a plurality of subsets of input data bits, each bit encoded as either a binary one or a binary zero state;
analyzing each of the subsets of input data bits, wherein analyzing includes;
accumulating data from each of the subsets;
generating a count signal for each of the packets, wherein the count signal is generated based on the accumulated data of the subsets, wherein the count signal is used to determine if more than half of the input data bits of each of the packets are encoded as a binary one; and
encoding each of the packets based to produce encoded data bits for each of the packet;
inverting the input data bits of a subset if more than half of the input data bits within that subset are encoded as a binary one, such that the inverted input data bits have more than half of the input data bits are encoded as a binary zero; and
storing the inverted input data bits in memory cells.
-
-
21. A method of writing data packets to a non-volatile memory device, the method comprising:
-
selecting a plurality of the packets, wherein each of the packets comprising X binary bits;
determining a number of bits of the X binary bits in each of the plurality of packets which have a first data value wherein determining includes;
accumulating data from subsets of each of packets;
generating a count signal for each of the packets, wherein the count signal is generated based on the accumulated data of the subsets;
encoding each of the packets with encoded data bits based on the count signal of each of the packets, wherein encoding includes;
inverting the X binary bits in each of the plurality of packets to a second data value if the number of bits of the first data value exceeds a predetermined percentage of the X binary bits; and
writing the inverted X binary bits to the memory device. - View Dependent Claims (22, 23, 24)
generating a polarity flag for the inverted X binary bits, wherein the polarity flag includes a set of at least one polarity flag bit indicating that the X binary bits were inverted.
-
Specification