IP Library Granted Patent US 11,861,218
Granted Patent B2
US 11,861,218 · App. 17/981,817 · Granted Jan 2, 2024

Memory system and method for controlling nonvolatile memory

Inventors: Shinichi Kanno (Ota, JP); Hideki Yoshida (Yokohama, JP); Naoki Esaka (Kawasaki, JP); Hiroshi Nishimura (Hachioji, JP)
Assignee: KIOXIA CORPORATION
G06F3/0656G06F3/061G06F3/064G06F3/0679G06F12/1009
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,861,218
App. No.
17/981,817
Granted
Jan 2, 2024
Kind
B2
Abstract

According to one embodiment, a memory system includes a nonvolatile memory and a controller. The controller acquires, from a host, write data having the same first size as a data write unit of the nonvolatile memory and obtained by dividing write data associated with one write command having a first identifier indicating a first write destination block in a plurality of write destination blocks into a plurality of write data or combining write data associated with two or more write commands having the first identifier. The controller writes the acquired write data having the first size to the first write destination block by a first write operation.

Claims (92)

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

a nonvolatile memory, a data write operation to the nonvolatile memory being to be performed in a unit of a first size; and

a controller electrically connected to the nonvolatile memory and configured to:

after receiving, from the host, a first write command instructing to write first data of a second size from the buffer of the host to the nonvolatile memory, the second size being smaller than the first size, wait for receiving a second write command without obtaining the first data from the buffer of the host; and

in response to receiving, from the host, the second write command instructing to write second data of a third size from the buffer of the host to the nonvolatile memory, a sum of the second size and the third size being larger than or equal to the first size,

transfer third data of the first size from the buffer of the host to the nonvolatile memory, the third data including at least a part of the first data and at least a part of the second data; and

instruct the nonvolatile memory to write the third data.

2. The memory system according to claim 1 , wherein

the nonvolatile memory includes a plurality of blocks, each of the plurality of blocks being a unit of a data erase operation, and

both the first write command and the second write command designate a first block of the plurality of blocks as a write destination.

3. The memory system according to claim 2 , wherein

the controller is further configured to:

in response to receiving a block allocation command from the host, allocate the first block for the host; and

notify the host of an identifier of the first block.

4. The memory system according to claim 1 , wherein

the nonvolatile memory includes a plurality of blocks, each of the plurality of blocks being a unit of a data erase operation, and

both the first write command and the second write command designate a first super block as a write destination, the first super block including a group of blocks of the plurality of blocks.

5. The memory system according to claim 1 , wherein

the controller is further configured to:

obtain the at least part of the first data and the at least part of the second data from discrete addresses of the buffer of the host.

6. The memory system according to claim 1 , wherein

the nonvolatile memory includes a plurality of blocks, each of the plurality of blocks being a unit of a data erase operation, each of the plurality of blocks including a plurality of pages, and

the first size is equal to a size of each of the plurality of pages.

7. The memory system according to claim 1 , wherein

the nonvolatile memory includes a plurality of blocks, each of the plurality of blocks being a unit of a data erase operation, each of the plurality of blocks including a plurality of pages, and

the first size is equal to a size of a group of pages of the plurality of pages.

8. The memory system according to claim 1 , wherein

the controller is further configured to:

in response to receiving, from the host, a third write command instructing to write fourth data of a fourth size from the buffer of the host to the nonvolatile memory, the fourth size being larger than the first size,

transfer fifth data of the first size from the buffer of the host to the nonvolatile memory, the fifth data including a part of the fourth data; and

instruct the nonvolatile memory to write the fifth data.

9. The memory system according to claim 1 , wherein

the nonvolatile memory includes a plurality of blocks, each of the plurality of blocks being a unit of a data erase operation, each of the plurality of blocks including a plurality of pages, and

the controller is further configured to:

instruct the nonvolatile memory to write the third data to a first page of the plurality of pages; and

upon a second page subsequent to the first page of the plurality of pages being available for the data write operation,

transfer sixth data of the first size from the buffer of the host to the nonvolatile memory; and

instruct the nonvolatile memory to write the sixth data to the second page of the plurality of pages.

10. The memory system according to claim 1 , wherein

the controller is further configured to:

determine a first address of the buffer of the host by logically segmenting the buffer by the first size; and

