One embodiment of the present invention provides a system that selects instructions to be executed in a computer system that supports out-of-order execution of program instructions. The system receives dependency information for a first instruction. This dependency information identifies preceding instructions in the execution stream of a program that need to complete before the first instruction can be executed. The system divides this dependency information into a recent set and a less recent set. The recent set includes dependency information for a block of instructions immediately preceding the first instruction that need to complete before the first instruction can be executed. The less recent set includes dependency information for instructions not in the block of instructions immediately preceding the first instruction that need to complete before the first instruction can be executed. The system stores the recent set of dependency information in a first store, and stores the less recent set of dependency information in a second store. The first store is smaller and faster than the second store so that an update to dependency information takes less time to propagate through the first store than the second store. In one embodiment of the present invention, the system receives the dependency information for the first instruction from the first store and the second store, and determines from the dependency information if the first instruction is available to be executed by determining whether all preceding dependencies related to the first instruction have been satisfied. In one embodiment of the present invention, the system selects a second instruction from instructions that are available to be executed, and executes the second instruction.

Un mode de réalisation de la présente invention fournit un système qui choisit des instructions d'être exécuté dans un système informatique qui soutient l'exécution out-of-order des instructions de programme. Le système reçoit l'information de dépendance pour une première instruction. Cette information de dépendance identifie les instructions précédentes dans le jet d'exécution d'un programme qui doivent accomplir avant que la première instruction puisse être exécutée. Le système divise cette information de dépendance en jeu récent et un ensemble moins récent. L'ensemble récent inclut l'information de dépendance pour un bloc d'instructions juste avant la première instruction qui doivent accomplir avant que la première instruction puisse être exécutée. L'ensemble moins récent inclut l'information de dépendance pour des instructions pas dans le bloc d'instructions juste avant la première instruction qui doivent accomplir avant que la première instruction puisse être exécutée. Le système stocke l'ensemble récent d'information de dépendance dans un premier magasin, et stocke l'ensemble moins récent d'information de dépendance dans un deuxième magasin. Le premier magasin est plus petit et plus rapidement que le deuxième magasin de sorte qu'une mise à jour aux prises de l'information de dépendance moins d'heure de propager par le premier magasin que le deuxième magasin. Dans un mode de réalisation de la présente invention, le système reçoit l'information de dépendance pour la première instruction du premier magasin et du deuxième magasin, et détermine à partir de l'information de dépendance si la première instruction est disponible pour être exécutée en déterminant si toutes les dépendances précédentes liées à la première instruction ont été satisfaites. Dans un mode de réalisation de la présente invention, le système choisit une deuxième instruction à partir des instructions qui sont disponibles pour être exécutées, et exécute la deuxième instruction.

 
Web www.patentalert.com

< Cycle segmented prefix circuits

< Efficient instruction cache coherency maintenance mechanism for scalable multiprocessor computer system with store-through data cache

> Method and system for testing millicode branch points

> Method and apparatus for manipulation of non-general purpose registers for use during computer boot-up procedures

~ 00094