A method for executing instructions out-of-order to improve performance of
a processor includes compiling the instructions of a program into separate
queues along with encoded dependencies between instructions in the
different queues. The processor then issues instructions from each of
these queues independently, except that it enforces the encoded
dependencies among instructions from different queues. If an instruction
is dependent on instructions in other queues, the processor waits to issue
it until the instructions on which it depends are issued. The processor
includes a stall unit, comprised of a number of instruction counters for
each queue, that enforces the dependencies between instructions in
different queues.
Une méthode pour exécuter des instructions out-of-order pour améliorer l'exécution d'un processeur inclut compiler les instructions d'un programme dans les files d'attente séparées avec des dépendances codées entre les instructions dans les différentes files d'attente. Le processeur publie alors des instructions de chacune de ces files d'attente indépendamment, sauf qu'il impose les dépendances codées parmi des instructions de différentes files d'attente. Si une instruction dépend des instructions dans d'autres files d'attente, le processeur attend pour la publier jusqu'aux instructions desquelles elle dépend sont publiées. Le processeur inclut une unité de stalle, consistée en un certain nombre de compteurs d'instruction pour chaque file d'attente, qui impose les dépendances entre les instructions dans différentes files d'attente.