Sie sind auf Seite 1von 37

Organización y arquitectura de

computadoras
Capítulo 8
Aritmética de la computadora

Aritmética de la computadora Jose Juan Meza Espinosa 1


Unidad aritmética y lógica
 Hace los cálculos
 El resto de los elementos de la computadora
están para suministrar datos a la ALU
– UDC, Registros, Memoria, E/S
 Maneja enteros
 Puede menajar números de punto flotante
(reales)
 Puede ser una FPU separada (coprocesador
matemático)
Aritmética de la computadora
Arquitectura de computadoras
2
ALU Entradas y salidas

Unidad Banderas
De control
ALU
Registros Registros

Aritmética de la computadora
Arquitectura de computadoras
3
Representación de enteros
 Solo tenemos 0 y 1 para representar todo
 Números positivos almacenados en binario
– ejemplo. 43=00101011
 No hay signo menos
 No hay puntos

 Representación de positivos y negativos


– Signo-Magnitud
– Complemento a dos

Aritmética de la computadora
Arquitectura de computadoras
4
Signo-Magnitud
 El bit de la izquierda es el bit de signo
– 0 significa positivo
– 1 significa negativo
– +18 = 00010010
– -18 = 10010010
 Problemas
– Se necesita considerar signo y magnitUd en la
aritmética
– Dos representaciones del cero (+0 y -0)

Aritmética de la computadora
Arquitectura de computadoras
5
Complemento a dos
 +3 = 00000011
 +2 = 00000010
 +1 = 00000001
 +0 = 00000000
 -1 = 11111111
 -2 = 11111110
 -3 = 11111101

Aritmética de la computadora
Arquitectura de computadoras
6
Beneficios
 Una representación del cero
 La aritmética es fácil
 Negar es no tan fácil
– 3 = 00000011
– Complemento booleano 11111100
– Agregar 1 al LSB 11111101

Aritmética de la computadora
Arquitectura de computadoras
7
Negación caso especial 1
 0 = 00000000
 Negación bit a bit 11111111
 Agrega 1 al LSB +1
 Resultado 1 00000000
 Se ignora el overflow, tal:
- 0 = 0√

Aritmética de la computadora
Arquitectura de computadoras
8
Negación caso especial 2
 -128 = 10000000
 Negación de bits 01111111
 Suma 1 al LSB +1
 Resultado
10000000
 Tal que: -(-128) = -128

Aritmética de la computadora
Arquitectura de computadoras
9
Rango de números
 8 bits complemento a 2
– +127 = 01111111 = 27-1
– -128 = 10000000 = -27
 16 bits complemento a 2
– +32767 = 011111111 11111111 = 215
- 1
– -32768 = 100000000 00000000 = -215

Aritmética de la computadora
Arquitectura de computadoras
10
Conversión entre longitudes
 Números positivos con ceros a la izquierda
– +18 = 00010010
– +18 = 00000000 00010010

 Números negativos con unos a la izquierda


– -18 = 10010010
– -18 = 11111111 10010010

Aritmética de la computadora
Arquitectura de computadoras
11
Suma y resta
 Suma binaria normal
 El bit de signo monitorea el overflow

 Hacer el complemento a dos del substraendo y


súmalo al minuendo
– ejemplo. a - b = a + (-b)

 Sólo necesitamos circuitería para la suma y el


complemento

Aritmética de la computadora
Arquitectura de computadoras
12
Hardware para suma y resta

Registro B

Complementador

OF Sumador

Registro A

Aritmética de la computadora
Arquitectura de computadoras
13
Multiplicación
 Compleja
 Generación de productos parciales
– uno para cada dígito del multiplicador
 Tener cuidado con donde ponemos cada
valor (en que columna)
 Sumar productos parciales

Aritmética de la computadora
Arquitectura de computadoras
14
Ejemplo de multiplicación

1011 Multiplicando (11 dec)


x 1101 Multiplicador (13 dec)
1011
0000 Productos parciales
1011
1011
10001111 Producto (143 dec)

Aritmética de la computadora
Arquitectura de computadoras
15
Diagrama de bloques para la
multiplicación binaria sin signo
Mn-1 ••• M0

