IP Library Granted Patent US 12,366,986
Granted Patent B2
US 12,366,986 · App. 17/203,174 · Granted Jul 22, 2025

On-SSD-copy techniques using copy-on-write

Inventors: Peng Li (Beaverton, OR); Sanjeev N. Trika (Portland, OR); David C. Estrada (Portland, OR)
Assignee: SK hynix NAND Product Solutions Corp.
G06F3/0647G06F3/0604G06F3/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 12,366,986
App. No.
17/203,174
Granted
Jul 22, 2025
Kind
B2
Abstract

On-SSD-copy using Copy-On-Write (COW) techniques track indirection updates to the copied data without duplicating the data. In one example, a method involves receiving a copy command to copy data from a source LBA to a destination LBA. An entry in a logical-to-physical (L2P) table corresponding to the destination LBA is updated to refer to the same physical address as the source LBA's entry in the L2P table. Flags in the L2P table are updated to indicate that more than one LBA refers to the same physical address. After updating the L2P table and before copying the data, a token is stored to the storage device. After storing the token, but before copying the data, an acknowledgement can be sent to the host to indicate the copy command is complete. A subsequent write to either the source or destination LBAs trigger a copy of the data.

Claims (68)

1. An article of manufacture comprising a non-transitory computer readable storage medium having content stored thereon which when accessed causes the performance of operations to execute a method comprising:

receiving, at a non-volatile storage device, a copy command from a host to copy data from a source logical block address (LBA) to a destination logical block address (LBA);

modifying a logical-to-physical (L2P) table to map the destination LBA to a same physical address as the source LBA;

updating flags in the L2P table corresponding to the source LBA and the destination LBA to indicate more than one LBA refers to the same physical address;

after modifying the L2P table and setting the flags and before copying the data, storing a token to the non-volatile storage device to indicate the copy command is complete;

sending an acknowledgement to the host to indicate the copy command is complete; and

in response to receipt of a write command to write to the source LBA or the destination LBA and in response to at least one of the flags having been set, copying the data.

2. The article of manufacture of claim 1 , wherein:

the token includes a signature, the signature including a number to indicate the token is a copy command token.

3. The article of manufacture of claim 2 , wherein:

the token includes: the source LBA, the destination LBA, and a number of blocks to copy.

4. The article of manufacture of claim 2 , wherein:

the token includes: a checksum to indicate whether the token is corrupt.

5. The article of manufacture of claim 1 , further comprising:

updating a physical-to-logical (P2L) table to associate the physical address with both the destination LBA and the source LBA.

6. The article of manufacture of claim 5 , wherein:

the P2L table maps a subset of physical addresses that are referred to by more than one LBA.

7. The article of manufacture of claim 5 , further comprising:

prior to modifying the L2P table to point the destination LBA to the same physical address as the source LBA, removing an entry of the P2L table associating a second physical address with the destination LBA.

8. The article of manufacture of claim 1 , wherein copying the data comprises:

allocating a new page,

copying the data to the new page, and

updating the flags to indicate only one LBA refers to the same physical address.

9. The article of manufacture of claim 1 , further comprising:

performing a defragmentation (defrag) operation to move valid pages of a source band to a destination band, the defrag operation including:

for each physical address in the source band that has an entry in a P2L table, updating all entries in the L2P table corresponding to the physical address to a new physical address in the destination band.

10. The article of manufacture of claim 1 , wherein:

storing the token is delayed until a number of tokens to store is greater than a predetermined number.

11. A storage device comprising:

NAND memory array; and

control logic coupled with the NAND memory array, the control logic configured to at least:

receive a copy command from a host to copy data from a source logical block address (LBA) to a destination logical block address (LBA);

update an entry in a logical-to-physical (L2P) table corresponding to the destination LBA to refer to a same physical address as a second entry in the L2P table corresponding to the source LBA;

update a flag of the entry corresponding to the destination LBA and the entry corresponding to the source LBA to indicate more than one LBA refers to the same physical address;

after update of the entry and the second entry in the L2P table and before the data is copied, store a token to the NAND memory array to indicate the copy command is complete;

