IP Library › Granted Patent US 11,474,702
Granted Patent B2
US 11,474,702 · App. 16/940,269 · Granted Oct 18, 2022

Storage device that writes data from a host during garbage collection

Inventor: Shinichi Kanno (Ota Tokyo, JP)
Assignee: KIOXIA CORPORATION
G06F3/061G06F3/065G06F3/068G06F3/0656G06F3/0679G06F12/0246G06F12/0253G06F12/10G06F2212/7201G06F2212/7204G06F2212/7205G06F2212/7206
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 11,474,702
App. No.
16/940,269
Granted
Oct 18, 2022
Kind
B2
Abstract

A memory system includes a controller, a buffer, and a nonvolatile memory including a plurality of blocks, wherein each of the blocks includes a plurality of pages and each of the pages includes a plurality of unit data portions. The controller is configured to carry out garbage collection by reading data from one or more pages of a target block of the garbage collection and selectively copying valid unit data portions included in the read data to another block, count a number of invalid unit data portions included in the read data, and accept, in the buffer, unit data portions from a host as write data, up to a number determined based on the counted number, during the garbage collection.

Claims (55)

1. A memory system comprising:

a nonvolatile memory including a plurality of blocks, the plurality of blocks including at least a first block and a second block, each of the plurality of blocks being a unit for a data erase operation;

a volatile memory; and

a controller configured to:

during a garbage collection operation performed on the nonvolatile memory,

determine a first amount of invalid data included in the first block;

in response to a write request received from a host, determine that a second amount of write data can be received from the host because the second amount is less than or equal to the first amount, and store, in the volatile memory, the write data received from the host up to the second amount; and

copy, from the first block to the second block, valid data included in the first block,

associate one or more blocks of the nonvolatile memory with a first namespace such that data associated with the first namespace are selectively stored therein, and

associate other one or more blocks of the nonvolatile memory with a second namespace such that data associated with the second namespace are selectively stored therein, and wherein

the garbage collection operation and the determining of the first amount are carried out independently with respect to each of the first and second namespaces, and

data associated with the first namespace and data associated with the second namespace are stored in the volatile memory, up to an amount that is determined based on a sum of the determined first amount for the first namespace and the determined first amount for the second namespace.

2. The memory system according to claim 1 , wherein

the controller is further configured to decrease, during the garbage collection operation, the determined first amount by an amount of the write data stored in the volatile memory.

3. The memory system according to claim 1 , wherein

each of the plurality of blocks includes a plurality of pages, each of the plurality of pages being a unit for a data read operation and a data write operation, and

the controller is further configured to:

read data from the first block until the amount of the valid data becomes equal to a size of one page, and then

store, in the volatile memory, the write data received from the host up to the second amount.

4. The memory system according to claim 1 , wherein the controller is further configured to:

count a number of non-written portions in a third block among the plurality of blocks, the third block being a block in which third data in the volatile memory is to be written, and

store, in the volatile memory, while the garbage collection operation is not being carried out, the third data from the host, up to an amount corresponding to the counted number of non-written portions.

5. The memory system according to claim 1 , wherein

the controller is further configured to start the garbage collection operation upon determining that the number of free blocks is less than a threshold, each of the free blocks being a block in which no valid data are stored.

6. The memory system according to claim 1 , wherein

the controller is further configured to map the first block as a free block in which no valid data are stored after all valid data are copied from the first block to the second block.

7. The memory system according to claim 1 , wherein the controller is further configured to:

associate a first region of the volatile memory, with the first namespace such that data associated with the first namespace are selectively stored therein, and

associate a second region of the volatile memory, with the second namespace such that data associated with the second namespace are selectively stored therein, wherein

the storing of the write data received from the host are carried out independently with respect to each of the first and second namespaces.

8. A method of controlling a nonvolatile memory, the nonvolatile memory including a plurality of blocks, the plurality of blocks including at least a first block and a second block, each of the plurality of blocks being a unit for a data erase operation, said method comprising:

during a garbage collection operation performed on the nonvolatile memory,

determining a first amount of invalid data included in the first block;

in response to a write request received from a host, determining that a second amount of write data can be received from the host because the second amount is less than or equal to the first amount, and storing, in a volatile memory, the write data received from the host up to the second amount; and

copying, from the first block to the second block, valid data included in the first block;

associating one or more blocks of the nonvolatile memory with a first namespace such that data associated with the first namespace are selectively stored therein, and

associating other one or more blocks of the nonvolatile memory with a second namespace such that data associated with the second namespace are selectively stored therein, wherein

the garbage collection operation and the determining of the first amount are carried out independently with respect to each of the first and second namespaces, and

data associated with the first namespace and data associated with the second namespace are stored in the volatile memory, up to an amount that is determined based on a sum of the determined first amount for the first namespace and the determined first amount for the second namespace.

9. The method according to claim 8 , further comprising:

decreasing, during the garbage collection operation, the determined first amount by an amount of the write data stored in the volatile memory.

10. The method according to claim 8 , wherein each of the plurality of blocks includes a plurality of pages, each of the plurality of pages being a unit for a data read operation and a data write operation, said method further comprising:

reading data from the first block until the amount of the valid data becomes equal to a size of one page, and then

storing, in the volatile memory, the write data received from the host up to the second amount.

11. The method according to claim 8 , further comprising:

counting a number of non-written portions in a third block among the plurality of blocks, the third block being a block in which third data in the volatile memory is to be written, and

storing, in the volatile memory while the garbage collection operation is not being carried out, the third data from the host, up to an amount corresponding to the counted number of non-written portions.

12. The method according to claim 8 , further comprising:

starting the garbage collection operation upon determining that the number of free blocks is less than a threshold, each of the free blocks being a block in which no valid data are stored.

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

mapping the first block as a free block in which no valid data are stored after all valid data are copied from the first block to the second block.

14. The method according to claim 8 , further comprising:

associating onc or morc blocks of thc nonvolatilc mcmory and a first region of the volatile memory, with a first namespace such that data associated with the first namespace are selectively stored therein, and

associating a second region of the volatile memory, with a second namespace such that data associated with the second namespace are selectively stored therein,

wherein the storing of the write data received from the host are carried out independently with respect to each of the first and second namespaces.

Priority Claims (1)
JP 2016-185477 · Sep 23, 2016 · national
Continuity (2)
Continuation 15441068 · Feb 23, 2017
Related Publication 20200356271A1 · Nov 12, 2020