Systems and methods for dynamically determining a priority for a queue of commands

US9411753B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9411753-B2
Application numberUS-201514861168-A
CountryUS
Kind codeB2
Filing dateSep 22, 2015
Priority dateJan 27, 2012
Publication dateAug 9, 2016
Grant dateAug 9, 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.

System and methods are provided for dynamically managing a first-in/first-out (FIFO) command queue of a system controller. One or more commands are received into the command queue, a command being associated with a priority parameter. A current command first in line to be executed in the command queue is determined, the current command being associated with a first priority parameter. A second command associated with a second priority parameter is determined, the second priority parameter being largest among priority parameters associated with the one or more commands. A final priority parameter for the current command is computed based at least in part on the second priority parameter.

First claim

Opening claim text (preview).

The invention claimed is: 1. A method comprising: receiving at least three commands into a queue, wherein each command respectively has a corresponding priority, and wherein the at least three commands include (i) a first command that is first in line in the queue to be executed, and (ii) a second command that is second in line in the queue to be executed; determining a first priority for the queue as a function of the priority of the first command; scheduling execution of the first command from the queue based on the first priority; executing the first command, resulting in the second command replacing the first command as the first in line in the queue to be executed; and in response to the second command replacing the first command as the first in line to be executed, determining a second priority for the queue, in place of the first priority, as a function of the priority of the second command. 2. The method of claim 1 , wherein: the queue includes a highest-priority command that is later in the queue than the second command and whose corresponding priority is the highest priority in the queue; the first priority is a function of both (i) the priority of the first command and (ii) the priority of the highest-priority command; and the second priority is a function of both (i) the priority of the second command and (ii) the priority of the highest-priority command. 3. The method of claim 2 , wherein: the first priority is a function of only (i) the priority of the first command and (ii) the priority of the highest-priority command; and the second priority is a function of only (i) the priority of the second command and (ii) the priority of the highest-priority command. 4. The method of claim 3 , wherein: the first priority is a function of a sum of (i) the priority of the first command and (ii) the priority of the highest-priority command; and the second priority is a function of a sum of (i) the priority of the second command and (ii) the priority of the highest-priority command. 5. The method of claim 1 , wherein the second priority is lower than the first priority. 6. The method of claim 1 , further comprising, after the determining of the second priority and before the second command is executed: adding, to the queue, a new command; and in response to the adding, determining a third priority for the queue as a function of the new command, with the third priority exceeding the second priority. 7. The method of claim 1 , further comprising, after the determining of the second priority: determining a wait time indicating an amount of time a highest priority command in the queue has been in the queue; if the wait time exceeds the threshold, revising the second priority to equal the priority of the highest priority command in the queue. 8. An integrated circuit comprising: a memory configured to receive at least three commands into a queue, wherein each command respectively has a corresponding priority, and wherein the at least three commands include (i) a first command that is first in line in the queue to be executed, and (ii) a second command that is second in line in the queue to be executed; an arbitrator configured to determine a first priority for the queue as a function of the priority of the first command; a scheduler configured to schedule execution of the first command from the queue based on the priority of the queue; a processor configured to execute the first command, resulting in the second command replacing the first command as the first in line in the queue to be executed; and the arbitrator being further configured to, in response to the second command replacing the first command as the first in line to be executed, determine a second priority for the queue, in place of the first priority, as a function of the priority of the second command. 9. The integrated circuit of claim 8 , wherein: the queue includes a highest-priority command that is later in the queue than the second command and whose corresponding priority is the highest priority in the queue; the first priority is a function of both (i) the priority of the first command and (ii) the priority of the highest-priority command; and the second priority is a function of both (i) the priority of the second command and (ii) the priority of the highest-priority command. 10. The integrated circuit of claim 9 , wherein: the first priority is a function of only (i) the priority of the first command and (ii) the priority of the highest-priority command; and the second priority is a function of only (i) the priority of the second command and (ii) the priority of the highest-priority command. 11. The integrated circuit of claim 10 , wherein: the first priority is a function of a sum of (i) the priority of the first command and (ii) the priority of the highest-priority command; and the second priority is a function of a sum of (i) the priority of the second command and (ii) the priority of the highest-priority command. 12. The integrated circuit of claim 8 , wherein the second priority is lower than the first priority. 13. The integrated circuit of claim 8 , wherein the arbiter is configured to, after the determining of the second priority and before the second command is executed, in response to a new command being added to the queue, determine a third priority for the queue, wherein the third priority exceeds the second priority. 14. The integrated circuit of claim 8 , wherein: the integrated circuit is configured to determine a wait time indicating an amount of time a highest priority command in the queue has been in the queue, and wherein the arbitrator is configured to, after the determining of the second priority, if the wait time exceeds a threshold, determine the third priority as equal to the priority of the highest priority command in the queue. 15. A non-transitory processor readable medium storing instructions configured to be executed by one or more processors to: receive at least three commands into a queue, wherein each command respectively has a corresponding priority, and wherein the at least commands include (i) a first command that is first in line in the queue to be executed, and (ii) a second command that is second in line in the queue to be executed; determine a first priority for the queue as a function of the priority of the first command; schedule execution of the first command from the queue based on the first priority; execute the first command, resulting in the second command replacing the first command as the first in line in the queue to be executed; and in response to the second command replacing the first command as the first in line to be executed, determine a second priority for the queue, in place of the first priority, as a function of the priority of the second command. 16. The processor readable medium of claim 15 , wherein: the queue includes a highest-priority command that is later in the queue than the second command and whose corresponding priority is the highest priority in the queue; the first priority is a function of both (i) the priority of the first command and (ii) the priority of the highest-priority command; and the second priority is a function of both (i) the priority of the second command and (ii) the priority of the highest-priority command. 17. The processor readable medium of claim 16 , wherein: the first priority is a function of only (i) the priority of the first command and (ii) the priority of the highest-priority command; and the second priority is a function of only (i) the pr

Assignees

Inventors

Classifications

  • Single storage device · CPC title

  • with request queuing · CPC title

  • G06F3/0659Primary

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

  • Improving I/O performance · 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 US9411753B2 cover?
System and methods are provided for dynamically managing a first-in/first-out (FIFO) command queue of a system controller. One or more commands are received into the command queue, a command being associated with a priority parameter. A current command first in line to be executed in the command queue is determined, the current command being associated with a first priority parameter. A second …
Who is the assignee on this patent?
Marvell World Trade Ltd
What technology area does this patent fall under?
Primary CPC classification G06F13/1642. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Aug 09 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).