IP Library Granted Patent US 10,529,417
Granted Patent B2
US 10,529,417 · App. 15/441,031 · Granted Jan 7, 2020

Storage device that inverts bits of data written into a nonvolatile memory thereof

Inventor: Shinichi Kanno (Ota Tokyo, JP)
Assignee: TOSHIBA MEMORY CORPORATION
G11C11/5628G11C7/1006G11C16/10G11C16/3495G11C11/5642G11C16/0483H03M13/1102H03M13/152H03M13/1515
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,529,417
App. No.
15/441,031
Granted
Jan 7, 2020
Kind
B2
Abstract

A storage device includes a nonvolatile memory and a controller. The controller is configured to generate coded data based on write data and an error correction code generated from the write data, determine whether or not to invert each bit of the coded data, based on a logical page position of the nonvolatile memory in which the write data are to be written and a value “0” or “1” of bits that are more populated in the coded data than bits having the other value of “1” and “0”, invert each bit of the coded data upon determining to invert, and write the non-inverted or inverted coded data into the logical page position of the nonvolatile memory. The logical page position is one of logical page positions including a lower page and an upper page.

Claims (85)

1. A storage device comprising:

a nonvolatile memory; and

a controller configured to perform read and write operations on the nonvolatile memory,

wherein the controller is configured to, when performing the write operation:

compress write data,

attach one of first padding data of which values are all “0” and second padding data of which values are all “1”, based on which of the “0” or “1” bit values are more populated in the compressed write data,

encode a group of the compressed write data and one of the first and second padding data to generate coded data,

generate an error correction code from the write data,

determine whether or not to invert each bit of the coded data, based on a logical page position of the nonvolatile memory in which the coded data are to be written and the number of “0” bits in the coded data relative to the number of “1” bits, the logical page position being one of logical page positions including a lower page and an upper page,

invert each bit of the coded data upon determining to invert, and

write non-inverted coded data or the inverted coded data into the logical page position of the nonvolatile memory, and

wherein the controller is configured to, when performing the read operation:

read the coded data from the logical page position of the nonvolatile memory,

carry out decoding of the read data,

invert each bit of the read data when the decoding fails, and

carry out decoding of the inverted read data.

2. The storage device according to claim 1 , wherein

when the “0” bit values are more populated in the compressed write data than the “1” bit values, the controller attaches the first padding data to the compressed write data, and

when the “1” bit values are more populated in the compressed write data than the “0” bit values, the controller attaches the second padding data to the compressed write data.

3. The storage device according to claim 1 , wherein

the controller is further configured to shift bits of the group of the compressed write data and one of the first and second padding data, and

the shifted group is encoded to generate the coded data.

4. The storage device according to claim 1 , wherein

the controller writes two bits of data in each memory cell of a region of the nonvolatile memory, and

the logical page positions consist of the lower page position and the upper page position when the controller writes data in the region.

5. The storage device according to claim 1 , wherein

the controller writes three bits of data in each memory cell of a region of the nonvolatile memory, and

the logical page positions consist of the lower page position, a middle page position, and the upper page position when the controller writes data in the region.

6. The storage device according to claim 1 , wherein the controller is configured to, when performing the write operation:

upon determining that the logical page position is the lower page, determine that each bit of the coded data is to be inverted if the number of “0” bits in the coded data is greater than the number of “1” bits in the coded data; and

upon determining that the logical page position is the upper page, determine that each bit of the coded data is to be inverted if the number of “1” bits in the coded data is greater than the number of “0” bits in the coded data.

7. A storage device comprising:

a nonvolatile memory; and

a controller configured to perform read and write operations on the nonvolatile memory,

wherein the controller is configured to, when performing the write operation:

compress write data,

attach one of first padding data of which values are all “0” and second padding data of which values are all “1”, based on which of the “0” or “1” bit values are more populated in the compressed write data,

process a group of the compressed write data and one of the first and second padding data to generate an error correction code,

determine whether or not to invert each bit of the write data, based on a logical page position of the nonvolatile memory in which the write data are to be written and the number of “0” bits in the write data relative to the number of “1” bits, the logical page position being one of logical page positions including a lower page and an upper page,

invert each bit of the write data upon determining to invert, and

write a group of non-inverted write data or the inverted write data and the error correction code into the logical page position of the nonvolatile memory, and

wherein the controller is configured to, when performing the read operation:

read the group of the non-inverted or inverted write data and the error correction code from the logical page position of the nonvolatile memory,

carry out decoding of the write data included in the read group using the read error correction code,

