IP Library Granted Patent US 9,946,643
Granted Patent B2
US 9,946,643 · App. 15/059,749 · Granted Apr 17, 2018

Memory system and method for controlling nonvolatile memory

Inventor: Shinichi Kanno (Tokyo, JP)
Assignee: TOSHIBA MEMORY CORPORATION
G06F12/0246G06F3/064G06F3/0616G06F3/0647G06F3/0679G06F12/1009G06F2212/1044G06F2212/2022G06F2212/7201G06F2212/7205
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,946,643
App. No.
15/059,749
Granted
Apr 17, 2018
Kind
B2
Abstract

According to one embodiment, a memory system includes a nonvolatile memory including a plurality of blocks and a controller. The controller manages a garbage collection count for each of blocks containing data written by a host, the garbage collection count indicating the number of times the data in said each of the blocks has been copied by a garbage collection operation of the nonvolatile memory. The controller selects, as garbage collection target blocks, first blocks associated with a same garbage collection count. The controller copies valid data in the first blocks to a copy destination free block. The controller sets, as a garbage collection count of the copy destination free block, a value obtained by adding one to a garbage collection count of the first blocks.

Claims (38)

1. A memory system comprising:

a nonvolatile memory including a plurality of blocks; and

a controller electrically connected to the nonvolatile memory and configured to perform a garbage collection operation of the nonvolatile memory when a number of remaining free blocks of the nonvolatile memory is less than or equal to a threshold,

wherein the controller is configured to:

manage a garbage collection count for each of blocks of the nonvolatile memory which contain data written by a host, the garbage collection count indicating a number of times the data in said each of the blocks has been copied by past garbage collection operations;

select, as garbage collection target blocks, a plurality of first blocks associated with a same garbage collection count;

copy only valid data in the first blocks to a copy destination free block; and

set, as a garbage collection count of the copy destination free block, a value obtained by adding one to a garbage collection count of the first blocks.

2. The memory system of claim 1 , wherein the first blocks include a block including a maximum amount of invalid data, and at least one other block associated with a garbage collection count equal to a garbage collection count of the block including the maximum amount of invalid data.

3. The memory system of claim 1 , wherein when a first group of one or more blocks associated with a same garbage collection count are selected as the garbage collection target blocks, the controller is configured to

determine whether a total amount of valid data in the first group of one or more blocks is less than a first threshold; and

select a second group of one or more blocks, associated with a maximum garbage collection count, from all blocks associated with garbage collection counts less by at least one than the garbage collection count of the first group of one or more blocks, and copy the valid data in the first group of one or more blocks and valid data in the second group of one or more blocks to the copy destination free block, when the total amount of the valid data in the first group of one or more blocks is less than the first threshold.

4. The memory system of claim 3 , wherein the first threshold is set to a value that indicates a total amount of data that is writable to one block.

5. The memory system of claim 3 , wherein the controller is configured to set, as the garbage collection count of the copy destination free block, a value obtained by adding one to the garbage collection count of the first group of one or more blocks.

6. The memory system of claim 3 , wherein the controller is configured to set, as the garbage collection count of the copy destination free block, a value obtained by adding one to the garbage collection count of the second group of one or more blocks.

7. The memory system of claim 1 , wherein when a first group of one or more blocks associated with a same garbage collection count are selected as the garbage collection target blocks, the controller is configured to

determine whether a total amount of valid data in the first group of one or more blocks is less than a first threshold;

determine whether the garbage collection count of the first group of one or more blocks is less than a second threshold, when the total amount of the valid data in the first group of one or more blocks is less than the first threshold;

select a second group of one or more blocks, associated with a maximum garbage collection count, from all blocks associated with garbage collection counts less by at least one than the garbage collection count of the first group of one or more blocks, and copy the valid data in the first group of one or more blocks and valid data in the second group of one or more blocks to the copy destination free block, when the total amount of the valid data in the first group of one or more blocks is greater than or equal to the second threshold; and

select a third group of one or more blocks associated with a same garbage collection count as the garbage collection target blocks, instead of selecting the second group of one or more blocks and copying the valid data in the first group of one or more blocks and the second group of one or more blocks, when the garbage collection count of the first group of one or more blocks is less than the second threshold.

8. The memory system of claim 7 , wherein the first threshold is set to a value that indicates a total amount of data that is writable to one block.

9. The memory system of claim 7 , wherein the controller is configured to set, as the garbage collection count of the copy destination free block, a value obtained by adding one to the garbage collection count of the first group of one or more blocks.

10. The memory system of claim 7 , wherein the controller is configured to set, as the garbage collection count of the copy destination free block, a value obtained by adding one to the garbage collection count of the second group of one or more blocks.

11. A memory system comprising:

a nonvolatile memory including a plurality of blocks; and

a controller electrically connected to the nonvolatile memory and configured to perform a garbage collection operation of the nonvolatile memory when a number of remaining free blocks of the nonvolatile memory is less than or equal to a threshold,

wherein the controller is configured to:

manage a garbage collection count for each of blocks of the nonvolatile memory which contain data written by a host, the garbage collection count indicating a number of times the data in said each of the blocks has been copied by past garbage collection operations;

select a block including a maximum amount of invalid data from the blocks containing the data written by the host;

select, as garbage collection target blocks, the block including the maximum amount of invalid data, and one or more first blocks associated with a same garbage collection count as a garbage collection count of the block including the maximum amount of invalid data;

copy valid data in the block including the maximum amount of invalid data and valid data in the one or more first blocks to a copy destination free block; and

set, as a garbage collection count of the copy destination free block, a value obtained by adding one to the garbage collection count of the garbage collection target blocks.

12. A method of controlling a nonvolatile memory including a plurality of blocks, and performing a garbage collection operation of the nonvolatile memory when a number of remaining free blocks of the nonvolatile memory is less than or equal to a threshold, the method comprising:

managing a garbage collection count for each of blocks of the nonvolatile memory which contain data written by a host, the garbage collection count indicating a number of times the data in said each of the blocks has been copied by past garbage collection operations;

selecting, as garbage collection target blocks, a plurality of first blocks associated with a same garbage collection count;

copying valid data in the first blocks to a copy destination free block; and

setting, as a garbage collection count of the copy destination free block, a value obtained by adding one to a garbage collection count of the first blocks.

13. The control method of claim 12 , wherein the first blocks include a block including a maximum amount of invalid data, and at least one other block associated with a garbage collection count equal to a garbage collection count of the block including the maximum amount of invalid 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 Aug 22, 2017
From: KABUSHIKI KAISHA TOSHIBA
To: TOSHIBA MEMORY CORPORATION
Reel/Frame 043620/0798 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 3, 2016
From: KANNO, SHINICHI
To: KABUSHIKI KAISHA TOSHIBA
Reel/Frame 037884/0119 →
Priority Claims (1)
JP 2015-242997 · Dec 14, 2015 · national
Continuity (1)
Related Publication 20170168929A1 · Jun 15, 2017