IP Library Granted Patent US 9,792,068
Granted Patent B2
US 9,792,068 · App. 15/052,995 · Granted Oct 17, 2017

Memory system and method of controlling nonvolatile memory

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,068
App. No.
15/052,995
Granted
Oct 17, 2017
Kind
B2
Abstract

According to one embodiment, when a first command and first data are received from a host, and in a case where the number of free blocks is less than a first threshold, a controller executes a first processing. The first processing includes reading valid data included in one first block that includes the valid data and invalid data and writing the read valid data and at least a part of write data specified by the write command into the free block.

Claims (31)

1. A memory system comprising:

a nonvolatile memory including a plurality of blocks; and

a controller configured to

upon detecting a number of free blocks among the plurality of blocks being less than a first threshold, execute a first processing, the first processing including reading valid data from a plurality of first blocks among the plurality of blocks and writing the read valid data into a first free block among the free blocks, the first block including valid data and invalid data, each of the free blocks not including valid data,

upon detecting the number of the free blocks being less than a second threshold, execute a second processing, the second processing including reading valid data included in one first second block among the plurality of blocks and writing the read valid data and at least a part of first data into a second free block among the free blocks, the second block including valid data and invalid data, the first data being write data specified by a first command, the first command being a write command received from a host, the second threshold being smaller than the first threshold.

2. The memory system according to claim 1 , wherein the controller is configured to execute a third processing when a second command is received from the host, the second command including an instruction to execute a garbage collection, the third processing including reading valid data from a plurality of third blocks among the plurality of blocks and writing the read valid data into a third free block among the free blocks, the third blocks including valid data and invalid data.

3. The memory system according to claim 2 , wherein the third processing includes erasing data of the plurality of the third blocks from which the valid data is read.

4. The memory system according to claim 2 , wherein the controller executes the third processing after the execution of the second processing.

5. The memory system according to claim 2 , wherein

in the third processing, the controller preferentially selects, as the third block from the plurality of blocks, a fourth block rather than a fifth block, the fourth block including less valid data than the fifth block.

6. The memory system according to claim 1 , wherein, when the first command and the first data are received from the host, and in a case where the number of the free blocks is more than the second threshold, the controller writes only the first data into the second free block.

7. The memory system according to claim 1 , wherein, in a case where the number of the free blocks is less than a third threshold during execution of a fourth processing, the controller executes the first processing, the fourth processing including reading valid data stored in the nonvolatile memory and testing the read valid data.

8. The memory system according to claim 1 , wherein, in a case where the number of the free blocks is two or more, the second processing includes writing the read valid data and at least a part of the first data into one second free block among the free blocks.

9. The memory system according to claim 1 , wherein the second block includes more valid data than invalid data.

10. The memory system according to claim 1 , wherein the nonvolatile memory is a NAND flash memory.

11. A method of controlling a nonvolatile memory including a plurality of blocks, the method comprising:

upon detecting a number of free blocks among the plurality of blocks being less than a first threshold, executing a first processing, the first processing including reading valid data from a plurality of first blocks among the plurality of blocks and writing the read valid data into a first free block among the free blocks, the first block including valid data and invalid data, each of the free blocks not including valid data,

upon detecting the number of the free blocks being less than a second threshold, executing a second processing, the second processing including reading valid data included in one first second block among the plurality of blocks and writing the read valid data and at least a part of first data into a second free block among the free blocks, the second block including valid data and invalid data, the first data being write data specified by a first command, the first command being a write command received from a host, the second threshold being smaller than the first threshold.

12. The method according to claim 11 , further comprising executing a third processing when a second command is received from the host, the second command including an instruction to execute a garbage collection, the third processing including reading valid data from a plurality of third blocks among the plurality of blocks and writing the read valid data into a third free block among the free blocks, each of the third blocks including valid data and invalid data.

13. The method according to claim 12 , wherein the third processing includes erasing data of the plurality of third blocks from which the valid data is read.

14. The method according to claim 12 , further comprising executing the third processing after the execution of the second processing.

15. The method according to claim 12 , further comprising

in the third processing, preferentially selecting, as the third block from the plurality of blocks, a fourth block rather than a fifth block, the fourth block including less valid data than the fifth block.

16. The method according to claim 11 , further comprising

when the first command and the first data are received from the host, and in a case where the number of the free blocks is more than the second threshold, writing only the first data into the second free block.

17. The method according to claim 11 , further comprising

in a case where the number of the free blocks is less than a third threshold during execution of a fourth processing, executing the first processing, the fourth processing including reading valid data stored in the nonvolatile memory and testing the read valid data.

18. The method according to claim 11 , wherein, in a case where the number of the free blocks is two or more, the second processing includes writing the read valid data and at least a part of the first data into one second free block among the free blocks.

19. The method according to claim 11 ,

wherein the second block includes more valid data than invalid data.

20. The method according to claim 11 , wherein the nonvolatile memory is a NAND flash memory.

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 5, 2017
From: KABUSHIKI KAISHA TOSHIBA
To: TOSHIBA MEMORY CORPORATION
Reel/Frame 043088/0620 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 25, 2016
From: NAGATA, YUKI
To: KABUSHIKI KAISHA TOSHIBA
Reel/Frame 037825/0049 →