Patent ID: 9122401
Filing Date: 2015-09-01
Classification: G06F

Abstract:
1. A method, comprising: storing, in a plurality of queues, by a host, a plurality of storage commands for execution on a non-volatile memory of a storage device, wherein the plurality of storage commands include a respective barrier write command stored to each of the plurality of queues, and wherein at least a subset of the plurality of storage commands is to be executed in accordance with an order-of-arrival in which the subset of the plurality of storage commands is stored; reading, by the storage device, respective storage commands of the plurality of storage commands from each of the plurality of queues; assigning, by the storage device, a respective sequence number to each of the respective storage commands, wherein the respective sequence number marks each of the respective storage commands in accordance with a corresponding order-of-arrival; executing, by the storage device, the respective storage commands in accordance with internal scheduling criteria of the storage device, wherein the internal scheduling criteria permit deviations from the order-of-arrival, and wherein execution of the subset of the plurality of storage commands reflects the order-of-arrival from the host; wherein executing the respective storage commands comprises storing, in the non-volatile memory, respective data and the respective sequence number for each of the respective storage commands; ceasing reads of additional storage commands from a respective queue in response to reaching the barrier write command in the respective queue; and resuming reading of the additional storage commands in each queue of the plurality of queues in response to reaching the barrier write command in all of the queues of the plurality of queues.