US 12,379,874 B2
Memory system and method of controlling nonvolatile memory by controlling the writing of data to and reading of data from a plurality of blocks in the nonvolatile memory
Shinichi Kanno, Ota (JP)
Assigned to KIOXIA CORPORATION, Tokyo (JP)
Filed by KIOXIA CORPORATION, Tokyo (JP)
Filed on Aug. 2, 2023, as Appl. No. 18/363,898.
Application 18/363,898 is a continuation of application No. 17/444,856, filed on Aug. 11, 2021, granted, now 11,762,591.
Application 17/444,856 is a continuation of application No. 16/815,970, filed on Mar. 11, 2020, granted, now 11,119,701, issued on Sep. 14, 2021.
Claims priority of application No. 2019-155833 (JP), filed on Aug. 28, 2019.
Prior Publication US 2023/0376250 A1, Nov. 23, 2023
This patent is subject to a terminal disclaimer.
Int. Cl. G06F 3/06 (2006.01)
CPC G06F 3/0659 (2013.01) [G06F 3/0604 (2013.01); G06F 3/064 (2013.01); G06F 3/0656 (2013.01); G06F 3/0679 (2013.01)] 14 Claims
OG exemplary drawing
 
1. A memory system connectable to a host, comprising:
a nonvolatile memory including a plurality of blocks each including a plurality of pages; and
a controller configured to write data to a plurality of write destination blocks allocated from the plurality of blocks, wherein
the controller is configured to:
in response to receiving a read command from the host, increment a first counter value corresponding to a first block having a block address allocated to a logical address of read target data specified by the received read command, wherein the first counter value is among a plurality of first counter values corresponding to the plurality of blocks;
read the read target data from a buffer when the read target data is waiting for being written or is being written to the first block, and decrement the first counter value corresponding to the first block after the reading from the buffer has been finished, the buffer being a first buffer in the memory system or a write buffer of the host; and
when there is no valid data left in one block among the plurality of blocks, transition a state of the one block to a state reusable as a new write destination block after a first counter value corresponding to the one block among the plurality of first counter values becomes zero.