send an acknowledgement to the host to indicate the copy command is complete; and

in response to receipt of a write command to write to the source LBA or the destination LBA and in response to at least one of the flags having been set, copying the data.

12. The storage device of claim 11 , wherein:

the token includes a signature, the signature including a number to indicate the token is a copy command token.

13. The storage device of claim 12 , wherein:

the token includes: the source LBA, the destination LBA, and a number of blocks to copy.

14. The storage device of claim 12 , wherein:

the token includes: a checksum to indicate whether the token is corrupt.

15. The storage device of claim 11 , wherein:

the control logic is also configured to:

update a physical-to-logical (P2L) table to associate the physical address with both the destination LBA and the source LBA.

16. The storage device of claim 15 , wherein:

the P2L table maps a subset of physical addresses that are referred to by more than one LBA.

17. The storage device of claim 15 , wherein:

the control logic is also configured to:

prior to modifying the L2P table to point the destination LBA to the same physical address as the source LBA, remove an entry of the P2L table associating a second physical address with the destination LBA.

18. The storage device of claim 11 , wherein copying the data comprises:

allocating a new page,

copying the data to the new page, and

updating the flags to indicate only one LBA refers to the same physical address.

19. A system comprising:

a processor; and

a NAND storage device coupled with the processor, the NAND storage device including:

NAND memory array; and

control logic coupled with the NAND memory array, the control logic configured to at least:

receive a copy command from a host to copy data from a source logical block address (LBA) to a destination logical block address (LBA);

update an entry in a logical-to-physical (L2P) table corresponding to the destination LBA to refer to a same physical address as a second entry in the L2P table corresponding to the source LBA;

update a flag of the entry corresponding to the destination LBA and the entry corresponding to the source LBA to indicate more than one LBA refers to the same physical address;

after update of the entry and the second entry in the L2P table and before the data is copied, store a token to the NAND memory array to indicate the copy command is complete;

send an acknowledgement to the host to indicate the copy command is complete; and

in response to receipt of a write command to write to the source LBA or the destination LBA and in response to at least one of the flags having been set, copying the data.

20. The system of claim 19 , comprising one or more of:

a display coupled with the processor, a network interface coupled with the processor, and a battery to power the system.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 19, 2023
From: INTEL CORPORATION
To: SK HYNIX NAND PRODUCT SOLUTIONS CORP.
Reel/Frame 062437/0255 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 30, 2021
From: LI, PENG; TRIKA, SANJEEV N.; ESTRADA, DAVID C.
To: INTEL CORPORATION
Reel/Frame 055766/0220 →
Continuity (1)
Related Publication 20210223979A1 · Jul 22, 2021
References Cited (17)
US 20100153620A1 · Mckean et al. · 2010 [cited by applicant]
US 20130219106A1 · Vogan · 2013 [cited by examiner]
US 20140089264A1 · Talagala et al. · 2014 [cited by applicant]
US 20140101369A1 · Tomlin et al. · 2014 [cited by applicant]
US 20160203053A1 · Talagala et al. · 2016 [cited by applicant]
US 20170177243A1 · Trika · 2017 [cited by examiner]
US 20180217757A1 · Bansode · 2018 [cited by examiner]
US 20190012109A1 · Byun · 2019 [cited by examiner]
US 20190146913A1 · Trika · 2019 [cited by examiner]
US 20200218655A1 · Kanno · 2020 [cited by applicant]
US 20200250099A1 · Campbell · 2020 [cited by examiner]
US 20210223979A1 · Li et al. · 2021 [cited by applicant]
KR 1020160103945 · 2016 [cited by applicant]
KR 1020190060528 · 2019 [cited by applicant]
Extended European Search Report dated Dec. 11, 2024 in EP Patent Application No. 22772149.5, pp. 1-11. [cited by applicant]
International Preliminary Report on Patentability dated Sep. 28, 2023 in International Application No. PCT/2022/020595, pp. 1-6. [cited by applicant]
International Search Report and Written Opinion dated Jun. 30, 2022 in International Patent Application No. PCT/US2022/020595, pp. 1-10. [cited by applicant]