Solid-state drive command grouping

US9304692B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9304692-B2
Application numberUS-201314032266-A
CountryUS
Kind codeB2
Filing dateSep 20, 2013
Priority dateFeb 2, 2009
Publication dateApr 5, 2016
Grant dateApr 5, 2016

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

An apparatus and other embodiments associated with solid-state drive command grouping are described. In one embodiment, an apparatus includes a hardware memory configured to store a plurality of commands that are to be executed on a solid-state drive. The apparatus also includes organization logic implemented with at least hardware and configured to arrange at least two commands of the plurality of commands into a command pack based, at least in part, on one or more attributes of the at least two commands.

First claim

Opening claim text (preview).

What is claimed is: 1. A method, comprising: determining an execution priority for each of a plurality of commands; grouping at least two commands from the plurality of commands into a command pack based, at least in part, on one or more attributes of the at least two commands, wherein grouping the at least two commands includes grouping the at least two commands based, at least in part, on the execution priority for each of the at least two commands; and controlling a solid-state drive to execute the command pack by causing the at least two commands to execute concurrently on separate channels of the solid-state drive. 2. The method of claim 1 , wherein grouping the at least two commands into the command pack includes generating a plurality of command packs that collectively include the plurality of commands, wherein the plurality of commands are waiting for execution on the solid-state drive, wherein the one or more attributes include a channel of execution for each of the at least two commands, wherein grouping the at least two commands includes defining the command pack using a set of tags associated with each of the at least two commands, and wherein grouping the at least two commands includes adapting the at least two commands to create a relationship between the at least two commands that causes the at least two commands to be executed in parallel. 3. The method of claim 1 , wherein a command from the plurality of commands is not grouped into the command pack when the command is a high priority command. 4. The method of claim 1 , further comprising: collecting the plurality of commands in a queue until an occurrence of a predefined queue-related event, wherein the queue is a separate storage location from a host device that is configured to store commands waiting to be executed on the solid-state drive. 5. The method of claim 4 , wherein the predefined queue-related event includes the queue satisfying a threshold level of commands waiting in the queue or a command being resident in the queue for a predetermined threshold amount of time. 6. The method of claim 1 , comprising: selectively grouping the at least two commands into the command pack upon determining that each of the at least two commands do not exceed a command size threshold, wherein grouping the at least two commands into the command pack creates a relationship between the at least two commands that causes the commands to be executed in parallel. 7. An apparatus, comprising: a hardware memory configured to store a plurality of commands that are to be executed on a solid-state drive; and organization logic implemented with at least hardware and configured to arrange at least two commands of the plurality of commands into a command pack based, at least in part, on one or more attributes of the at least two commands, wherein the organization logic is configured to determine execution priorities for the plurality of commands, wherein the organization logic is configured to arrange the at least two commands into the command pack based, at least in part, on the execution priorities for each of the at least two commands. 8. The apparatus of claim 7 , wherein the one or more attributes include a channel for execution, a priority, or a command size and wherein the organization logic is configured to arrange the at least two commands into the command pack to create a relationship between the at least two commands that links the at least two commands together, and wherein the organization logic is configured to arrange the at least two commands by adapting the at least two commands to create a relationship between the at least two commands that causes the at least two commands to be executed in parallel. 9. The apparatus of claim 7 , further comprising: function logic configured to control the solid-state drive to execute the command pack, wherein commands in the command pack are executed simultaneously in parallel, and wherein executing a command on the solid-state drive consumes a channel of a plurality of channels for execution. 10. The apparatus of claim 7 , wherein the organization logic is configured to not group a command of the plurality of commands into the command pack upon determining that the command is a high priority command, and to cause the command to be executed independent of the command pack when the commands is a high priority command. 11. The apparatus of claim 7 , wherein the hardware memory includes a queue and wherein the organization logic is configured to collect the plurality of commands in the queue until an occurrence of a queue-related event. 12. The apparatus of claim 7 , wherein the organization logic is configured to create a relationship that indicates that the at least two commands are part of the command pack, and wherein the organization logic is configured to selectively group a command of the plurality of commands into the command pack upon determining that a size of the command satisfies a threshold. 13. The apparatus of claim 7 , wherein the organization logic is configured to arrange the at least two commands of the plurality of commands into the command pack upon determining that the at least two commands do not share a channel for execution on the solid-state drive. 14. An apparatus, comprising: management logic implemented in at least hardware and configured to collect a plurality of commands into a queue, wherein the plurality of commands are data access commands for a solid-state drive; and organization logic implemented in at least hardware and configured to link at least two commands from the plurality of commands together into a command pack based, at least in part, on one or more attributes of the at least two commands, wherein the organization logic is configured to determine execution priorities for the plurality of commands, wherein the organization logic is configured to link the at least two commands into the command pack based, at least in part, on the execution priorities for each of the at least two commands. 15. The apparatus of claim 14 , wherein the organization logic is configured to link the at least two commands by adapting the at least two commands to create a relationship between the at least two commands that causes the at least two commands to be executed in parallel, and wherein the organization logic is configured to link the at least two commands from the plurality of commands into the command pack by defining a relationship between the at least two commands to cause the at least two commands to be executed concurrently on separate channels of the solid-state drive. 16. The apparatus of claim 14 , wherein the one or more attributes include a channel for execution assigned to each of the plurality of commands, an execution priority for each of the plurality of commands or a size of each of the plurality of commands. 17. The apparatus of claim 14 , wherein the organization logic is configured to link the at least two commands into the command pack based, at least in part, on a priority of the at least two commands when the at least two commands are not high priority commands. 18. The apparatus of claim 14 , wherein the management logic is configured to collect the plurality of commands until an occurrence of a queue related event that causes the organization logic to link commands from the plurality of commands into one or more command packs. 19. The apparatus of claim 14 , further comprising: function logic implemented in at least hardware and configured to cause the command pack to execute on a solid-state

Assignees

Inventors

Classifications

  • Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP] · CPC title

  • G06F3/0613Primary

    in relation to throughput · CPC title

  • Command handling arrangements, e.g. command buffers, queues, command scheduling · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9304692B2 cover?
An apparatus and other embodiments associated with solid-state drive command grouping are described. In one embodiment, an apparatus includes a hardware memory configured to store a plurality of commands that are to be executed on a solid-state drive. The apparatus also includes organization logic implemented with at least hardware and configured to arrange at least two commands of the pluralit…
Who is the assignee on this patent?
Marvell World Trade Ltd
What technology area does this patent fall under?
Primary CPC classification G06F3/0613. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Apr 05 2016 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).