Systems, methods and computer program products for encoding data to be written to a nonvolatile memory based on wear-leveling information
First Claim
Patent Images
1. A memory system comprising:
- a nonvolatile memory; and
a memory controller that is configured to logically combine data to be written to the nonvolatile memory with a random pattern to generate encoded data and to program the encoded data in the nonvolatile memory, the memory controller comprising;
a select code generator that is configured to generate a select code based on a reference value, the reference value being associated with a block in the nonvolatile memory into which the encoded data is programmed;
a buffer memory;
a plurality of random pattern generators; and
a selector that is configured to select an output of one of the random pattern generators as the random pattern responsive to the select code;
wherein the memory controller is further configured to change the reference value when the block in the nonvolatile memory that is associated therewith is accessed; and
wherein the memory controller is further configured to manage the reference value in the buffer memory, periodically store the reference value managed in the buffer memory to the nonvolatile memory, read the reference value from the nonvolatile memory after a sudden power off, and to compensate the read reference value after the sudden power off.
1 Assignment
0 Petitions
Accused Products
Abstract
A nonvolatile memory system is operated by providing data to be written to a nonvolatile memory, logically combining the data to be written to the nonvolatile memory with a random pattern to generate encoded data; and programming the encoded data in the nonvolatile memory.
14 Citations
18 Claims
-
1. A memory system comprising:
-
a nonvolatile memory; and a memory controller that is configured to logically combine data to be written to the nonvolatile memory with a random pattern to generate encoded data and to program the encoded data in the nonvolatile memory, the memory controller comprising; a select code generator that is configured to generate a select code based on a reference value, the reference value being associated with a block in the nonvolatile memory into which the encoded data is programmed; a buffer memory; a plurality of random pattern generators; and a selector that is configured to select an output of one of the random pattern generators as the random pattern responsive to the select code; wherein the memory controller is further configured to change the reference value when the block in the nonvolatile memory that is associated therewith is accessed; and wherein the memory controller is further configured to manage the reference value in the buffer memory, periodically store the reference value managed in the buffer memory to the nonvolatile memory, read the reference value from the nonvolatile memory after a sudden power off, and to compensate the read reference value after the sudden power off. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A method of operating a non-volatile memory system, comprising:
-
providing data to be written to a non-volatile memory; generating a plurality of random patterns; generating a select code based on a reference value; combining the data to be written to the non-volatile memory with a random pattern, which is selected from the plurality of random patterns based on the select code and programming the combined data in the non-volatile memory, the reference value being associated with a block in the non-volatile memory into which the combined data is programmed; and changing the reference value when the block in the non-volatile memory that is associated therewith is accessed; wherein the reference value is periodically stored to the nonvolatile memory, read from the nonvolatile memory after a sudden power off and compensated according to the reading after the sudden power off. - View Dependent Claims (9, 10, 11, 12, 13, 14, 15, 16)
-
-
17. A non-volatile memory, comprising:
-
a data changing unit that is configured to receive data to be written to the non-volatile memory, to generate a plurality of random patterns, to generate a select code based on a reference value, to select a random pattern from the plurality of random patterns based on the select code, to combine the data to be written to the non-volatile memory with the selected random pattern, and to program the combined data in the non-volatile memory; wherein the reference value is associated with a block in the non-volatile memory into which the combined data is programmed and wherein the data changing unit is further configured to change the reference value when the block in the non-volatile memory that is associated therewith is accessed; wherein the reference value is periodically stored to nonvolatile memory cells, read from the nonvolatile memory cells after a sudden power off, and compensated according to the reading after the sudden power off. - View Dependent Claims (18)
-
Specification