Está en la página 1de 7

Universidad

Rey Juan Carlos


ESTRUCTURA Y TECNOLOG ESTRUCTURA Y TECNOLOG A DE A DE
COMPUTADORES COMPUTADORES
Circuitos para coma flotante
Luis Rincn Crcoles
Licesio J. Rodrguez-Aragn
Circuitos para coma flotante
2
Programa
Bibliografa.
1. Introduccin.
2. Suma y resta en coma flotante.
3. Producto y divisin en coma flotante.
4. Instrucciones para coma flotante en ensamblador.
Circuitos para coma flotante
3
D.A. PATTERSON, J .L. HENNESSY. Estructura y Diseo de Computadores.
Revert, 2000.
J .L. HENNESSY, D.A. PATTERSON. Computer Architecture. Morgan
Kauffman, 2003.
DORMIDO, S. CANTO M.A., MIRA J ., DELGADO A.E. Estructura y Tecnologa
de Computadores. 2 edicin. Sanz y Torres, 2000.
PARHAMI, B. Computer Arithmetic. Oxford University Press, 2000.
P. DE MIGUEL. Fundamentos de los Computadores. 7 edicin. Paraninfo,
1999.
W. STALLINGS. Organizacin y Arquitectura de Computadores. 5 edicin,
Prentice Hall, 2000.
Bibliografa
Circuitos para coma flotante
4
Los computadores utilizan dos representaciones claramente diferenciadas para
cantidades numricas:
Coma fija: para nmeros enteros sin signo o complemento a 2.
Coma flotante (floating point, FP): para nmeros muy grandes o muy pequeos
o con parte fraccionaria.
Inicialmente cada modelo de computador tena su propia manera de representar
nmeros en coma flotante.
Problemas a la hora de asegurar la transportabilidad de los programas y datos.
En 1977 se form un comit de expertos del IEEE cuyo objetivo era definir un
documento estndar para los futuros desarrollos que utilizaran coma flotante.
Finalmente en 1985 el comit hizo oficial el estndar IEEE 754.
En 1987 otro comit de expertos del IEEE propuso un estndar para coma
flotante independiente de la base de numeracin utilizada: el IEEE 854.
Este estndar no implica ninguna modificacin del IEEE 754.
1. Introduccin
Circuitos para coma flotante
5
La coma flotante permite representar los nmeros reales en forma aproximada.
Es preciso aplicar cuidadosamente tcnicas de redondeo.
En los programas no se debe testear la igualdad de dos nmeros en coma flotante.
El estndar IEEE 754 permite formatos extendidos para aumentar la precisin:
Simple extendido: mayor precisin que el formato simple y menor que el formato doble.
Doble extendido: mayor precisin que el formato doble.
Trabajar con estos formatos facilita el redondeo.
Dado que la realizacin de operaciones con datos en coma flotante es compleja,
los computadores cuentan con circuitos especficos dedicados a ello.
Los computadores de potencia baja trabajaban en coma flotante mediante software.
Con el microprocesador 8086 de Intel surgieron los coprocesadores de coma flotante:
chips especficos que, trabajando en paralelo con los microprocesadores, realizaban las
operaciones de coma flotante (8087 y sucesivos).
Con los avances en tecnologa de integracin de circuitos, hace aos que los
coprocesadores de coma flotante se integran en el chip del microprocesador.
Hay circuitos de coma flotante para operaciones de suma, resta, producto,
divisin, raz cuadrada, logaritmos, exponenciales, funciones trigonomtricas, etc.
Introduccin
Circuitos para coma flotante
6
Lo primero es desempaquetar los operandos (dividirlos en campos).
Despus hay que igualar los exponentes de los dos operandos.
Se calcula k =Exp
A
Exp
B
y se desplaza la mantisa de menor exponente k lugares
hacia la derecha.
A continuacin, se suman o se restan las mantisas M
A
y M
B
.
La mantisa resultante M
R
puede no estar normalizada.
El exponente resultante Exp
R
es el mayor de los dos operandos fuente.
Despus se normaliza M
R
y se modifica Exp
R
si es preciso (postnormalizacin).
Se comprueba que el exponente resultante est en el rango permitido.
Si Exp
R
<Exp
min
subdesbordamiento: desnormalizar e ir al paso de redondeo.
Si Exp
R
>Exp
max
infinito: poner valor especial y empaquetar.
En ambos casos podra generarse una excepcin.
Se redondea la mantisa M
R
(en este punto M
R
se puede desnormalizar).
Si M
R
se desnormaliza, hay que volver al paso de postnormalizacin.
Si M
R
sigue normalizada, empaquetar el resultado (unir los campos) y salir.
2. Suma y resta en coma flotante
Circuitos para coma flotante
7
En la etapa de inicio hay que
desempaquetar los operandos
originales.
En la etapa final hay que
empaquetar el resultado,
respetando los anchos
especificados por el estndar y
eliminando la parte entera de la
mantisa.
Suma y resta en coma flotante
Inicio
Alinear las mantisas
Sumar/restar 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
Circuitos para coma flotante
8
En funcin del signo
de las mantisas de los
operandos y del tipo de
operacin, el circuito de
control seleccionar la
UAL grande para
realizar una suma o
una resta.
La UAL pequea
simplemente resta los
exponentes para
calcular la longitud del
desplazamiento que
hay que aplicar a la
mantisa del nmero con
menor mdulo.
Suma y resta en coma flotante
0 1 0 1 0 1
Control
Small ALU
Big ALU
Sign Exponent Significand Sign Exponent Significand
Exponent
difference
Shift right
Shift left or right
Roundinghardware
Sign Exponent Significand
Increment or
decrement
0 1 0 1
Shift smaller
number right
Compare
exponents
Add
Normalize
Round
Circuitos para coma flotante
9
Al desempaquetar operandos normalizados es preciso incluir el bit implcito
como parte entera de la mantisa, que no estaba almacenado en el dato original.
Como M
R
(-4,4), usaremos dos bits para el mdulo de la parte entera de las mantisas
fuente (que tendrn la forma: s01...) y para la mantisa resultado.
Dado que el resultado de la operacin puede estar desnormalizado, el paso de
postnormalizacin exige un circuito complejo.
El incrementador / decrementador para postnormalizar ser un sumador / restador.
La UAL grande tendr que generar resultados de al menos 1+2+m+t bits:
El primer bit sera el de signo.
Los dos siguientes seran para la parte entera de la mantisa.
Los m siguientes seran para el ancho almacenable de la parte entera de la mantisa.
Los ltimos t bits seran para redondear.
La UAL pequea admitira operandos de n+1 bits (n: ancho del exponente).
Suma y resta en coma flotante
Circuitos para coma flotante
10
3. Producto en coma flotante
( )
B a
b
a
exp exp
b a
exp
b
exp
a
2 m m B A R
2 m B
2 m A
+
= =

=
=
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

También podría gustarte