Sumar Lógica de control de


Sumador de n- bits Desplazamientos y sumas
Desplazar a la derecha

C An-1 ••• A0 Qn-1 ••• Q0


Multiplicador

Aritmética de la computadora
Arquitectura de computadoras
16
Ejemplo de la ejecución

C A Q M
0 0000 1101 1011 Valores iniciales

0 1011 1101 1011 Suma


Primer Ciclo
0 0101 1110 1011 Desplazamiento

0 0010 1111 1011 Suma Segundo Ciclo

0 1101 1111 1011 Suma Tercer Ciclo


0 0110 1111 1011 Desplazamiento

1 0001 1111 1011 Suma Cuarto Ciclo


(Producto en A, Q)
0 1000 1111 1011 Desplazamiento

Aritmética de la computadora
Arquitectura de computadoras
17
Diagrama de flujo para la
multiplicación de binarios sin
signo
Inicio

C,A ← 0
M ← Multiplicando
Q ← Multiplicador
Cuenta ← n

No Si
¿Q0=1?

C,A ← A + M

Desplazar C, A, Q
Cuenta ← Cuenta -1

No Si
¿Cuenta=0?

Fin

Aritmética de la computadora
Arquitectura de computadoras
18
Multiplicando números negativos
 ¡Lo anterior no funciona! 
 Solución 1
– Convertir a positivo si se requiere
– Multiplica como se hizo anteriormente
– Si los signos fueron diferentes, negar el resultado

 Solución 2
– El algoritmo de Booth

Aritmética de la computadora
Arquitectura de computadoras
19
Algoritmo de Booth

Inicio

A ← 0, Q-1 ←0
M ← Multiplicando
Q ← Multiplicador
Cuenta ← n

=10 =01
¿Q0,Q-1 ?

A ←A - M =11 A ←A + M
=00

Desplazamiento
Aritmético a
Derecha: A, Q, Q-1
Cuenta ← Cuenta -1

No Si
Fin
¿Cuenta=0?

Aritmética de la computadora
Arquitectura de computadoras
20
Ejemplo de la ejecución

A Q Q-1 M
0000 0011 0 0111 Valores iniciales

1001 0011 0 0111 A ← A - M


Primer Ciclo
1100 1001 1 0111 Desplazamiento

Segundo Ciclo
1110 0100 1 0111 Desplazamiento

0101 0100 1 0111 A ← A + M Tercer Ciclo


0010 1010 0 0111 Desplazamiento

Cuarto Ciclo
0001 0101 0 0111 (Producto en A, Q)
Desplazamiento

Aritmética de la computadora
Arquitectura de computadoras
21
División
 Más compleja que la multiplicación
 Los números negativos son más
complicados!
 Se basa en la división larga

Aritmética de la computadora
Arquitectura de computadoras
22
División de números binarios sin
signo

00001101 Cociente
Divisor 1011 10010011 Dividendo
1011
Residuos 001110
1011
Parciales
001111
1011
Residuo
100

Aritmética de la computadora
Arquitectura de computadoras
23
Números reales
 Números con fracciones
 Podrían representrase en binario puro
– 1001.1010 = 24 + 20 +2-1 + 2-3 =9.625

 ¿Dónde está el punto binario?


 ¿Fijo?
– Muy limitado
 ¿Moviendolo?
– ¿Cómo sabemos dónde está?

Aritmética de la computadora
Arquitectura de computadoras
24
Punto flotante
Bit de signo

Exponente
sesgado Mantisa

 +/- .mantisa x 2exponente


 El punto está fijo entre el bit de signo y el
cuerpo de la mantisa
 El exponente indica la posición del punto

Aritmética de la computadora
Arquitectura de computadoras
25
Ejemplos de punto flotante

8 bits 23 bits
Bit de signo

Exponente Parte fraccionaria


sesgado

0.11010001 x 210100 = 0 10010100 10100010000000000000000


