IP Library Granted Patent US 11,543,997
Granted Patent B2
US 11,543,997 · App. 17/406,619 · Granted Jan 3, 2023

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,543,997
App. No.
17/406,619
Granted
Jan 3, 2023
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 (98)

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

a nonvolatile memory including a plurality of blocks, a first block among the plurality of blocks including a first word line and a second word line, a data write operation to the nonvolatile memory being performed in a unit of a first size; and

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

in response to receiving, from the host, a first write command:

at a first timing, transfer first write data from the buffer of the host to the nonvolatile memory, a size of the first write data being equal to the first size;

at a second timing after the first timing, instruct the nonvolatile memory to write the first write data into memory cells connected to the first word line;

at a third timing after the second timing, transfer second write data from the buffer of the host to the nonvolatile memory, a size of the second write data being equal to the first size;

at a fourth timing after the third timing, instruct the nonvolatile memory to write the second write data into memory cells connected to the second word line; and

at a fifth timing after the fourth timing, instruct the nonvolatile memory to write the first write data into the memory cells connected to the first word line again.

2. The memory system according to claim 1 , wherein

the first write data is not readable from the nonvolatile memory between the second timing and the fifth timing, and

the first write data is readable from the nonvolatile memory after the fifth timing.

3. The memory system according to claim 1 , wherein

the nonvolatile memory is configured to:

at the second timing, write the first write data into the memory cells connected to the first word line by a first programming method;

at the fourth timing, write the second write data into the memory cells connected to the second word line by the first programming method; and

at the fifth timing, write the first write data into the memory cells connected to the first word line by a second programming method, the second programming method being different from the first programming method.

4. The memory system according to claim 1 , further comprising an internal buffer, wherein

the controller is further configured to:

between the first timing and the second timing, store the first write data into the internal buffer;

between the third timing and the fourth timing, store the second write data into the internal buffer; and

at a sixth timing between the fourth timing and the fifth timing, in a case that the first write data is no longer stored in the internal buffer:

transfer the first write data from the buffer of the host again,

store the first write data into the internal buffer again, and

transfer the first write data from the internal buffer to the nonvolatile memory again.

5. The memory system according to claim 1 , further comprising an internal buffer, wherein

the controller is further configured to:

between the first timing and the second timing, store the first write data into the internal buffer;

between the third timing and the fourth timing, store the second write data into the internal buffer; and

at a sixth timing between the fourth timing and the fifth timing, in a case that the first write data is still stored in the internal buffer,

transfer the first write data from the internal buffer to the nonvolatile memory again without transferring the first write data from the buffer of the host again.

6. The memory system according to claim 1 , further comprising an internal buffer, wherein

the controller is further configured to:

between the first timing and the second timing, store the first write data into the internal buffer;

between the third timing and the fourth timing, store the second write data into the internal buffer; and

at a sixth timing between the fourth timing and the fifth timing, in a case that the first write data is no longer stored in the internal buffer and a first read command is received from the host that requests to read the first write data,

transfer the first write data from the buffer of the host again,

store the first write data into the internal buffer again, and

transfer the first write data from the internal buffer to the host.

7. The memory system according to claim 1 , wherein

the first write data includes a plurality of pieces of write data, the plurality of pieces of write data being respectively associated with a plurality of write commands including the first write command, and

a size of each of the plurality of pieces of write data is smaller than the first size.

8. The memory system according to claim 1 , further comprising an internal buffer, wherein

the controller is configured to:

transfer each of the first write data and the second write data from the buffer of the host to the nonvolatile memory via the internal buffer.

9. The memory system according to claim 1 , wherein

the first write command includes an identifier of the first block, and

the controller is further configured to, in response to receiving, from the host, a command that requests to allocate an available block for the host, allocate the first block from the plurality of blocks for the host and notify the host of the identifier of the first block.

10. The memory system according to claim 1 , wherein

the first block further includes a third word line, and

the controller is further configured to:

at a sixth timing, receive a second write command that requests to write third write data, a size of the third write data being smaller than the first size; and

upon detecting that a threshold time period has elapsed from the sixth timing, transfer the third write data along with dummy write data to the nonvolatile memory, a size of a total of the third write data and the dummy write data being equal to the first size.

