IP Library Granted Patent US 9,792,053
Granted Patent B2
US 9,792,053 · App. 14/833,632 · Granted Oct 17, 2017

Controller for nonvolatile semiconductor memory

Inventor: Shinichi Kanno (Tokyo, JP)
Assignee: Toshiba Memory Corporation
G06F3/0616G06F3/0661G06F3/0679G11C7/1006G11C11/5642G11C2211/5641
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 9,792,053
App. No.
14/833,632
Granted
Oct 17, 2017
Kind
B2
Abstract

According to one embodiment, a controller for a nonvolatile semiconductor memory that stores data expressed using n levels (n is a natural number not less than 3) page by page includes an extraction unit and a conversion unit. The extraction unit extracts a second data stream shorter than a first data stream from the first data stream that includes a plurality of data written to the nonvolatile semiconductor memory. The conversion unit converts the second data stream into a third data stream longer than the second data stream, when a difference between threshold voltages of the nonvolatile semiconductor memory corresponding to adjacent two data included in the second data stream is a first level difference. The third data stream has a second level difference smaller than the first level difference.

Claims (20)

1. A controller for a nonvolatile semiconductor memory that stores data expressed using n threshold voltage levels (n is a natural number not less than 3) page by page, the controller comprising:

an extractor configured to extract a second data stream from a first data stream, the first data stream including a plurality of data written to the nonvolatile semiconductor memory, each of the data having a corresponding threshold voltage level, wherein the second data stream includes compressed data of the first data stream, the first data stream having a first length shorter than a length of a page, and the second data stream being shorter than the first data stream; and

a converter configured to convert the second data stream into a third data stream longer than the second data stream, when a difference between threshold voltages of two adjacent data included in the second data stream is a first threshold voltage level difference, the third data stream including in the place of the two adjacent data of the second data stream a data pattern, wherein each pair of adjacent data within the data pattern has a second threshold voltage level difference smaller than the first threshold level difference.

2. The controller according to claim 1 , wherein the conversion unit stops conversion processing when a length of the third data stream exceeds the first length.

3. The controller according to claim 2 , wherein the conversion unit generates conversion data used to convert the second data stream into the third data stream.

4. The controller according to claim 3 , wherein the conversion unit adds the conversion data to the third data stream.

5. The controller according to claim 2 , further comprising an error correction unit configured to add an error correction code to the third data stream with the conversion data added thereto, using a system code.

6. The controller according to claim 5 , further comprising a shifter configured to shift, within the page, a position of an area where the error correction code is added, based on number of accesses to a block included in the nonvolatile semiconductor memory.

7. The controller according to claim 6 , wherein the shifter shifts, within the page, a position of an area where the conversion data is added and the position of the area where the error correction code is added.

8. The controller according to claim 7 , wherein the number of accesses to the block includes one of number of writes to the block and number of the block erasure.

9. The controller according to claim 1 , wherein the extraction unit counts a number of occurrences of an at least one commonly occurring pattern of the data of the first data stream.

10. The controller according to claim 9 , wherein the conversion unit converts each occurrence of the at least one commonly occurring pattern of the data of the first data stream in the second data stream into a shorter data pattern resulting in a fourth data stream, based on the counted number of the at least one commonly occurring pattern of the data of the first data stream, the fourth data stream being shorter than the second data stream.

11. The controller according to claim 1 , wherein the first threshold voltage level difference is a difference between an nth threshold voltage level included in the n threshold voltage levels, and an erasure level, and the second threshold voltage level difference is at least one of a difference between the nth threshold voltage level and a threshold voltage level higher than the erasure level, and a difference between an (n−1)th threshold voltage level included in the n threshold voltage levels, and the erasure level.

12. The controller according to claim 10 , wherein the conversion unit generates conversion data used to convert the second data stream into the fourth data stream.

13. The controller according to claim 6 , wherein the shifter determines the position of the area where the error correction code is added, based on the number of accesses to the block included in the nonvolatile semiconductor memory, during reading data.

14. The controller according to claim 13 , wherein the error correction unit corrects an error in the data, based on the error correction code.

15. The controller according to claim 12 , wherein the conversion unit converts the third data stream included in the data into the second data stream, based on the conversion data.

16. A controller for a nonvolatile semiconductor memory that stores data expressed using n threshold voltage levels (n is a natural number not less than 3) page by page, the controller comprising:

an extractor configured to extract a second data stream from a first data stream, the first data stream including a plurality of data written to the nonvolatile semiconductor memory, each of the data having a corresponding threshold voltage level, wherein the second data stream includes compressed data of the first data stream, and the second data stream being shorter than the first data stream; and

a converter configured to convert the second data stream into a third data stream longer than the second data stream, when a difference between threshold voltages of two adjacent data included in the second data stream is a first threshold voltage level difference, the third data stream including in the place of the two adjacent data of the second data stream a data pattern, wherein each pair of adjacent data within the data pattern has a second threshold voltage level difference smaller than the first threshold voltage level difference.

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 Sep 8, 2017
From: KABUSHIKI KAISHA TOSHIBA
To: TOSHIBA MEMORY CORPORATION
Reel/Frame 043529/0709 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 24, 2015
From: KANNO, SHINICHI
To: KABUSHIKI KAISHA TOSHIBA
Reel/Frame 036402/0707 →
Continuity (2)
Provisional Application 62155279 · Apr 30, 2015
Related Publication 20160320983A1 · Nov 3, 2016