US 11,868,617 B2
Virtualizing non-volatile storage at a peripheral device
Raviprasad Venkatesha Murthy Mummidi, Mountain View, CA (US); Matthew Shawn Wilson, Bainbridge Island, WA (US); Anthony Nicholas Liguori, Bainbridge Island, WA (US); Nafea Bshara, San Jose, CA (US); Saar Gross, Binyamina (IL); and Jaspal Kohli, Sunnyvale, CA (US)
Assigned to Amazon Technologies, Inc., Seattle, WA (US)
Filed by Amazon Technologies, Inc., Seattle, WA (US)
Filed on Feb. 11, 2022, as Appl. No. 17/670,342.
Application 17/670,342 is a continuation of application No. 16/435,372, filed on Jun. 7, 2019, granted, now 11,249,647.
Application 16/435,372 is a continuation of application No. 15/279,352, filed on Sep. 28, 2016, granted, now 10,318,162, issued on Jun. 11, 2019.
Prior Publication US 2022/0164104 A1, May 26, 2022
This patent is subject to a terminal disclaimer.
Int. Cl. G06F 3/06 (2006.01); G06F 12/14 (2006.01); G06F 13/20 (2006.01); G06F 13/40 (2006.01)
CPC G06F 3/061 (2013.01) [G06F 3/067 (2013.01); G06F 3/0623 (2013.01); G06F 3/0644 (2013.01); G06F 3/0655 (2013.01); G06F 3/0659 (2013.01); G06F 3/0664 (2013.01); G06F 3/0665 (2013.01); G06F 3/0688 (2013.01); G06F 12/1408 (2013.01); G06F 13/20 (2013.01); G06F 13/4004 (2013.01); G06F 2212/401 (2013.01); G06F 2212/402 (2013.01)] 20 Claims
OG exemplary drawing
 
1. A system, comprising:
a resource host of a cloud-based provider network, wherein the resource host implements a virtual compute instance;
a non-volatile storage device; and
a peripheral device respectively connected to the resource host and the non-volatile storage device, wherein the peripheral device comprises at least one processor and a memory storing program instructions that when executed by the at least one processor cause the at least one processor to implement a storage device virtualization application, wherein the storage device virtualization application is configured to:
present to the resource host a plurality of virtual storage interfaces, wherein individual ones of the plurality of virtual storage interfaces provide access to different partitions of the non-volatile storage device;
receive an access request associated with the virtual compute instance via a particular virtual storage interface of the plurality of virtual storage interfaces;
generate a physical access request to perform the access request with respect to a partition of the different partitions of the non-volatile storage device, the partition associated with the particular virtual storage interface;
send the physical access request to the non-volatile storage device; and
provide, based on an acknowledgement of the physical access request from the non-volatile storage device, an indication of completion for the access request via the virtual storage interface.