| CPC G06F 3/0656 (2013.01) [G06F 3/0622 (2013.01); G06F 3/0659 (2013.01); G06F 3/0679 (2013.01)] | 20 Claims |

|
1. A method comprising:
establishing an operative connection between a client device coupled to a storage device across an interface in a distributed processing network, the storage device comprising a device controller, a main non-volatile memory (NVM), a write cache and a volatile memory;
processing a normal write command issued by the client device to the storage device by:
using the device controller to place normal writeback data received from the client device into the write cache; and
transferring, by the device controller, the normal writeback data from the write cache to the main NVM;
processing a normal read command issued by the client device to the storage device by:
allocating, by the device controller, a first portion of the volatile memory as a read buffer;
using the device controller to retrieve normal readback data from the main NVM to the read buffer; and
transferring, by the device controller, the retrieved normal readback data from the read buffer to the client device;
processing a bypass write command issued by the client device to the storage device by:
allocating, by the device controller, a second portion of the volatile memory as a first command memory buffer (CMB) for use by the client device;
using the client device to subsequently place bypass writeback data directly into the first CMB; and
transferring, by the device controller, the bypass writeback data from the write cache to the main NVM; and
processing a bypass read command issued by the client device to the storage device by:
allocating, by the device controller, a third portion of the volatile memory as a second command memory buffer (CMB) for use by the client device; and
retrieving, by the device controller, bypass readback data from the NVM to the CMB for direct access by the client device without further intervention by the device controller.
|