A multiplier configured to perform multiplication of both scalar floating
point values (X.times.Y) and packed floating point values (i.e.,
X.sub.1.times.Y.sub.1 and X.sub.2.times.Y.sub.2). In addition, the
multiplier may be configured to calculate X.times.Y-Z. The multiplier
comprises selection logic for selecting source operands, a partial product
generator, an adder tree, and two or more adders configured to sum the
results from the adder tree to achieve a final result. The multiplier may
also be configured to perform iterative multiplication operations to
implement such arithmetical operations such as division and square root.
The multiplier may be configured to generate two versions of the final
result, one assuming there is an overflow, and another assuming there is
not an overflow. A computer system and method for performing
multiplication are also disclosed.
Um multiplicador configurarado para executar a multiplicação dos valores escalares do ponto flutuando (X.times.Y) e embalou valores do ponto flutuando (isto é, X.sub.1.times.Y.sub.1 e X.sub.2.times.Y.sub.2). Além, o multiplicador pode ser configurarado para calcular X.times.Y-Z. O multiplicador compreende a lógica de seleção para selecionar operandos da fonte, um gerador parcial do produto, uma árvore do adicionador, e dois ou mais adicionadores configurarados para somar os resultados da árvore do adicionador para conseguir um resultado final. O multiplicador pode também ser configurarado para executar operações iterativas da multiplicação para executar tais operações aritméticas tais como a divisão e a raiz quadrada. O multiplicador pode ser configurarado para gerar duas versões do resultado final, um que supõe lá é um excesso, e outro que supõe lá não é um excesso. Um sistema computatorizado e um método para executar a multiplicação são divulgados também.