-0.11010001 x 210100 = 1 10010100 10100010000000000000000
0.11010001 x 2-10100 = 0 01101100 10100010000000000000000
-0.11010001 x 2-10100 = 1 01101100 10100010000000000000000

Aritmética de la computadora
Arquitectura de computadoras
26
Signos para Punto Flotante
 La mantisa se guarda en complemento a 2
 Los exponentes son sesgados, un valor fijo
o sesgo se resta a ese campo para conseguir
el exponente verdadero
– ejemplo. Sesgo =128
– Tenemos un campo exponente de 8 bits
– Rango de valores puros es de 0-255
– Le restamos 128 para obtener el valor correcto
– Rango -128 a +127

Aritmética de la computadora
Arquitectura de computadoras
27
Normalización
 Los números PF usualmente están normalizados
 El exponente se ajusta que el bit más significativo
de la mantisa es 1
 Como siempre es 1 no se requiere almacenarlo
– La notación científica donde los números están
normalizados para tener un sólo dígito antes del punto
decimal
– Caso 3.123 x 103

Aritmética de la computadora
Arquitectura de computadoras
28
Rangos de PF
 Para un número de 32 bits
– Exponente de 8 bits
– +/- 2256 ≈ 1.5 x 1077
 Precisión
– El efecto de cambiar lsb (bit menos
significativo) de la mantisa
– Mantisa de 23 bits 2-23 ≈ 1.2 x 10-7
– Aproximadamente 6 posiciones decimales

Aritmética de la computadora
Arquitectura de computadoras
29
Números representables

s el bat nes er per s or et n E


-231 0 231 -1

Desbordamiento a Desbordamiento a
Cero negativo Cero positivo

Cero
ot nei ma dr obs e D
ovit a ge N

ot nei ma dr obs e D
oviti s o P
s or e mú N

s or e mú N
s oviti s o P
s ovit a ge N
s el bat nes er pe R

s el bat nes er pe R
Recta
-(1-2-24 )x2127 (1-2-24 )x2127 real
-0.5X2-128 0 0.5x2-128

Aritmética de la computadora
Arquitectura de computadoras
30
IEEE 754
 Un estandar para el almacenamiento de
punto flotante
 Formatos de 32 y 64 bits
 Exponentes de 8 y 11 bits respectivamente
 Formatos extendidos (mantisa y exponente)
para resultados intermedios

Aritmética de la computadora
Arquitectura de computadoras
31
Aritmética de PF +/-
 Comprobar valores cero
 Ajuste de mantisas
 Suma o resta mantisas
 Normalizar el resultado

Aritmética de la computadora
Arquitectura de computadoras
32
Aritmética de PF x/÷
 Checasr si cualquiera de los operandos es cero
 Sumar/restar exponentes
 Multiplicar/dividir mantisas (checar signo)
 Normalizar
 Redondear
 Todos los resultados intermedios deben estar en
un almacenamiento del doble de tamaño

Aritmética de la computadora
Arquitectura de computadoras
33
Multiplicación de punto flotante
Multiplicar

N N Sumar
¿X=0? ¿Y=0? exponentes

S S Restar
sesgo
z←0

¿Desbordamiento S Indicar
Exponente? desbordamiento

Retornar
¿Desbordamiento a S Indicar
Cero en exponente?
Desbordamiento a
Cero
N
Multiplicar
mantisas
Retornar

Normalizar

Redondear

Retornar

Aritmética de la computadora
Arquitectura de computadoras
34
División en punto flotante
Divdirr

N N Restar
¿X=0? ¿Y=0? exponentes

S S Sumar
sesgo
z←0 z←infinito

¿Desbordamiento en S Indicar
Exponente? desbordamiento

Retornar
¿Desbordamiento a S Indicar
Cero en exponente?
Desbordamiento a
Cero
N
Dividir
mantisas
Retornar

Normalizar

Redondear

Retornar

Aritmética de la computadora
Arquitectura de computadoras
35
Lecturas recomendadas
 IEEE 754 en el web de la IEEE

Aritmética de la computadora
Arquitectura de computadoras
36
Aritmética de la computadora
Arquitectura de computadoras
37

Das könnte Ihnen auch gefallen