IP Library Granted Patent US 12,346,587
Granted Patent B2
US 12,346,587 · App. 18/534,363 · Granted Jul 1, 2025

Techniques for concurrent host system access and data folding

Inventors: Nitul Gohain (Karnataka, IN); Jameer Mulani (Karnataka, IN); Jonathan S. Parry (Boise, ID)
Assignee: Micron Technology, Inc.
G06F3/064G06F3/0611G06F3/0673G06F12/0292G06F2212/1024
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 12,346,587
App. No.
18/534,363
Granted
Jul 1, 2025
Kind
B2
Abstract

Methods, systems, and devices for techniques for concurrent host system access and data folding are described. A memory system may determine to transfer (e.g., fold) data from a set of source data blocks to a set of destination data blocks. The memory system may receive a command to access a first source data block of the set of source data blocks concurrent with the data transfer. The memory system may generate a first order for transferring respective portions of the data that is based on a second order associated with a sequential read of the data from the set of destination data blocks. Based on the accessing the first source data block being concurrent with the data transfer, the first order may exclude a first portion of the data from the first source data block such that the data transfer and the accessing may be concurrently performed.

Claims (64)

1. An apparatus, comprising:

one or more memory devices; and

a controller coupled with the one or more memory devices and configured to cause the apparatus to:

determine to transfer data from a set of source data blocks of the apparatus to a set of destination data blocks of the apparatus;

receive, from a host system, a command to access a first source data block of the set of source data blocks;

generate a first order for transferring respective portions of the data to the set of destination data blocks based at least in part on a second order associated with a sequential read of the data from the set of destination data blocks and the command, the first order excluding a first portion of the data from the first source data block based at least in part on the accessing the first source data block being concurrent with the transfer of the data; and

transfer the respective portions of the data, excluding the first portion of the data, from the set of source data blocks to the set of destination data blocks based at least in part on the first order.

2. The apparatus of claim 1 , wherein, to generate the first order, the controller is configured to cause the apparatus to:

select a second portion of the data from a second source data block to replace the first portion of the data within the first order based at least in part on the second portion of the data being associated with being transferred to a same destination data block as the first portion of the data.

3. The apparatus of claim 2 , wherein the controller is further configured to cause the apparatus to:

transfer, after the first source data block is accessed, the first portion of the data from the first source data block to the same destination data block.

4. The apparatus of claim 1 , wherein, to generate the first order, the controller is configured to cause the apparatus to:

select a second portion of the data from a second source data block to replace the first portion of the data within the first order, wherein the second portion of the data is subsequent to the first portion of the data within the second order.

5. The apparatus of claim 4 , wherein the controller is further configured to cause the apparatus to:

store an indication that the second portion of the data replaced the first portion of the data within the first order;

transfer, after the first source data block is accessed, the first portion of the data to a respective destination data block of the set of destination data blocks; and

perform, after transferring the first portion of the data and based at least in part on the indication that the second portion of the data replaced the first portion of the data within the first order, one or more media management operations to replace the second portion of the data with the first portion of the data within the set of destination data blocks and to transfer the second portion of the data to a respective destination data block based at least in part on the second order.

6. The apparatus of claim 1 , wherein, to generate the first order, the controller is configured to cause the apparatus to:

replace the first portion of the data with dummy data within the first order, wherein the dummy data is transferred to the set of destination data blocks based at least in part on the replacing.

7. The apparatus of claim 6 , wherein the controller is further configured to cause the apparatus to:

store an indication that the dummy data replaced the first portion of the data within the first order; and

transfer, after the first source data block is accessed, the first portion of the data to a destination data block of the set of destination data blocks to replace the dummy data with the first portion of the data based at least in part on the indication that the dummy data replaced the first portion of the data.

8. The apparatus of claim 1 , wherein, to generate the first order, the controller is configured to cause the apparatus to:

determine a third order according to which the data was written to the set of source data blocks based at least in part on a mapping between logical addresses of the data and physical addresses of the data within the set of source data blocks; and

modify the third order based at least in part on the second order and the accessing the first source data block being concurrent with the transfer of the data to generate the first order.

9. The apparatus of claim 1 , wherein, to generate the first order, the controller is configured to cause the apparatus to:

generate a third order for transferring respective portions of the data to the set of destination data blocks based at least in part on a fourth order according to which the data was written to the set of source data blocks, the third order comprising the first portion of the data;

transpose the third order; and

generate the first order based at least in part on replacing the first portion of the data with a second portion of the data from a second source data block within the transposed third order.

