Method for transferring command from host to device controller and system using the same
AssigneeStorart Technology(Shenzhen) Co., Ltd.
InventorCheng Wei Lu
Life of this patent
Estimating the term…
Abstract
A method for transferring a command from a host to a device controller and a system using the method are disclosed. The method includes the steps of: A. determining a segment size; B. dividing a command into a number of sections each having a size the same as the segment size; C. sequentially distributing the sections to n groups; D. changing distributing order to a reverse order or keeping the same distributing order in step C if a cycle of distribution is finished while there are sections left for distributing; E. restructuring the section(s) in each group as a sub-command after all sections are distributed; and F. providing the sub-commands to a device controller synchronously.
Claims15
A method for transferring a command from a host to a storage device which is remotely or locally linked to the host, comprising the steps of:
- A. determining a segment size of a command to be transferred from the host to the storage device;
- B. dividing the command into a plurality of sections each having a size the same as the segment size by a driver in the host;
- C. sequentially distributing the sections from the driver to a memory in the host which is divided into n groups, wherein each group has more than one section;
- D. changing distributing order to a reverse order or keeping the same distributing order in step C after distributing one section to each of the n groups until there are no sections left for distributing;
- E. combining the sections in each group to form a sub-command after all sections are distributed, wherein each sub-command is taken as an individual submission queue;
- and
- F. synchronously providing the sub-commands of the command to be transferred from the memory of the host to the storage device which is remotely or locally linked to the host while the command is queued by the storage device.
A system, comprising:
- a host, installed with a driver, having a memory, for storing commands and sub-commands, wherein the driver is for determining a segment size of a command to be transferred;
- dividing the command into a plurality of sections each having a size the same as the segment size;
- sequentially distributing the sections from the driver to the memory of the host which is divided into n groups, wherein each group has more than one section;
- changing distributing order to a reverse order or keeping the same distributing order after distributing one section to each of the n groups until there are no sections left for distributing;
- combining the sections in each group into to form a sub-command after all sections are distributed in the memory, wherein each sub-command is taken as an individual submission queue;
- and synchronously providing the sub-commands synchronously of the command to be transferred from the memory of the host to a storage device while the command is queued by the storage device;
- and
- the storage device, remotely or locally linked to the host for storing data for accessing, comprising:
- a plurality of Non-Volatile Memory (NVM) chips;
- and
- a device controller, linked to the host, for fetching the sub-commands from one command synchronously and executing the sub-commands.
Dependencies are inferred from the claim text.