US2016313949A1PendingUtilityA1

Systems and Methods for Dynamic Priority Control

Assignee: MARVELL WORLD TRADE LTDPriority: Jan 27, 2012Filed: Jul 6, 2016Published: Oct 27, 2016
Est. expiryJan 27, 2032(~5.5 yrs left)· nominal 20-yr term from priority
G06F 3/0673G06F 13/1642G06F 3/061G06F 3/0659
53
PatentIndex Score
0
Cited by
0
References
0
Claims

Abstract

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.

Claims

exact text as granted — not AI-modified
1 . (canceled) 
     
     
         2 . A method comprising:
 receiving a plurality of commands into a FIFO queue, wherein each command of the plurality of commands has a priority value, and the plurality of commands include a current command that corresponds to a command that is currently first in line in the queue to be executed:   determining a queue priority value for the queue as an average of the priority values of the plurality of commands; and   scheduling execution of the current command based on the queue priority value.   
     
     
         3 . The method of  claim 2 , wherein the method further comprises, after scheduling execution of the current command:
 executing the current command and removing the current command from the queue; and   in response to the removal of the current command, determining a new queue priority value for the queue as an average of commands that are in the queue.   
     
     
         4 . The method of  claim 3 , wherein the new queue priority value is lower than the previously determined queue priority value. 
     
     
         5 . The method of  claim 2 , wherein the plurality of commands include a highest priority command that is later in the queue than the current command and whose priority value is the highest priority value in the queue. 
     
     
         6 . The method of  claim 5 , wherein the method further comprises, after scheduling execution of the current command:
 executing the highest priority command and removing the highest priority command from the queue; and   determining a new queue priority value for the queue as an average of priority values of commands that are in the queue, wherein the new queue priority value is lower than the previously determined queue priority value.   
     
     
         7 . The method of  claim 5 , further comprising, after the scheduling execution of the current command:
 determining a wait time indicating an amount of time the highest priority command has been in the queue;   in response to the wait time exceeding a predetermined threshold, determining a new queue priority value as equal to the priority value of the highest priority command.   
     
     
         8 . The method of  claim 5 , wherein determining the queue priority value includes:
 determining a wait time indicating an amount of time the highest priority command has been in the queue;   if the wait time does not exceed a predetermined threshold, then determining the queue priority value as an average of the priority values of the plurality of commands; and   if the wait time does exceed the predetermined threshold, then determining the queue priority value as equal to the priority value of the highest priority command.   
     
     
         9 . The method of  claim 5 , further comprising:
 maintaining, for each command of the plurality of commands, a wan time indicating an amount of time the respective command has been in the queue;   wherein determining the queue priority value is at least partially based on the wait time of at least one of the commands.   
     
     
         10 . The method of  claim 9 , wherein determining the queue priority value is at least partially based on wait times of two or more of the commands. 
     
     
         11 . The method of  claim 9 , wherein maintaining the wait times is hardware implemented. 
     
     
         12 . The method of  claim 2 , further comprising, after scheduling execution of the current command from the queue:
 adding a new command to the queue; and   in response to adding a new command to the queue, determining a new queue priority value for the queue as an average of priority values of commands that are in the queue.   
     
     
         13 . The method of  claim 12 , wherein the new queue priority is lower than the previously determined queue priority value. 
     
     
         14 . The method of  claim 12 , wherein the new queue priority is higher than the previously determined queue priority value. 
     
     
         15 . 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, wherein each command of the plurality of commands has a priority value, and the plurality of commands include a current command that corresponds to a command that is currently first in line in the queue to be executed;   an arbitrator configured to determine a queue priority value for the queue as an average of the priority values of the plurality of commands; and   a scheduler configured to schedule execution of the current command from the queue based on the queue priority value.   
     
     
         16 . The integrated circuit of  claim 15 , wherein the integrated circuit further comprises a processor configured to execute the current command and remove the current command from the queue, and wherein the arbitrator is further configured to, in response to removal of the current command, determine a new queue priority value for the queue as an average of commands that are in the queue. 
     
     
         17 . The integrated circuit of  claim 16 , wherein the arbitrator is configured to determine the new queue priority value as a lower value than the previously determined queue priority value. 
     
     
         18 . The integrated circuit of  claim 15 , wherein the plurality of commands that the memory is configured to receive include a highest priority command that is later in the queue than the current command and whose priority value is the highest priority value in the 
     
     
         19 . The integrated circuit of  claim 18 , wherein the integrated circuit further comprises a processor configured to execute the highest priority command and remove the highest priority command from the queue, and wherein the arbitrator is configured to determine a new queue priority value for the queue as an average priority values of commands that are in the queue, and Wherein the new queue priority value is lower than the previously determined queue priority value. 
     
     
         20 . The integrated circuit of  claim 18 , 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 wherein the arbitrator is configured to, in response to the wait time exceeding a predetermined threshold, determine a new queue priority value as equal to the priority value of the highest priority command. 
     
     
         21 . A non-transitory processor readable medium storing instructions configured to be executed by one or more processors to:
 receive a plurality of commands into a FIFO queue, wherein each command of the plurality of commands respectively has a priority value, and the plurality of commands include a current command that corresponds to a command that is currently first in line in the queue to be executed;   determine a queue priority value for the queue as an average of the priority values of the plurality of commands; and   schedule execution of the current command based on the queue priority value.

Join the waitlist — get patent alerts

Track US2016313949A1 — get alerts on status changes and closely related new filings.

We store only your email — no account needed. See our privacy policy.