Está en la página 1de 52

ICCD332 - Arquitectura de Computadores

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

Suma de números positivos o negativos


Resultado de signo opuesto
 OVERFLOW

ENRIQUE MAFLA 18
Resta
Minuendo
+
Compl. a 2 del sustraendo

OVERFLOW también puede ocurrir

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

• Ir sumando los productos parciales


• 1  suma + shift
• 0  shift

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

Multiplicación en complemento a 2: cómo números sin signo?


1011 Sin signo  11 (1011) * 13 (1101) = 143 (10001111)
*1101 Compl. a 2  -5 (1011) * -3 (1101) = -113 (10001111)
10001111
ENRIQUE MAFLA 25
Problemas con operandos negativos
1101 = 1*23 + 1*22 + 0*21 + 1*20
= 23 + 22 + 20
Multiplicación * 2n
=> shift a la izquierda n-bits

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)

Ej. M * (-6) [11111010]


M * (11111010) = M * (-27 + 26 + 25 + 24 + 23 + 21)
= M * (-23 + 21) = (-23 + 22 - 21)
ENRIQUE MAFLA 30
División
Shifts, sumas y restas

División binaria sin signo:

ENRIQUE MAFLA 31
Ejemplo – 7 / 3 (0111 / 0011)
Números negativos
D=Q*V+R
D – dividendo; V – divisor
Q – cociente ; R – residuo

D= 7V= 3 Q= 2R= 1


D = 7 V = -3  Q = -2 R = 1
D = -7 V = 3  Q = -2 R = -1
D = -7 V = -3  Q = 2 R = -1

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

Bias = 2k-1 - 1 Hay un bit a la izquierda de la coma

 Significando (24-bits) E [1,2)

1.1010001×210100 = 0 10010011 10100010000000000000000 = 1.6328125 × 2 20


–1.1010001×210100 = 1 10010011 10100010000000000000000 = –1.6328125 × 2 20
1.1010001×2–10100 = 0 01101011 10100010000000000000000 = 1.6328125 × 2 –20
–1.1010001×2–10100 = 1 01101011 10100010000000000000000 = –1.6328125 × 2 –20
ENRIQUE MAFLA 34
232 valores
Rangos – 32 bits diferentes

Densidad de números en coma flotante


rango  precisión (exp  mantisa)

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
ZX*Y

ENRIQUE MAFLA 42
Divisió
n
ZX/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

También podría gustarte