Documentos de Académico
Documentos de Profesional
Documentos de Cultura
23 2 ComaFlotante
23 2 ComaFlotante
=
=
Lo primero es desempaquetar los operandos (dividirlos en campos).
Despus se pueden realizar las dos operaciones siguientes en paralelo:
Sumar los exponentes Exp
A
y Exp
B
para obtener Exp
R
.
Multiplicar las mantisas M
A
y M
B
para obtener M
R
.
Despus se normaliza M
R
ajustando Exp
R
si es preciso.
Se comprueba que el exponente resultante est en el rango permitido.
Si Exp
R
<Exp
min
subdesbordamiento: desnormalizar, empaquetar y salir.
Si Exp
R
>Exp
max
infinito: empaquetar y salir.
En ambos casos podra generarse una excepcin.
Se redondea la mantisa M
R
.
Si M
R
se desnormaliza, hay que volver al paso de normalizacin.
Si M
R
sigue normalizada, empaquetar el resultado y salir.
Circuitos para coma flotante
11
Divisin en coma flotante
Lo primero es desempaquetar los operandos (dividirlos en campos).
Despus se pueden realizar las dos operaciones siguientes en paralelo:
Restar los exponentes Exp
A
y Exp
B
para obtener Exp
R
.
Dividir las mantisas M
A
y M
B
para obtener M
R
.
Despus se normaliza M
R
ajustando Exp
R
si es preciso (postnormalizacin).
Se comprueba que el exponente resultante est en el rango permitido.
Si Exp
R
<Exp
min
subdesbordamiento: desnormalizar, empaquetar y salir.
Si Exp
R
>Exp
max
infinito: empaquetar y salir (producir excepcin?).
Se redondea la mantisa M
R
.
Si M
R
se desnormaliza, hay que volver al paso de normalizacin.
Si M
R
sigue normalizada, empaquetar el resultado y salir.
B a
b
a
exp exp
b
a
exp
b
exp
a
2
m
m
B
A
R
2 m B
2 m A
= =
=
=
Circuitos para coma flotante
12
Producto y divisin en coma flotante
Inicio
Sumar/restar los
exponentes
Multiplicar/dividir las
mantisas
Normalizar la mantisa
resultante
Exponente mayor
que el mximo?
Redondear la
mantisa resultante
Todava est
normalizada?
Fin
S
No
No
S
Infinito positivo
o negativo
Exponente menor
que el mnimo?
Representar nmero en
forma desnormalizada
No
S
En la etapa de inicio hay que
desempaquetar los operandos
originales.
Habitualmente se trabaja con
mantisas normalizadas, para lo
cual es necesario:
Normalizar los operandos que
estn desnormalizados.
Contar con un bit ms para
ampliar el rango del
exponente.
En la etapa final hay que
empaquetar el resultado,
respetando los anchos
especificados por el estndar y
eliminando la parte entera de la
mantisa.
Circuitos para coma flotante
13
Las dos operaciones son similares, con lo cual gran parte del circuito para
ambas puede ser comn:
Un sumador / restador para los exponentes como la UAL pequea del
circuito de suma / resta (sumador para el producto, restador para la divisin).
Un multiplicador en coma fija que admita operandos fuente de m+1 bits (m:
ancho de la mantisa almacenada).
Un divisor en coma fija que admita operandos de m+1 bits.
Si las mantisas estn normalizadas se facilita la postnormalizacin, ya que:
El mdulo de la mantisa producto estar en el rango [1,4).
El mdulo de la mantisa cociente estar en el rango [1/2,2).
Por tanto, puede ser conveniente normalizar previamente las mantisas fuente
que estn desnormalizadas:
A la hora de operar, se aadira un bit a la representacin interna del
exponente.
Producto y divisin en coma flotante
Circuitos para coma flotante
14
MIPS
Tiene instrucciones de coma flotante, ejecutadas por el coprocesador 1 (que se
encuentra dentro del microprocesador).
Los nemotcnicos son similares a las operaciones con enteros con signo, pero
con un sufijo indicativo de la precisin de los operandos:
Precisin simple: .s
Precisin doble: .d
MC68000
El MC68000 no tiene circuitera para coma flotante.
M68881: coprocesador externo de coma flotante para IEEE 754 de precisin
simple y doble.
Tiene un formato interno extendido de 80 bits.
Las instrucciones de coma flotante comienzan por el cdigo 1111.
Producen una excepcin de emulacin.
4. Instrucciones ensamblador para coma flotante