Patent ID: 8966164
Filing Date: 2015-02-24
Classification: G06F

Abstract:
1. A method of processing including writing to two or more solid state disks (SSDs) employed by a storage processor comprising: receiving one or more commands from a host, the one or more commands having host logical block addresses (LBAs), a portion of the one or more commands defining a sub-command, the portion of the one or more commands excluding the host LBAs; assigning a queue to each distinct SSD of the two of more SSDs, each queue having entries and each entry holding an unassigned SSD LBA (SLBAs), wherein each entry of each of the queues forming a stripe; assigning a distinct unassigned SLBA of a stripe to each of a plurality of sub-commands, creating the plurality of sub-commands from the host LBA, by the storage processor, the plurality of sub-commands being associated with a command of the one or more commands and based on a striping granularity; continuing assigning remaining sub-commands of the command to unassigned SLBAs of the stripe until the stripe includes only assigned sub-commands before starting another stripe, each of the unassigned SLBAs belonging to a different SSD of a stripe thereby causing striping across all of the SSDs of the stripe before causing striping across a next stripe, wherein the SLBAs assigned to sub-commands having no relationship to the host LBAs; wherein a SLBA assigned to a sub-command is different from a previously-assigned SLBA of the same sub-command; and creating a Non-Volatile Memory Express (NVMe) command structure for each sub-command, by the storage processor.