11. A method of controlling a nonvolatile memory, the nonvolatile memory including a plurality of blocks, a first block among the plurality of blocks including a first word line and a second word line, a data write operation to the nonvolatile memory being performed in a unit of a first size, the method comprising:

in response to receiving, from a host, a first write command:

at a first timing, transferring first write data from a buffer of the host to the nonvolatile memory, a size of the first write data being equal to the first size;

at a second timing after the first timing, instructing the nonvolatile memory to write the first write data into memory cells connected to the first word line;

at a third timing after the second timing, transferring second write data from the buffer of the host to the nonvolatile memory, a size of the second write data being equal to the first size;

at a fourth timing after the third timing, instructing the nonvolatile memory to write the second write data into memory cells connected to the second word line; and

at a fifth timing after the fourth timing, instructing the nonvolatile memory to write the first write data into the memory cells connected to the first word line again.

12. The method according to claim 11 , wherein

the first write data is not readable from the nonvolatile memory between the second timing and the fifth timing, and

the first write data is readable from the nonvolatile memory after the fifth timing.

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

at the second timing, instructing the nonvolatile memory to write the first write data into the memory cells connected to the first word line by a first programming method;

at the fourth timing, instructing the nonvolatile memory to write the second write data into the memory cells connected to the second word line by the first programming method; and

at the fifth timing, instructing the nonvolatile memory to write the first write data into the memory cells connected to the first word line by a second programming method, the second programming method being different from the first programming method.

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

between the first timing and the second timing, storing the first write data into an internal buffer that is outside of the host;

between the third timing and the fourth timing, storing the second write data into the internal buffer; and

at a sixth timing between the fourth timing and the fifth timing, in a case that the first write data is no longer stored in the internal buffer:

transferring the first write data from the buffer of the host again,

storing the first write data into the internal buffer again, and

transferring the first write data from the internal buffer to the nonvolatile memory again.

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

between the first timing and the second timing, storing the first write data into an internal buffer that is outside of the host;

between the third timing and the fourth timing, storing the second write data into the internal buffer; and

at a sixth timing between the fourth timing and the fifth timing, in a case that the first write data is still stored in the internal buffer,

transferring the first write data from the internal buffer to the nonvolatile memory again without transferring the first write data from the buffer of the host again.

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

between the first timing and the second timing, storing the first write data into an internal buffer that is outside of the host;

between the third timing and the fourth timing, storing the second write data into the internal buffer; and

at a sixth timing between the fourth timing and the fifth timing, in a case that the first write data is no longer stored in the internal buffer and a first read command is received from the host that requests to read the first write data:

transferring the first write data from the buffer of the host again,

storing the first write data into the internal buffer again, and

transferring the first write data from the internal buffer to the host.

17. The method according to claim 11 , wherein

the first write data includes a plurality of pieces of write data, the plurality of pieces of write data being respectively associated with a plurality of write commands including the first write command, and

a size of each of the plurality of pieces of write data is smaller than the first size.

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

transferring each of the first write data and the second write data from the buffer of the host to the nonvolatile memory via an internal buffer that is outside of the host.

19. The method according to claim 11 , wherein

the first write command includes an identifier of the first block, and the method further comprises:

in response to receiving, from the host, a command that requests to allocate an available block for the host, allocating the first block from the plurality of blocks for the host and notifying the host of the identifier of the first block.

20. The method according to claim 11 , wherein

the first block further includes a third word line, and the method further comprises:

at a sixth timing, receiving a second write command that requests to write third write data, a size of the third write data being smaller than the first size; and

upon detecting that a threshold time period has elapsed from the sixth timing, transferring the third write data along with dummy write data to the nonvolatile memory, a size of a total of the third write data and the dummy write data being equal to the first size.

Assignments (1)
CHANGE OF NAME Recorded Jan 11, 2022
From: TOSHIBA MEMORY CORPORATION
To: KIOXIA CORPORATION
Reel/Frame 058725/0932 →
Priority Claims (1)
JP JP2018-083662 · Apr 25, 2018 · national
Continuity (3)
Continuation 16928422 · Jul 14, 2020
Continuation 16351993 · Mar 13, 2019
Related Publication 20210382648A1 · Dec 9, 2021