IP Library Granted Patent US 11,947,837
Granted Patent B2
US 11,947,837 · App. 16/984,238 · Granted Apr 2, 2024

Memory system and method for controlling nonvolatile memory

Inventors: Shinichi Kanno (Tokyo, JP); Hideki Yoshida (Yokohama Kanagawa, JP)
Assignee: Kioxia Corporation
G06F3/0659G06F3/0604G06F3/064G06F3/0656G06F3/0679G06F3/0683
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,947,837
App. No.
16/984,238
Granted
Apr 2, 2024
Kind
B2
Abstract

According to one embodiment, a memory system receives, from a host, a write request including a first identifier associated with one write destination block and storage location information indicating a location in a write buffer on a memory of the host in which first data to be written is stored. When the first data is to be written to a nonvolatile memory, the memory system obtains the first data from the write buffer by transmitting a transfer request including the storage location information to the host, transfers the first data to the nonvolatile memory, and writes the first data to the one write destination block.

Claims (90)

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

a nonvolatile memory including a plurality of blocks, each of the plurality of blocks being a unit for a data erase operation and including a plurality of word lines, each of the plurality of word lines connecting a plurality of memory cells; and

a controller electrically connected to the nonvolatile memory and configured to write data to the nonvolatile memory using a multi-step program operation that includes at least a first-step program operation and a second-step program operation; wherein

the controller is configured to:

receive, from the host, a first write request that includes storage location information indicating a first location of a write buffer on a memory of the host as a transfer source of first data;

at a first timing, in response to the first write request, transfer the first data from the first location of the write buffer of the host to the nonvolatile memory by transmitting a transfer request to the host, the transfer request including the storage location information that indicates the first location of the write buffer on the memory of the host;

at a second timing after the first timing, program the first data into the plurality of memory cells connected to a first word line of a write destination block by the first-step program operation;

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

at a fourth timing after the third timing, program the second data into the plurality of memory cells connected to a second word line of the write destination block by the first-step program operation, the second word line being different from the first word line;

at a fifth timing after the fourth timing, without receiving the first write request again, transfer the first data again from the first location of the write buffer of the host to the nonvolatile memory by transmitting, to the host again, the transfer request including the storage location information that indicates the first location of the write buffer on the memory of the host; and

at a sixth timing after the fifth timing, program the first data into the plurality of memory cells connected to the first word line of the write destination block by the second-step program operation.

2. The memory system of claim 1 , wherein

the controller is configured to:

receive, from the host, the first write request that includes the storage location information; and

when writing the first data to the nonvolatile memory using the multi-step program operation including a plurality of program operations:

for each of the plurality of program operations of the multi-step program operation,

obtain the first data from the write buffer on the memory of the host by transmitting, to the host, the transfer request that includes the storage location information;

transfer the first data to the nonvolatile memory; and

program the first data to the write destination block.

3. The memory system of claim 2 , wherein

the write buffer on the memory of the host includes a plurality of buffer regions respectively corresponding to the plurality of blocks, and

the storage location information indicates a buffer region among the plurality of buffer regions in which the first data is stored.

4. The memory system of claim 2 , wherein

the controller is configured to:

in the first step program operation,

obtain the first data from the write buffer on the memory of the host by transmitting, to the host, the transfer request that includes the storage location information;

transfer the first data to the nonvolatile memory; and

program the first data to the write destination block, and in the second step program operation,

obtain the first data from the write buffer on the memory of the host again by transmitting the transfer request to the host again, the transfer request including the storage location information;

transfer the first data to the nonvolatile memory again; and

program the first data to the write destination block again.

5. The memory system of claim 2 , wherein

the controller is further configured to:

in response to receiving, from the host, a read request to read the first data in a period after starting to transfer the first data to the nonvolatile memory before the first data becomes readable from the nonvolatile memory,

transmit, to the host, a request to obtain the first data from the write buffer as a response to the read request.

6. The memory system of claim 5 , wherein

the controller is configured to:

in response to receiving, from the host, the read request to read the first data in the period after starting to transfer the first data to the nonvolatile memory before the first data becomes readable from the nonvolatile memory,

transmit, to the host, the request to obtain the first data from the write buffer as the response to the read request, such that the host reads the first data from the write buffer.

7. The memory system of claim 2 , wherein

the controller is further configured to:

in response to the write destination block being fully filled with data,

notify the host that a write buffer region in the write buffer corresponding to the write destination block is unnecessary.

8. The memory system of claim 2 , wherein

the controller is configured to communicate with the host via Ethernet.

