Method of application aware io completion mode changer for key value device

US2017242594A1 · US · A1

Patent metadata
FieldValue
Publication numberUS-2017242594-A1
Application numberUS-201615134361-A
CountryUS
Kind codeA1
Filing dateApr 20, 2016
Priority dateFeb 23, 2016
Publication dateAug 24, 2017
Grant date

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.

A system and method for enabling an application ( 125, 305, 310, 315 ) and a storage device ( 120 ) to be more aware of each other may include a computer ( 105 ), a processor ( 110 ), and a memory ( 115 ) as well as the storage device ( 120 ). An application ( 125, 305, 310, 315 ) stored in the memory may communicate with a user space device driver ( 130 ). The user space device driver ( 130 ) may include a Mode Configure Module ( 320 ) to receive an application profile ( 405, 430, 435 ) from the application ( 125, 305, 310, 315 ) and an Application Aware Module ( 325 ) to receive I/O commands ( 555 ) from the application ( 125, 305, 310, 315 ) and place them in command queues ( 510, 515, 520, 525, 535, 540, 545, 550 ) according to the application profile ( 405, 430 , and 435 ). The I/O commands ( 555 ) may then be sent to the storage device ( 120 ).

First claim

Opening claim text (preview).

1 . A system, comprising: a computer; a processor; a memory; a storage device; an application stored in the memory, the application capable of being executed by the processor; and a device driver, including: a Mode Configure Module to receive an application profile; and an Application Aware Module to receive an input/output (I/O) command from the application and to assign the I/O command to one of a plurality of command queues using the application profile, wherein the storage device is operative to receive the I/O command from the one of the plurality of command queues. 2 . A system according to claim 1 , wherein: the application profile includes a monitoring parameter and a switching parameter; and the Application Aware Module is operative to assign the I/O command to the one of the plurality of command queues based on the switching parameter and a condition of the storage device specified by the monitoring parameter. wherein the monitoring parameter identifies the condition of the storage device of interest to the application, and wherein the switching parameter advises the Application Aware Module as to which of the plurality of command queues to select based on the condition of the storage device. 3 . A system according to claim 2 , wherein: the monitoring parameter is drawn from a set including latency, I/O instructions Per Second (IOPS), and a priority; and the switching parameter includes a threshold for the monitoring parameter. 4 . A system according to claim 3 , wherein the Application Aware Module is operative to assign the I/O command to the one of a plurality of command queues using the application profile based on whether at least one condition of the storage device exceeds the threshold for the monitoring parameter. 5 . A system according to claim 1 , wherein the plurality of command queues includes at least one command polling queue and at least one command interrupt queue. 6 . A system according to claim 5 , wherein the Application Aware Module is operative to assign the I/O command to one of a command polling queue and a command interrupt queue of equal priority using the application profile. 7 . A system according to claim 1 , wherein the device driver further includes a Dynamic Feedback Module to provide feedback to the application regarding the monitoring parameter. 8 . A system according to claim 7 , wherein the feedback includes a suggestion to the application regarding a change to at least one of the monitoring parameter and the switching parameter to improve performance. 9 . A system according to claim 7 , wherein the feedback further includes feedback to the application about the one of the plurality of command queues. 10 . A system according to claim 1 , wherein the device driver includes a scheduler to schedule delivery of the I/O command to the storage device. 11 . A method, comprising: receiving an application profile from an application at a storage device, the application profile including a monitoring parameter and a switching parameter; storing the application profile in the storage device; receiving an input/output (I/O) command at the storage device, the I/O command including the application profile; determining at least one condition of the storage device around the time the storage device receives the I/O command, the at least one condition based on the monitoring parameter; and scheduling the I/O command in one of a plurality of command queues responsive to the at least one condition of the storage device and the switching parameter. 12 . A method according to claim 11 , wherein scheduling the I/O command in one of a plurality of command queues includes scheduling the I/O command in one of a command polling queue and a command interrupt queue responsive to the at least one condition of the storage device and the switching parameter. 13 . A method according to claim 11 , further comprising providing feedback to the application, regarding the monitoring parameter. 14 . A method according to claim 13 , wherein providing feedback to the application regarding the monitoring parameter includes suggesting to the application a change to at least one of the monitoring parameter and the switching parameter to improve performance. 15 . A method according to claim 13 , wherein providing feedback to the application regarding the monitoring parameter includes providing feedback to the application about the one of the plurality of command queues. 16 . An article, comprising a tangible storage medium, said tangible storage medium having stored thereon non-transitory instructions that, when executed by a machine, result in: receiving an application profile from an application at a storage device, the application profile including a monitoring parameter and a switching parameter; storing the application profile in the storage device; receiving an input/output command at the storage device, the I/O command including the application profile; determining at least one condition of the storage device around the time the storage device receives the I/O command based on the monitoring parameter; and scheduling the I/O command in one of a plurality of command queues responsive to the at least one condition of the storage device and the switching parameter. 17 . An article according to claim 16 , wherein scheduling the I/O command in one of a plurality of command queues includes scheduling the I/O command in one of a command polling queue and a command interrupt queue responsive to the at least one condition of the storage device and the switching parameter. 18 . An article according to claim 16 , said tangible storage medium having stored thereon further non-transitory instructions that, when executed by the machine, result in providing feedback to the application regarding the monitoring parameter. 19 . An article according to claim 18 , wherein providing feedback to the application regarding the monitoring parameter includes suggesting to the application a change to at least one of the monitoring parameter and the switching parameter to improve performance. 20 . An article according to claim 18 , wherein providing feedback to the application regarding the monitoring parameter includes providing feedback to the application about the one of the plurality of command queues. 21 . An article according to claim 16 , wherein: the monitoring parameter identifies the at least one condition of the storage device of interest to the application; and the switching parameter advises the Application Aware Module as to which of the plurality of command queues to select based on the at least one condition of the storage device. 22 . A method according to claim 11 , wherein: the monitoring parameter identifies the at least one condition of the storage device of interest to the application; and the switching parameter advises the Application Aware Module as to which of the plurality of command queues to select based on the at least one condition of the storage device.

Assignees

Inventors

Classifications

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

  • with priority control · CPC title

  • G06F13/22Primary

    using successive scanning, e.g. polling (G06F13/24 takes precedence) · CPC title

  • Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS] · CPC title

  • G06F3/0611Primary

    in relation to response time · 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 US2017242594A1 cover?
A system and method for enabling an application ( 125, 305, 310, 315 ) and a storage device ( 120 ) to be more aware of each other may include a computer ( 105 ), a processor ( 110 ), and a memory ( 115 ) as well as the storage device ( 120 ). An application ( 125, 305, 310, 315 ) stored in the memory may communicate with a user space device driver ( 130 ). The user space device driver ( 130 ) …
Who is the assignee on this patent?
Samsung Electronics Co Ltd
What technology area does this patent fall under?
Primary CPC classification G06F13/22. Mapped technology areas include Physics.
When was this patent published?
Publication date Thu Aug 24 2017 00:00:00 GMT+0000 (Coordinated Universal Time) (A1). 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).