IP Library Granted Patent US 11,662,952
Granted Patent B2
US 11,662,952 · App. 17/852,840 · Granted May 30, 2023

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,662,952
App. No.
17/852,840
Granted
May 30, 2023
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 (31)

1. A memory system connectable to a host including a write buffer, 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 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:

manage a plurality of command queues, each of the plurality of command queues corresponding to each of the plurality of streams;

when receiving a first write command from the host, store the first write command in a first command queue of the plurality of command queues, the first write command specifying a stream identifier of a first stream of the plurality of streams, a first data pointer and a size of first write data, the first data pointer being a pointer indicating a location in the write buffer in which the first write data is stored, the first write data being write data to be written into the memory system;

when receiving a second write command from the host, store the second write command in a second command queue of the plurality of command queues, the second write command specifying a stream identifier of a second stream of the plurality of streams, a second data pointer and a size of second write data, the second data pointer being a pointer indicating a location in the write buffer in which the second write data is stored, the second write data being write data to be written into the memory system;

determine whether or not a total size reaches a minimum write size of the nonvolatile memory, the total size being a sum of a plurality of sizes, each of the plurality of sizes corresponding to write data associated with each of a plurality of write commands included in the first command queue, the minimum write size being determined based on a size of each of the plurality of pages;

when the total size reaches the minimum write size, transfer write data having the minimum write size and associated with the plurality of write commands included in the first command queue from the write buffer to a first buffer in the memory system based on a plurality of data pointers and the plurality of sizes of write data, each of the plurality of data pointers corresponding to write data associated with each of the plurality of write commands; and

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.

2. The memory system of claim 1 , wherein

the controller is configured to return responses indicative of completions of the plurality of write commands included in the first command queue 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 the total size based on the plurality of sizes specified by the plurality of write commands included in the first command queue, and determine whether or not the total size reaches the minimum write size.

4. The memory system oft claim 1 , wherein

the controller is configured to:

when a first time has elapsed since reception of the second write command:

even when a total size of write data associated with a plurality of write commands included in the second command queue does not reach the minimum write size, transfer the write data associated with the plurality of write commands included in the second command queue from the write buffer 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.

5. The memory system of claim 1 , wherein

the controller is configured to:

when a first time has elapsed since reception of the second write command:

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

return a response indicative of completion of the second write command.

6. The memory system of claim 5 , wherein

the controller is configured to:

when a total size of (i) a size of the write data for the second stream stored in the second buffer and (ii) a size of write data associated with a plurality of write commands included in the second command queue reaches the minimum write size:

transfer the write data associated with the plurality of write commands included in the second command queue from the write buffer 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.

7. The memory system of claim 1 , wherein

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

Priority Claims (1)
JP JP2019-155832 · Aug 28, 2019 · national
Continuity (2)
Continuation 16815950 · Mar 11, 2020
Related Publication 20220334771A1 · Oct 20, 2022