IP Library Granted Patent US 11,262,943
Granted Patent B2
US 11,262,943 · App. 16/564,376 · Granted Mar 1, 2022

Memory system and method for controlling nonvolatile memory with a host memory buffer

Inventor: Shinichi Kanno (Ota, JP)
Assignee: Kioxia Corporation
G06F3/0659G06F3/0604G06F3/064G06F3/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,262,943
App. No.
16/564,376
Granted
Mar 1, 2022
Kind
B2
Abstract

According to one embodiment, a memory system retrieves write data from a write buffer of a host, and executes a write operation of writing the write data to a write destination location of a write destination block selected from a plurality of blocks. In a case where a first read command to designate the write data as read target data is received from the host before the write operation is finished such that the write data becomes readable, the memory system executes a read operation including an operation of reading the read target data from the write buffer of the host and an operation of returning the read target data to the host. The memory system prohibits releasing a region in the write buffer where the write data is stored until execution of the first read command is completed.

Claims (49)

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

a nonvolatile memory including a plurality of blocks; and

a controller electrically connected to the nonvolatile memory and configured to control the nonvolatile memory, wherein

the controller is configured to:

receive from the host a write command to designate storage location information indicative of a storage location in a write buffer of the host where write data is stored, the write buffer of the host existing in the host;

retrieve the write data from the write buffer of the host, on the basis of the storage location information;

execute a write operation of writing the write data to a write destination location of a write destination block selected from the plurality of blocks;

in a case where a first read command to designate the write data as read target data is received from the host before the write operation is finished such that the write data becomes readable from the nonvolatile memory, execute a read operation including an operation of reading the read target data from the write buffer of the host and an operation of returning the read target data to the host; and

when the write operation is finished such that the write data becomes readable from the write destination block,

determine whether or not the read operation is being executed; and

in a case where the read operation is being executed and the write destination block is in a first status that indicates the block is filled with write data, delay issuing a write buffer release request to the host until execution of the first read command is completed, the write buffer release request being a request releasing a region in the write buffer where the write data is stored.

2. The memory system of claim 1 , wherein

the controller is configured to transmit to the host the release request after execution of the first read command is completed.

3. The memory system of claim 1 , wherein

the controller is configured to, in a case where read target data designated by a read command received from the host is readable from the write destination block and the read target data exists in the write buffer of the host, execute a read operation including an operation of reading the read target data from the write buffer and an operation of returning the read target data to the host.

4. The memory system of claim 1 , wherein

the controller is configured to, in a case where read target data designated by a read command received from the host is readable from the write destination block and the read target data exists in the write buffer of the host, execute a read operation including an operation of reading the read target data from the write destination block and an operation of returning the read target data to the host.

5. The memory system of claim 1 , wherein

the write operation of the write data is executed by plural write steps including transferring the write data to the nonvolatile memory at plural times, and

the controller is configured to:

set a first counter value to a value obtained by adding 1 to the number of times of the write steps necessary to the write operation;

decrement the first counter value by 1 every time one write step is finished;

decrement the first counter value by 1 when the write operation is finished such that the write data becomes readable;

increment the first counter value by 1 when receiving the first read command during execution of the write operation;

decrement the first counter value by 1 when the read operation is finished; and

transmit to the host a release request to release the region in the write buffer where the write data is stored when the first counter value becomes zero.

6. A method of controlling a nonvolatile memory including a plurality of blocks, the method comprising:

receiving from a host a write command to designate storage location information indicative of a storage location in a write buffer of the host where write data is stored, the write buffer of the host existing in the host;

retrieving the write data from the write buffer of the host, on the basis of the storage location information;

executing a write operation of writing the write data to a write destination location of a write destination block selected from the plurality of blocks;

in a case where a first read command to designate the write data as read target data is received from the host before the write operation is finished such that the write data becomes readable from the nonvolatile memory, executing a read operation including an operation of reading the read target data from the write buffer of the host and an operation of returning the read target data to the host; and

when the write operation is finished such that the write data becomes readable from the write destination block,

determining whether or not the read operation is being executed; and

in a case where the read operation is being executed and the write destination block is in a first status that indicates the block is filled with write data, delaying transmitting a write buffer release request to the host until execution of the first read command is completed, the write buffer release request being a request releasing a region in the write buffer where the write data is stored.

7. The method of claim 6 , further comprising:

transmitting to the host the write buffer release request after the execution of the first read command is completed.

8. The method of claim 6 , further comprising:

in a case where read target data designated by a read command received from the host is readable from the write destination block and the read target data exists in the write buffer, executing a read operation including an operation of reading the read target data from the write buffer and an operation of returning the read target data to the host.

9. The method of claim 6 , further comprising:

in a case where read target data designated by a read command received from the host is readable from the write destination block and the read target data exists in the write buffer, executing a read operation including an operation of reading the read target data from the write destination block and a operation of returning the read target data to the host.

10. The method of claim 6 , wherein

the write operation of the write data is executed by plural write steps including transferring the write data to the nonvolatile memory at plural times, and

the method further comprises:

setting a first counter value to a value obtained by adding 1 to the number of times of the write steps necessary to the write operation;

decrementing the first counter value by 1 every time one write step is finished;

decrementing the first counter value by 1 when the write operation is finished such that the write data becomes readable;

incrementing the first counter value by 1 when receiving the first read command during execution of the write operation;

decrementing the first counter value by 1 when the read operation is finished; and

transmitting to the host a release request to release the region in the write buffer where the write data is stored when the first counter value becomes zero.

Assignments (2)
CHANGE OF NAME Recorded Jan 11, 2022
From: TOSHIBA MEMORY CORPORATION
To: KIOXIA CORPORATION
Reel/Frame 058725/0932 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 2, 2019
From: KANNO, SHINICHI
To: TOSHIBA MEMORY CORPORATION
Reel/Frame 051151/0930 →
Priority Claims (1)
JP JP2019-013222 · Jan 29, 2019 · national
Continuity (1)
Related Publication 20200241797A1 · Jul 30, 2020