10. The apparatus of claim 1 , wherein, to transfer the data, the controller is configured to cause the apparatus to:

sense the data from the set of source data blocks to a volatile memory device of the apparatus according to the first order; and

write the data from the volatile memory device to the set of destination data blocks according to the first order based at least in part on sensing the data to the volatile memory device according to the first order.

11. The apparatus of claim 1 , wherein, to transfer the respective portions of the data, the controller is configured to cause the apparatus to:

transfer a first respective portion of the data from the set of source data blocks to a first destination data block of the set of destination data blocks; and

transfer, after transferring the first respective portion of the data, a second respective portion of the data from the set of source data blocks to a second destination data block of the set of destination data blocks.

12. The apparatus of claim 1 , wherein the controller is further configured to cause the apparatus to:

transfer, after the first source data block is accessed, the first portion of the data to a destination data block of the set of destination data blocks based at least in part on the second order;

sequentially read the data from the set of destination data blocks according to the second order based at least in part on transferring the data according to the first order and transferring the first portion of the data; and

transmit the sequentially read data to the host system coupled with the apparatus.

13. The apparatus of claim 1 , wherein:

the set of source data blocks comprises a source virtual block associated with a set of memory dies of the apparatus; and

the set of destination data blocks comprises a destination virtual block associated with the set of memory dies of the apparatus.

14. The apparatus of claim 1 , wherein each source data block of the set of source data blocks and each destination data block of the set of destination data blocks is associated with a virtual block of a respective memory die of the apparatus.

15. The apparatus of claim 1 , wherein:

the set of source data blocks comprise single-level cells, multi-level cells, tri-level cells, quad-level cells, or any combination thereof, and

the set of destination data blocks comprise quad-level cells.

16. The apparatus of claim 1 , wherein the controller is further configured to cause the apparatus to:

refrain from suspending the transferring the respective portions of the data during the accessing the first portion of the data based at least in part on the respective portions of the data being transferred according to the first order.

17. A non-transitory computer-readable medium storing code comprising instructions which, when executed by a processor of an electronic device, cause the electronic device to:

determine to transfer data from a set of source data blocks of a memory system to a set of destination data blocks of the memory system;

receive, from a host system, a command to access a first source data block of the set of source data blocks;

generate a first order for transferring respective portions of the data to the set of destination data blocks based at least in part on a second order associated with a sequential read of the data from the set of destination data blocks and the command, the first order excluding a first portion of the data from the first source data block based at least in part on the accessing the first source data block being concurrent with the transfer of the data; and

transfer the respective portions of the data, excluding the first portion of the data, from the set of source data blocks to the set of destination data blocks based at least in part on the first order.

18. The non-transitory computer-readable medium of claim 17 , wherein the instructions to generate the first order, when executed by the processor of the electronic device, cause the electronic device to:

select a second portion of the data from a second source block to replace the first portion of the data within the first order based at least in part on the second portion of the data being associated with being transferred to a same destination data block as the first portion of the data; and

transfer, after the first source data block is accessed, the first portion of the data from the first source data block to the same destination data block.

19. A method, comprising:

determining to transfer data from a set of source data blocks of a memory system to a set of destination data blocks of the memory system;

receiving, from a host system, a command to access a first source data block of the set of source data blocks;

generating a first order for transferring respective portions of the data to the set of destination data blocks based at least in part on a second order associated with a sequential read of the data from the set of destination data blocks and the command, the first order excluding a first portion of the data from the first source data block based at least in part on the accessing the first source data block being concurrent with the transfer of the data; and

transferring the respective portions of the data, excluding the first portion of the data, from the set of source data blocks to the set of destination data blocks based at least in part on the first order.

20. The method of claim 19 , wherein generating the first order comprises:

selecting a second portion of the data from a second source data block to replace the first portion of the data within the first order based at least in part on the second portion of the data being associated with being transferred to a same destination data block as the first portion of the data; and

transferring, after the first source data block is accessed, the first portion of the data from the first source data block to the same destination data block.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 2, 2024
From: GOHAIN, NITUL; MULANI, JAMEER; PARRY, JONATHAN S.
To: MICRON TECHNOLOGY, INC.
Reel/Frame 066984/0496 →
Continuity (2)
Provisional Application 63435705 · Dec 28, 2022
Related Publication 20240220144A1 · Jul 4, 2024
References Cited (3)
US 20170220264A1 · Sokolov · 2017 [cited by examiner]
US 20240094943A1 · Fujiwara · 2024 [cited by examiner]
US 20240168683A1 · Li · 2024 [cited by examiner]