US 11,733,920 B2
NVMe simple copy command support using dummy virtual function
Amir Segev, Meiter (IL); and Shay Benisty, Beer Sheva (IL)
Assigned to Western Digital Technologies, Inc., San Jose, CA (US)
Filed by Western Digital Technologies, Inc., San Jose, CA (US)
Filed on Feb. 22, 2021, as Appl. No. 17/182,027.
Claims priority of provisional application 63/076,780, filed on Sep. 10, 2020.
Prior Publication US 2022/0075560 A1, Mar. 10, 2022
Int. Cl. G06F 3/06 (2006.01); G06F 13/16 (2006.01)
CPC G06F 3/0659 (2013.01) [G06F 3/0604 (2013.01); G06F 3/0652 (2013.01); G06F 3/0656 (2013.01); G06F 3/0679 (2013.01); G06F 13/1668 (2013.01)] 20 Claims
OG exemplary drawing
 
1. A data storage device, comprising:
a non-volatile storage unit;
a volatile memory unit, comprising a controller memory buffer (CMB), wherein:
the CMB comprises one or more first volatile memory locations associated with one or more first virtual functions and one or more second volatile memory locations associated with one or more second virtual functions;
each first virtual function of the one or more first virtual functions are each associated with a virtual host of a host;
each of the one or more first virtual functions are associated with a respective first set of resources of the data storage device;
each of the one or more second functions are associated with a respective second set of resources of the data storage device distinct from the first set of resources;
the second set of resources are not accessible by the host; and
the one or more second virtual functions are configured to copy previously stored data associated with the one or more first virtual functions from a first location of the non-volatile storage unit to a second location of the non-volatile storage unit; and
a controller coupled to the non-volatile storage unit and the volatile memory unit, and the controller is configured to:
receive one or more read, write, or copy commands from the host to read data from, write data to, or both to/from, the non-volatile storage unit;
route the received one or more read or write commands to one or more first virtual function locations; and
utilize the one or more second volatile memory locations of the CMB to copy the data, wherein copying the data comprises moving data from the first location of the non-volatile storage unit to the second location of the non-volatile storage unit utilizing the one or more second virtual functions, wherein routing the received one or more read or write commands and executing the received one or more read or write commands occurs concurrently with utilizing the one or more second volatile memory locations of the CMB to copy the data.