transfer the third data from the determined first address of the buffer of the host.

11. The memory system according to claim 1 , wherein

the controller is further configured to:

transfer the third data from the buffer of the host to the nonvolatile memory by a plurality of transfers each transferring data of a fifth size, the fifth size being smaller than the first size.

12. The memory system according to claim 1 , wherein

the controller is further configured to:

in a case where the second write command is not received for a threshold period,

transfer seventh data of the first size to the nonvolatile memory, the seventh data including dummy data and at least a part of the first data; and

instruct the nonvolatile memory to write the seventh data.

13. A method of controlling a nonvolatile memory, a data write operation to the nonvolatile memory being to be performed in a unit of a first size, said method comprising:

after receiving, from a host that includes a buffer, a first write command instructing to write first data of a second size from the buffer of the host to the nonvolatile memory, the second size being smaller than the first size, waiting for receiving a second write command without obtaining the first data from the buffer of the host; and

in response to receiving, from the host, the second write command instructing to write second data of a third size from the buffer of the host to the nonvolatile memory, a sum of the second size and the third size being larger than or equal to the first size,

transferring third data of the first size from the buffer of the host to the nonvolatile memory, the third data including at least a part of the first data and at least a part of the second data; and

instructing the nonvolatile memory to write the third data.

14. The method according to claim 13 , wherein

the nonvolatile memory includes a plurality of blocks, each of the plurality of blocks being a unit of a data erase operation, and

both the first write command and the second write command designate a first block of the plurality of blocks as a write destination.

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

in response to receiving a block allocation command from the host, allocating the first block for the host; and

notifying the host of an identifier of the first block.

16. The method according to claim 13 , wherein

the nonvolatile memory includes a plurality of blocks, each of the plurality of blocks being a unit of a data erase operation, and

both the first write command and the second write command designate a first super block as a write destination, the first super block including a group of blocks of the plurality of blocks.

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

obtaining the at least part of the first data and the at least part of the second data from discrete addresses of the buffer of the host.

18. The method according to claim 13 , wherein

the nonvolatile memory includes a plurality of blocks, each of the plurality of blocks being a unit of a data erase operation, each of the plurality of blocks including a plurality of pages, and

the first size is equal to a size of each of the plurality of pages.

19. The method according to claim 13 , wherein

the nonvolatile memory includes a plurality of blocks, each of the plurality of blocks being a unit of a data erase operation, each of the plurality of blocks including a plurality of pages, and

the first size is equal to a size of a group of pages of the plurality of pages.

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

in response to receiving, from the host, a third write command instructing to write fourth data of a fourth size from the buffer of the host to the nonvolatile memory, the fourth size being larger than the first size,

transferring fifth data of the first size from the buffer of the host to the nonvolatile memory, the fifth data including a part of the fourth data; and

instructing the nonvolatile memory to write the fifth data.

21. The method according to claim 13 , wherein

the nonvolatile memory includes a plurality of blocks, each of the plurality of blocks being a unit of a data erase operation, each of the plurality of blocks including a plurality of pages, and

the method further comprises:

instructing the nonvolatile memory to write the third data to a first page of the plurality of pages; and

upon a second page subsequent to the first page of the plurality of pages being available for the data write operation,

transferring sixth data of the first size from the buffer of the host to the nonvolatile memory; and

instructing the nonvolatile memory to write the sixth data to the second page of the plurality of pages.

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

determining a first address of the buffer of the host by logically segmenting the buffer by the first size; and

transferring the third data from the determined first address of the buffer of the host.

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

transferring the third data from the buffer of the host to the nonvolatile memory by a plurality of transfers each transferring data of a fifth size, the fifth size being smaller than the first size.

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

in a case where the second write command is not received for a threshold period,

transferring seventh data of the first size to the nonvolatile memory, the seventh data including dummy data and at least a part of the first data; and

instructing the nonvolatile memory to write the seventh data.

Priority Claims (1)
JP 2018-083662 · Apr 25, 2018 · national
Continuity (4)
Continuation 17406619 · Aug 19, 2021
Continuation 16928422 · Jul 14, 2020
Continuation 16351993 · Mar 13, 2019
Related Publication 20230076210A1 · Mar 9, 2023