IP Library Granted Patent US 11,409,467
Granted Patent B2
US 11,409,467 · App. 16/815,950 · Granted Aug 9, 2022

Memory system and method of controlling nonvolatile memory and for reducing a buffer size

Inventor: Shinichi Kanno (Ota, JP)
Assignee: Kioxia Corporation
G06F3/0659G06F3/0604G06F3/0656G06F3/0679
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,409,467
App. No.
16/815,950
Granted
Aug 9, 2022
Kind
B2
Abstract

According to one embodiment, a memory system determines, for each of groups corresponding to streams, whether or not a length of write data associated with a set of write commands belonging to a same group reaches a minimum write size of a nonvolatile memory. When a length of write data associated with a set of write commands belonging to a first group corresponding to a first stream reaches the minimum write size, the memory system transfers the write data associated with the set of write commands belonging to the first group from a write buffer in a memory of the host to a first buffer in the memory system, and writes the write data transferred to the first buffer to a first write destination block corresponding to the first stream.

Claims (68)

1. A memory system connectable to a host, comprising:

a nonvolatile memory including a plurality of blocks, each of the plurality of blocks including a plurality of pages, each of the plurality of pages being a unit for a data write operation and a data read operation; and

a controller electrically connected to the nonvolatile memory and configured to allocate a plurality of write destination blocks corresponding to a plurality of streams from the plurality of blocks, wherein

the controller is configured to:

receive a plurality of write commands from the host, each of the plurality of write commands including a stream identifier indicative of one of the plurality of streams;

classify the received write commands into a plurality of groups corresponding to the plurality of streams;

determine, for each of the groups, whether or not a length of write data associated with a set of write commands belonging to a same group reaches a minimum write size of the nonvolatile memory, the minimum write size being determined based on a size of each of the plurality of pages;

when a length of write data associated with a set of write commands belonging to a first group corresponding to a first stream of the plurality of streams reaches the minimum write size, transfer write data having the minimum write size and associated with the set of write commands belonging to the first group from a write buffer in a memory of the host to a first buffer in the memory system;

write the write data transferred to the first buffer to a first write destination block of the plurality of write destination blocks, the first write destination block corresponding to the first stream; and

when a first time has elapsed since reception of a write command belonging to a second group corresponding to a second stream of the plurality of streams;

even when a length of write data associated with a set of write commands belonging to the second group does not reach the minimum write size, transfer the write data associated with the set of write commands belonging to the second group from the write buffer in the memory of the host to the first buffer; and

generate write data having the minimum write size by adding padding to the write data transferred to the first buffer, and write the generated write data to a second write destination block of the plurality of write destination blocks, the second write destination block corresponding to the second stream.

2. The memory system of claim 1 , wherein

the controller is configured to return responses indicative of completions of the write commands belonging to the first group to the host after transfer of the write data to the first buffer is complete or after write of the write data to the first write destination block is complete.

3. The memory system of claim 1 , wherein

the controller is configured to calculate a total of lengths specified by the write commands belonging to the same group, and determine whether or not the length of the write data associated with the set of write commands belonging to the same group reaches the minimum write size.

4. The memory system of claim 1 , wherein

the controller is configured to classify the received write commands into the plurality of groups by storing each of the received write commands in one of a plurality of command queues in the memory system.

5. A memory system connectable to a host, comprising:

a nonvolatile memory including a plurality of blocks, each of the plurality of blocks including a plurality of pages, each of the plurality of pages being a unit for a data write operation and a data read operation; and

a controller electrically connected to the nonvolatile memory and configured to allocate a plurality of write destination blocks corresponding to a plurality of streams from the plurality of blocks, wherein

the controller is configured to:

receive a plurality of write commands from the host, each of the plurality of write commands including a stream identifier indicative of one of the plurality of streams;

classify the received write commands into a plurality of groups corresponding to the plurality of streams;

determine, for each of the groups, whether or not a length of write data associated with a set of write commands belonging to a same group reaches a minimum write size of the nonvolatile memory, the minimum write size being determined based on a size of each of the plurality of pages;

when a length of write data associated with a set of write commands belonging to a first group corresponding to a first stream of the plurality of streams reaches the minimum write size, transfer write data having the minimum write size and associated with the set of write commands belonging to the first group from a write buffer in a memory of the host to a first buffer in the memory system;

write the write data transferred to the first buffer to a first write destination block of the plurality of write destination blocks, the first write destination block corresponding to the first stream;

when a first time has elapsed since reception of a write command belonging to a second group corresponding to a second stream of the plurality of streams;

transfer write data associated with the write command belonging to the second group from the write buffer in the memory of the host to a second buffer in the memory system as write data for the second stream; and

return a response indicative of completion of the write command belonging to the second group to the host; and

when a total length of (i) a length of the write data for the second stream stored in the second buffer and (ii) a length of write data associated with a set of write commands belonging to the second group reaches the minimum write size:

transfer the write data associated with the set of write commands belonging to the second group from the write buffer in the memory of the host to the first buffer; and

write the write data transferred to the first buffer, together with the write data for the second stream stored in the second buffer, to a second write destination block of the plurality of write destination blocks, the second write destination block corresponding to the second stream.

6. The memory system of claim 1 , wherein

the first buffer has a size equal to the minimum write size.

7. A method of controlling a memory system comprising a nonvolatile memory including a plurality of blocks, each of the plurality of blocks including a plurality of pages, each of the plurality of pages being a unit for a data write operation and a data read operation, the method comprising:

allocating a plurality of write destination blocks corresponding to a plurality of streams from the plurality of blocks;

receiving a plurality of write commands from a host, each of the plurality of write commands including a stream identifier indicative of one of the plurality of streams;

classifying the received write commands into a plurality of groups corresponding to the plurality of streams;

determining, for each of the groups, whether or not a length of write data associated with a set of write commands belonging to a same group reaches a minimum write size of the nonvolatile memory, the minimum write size being determined based on a size of each of the plurality of pages;

in response to a length of write data associated with a set of write commands belonging to a first group corresponding to a first stream of the plurality of streams reaching the minimum write size, transferring write data having the minimum write size and associated with the set of write commands belonging to the first group from a write buffer in a memory of the host to a first buffer in the memory system;

writing the write data transferred to the first buffer to a first write destination block of the plurality of write destination blocks, the first write destination block corresponding to the first stream; and

in response to a first time having elapsed since reception of a write command belonging to a second group corresponding to a second stream of the plurality of streams;

even in response to a length of write data associated with a set of write commands belonging to the second group does not reach the minimum write size, transferring the write data associated with the set of write commands belonging to the second group from the write buffer in the memory of the host to the first buffer; and

generating write data having the minimum write size by adding padding to the write data transferred to the first buffer, and writing the generated write data to a second write destination block of the plurality of write destination blocks, the second write destination block corresponding to the second stream.

8. The method of claim 7 , further comprising:

returning responses indicative of completions of the write commands belonging to the first group to the host after transfer of the write data to the first buffer is complete or after write of the write data to the first write destination block is complete.

9. The method of claim 7 , wherein

the determining includes:

calculating a total of lengths specified by the write commands belonging to the same group; and

determining whether or not the length of the write data associated with the set of write commands belonging to the same group reaches the minimum write size.

10. The method of claim 7 , wherein

the classifying includes classifying the received write commands into the plurality of groups by storing each of the received write commands in one of a plurality of command queues in the memory system.

11. A method of controlling a memory system comprising a nonvolatile memory including a plurality of blocks, each of the plurality of blocks including a plurality of pages, each of the plurality of pages being a unit for a data write operation and a data read operation, the method comprising:

allocating a plurality of write destination blocks corresponding to a plurality of streams from the plurality of blocks;

receiving a plurality of write commands from a host, each of the plurality of write commands including a stream identifier indicative of one of the plurality of streams;

classifying the received write commands into a plurality of groups corresponding to the plurality of streams;

determining, for each of the groups, whether or not a length of write data associated with a set of write commands belonging to a same group reaches a minimum write size of the nonvolatile memory, the minimum write size being determined based on a size of each of the plurality of pages;

in response to a length of write data associated with a set of write commands belonging to a first group corresponding to a first stream of the plurality of streams reaching the minimum write size, transferring write data having the minimum write size and associated with the set of write commands belonging to the first group from a write buffer in a memory of the host to a first buffer in the memory system;

writing the write data transferred to the first buffer to a first write destination block of the plurality of write destination blocks, the first write destination block corresponding to the first stream;

in response to a first time having elapsed since reception of a write command belonging to a second group corresponding to a second stream of the plurality of streams:

transferring write data associated with the write command belonging to the second group from the write buffer in the memory of the host to a second buffer in the memory system as write data for the second stream; and

returning a response indicative of completion of the write command belonging to the second group to the host; and

in response to a total length of (i) a length of the write data for the second stream stored in the second buffer and (ii) a length of write data associated with a set of write commands belonging to the second group reaching the minimum write size:

transferring the write data associated with the set of write commands belonging to the second group from the write buffer in the memory of the host to the first buffer; and

writing the write data transferred to the first buffer, together with the write data for the second stream stored in the second buffer, to a second write destination block of the plurality of write destination blocks, the second write destination block corresponding to the second stream.

12. The method of claim 7 , wherein

the first buffer has a size equal to the minimum write size.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 11, 2021
From: KANNO, SHINICHI
To: KIOXIA CORPORATION
Reel/Frame 056201/0193 →
Priority Claims (1)
JP JP2019-155832 · Aug 28, 2019 · national
Continuity (1)
Related Publication 20210064290A1 · Mar 4, 2021