invert each bit of the write data included in the read group when the decoding fails, and

carry out decoding of the inverted write data.

8. The storage device according to claim 7 , wherein

when the “0” bit values are more populated in the compressed write data than the “1” bit values, the controller attaches the first padding data to the compressed write data, and

when the “1” bit values are more populated in the compressed write data than the “0” bit values, the controller attaches the second padding data to the compressed write data.

9. The storage device according to claim 7 , wherein

the controller is further configured to shift bits of the group of the compressed write data and one of the first and second padding data, and

the shifted group is processed to generate the error correction code.

10. The storage device according to claim 7 , wherein

the controller writes two bits of data in each memory cell of a region of the nonvolatile memory, and

the logical page positions consist of the lower page position and the upper page position when the controller writes data in the region.

11. The storage device according to claim 7 , wherein

the controller writes three bits of data in each memory cell of a region of the nonvolatile memory, and

the logical page positions consist of the lower page position, a middle page position, and the upper page position when the controller writes data in the region.

12. The storage device according to claim 7 , wherein the controller is configured to, when performing the write operation:

upon determining that the logical page position is the lower page, determine that each bit of the write data is to be inverted if the number of “0” bits in the write data is greater than the number of “1” bits in the write data; and

upon determining that the logical page position is the upper page, determine that each bit of the coded data is to be inverted if the number of “1” bits in the write data is greater than the number of “0” bits in the write data.

13. A method of performing data operations on a nonvolatile memory, comprising:

performing a write operation by:

compressing write data;

attaching one of first padding data of which values are all “0” and second padding data of which values are all “1”, based on which of the “0” or “1” bit values are more populated in the compressed write data; and

encoding a group of the compressed write data and one of the first and second padding data to generate coded data,

generating an error correction code from the write data;

determining whether or not to invert each bit of the coded data, based on a logical page position of the nonvolatile memory in which the write data are to be written and the number of “0” bits in the coded data relative to the number of “1” bits, the logical page position being one of logical page positions including a lower page and an upper page;

inverting each bit of the coded data upon determining to invert; and

writing non-inverted coded data or the inverted coded data into the logical page position of the nonvolatile memory, and

performing a read operation by:

reading the coded data from the logical page position of the nonvolatile memory; enter carrying out decoding of the read data;

inverting each bit of the read data when the decoding fails; and

enter carrying out decoding of the inverted read data.

14. The method according to claim 13 , wherein

when the “0” bit values are more populated in the compressed write data than the “1” bit values, the first padding data are attached to the compressed write data, and

when the “1” bit values are more populated in the compressed write data than the “0” bit values, the second padding data are attached to the compressed write data.

15. The method according to claim 13 , further comprising:

shifting bits of the group of the compressed write data and one of the first and second padding data, the shifted group being encoded to generate the coded data.

16. The method according to claim 13 , wherein

two bits of data are written in each memory cell of a region of the nonvolatile memory, and

the logical page positions consist of the lower page position and the upper page position when data are written in the region.

17. The method according to claim 13 , wherein said performing the write operation further includes:

upon determining that the logical page position is the lower page, determining that each bit of the coded data is to be inverted if the number of “0” bits in the coded data is greater than the number of “1” bits in the coded data; and

upon determining that the logical page position is the upper page, determining that each bit of the coded data is to be inverted if the number of “1” bits in the coded data is greater than the number of “0” bits in the coded data.

Assignments (5)
MERGER Recorded Jan 22, 2021
From: TOSHIBA MEMORY CORPORATION
To: K.K. PANGEA
Reel/Frame 055659/0471 →
CHANGE OF NAME AND ADDRESS Recorded Jan 22, 2021
From: TOSHIBA MEMORY CORPORATION
To: KIOXIA CORPORATION
Reel/Frame 055669/0001 →
CHANGE OF NAME AND ADDRESS Recorded Jan 22, 2021
From: K.K. PANGEA
To: TOSHIBA MEMORY CORPORATION
Reel/Frame 055669/0401 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 14, 2017
From: KABUSHIKI KAISHA TOSHIBA
To: TOSHIBA MEMORY CORPORATION
Reel/Frame 043194/0647 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 27, 2017
From: KANNO, SHINICHI
To: KABUSHIKI KAISHA TOSHIBA
Reel/Frame 041755/0451 →
Priority Claims (1)
JP 2016-176835 · Sep 9, 2016 · national
Continuity (1)
Related Publication 20180076828A1 · Mar 15, 2018
Cited By (2)
US 12,190,988 US 12,254,928