The present invention utilizes a "virtual" condition code (VCC) which can
control the instruction sequence in a microprocessor. The virtual
condition code is stored in an internal, non-architected register that is
not visible to the programmer, but is used by various microprocessor
instructions to determine when a branch is to be taken. For example, the
virtual condition code can be used as a condition for branching out of a
series of repetitive instructions. The virtual condition code (VCC) can
eliminate a portion of the processing overhead used when determining
whether a sequential number, such as a count value in a register
associated with a repetitive instruction, e.g. a LOOP, is zero. In
accordance with one aspect of the present invention, a LOOP instruction
will decrement a count value in a register (to maintain compatibility with
the ISA). However, a corresponding branch instruction will use the virtual
condition code, rather than checking the contents of the entire register,
to determine whether or not to branch. In this manner, the present
invention improves performance by minimizing the amount of hardware
resources (i.e. compare logic) utilized while maintaining compatibility
with the Intel architecture since the programmer visible condition code is
not used. By leaving the programmer visible condition codes unchanged, the
software is not forced to save and restore the register contents during
each iteration.
La présente invention utilise un code condition "virtuel" (VCC) qui peut commander l'ordre d'instruction dans un microprocesseur. Le code condition virtuel est stocké dans un interne, non-architected le registre qui n'est pas évident au programmeur, mais est employé par de diverses instructions de microprocesseur de déterminer quand une branche doit être prise. Par exemple, le code condition virtuel peut être employé comme condition pour s'embrancher hors d'une série d'instructions réitérées. Le code condition virtuel (VCC) peut éliminer une partie des frais généraux de traitement utilisés en déterminant si un nombre séquentiel, tel qu'une valeur de compte dans un registre lié à une instruction réitérée, par exemple une BOUCLE, est zéro. Selon un mode de la présente invention, une instruction de BOUCLE décrémentera une valeur de compte dans un registre (pour maintenir la compatibilité avec l'ISA). Cependant, une instruction de branchement correspondante emploiera le code condition virtuel, plutôt que de vérifier le contenu du registre entier, pour déterminer si pour ne pas s'embrancher. De cette manière, la présente invention améliore l'exécution en réduisant au minimum la quantité de ressources de matériel (c.-à-d. comparez la logique) utilisées tout en maintenant la compatibilité avec l'architecture d'Intel puisque le code condition évident de programmeur n'est pas employé. En laissant le programmeur des codes condition évidents inchangés, le logiciel n'est pas forcé pour sauver et reconstituer le contenu de registre pendant chaque itération.