Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Cap1 AritmeticaComputadores
Cap1 AritmeticaComputadores
Unidad 10
1. Unidad aritmética y lógica
2. Aritmética entera
3. Aritmética de coma flotante
INGENIERÍA EN SOFTWARE
ESCUELA POLITÉCNICA NACIONAL
ENRIQUE MAFLA 1
Revisión
Participación, Participación, Participación
Representación de la información
Sistemas de numeración
Sistema decimal
Sistema binario
Representación hexadecimal
Conversión entre sistemas
ENRIQUE MAFLA 2
Complementos
Complemento a la base disminuida n número de digitos
◦ Número N en base b con n dígitos m número de fracción
◦ Complemento–(b-1) = (bn - 1) – N complemento (b 1) : Cb 1 ( N ) b n b m N
Complemento a la base
◦ Número N en base b con n dígitos 0 if N 0
complemento b : Cb n
◦ Complemento-b: bn – N si N ≠ 0 y 0 si N = 0 b N else
◦ Complemento-b = complemento-(b – 1) + 1
ENRIQUE MAFLA 3
Ejemplo – complemento a 2 del 6 (0110)
ENRIQUE MAFLA 4
Suma en complemento a dos
0101
1010
+ 1
1011
1 * (-2^3)
ENRIQUE MAFLA 5
1 Unidad aritmética y lógica
Dispositivos simples de lógica digital
◦ Almacenar dígitos binarios
◦ Realizar operaciones simples de lógica booleana.
Otros dispositivos:
datos ALU resultados
ENRIQUE MAFLA 6
2. Aritmética entera
Sistema binario: “1”, “0”, “-” y “.”
-1101.01012 = -13.312510
Computador: solo “1” y “0”
Solo números no negativos – fácil. Ej. 8 bits 0 – 255
◦ 00000000 = 0
◦ 00000001 = 1
◦ 00101001 = 41
◦ 10000000 = 128
◦ 11111111 = 255
Si representa al número A
ENRIQUE MAFLA 7
Representación signo-magnitud
Signo – bit mas significativo (0 – positivo ; 1 – negativo
+18 = 00010010 signo magnitud
-18 = 10010010
Desventajas
• Suma y resta: signo y magnitud
• Dos representaciones para CERO
verificar si es 0?
ENRIQUE MAFLA 8
Complemento a 2
ENRIQUE MAFLA 9
Complemento a 2 – suma ponderada de bits
A – entero en complemento a 2:
1. A ≥ 0 (an-1 = 0)
• Numero “cero” es positivo signo = 0; magnitud = 0
• (0 2n-1 - 1)
2. A < 0 (an-1 = 1)
• n-1 bits para la magnitud
• 2n-1 valores posibles (-1 -2n-1)
• Peso del bit mas significativo: -2n-1
ENRIQUE MAFLA 10
Enteros de
4-bits
ENRIQUE MAFLA 11
Value box – conversión binario
decimal
ENRIQUE MAFLA 12
Extensión del rango
Almacenar un entero de n-bits en m-bits (m > n)
1. Signo – magnitud: mover signo a la izquierda, llenar con 0’s
+18 = 00010010 (8 bits)
+18 = 0000000000010010 (16 bits)
-18 = 10010010 (8 bits)
-18 = 1000000000010010 (16 bits)
2. Complemento a 2? Extensión de signo
+18 = 00010010 (8 bits)
+18 = 0000000000010010 (16 bits)
-18 = 11101110 (8 bits) -18 = 11101110 (8 bits)
- 32.658 = 1000000001101110 (16 bits) -18 = 1111111111101110 (16 bits)
ENRIQUE MAFLA 13
Extensión de signo
n m (m > n)
ENRIQUE MAFLA 14
+
2. Aritmética - Negación
Signo – magnitud: invertir el bit del signo
Complemento a 2 (Operación complemento a 2)
1. Complemento booleano de cada bit: 0 1 y 1 0
2. Añadir 1 (tratar como entero binario sin signo)
+18 = 00010010 (complemento a 2)
complemento bit-a-bit = 11101101
+1
11101110 = -18
complemento bit-a-bit = 00010001
+1
00010010 = +18
ENRIQUE MAFLA 15
Negación
ENRIQUE MAFLA 16
Negación - anomalías
1. A = 0
0 = 00000000 (complemento a 2)
complemento bit-a-bit = 11111111
+1
100000000 = 0 (1 – bit carry out)
2. A = -2n-1
-128 = 10000000 (complemento a 2)
complemento bit-a-bit = 01111111
+1
10000000 = -128
Hay una representación para -2n-1, pero no para +2n-1
ENRIQUE MAFLA 17
Suma en complemento a 2
ENRIQUE MAFLA 18
Resta
Minuendo
+
Compl. a 2 del sustraendo
ENRIQUE MAFLA 19
Representació
n geométrica
ENRIQUE MAFLA 20
Hardware y rutas de datos (cables)
ENRIQUE MAFLA 21
Multiplicación de enteros sin signo
Productos parciales
bit del multiplicador = 0 0….0
bit del multiplicador = 1 multiplicando
Producto de dos enteros de n-bits
resultado tiene hasta 2n-bits
ENRIQUE MAFLA 22
Hardware
ENRIQUE MAFLA 23
Multiplicador
ENRIQUE MAFLA 24
Multiplicación complemento a 2
Suma y resta en complemento a 2: como números sin signo
1001 Sin signo 9 (1001) + 3 (0011) = 12 (1100)
+0011 Compl. a 2 -7 (1001) + 3 (0011) = -4 (1100)
1100
Multiplicador negativo
bits shifts? NO!
1101 (-3) = -(23+22+20)
-(21+20)
ENRIQUE MAFLA 26
Algoritmo de Booth
7x3
ENRIQUE MAFLA 27
Ejemplos
ENRIQUE MAFLA 28
Prueba – multiplicador positivo
Multiplicador positivo: bloque de 1’s rodeado de 0’s
M * (00011110) = M * (24 + 23 + 22 + 21)
= M * (16 + 8 + 4 + 2)
= M * 30
2n + 2n-1 + . . . + 2n-K = 2n+1 – 2n-K
M * (01111010)
M * (00011110) = M * (25 – 21) = M * (26 + 25 + 24 + 23 + 21)
= M * (32 – 2) = M * (27 - 23 + 22 - 21)
= M * 30
Producto: una suma y una resta
Booth: 1-0 resta; 0-1 suma
ENRIQUE MAFLA 29
Prueba – multiplicador negativo
Multiplicador – número negativo en complemento a 2
X = {1xn-2xn-3 … x1x0}
X = -2n-1 + (xn-2 * 2n-2) + (xn-3 * 2n-3) + ... + (x1 * 21) + (x0 * 20)
0 más a la izquierda en posición k: X = {111 … 10xk-1xk-2 … x1x0}
X = -2n-1 + 2n-2 + ... + 2k+1 + (xk-1 * 2k-1) + . . . + (x0 * 20)
X = -2k+1 + (xk-1 * 2k-1) + . . . + (x0 * 20) (2n-2 + ... + 2k+1 = 2n-1 - 2k+1)
ENRIQUE MAFLA 31
Ejemplo – 7 / 3 (0111 / 0011)
Números negativos
D=Q*V+R
D – dividendo; V – divisor
Q – cociente ; R – residuo
signo(R) = signo(D)
signo(Q) = signo(D) * signo(V)
ENRIQUE MAFLA 32
Representación de coma flotante
Punto fijo (complemento a 2) – números +/- centrados en ~0
• Números muy grandes y fracciones muy pequeñas?
• División números grandes fracción del cociente puede perderse
Números decimales deslizar la coma; ajustar el exponente
976.000.000.000.000 9,76 * 1014 1001,11000000
1,00111000 x 2^3 1026
0,0000000000000976 9,76 * 10-14,
0100 0000 0010 0011 1000 0000 0000 …
Números binarios: 40 23 80 00 00 00 00 00
• S – significando (mantisa)
• E – exponente
ENRIQUE MAFLA 33
Formato y ejemplos
ENRIQUE MAFLA 35
IEEE 754 – 2008 (formatos básicos)
ENRIQUE MAFLA 36
Multi
ENRIQUE MAFLA 37
Formatos IEEE 754
ENRIQUE MAFLA 38
Interpretación IEEE 754 – binario 32-
bits
ENRIQUE MAFLA 39
Aritmética en coma flotante
E overflow +/- ∞
E underflow 0
S overflow – carry out
S underflow – perdida de bits
ENRIQUE MAFLA 40
Suma y
Resta
Z X +/- Y
Alineamiento
1. Ceros?
2. Alinear Ss
3. +/0 Ss
4. Normalizar el resultado
ENRIQUE MAFLA 41
Multiplicació
n
ZX*Y
ENRIQUE MAFLA 42
Divisió
n
ZX/Y
ENRIQUE MAFLA 43
Precisión – guard bits
Exponente y significando de cada operando registros de la ALU
Registro de S: significando + bit implícito + “guard bits”
Ej. x = 1.000 . . . 00 * 21; y = 1.11 . . . 11 * 20
ENRIQUE MAFLA 44
Precisión - redondeo
S del resultado en registro mas largo
Resultado IEEE 754 – redondeo (alternativas IEEE 754):
• Hacia el número representable mas cercano
Ej. bits extras luego de los 23 bits del S
10001 añadir 1 al ultimo bit representable (23th)
01111 truncar
10000 último bit representable == 1? añadir 1 : truncar
• Hacia +∞
Aritmética de intervalos para controlar errores
• Hacia –∞
• Hacia 0: truncar
ENRIQUE MAFLA 45
IEEE 754 para operaciones aritméticas
Formatos y prácticas y procedimientos para aritmética en FP
Resultados uniformes y predecibles, independientes del HW
• Redondeo
• Infinito
• NaNs (E = 1 … 1; S ≠ 0: tipo de NaN y excepción
• Signaling – envían señales (excepciones) de OPs inválidas
• Silenciosas – se propagan por OPs
• Números subnormales
ENRIQUE MAFLA 46
Aritmética infinita
Caso límite de la aritmética con números reales
-∞ < (todos los números finitos) < +∞
5 + (+∞) = +∞ 5 / (+∞) = +0
5 - (+∞) = -∞ (+∞) + (+∞) = +∞
5 + (-∞) = -∞ (-∞) + (-∞) = -∞
5 - (-∞) = +∞ (-∞) - (+∞) = -∞
5 * (+∞) = +∞ (+∞) - (-∞) = +∞
ENRIQUE MAFLA 47
NaNs silenciosas
ENRIQUE MAFLA 48
Números subnormales
Underflow del E
Shift S a la derecha e incrementar E (hasta rango representable)
ENRIQUE MAFLA 49
Resumen
oALU o Aritmética entera
oRepresentación de enteros oNegación
oSigno – magnitud oSuma y resta
oMultiplicación y división
oComplemento a 2
oExtensión del rango o Aritmética en punto flotante
oPunto fijo oSuma y resta
oComa flotante oMultiplicación and división
oPrincipios oPrecisión – guard bits y redondeo
oIEEE – aritmética binaria en coma flotante
oIEEE 754
ENRIQUE MAFLA 50
T
ENRIQUE MAFLA 51
Preguntas, inquietudes, sugerencias
ENRIQUE MAFLA 52