9. The memory system of claim 2 , wherein

the first write request includes a block identifier specifying the write destination block.

10. The memory system of claim 2 , wherein

the plurality of blocks are associated with a plurality of streams, respectively, and the first write request includes an identifier of one of the plurality of streams.

11. A method of controlling a nonvolatile memory, the nonvolatile memory including a plurality of blocks, each of the plurality of blocks being a unit for a data erase operation and including a plurality of word lines, each of the plurality of word lines connecting a plurality of memory cells, said method comprising:

writing data to the nonvolatile memory using a multi-step program operation that includes at least a first-step program operation and a second-step program operation; wherein

the method further comprises:

receiving, from a host, a first write request that includes storage location information indicating a first location in a write buffer on a memory of the host as a transfer source of first data;

at a first timing, in response to the first write request, transferring the first data from the first location of the write buffer of the host to the nonvolatile memory by transmitting a transfer request to the host, the transfer request including the storage location information that indicates the first location of the write buffer on the memory of the host;

at a second timing after the first timing, programing the first data into the plurality of memory cells connected to a first word line of a write destination block by the first-step program operation;

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

at a fourth timing after the third timing, programing the second data into the plurality of memory cells connected to a second word line of the write destination block by the first-step program operation, the second word line being different from the first word line;

at a fifth timing after the fourth timing, without receiving the first write request again, transferring the first data again from the first location of the write buffer of the host to the nonvolatile memory by transmitting, to the host again, the transfer request including the storage location information that indicates the first location of the write buffer on the memory of the host; and

at a sixth timing after the fifth timing, programing the first data into the plurality of memory cells connected to the first word line of the write destination block by the second-step program operation.

12. The method of claim 11 , further comprising:

receiving, from the host, the first write request that includes the storage location information; and

when writing the first data to the nonvolatile memory using the multi-step program operation including a plurality of program operations:

for each of the plurality of program operations of the multi-step program operation,

obtaining the first data from the write buffer on the memory of the host by transmitting, to the host, the transfer request that includes the storage location information;

transferring the first data to the nonvolatile memory; and

programing the first data to the write destination block.

13. The method of claim 12 , wherein

the write buffer on the memory of the host includes a plurality of buffer regions respectively corresponding to the plurality of blocks, and

the storage location information indicates a buffer region among the plurality of buffer regions in which the first data is stored.

14. The method of claim 12 , wherein

the first step program operation includes:

obtaining the first data from the write buffer on the memory of the host by transmitting, to the host, the transfer request that includes the storage location information;

transferring the first data to the nonvolatile memory; and

programing the first data to the write destination block, and the second step program operation includes:

obtaining the first data from the write buffer on the memory of the host again by transmitting the transfer request to the host again, the transfer request including the storage location information;

transferring the first data to the nonvolatile memory again; and

programing the first data to the write destination block again.

15. The method of claim 12 , further comprising:

in response to receiving, from the host, a read request to read the first data in a period after starting to transfer the first data to the nonvolatile memory before the first data becomes readable from the nonvolatile memory,

transmitting, to the host, a request to obtain the first data from the write buffer as a response to the read request.

16. The method of claim 15 , wherein the request is transmitted to the host such that the host reads the first data from the write buffer.

17. The method of claim 12 , further comprising:

in response to the write destination block being fully filled with data,

notifying the host that a write buffer region in the write buffer corresponding to the write destination block is unnecessary.

18. The method of claim 12 , further comprising:

communicating with the host via Ethernet.

19. The method of claim 12 , wherein

the first write request includes a block identifier specifying the write destination block.

20. The method of claim 12 , wherein

the plurality of blocks are associated with a plurality of streams, respectively, and the first write request includes an identifier of one of the plurality of streams.

Assignments (3)
MERGER AND CHANGE OF NAME Recorded Feb 17, 2022
From: TOSHIBA MEMORY CORPORATION; K.K. PANGEA
To: K.K. PANGEA
Reel/Frame 059039/0780 →
CHANGE OF NAME Recorded Feb 17, 2022
From: TOSHIBA MEMORY CORPORATION
To: KIOXIA CORPORATION
Reel/Frame 059175/0001 →
CHANGE OF NAME Recorded Feb 17, 2022
From: K.K. PANGEA
To: TOSHIBA MEMORY CORPORATION
Reel/Frame 059180/0266 →
Priority Claims (1)
JP 2017-236269 · Dec 8, 2017 · national
Continuity (2)
Continuation 16004601 · Jun 11, 2018
Related Publication 20200363996A1 · Nov 19, 2020