Sei sulla pagina 1di 31

Organización y Arquitectura de

Computadores

Capitulo 9
Aritmética del Computador
Unidad Aritmético Lógica
• Realiza los calculos
• Todo en la computadora esta ahí para servir a
esta unidad.
• Maneja enteros.
• Puede manejar números de como flotante
(reales)
• Puede tener una unidad separada FPU (co-
procesador)
• Puede estar integrada en el mismo chip FPU
(486DX +)
ALU Entradas y Salidas
Representación de Enteros
• Solo tenemos 1s y 0s para representar todo.
• Numeros positivos representados en binario:
– e.g. 41=00101001
• No hay signo negativo.
• No hay punto.
• Necesidades
– Signo-magnitud.
– Se utiliza complemento a 2.
Signo-Magnitud
• El bit mas significativo (Izquierda)
• 0 significa positivo.
• 1 significa negativo.
• +18 = 00010010
• -18 = 10010010
• Problemas
– Se necesita considerar signo y magnitud en
operaciones aritméticas.
– Dos representaciones del cero (+0 y -0)
Complemento a 2
• +3 = 00000011
• +2 = 00000010
• +1 = 00000001
• +0 = 00000000
• -1 = 11111111
• -2 = 11111110
• -3 = 11111101
Beneficios
• Una solo representación de cero.
• La aritmética se simplifica.
• La negación es fácil.
– 3 = 00000011
– Complemento booleano 11111100
– sumar 1 a LSB 11111101
Caso de negación especial 1
• 0= 00000000
• Complemento 11111111
• Sumar 1 a LSB +1
• Resultado 1 00000000
• Overflow se ignora, entonces:
• -0=0
Caso especial de negación 2
• -128 = 10000000
• Complemento 01111111
• Sumar 1 a LSB +1
• Resultado 10000000
• Asi:
• -(-128) = -128 X
• Monitorear el bit de signo
• Debe cambiar durante la transformación
Rango de Números
• Complemento a 2 de 8 bits.
– +127 = 01111111 = 27 -1
– -128 = 10000000 = -27
• Complemento a 2 de 16 bits.
– +32767 = 011111111 11111111 = 215 - 1
– -32768 = 100000000 00000000 = -215
Conversión de longitudes
• Número positivo: Agregar ceros a la izquierda.
• +18 = 00010010
• +18 = 00000000 00010010
• Número negativo: Agregar 1s a la izquierda.
• -18 = 10010010
• -18 = 11111111 10010010
Adición y Sustracción
• Adición binaria normal.
• Monitorear el bit de signo en caso de
overflow.
• Para restar, sumar el complemento a 2 del
sustraendo
– Ejem. a - b = a + (-b)
• Sólo se necesita circuitos de suma y
complemento.
Hardware para adición y sustracción
Multiplicación
• Compleja
• Obtener un producto parcial con cada digito.
• Mover un bit cada producto parcial.
• Sumar productos parciales.
Multiplicación

1011 Multiplicando (11 dec)


x 1101 Multiplicador (13 dec)
1011 Productos parciales
0000 Ceros
1011 Nota: Si multiplicador es 1 copiar
1011 Igual que el anterior
10001111 Product (143 dec)
Nota: El resultado necesita doble longitud.
Flowchart for Unsigned Binary
Multiplication
Ejemplo
Multiplicando números negativos
• Solución 1
– Convertir a positivo si es necesario.
– Multiplicar normalmente.
– Si los signos son diferentes, Negar la respuesta.
• Solución 2
– Algoritmo de Booth.
Algoritmo de Booth
Example of Booth’s Algorithm
División
• Más complicada que la multiplicación
• Los números negativos complican aún mas la
operación
• Se basa en la división larga.
Flowchart for Unsigned Binary Division
Números Reales
• Números con fracciones.
• Se pueden representar en binario puro.
– 1001.1010 = 24 + 20 +2-1 + 2-3 =9.625
• Donde poner el punto binario?
• Fijo?
– Muy limitado
• Movil?
– Como sabemos donde está?
Punto Flotante

• Números con parte fraccionaria. Ejemplo: 171.5


• Números muy pequeños: Ej: 0.00005.
• Números muy grandes: Ej: 456,3 x105
• Todos esos números pueden ser representados utilizando la notación científica. Mx10E
• Esta misma técnica puede utilizarse para binarios:
• (-1)S x M x 2E
• S=signo; M=Mantisa; E=Exponente.
Ejemplo de punto flotante
Ejemplo
IEEE 754
• Estandar para punto flotante
• Soporta 32 y 64 bits
• 8 y 11 bit en el exponente
• Formatos extendidos (mantisa y exponente)
IEEE 754 Formats
FP Addition & Subtraction Flowchart
Floating Point Multiplication
Floating Point Division

Potrebbero piacerti anche