Patent ID: 7043567

Claim:
A method of determining an order of execution of a plurality of queued commands, the method comprising the steps of: (A) determining a plurality of execution path metrics, each of the plurality of execution path metrics being determined both as a function of an access time between an associated one of a plurality of commands in a waiting queue and another of the plurality of commands in the waiting queue, and as a function of an access time between a last command in a ready queue and the associated one of the plurality of commands in the waiting queue, wherein step (A) of determining the plurality of execution path metrics further comprises the steps of: (A)(1) identifying a plurality of potential paths through the plurality of commands in the waiting queue, wherein step (A)(1) comprises: (A)(1)(i) selecting a first number of first level commands in the waiting queue with shortest access times from the last command in the ready queue, wherein the first number of the selected first level commands in the waiting queue is less than a total number of commands in the waiting queue; and (A)(1)(ii) identifying as the plurality of potential paths through the plurality of commands in the wailing queue only paths which pass directly from the last command in the ready queue to one or the selected first level commands in the waiting queue; and (A)(2) calculating a different execution path metric for each potential path through the plurality or commands in the waiting queue; (B) selecting one of the plurality of commands in the waiting queue based upon the determined plurality of execution path metrics; and (C) moving the selected one of the plurality of commands in the waiting queue to a ready queue.