The present invention is directed to checking and reducing an intermediate
signal arising from a manipulation of 16-bit signed data signals without
using conditional branches, thereby improving instruction processing in a
superscalar pipelined processor or an arithmetic unit that can execute
several arithmetic operations concurrently. In the preferred embodiment of
the present invention, the data signals are represented as signed 16-bit
binary values in a two's compliment format. An intermediate register is
used to hold the intermediate signal which is greater than 16-bits in
width to allow for the proper checking of an overflow condition. It is
presently contemplated that the present invention include using a
processor operating under program control. The program determines whether
the intermediate signal is in a positive or negative overflow state. The
program sets a first mask signal to have 16 lower bits in an ON position
when the intermediate signal is within the range boundary of a 16-bit
signed integer. If the intermediate signal exceeds the maximum range
boundary of 32767, the first mask signal is set to have its 31st through
17th bits in the ON position. If the intermediate signal exceeds the
minimum range boundary of -32767, the first mask signal is set to have its
32nd bit position set to the ON position The second mask signal has a
value that is equal to the first mask value bit-shifted 16 bit positions
to the right. Finally, the program bitwise ANDs the original intermediate
signal with the first mask signal to obtain a translated data signal, and
bitwise ORs the translated data signal with the second mask signal.
La présente invention est dirigée vers vérifier et réduire un signal intermédiaire résultant d'une manipulation des signaux signés de 16 bits de données sans employer les branches conditionnelles, améliorant de ce fait l'instruction traitant dans un processeur canalisé superscalar ou une unité de calcul qui peuvent exécuter plusieurs opérations arithmétiques concurremment. Dans le mode de réalisation préféré de la présente invention, les signaux de données sont représentés en tant que valeurs binaires de 16 bits signées dans un format de deux compliments. Un registre intermédiaire est utilisé pour tenir le signal intermédiaire qui est 16-bits plus grand que dans la largeur à tenir compte de la vérification appropriée d'un état de débordement. On le contemple actuellement que la présente invention incluent en utilisant un processeur fonctionnant sous la commande de programme. Le programme détermine si le signal intermédiaire est dans un état positif ou négatif de débordement. Le programme place un premier signal de masque pour avoir 16 bits inférieurs dans une position de fonctionnement quand le signal intermédiaire est dans la limite de gamme d'un nombre entier signé de 16 bits. Si le signal intermédiaire excède la frontière maximum de gamme de 32767, le premier signal de masque est placé pour avoir son 31ème 17ème peu dans la position de fonctionnement. Si le signal intermédiaire excède la frontière minimum de gamme de -32767, le premier signal de masque est placé pour faire placer sa trente-deuxième position de peu à la position de fonctionnement que le deuxième signal de masque a une valeur qui est égale à la première valeur de masque peu-a décalé 16 positions de bit vers la droite. En conclusion, le programme au niveau du bit ANDs le signal intermédiaire original avec le premier signal de masque pour obtenir des données traduites signalent, et au niveau du bit ORs que les données traduites signalent avec le deuxième signal de masque.