Systems and methods for dynamic priority control

US9146690B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9146690-B2
Application numberUS-201313750053-A
CountryUS
Kind codeB2
Filing dateJan 25, 2013
Priority dateJan 27, 2012
Publication dateSep 29, 2015
Grant dateSep 29, 2015

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).

What is claimed is: 1. A method for dynamically scheduling execution of a command from a first-in/first-out (FIFO) queue, the method comprising: receiving a plurality of commands into the FIFO queue, each command of the plurality of commands respectively having a priority, wherein the plurality of commands include a current command that corresponds to a command that is currently first in line in the FIFO queue to be executed, a highest-priority command that is later in the FIFO queue than the current command and whose priority is the highest priority in the FIFO queue, and at least one additional command; determining a priority for the FIFO queue as an average of (i) the priority of the highest priority command and (ii) the priority of the current command; and scheduling execution of the current command from the FIFO queue based on the priority of the FIFO queue. 2. The method of claim 1 , wherein the current command is followed by a second command in the FIFO queue, and wherein the method further comprises, subsequent to scheduling the execution of the current command from the FIFO queue: executing the current command and removing the current command from the FIFO queue, resulting in the second command in the FIFO queue becoming the current command; and in response to the executing and the removing, repeating the determining step with the second command as the current command. 3. The method of claim 1 , wherein the highest priority command is a first highest-priority command, and wherein the commands include a second highest-priority command that is later in the FIFO queue than the first highest-priority command and whose priority is the highest priority from among the commands that follow the first highest-priority command, and wherein the method further comprises, after the scheduling: executing the first highest-priority command and removing the first highest-priority command from the FIFO queue, resulting in the priority of the second highest-priority command becoming the highest priority; and repeating the determining step, resulting in a new queue priority that is lower than the previously determined queue priority. 4. The method of claim 1 , further comprising: adding, to the FIFO queue, a new command that has a priority that is higher than said highest priority; and repeating the determining step with the priority of the new command as the highest priority, resulting in an increase in the queue priority. 5. The method of claim 1 , wherein the method further comprises: determining a wait time indicating an amount of time the highest priority command has been in the FIFO queue; determining the queue priority as an average of (i) the priority of the highest priority command and (ii) the priority of the current command if the wait time does not exceed a threshold; and determining the queue priority as equal to the priority of the highest priority command in the queue if the wait time does exceed the threshold. 6. The method of claim 1 , further comprising: maintaining, for each command of the plurality of commands, a wait time indicating an amount of time the respective command has been in the FIFO queue; wherein the determining of the queue priority is at least partially based on the wait time of one of the commands. 7. The method of claim 6 , wherein the determining of the queue priority is at least partially based on wait times of two or more of the commands. 8. The method of claim 6 , wherein the maintaining of the wait times is hardware implemented. 9. An integrated circuit for dynamically scheduling execution of a command from a first-in/first-out (FIFO) queue, the integrated circuit comprising: a memory configured to receive a plurality of commands into the FIFO queue, each command of the plurality of commands respectively having a priority, wherein the plurality of commands include a current command that corresponds to a command that is currently first in line in the FIFO queue to be executed, a highest-priority command that is later in the FIFO queue than the current command and whose priority is the highest priority in the FIFO queue, and at least one additional command; an arbitrator configured to determine a priority for the FIFO queue as an average of (i) the priority of the highest priority command and (ii) the priority of the current command; and a scheduler configured to schedule execution of the current command from the FIFO queue based on the priority of the FIFO queue. 10. The integrated circuit of claim 9 , wherein the current command is followed by a second command in the FIFO queue, and wherein the integrated circuit further comprises a processor configured to, subsequent to the scheduler scheduling the execution of the current command from the FIFO queue, execute the current command and remove the current command from the FIFO queue, resulting in the second command in the FIFO queue becoming the current command; and wherein the arbitrator is further configured to, in response to the executing and the removing, repeat the determining with the second command as the current command. 11. The integrated circuit of claim 9 , wherein the highest priority command is a first highest-priority command, and wherein the commands include a second highest-priority command that is later in the FIFO queue than the first highest-priority command and whose priority is the highest priority from among the commands that follow the first highest-priority command, and wherein the integrated circuit further comprises a processor configured to execute the first highest-priority command and remove the first highest-priority command from the FIFO queue, resulting in the priority of the second highest-priority command becoming the highest priority; and wherein the arbitrator is further configured to repeat the determining, resulting in a new queue priority that is lower than the previously determined queue priority. 12. The integrated circuit of claim 9 , wherein the integrated circuit is configured to add, to the FIFO queue, a new command that has a priority that is higher than said highest priority; and wherein the arbitrator is further configured to repeat the determining with the priority of the new command as the highest priority, resulting in an increase in the queue priority. 13. The integrated circuit of claim 9 , wherein the integrated circuit is configured to determine a wait time indicating an amount of time the highest priority command has been in the FIFO queue, and the arbitrator is configured to determine the queue priority as an average of (i) the highest priority of the highest priority command and (ii) the priority of the current command if the wait time does not exceed a threshold; and determine the queue priority as equal to the priority of the highest priority command in the queue if the wait time does exceed the threshold. 14. The integrated circuit of claim 9 , wherein the integrated circuit is configured to maintain, for each command of the plurality of commands, a wait time indicating an amount of time the respective command has been in the FIFO queue; and wherein the arbitrator is configured for the determining of the queue priority to be at least partially based on the wait time of one of the commands. 15. The integrated circuit of claim 14 , wherein the arbitrator is configured for the determining of the queue priority to be at least partially based on wait times of two or more of the commands. 16. The integrated circuit of claim 14 , wherein the maintaining of the wait times is hardware implemented.

Assignees

Inventors

Classifications

  • Single storage device · CPC title

  • Improving I/O performance · CPC title

  • with request queuing · CPC title

  • G06F3/0659Primary

    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 US9146690B2 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 Sep 29 2015 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).