departamento de sistemas e informática · sumador binario en c2 Σ sumador binario cout cin a b s...
TRANSCRIPT
Rosa Corti
Digital II - ECA
Departamento de Sistemas e Informática
2015
Representación de datos y aritmética básica en sistemas digitales
2
Alfabeto: Símbolos utilizados
Base: Cantidad de símbolos del alfabeto
Sistemas Posicionales: La posición del dígito en la
tira de símbolos da un “peso” a su valor
Sistemas de Numeración:
3
Sistemas de Numeración:
Sistema binario
Sistema octal
Sistema hexadecimal
{0,1,2,3,4,5,6,7}
{ 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F}
{0,1}
4
Dígito decimal Dígito decimal codificado
en binario (BCD)
0 0000
1 0001
2 0010
3 0011
4 0100
5 0101
6 0110
7 0111
8 1000
9 1001
Representación decimal: Código BCD
5
Representación y operaciones
básicas con enteros.
6
Representación de enteros
Magnitud y signo
Complementos
Complemento a la base
Complemento a la base menos 1
Utilizada en la vida diaria
7
Complemento a la base menos 1
Dado un número N en base r con n dígitos, el
complemento (r – 1) de N se define como ( rn – 1) – N.
Ejemplo en binario:
N = (0 1101)2
-N = (1 0010)2 Inconveniente: Doble
representación del cero
Ventaja: Implementación
muy simple
Ejemplo en decimal:
N = (31.479)10
-N = (68.520)10
8
Complemento a la base
Dado un número N en base r con n dígitos, el
complemento a r de N se define como rn – N.
Ejemplo en binario:
N = (0 1101)2
-N = (1 0011)2
Es el complemento más utilizado en sistemas digitales
Ejemplo en decimal:
N = (31.479)10
-N = (68.521)10
9
Representación del signo:
N = (14)10 = (0 00001110)2
-N = (- 14)10 = (1 11110010)2 Utilizando complemento a 2.
-N = (- 14)10 = (1 11110001)2 Utilizando complemento a 1.
N = (+ 258)10 = ( 0000 0010 0101 1000 ) BCD
-N = (- 258)10 = ( 1001 0111 0100 0010 ) BCD , en C10.
Ejemplo en binario:
Ejemplo en decimal:
10
Caracterización de la representación binaria de enteros
Capacidad de representación:
Mínima diferencia entre 2 representaciones consecutivas
Conjunto de valores representables
2 símbolos y tiras de n bits 2n
Representación Rango (n bits) Ejemplo (n = 8)
Positivos sin signo [0 ; 2n – 1] [0 ; 255]
C2 [- 2n-1 ; 2n-1 – 1] [- 128 ; 127]
C1 [- 2n-1 -1 ; 2n-1 – 1] [- 127 ; 127]
Si n = 8 , es 256
Resolución:
Cantidad de tiras de bits distintas
Rango
Representación de enteros Es siempre 1 (20)
11
Caso 1: A > 0 y B > 0
Sistema decimal Sistema binario
A + 6 0 0000110
B +13 0 0001101
S = A + B +19 0 0 0010011
Suma en C2
S = A + B Resultado correcto
Sumador
Binario
Cin Cout
B A
S = A + B + Cin
12
Caso 2: A < 0 y B < 0
Sistema decimal Sistema binario
A - 6 1 1111010
B -13 1 1110011
S = A + B -19 1 1 1101101
Suma en C2
S = (rn – A) + ( rn – B) = rn + rn – ( |A| + |B| )
Resultado correcto
Sumador
Binario
Cin Cout
B A
S Representación
binaria (r = 2)
13
Caso 3: A < 0 y B > 0 y |A| < |B|
Sistema decimal Sistema binario
A - 6 1 1111010
B +13 0 0001101
S = A + B + 7 1 0 0000111
Suma en C2
S = (rn – A) + B = rn + ( |B| - |A| )
Resultado correcto
Sumador
Binario
Cin Cout
B A
S
Representación
binaria (r = 2)
14
Caso 4: A > 0 y B < 0 y |A| < |B|
Sistema decimal Sistema binario
A + 6 0 0000110
B -13 1 1110011
S = A + B - 7 0 1 1111001
Suma en C2
S = A + (rn – B) = rn - ( |B| - |A| )
Resultado correcto
Sumador
Binario
Cin Cout
B A
S
Representación
binaria (r = 2)
15
Sumador binario en C2
Σ
Sumador
Binario
Cin Cout
B A
S
Cuando sumamos números positivos y negativos
utilizando complemento a r, se obtendrá el
resultado correcto siempre, si se ignora rn.
16
El sobreflujo ocurre cuando al sumar dos números
de n bits, el resultado ocupa n + 1bits.
Sobreflujo (Overflow)
En general se detecta y se informa.
Es un problema de la representación ligado al
tamaño finito de los registros del sistema
17
Representación binaria: Rango y Sobreflujo
La cantidad de bits (n) y las características de la representación
binaria definen el RANGO o conjunto de valores representables.
Hay sobreflujo cuando el resultado de la operación excede
el rango de la representación
Representación Rango (n bits) Ejemplo (n = 8)
Positivos sin signo [0 ; 2n – 1] [0 ; 255]
C2 [- 2n-1 ; 2n-1 – 1] [- 128 ; 127]
C1 [- 2n-1 -1 ; 2n-1 – 1] [- 127 ; 127]
18
Bibliotecas Unificadas: Sumador binario
Se disponen en distinto tamaño: 4, 8, 16 bits
Son encadenables
Números sin signo o C2
Interpretación de los operandos
Sumadores de mayor tamaño
S = A + B + CI
OFL
CO
Sobreflujo en C2
Sobreflujo sin signo
19
Sumadores binarios encadenados
CO del ADD que suma los bits menos
significativos se conecta a CI del ADD
que suma los bits más significativos
Sobreflujo detectado por OFL (C2) o
CO (positivos sin signo) del ADD
que suma los bits más significativos
20
Suma Binaria Suma BCD Valor decimal
K Z8 Z4 Z2 Z1 C S8 S4 S2 S1
0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 1 0 0 0 0 1 1
0 0 0 1 0 0 0 0 1 0 2
0 0 0 1 1 0 0 0 1 1 3
0 0 1 0 0 0 0 1 0 0 4
0 0 1 0 1 0 0 1 0 1 5
0 0 1 1 0 0 0 1 1 0 6
0 0 1 1 1 0 0 1 1 1 7
0 1 0 0 0 0 1 0 0 0 8
0 1 0 0 1 0 1 0 0 1 9
0 1 0 1 0 1 0 0 0 0 10
0 1 0 1 1 1 0 0 0 1 11
0 1 1 0 0 1 0 0 1 0 12
0 1 1 0 1 1 0 0 1 1 13
0 1 1 1 0 1 0 1 0 0 14
0 1 1 1 1 1 0 1 0 1 15
1 0 0 0 0 1 0 1 1 0 16
1 0 0 0 1 1 0 1 1 1 17
1 0 0 1 0 1 1 0 0 0 18
1 0 0 1 1 1 1 0 0 1 19
Suma BCD de
dos dígitos
Se puede obtener
utilizando un
sumador binario ?
21
Acarreo BCD
Suma
Binaria
Corrección
Suma BCD
Signo Centena Decena Unidad Suma Decimal
1 1
0000 0001 1000 0100 184
0000 0101 0111 0110 + 576
0000 0111 1 0000 1010
0110 0110
0000 0111 0110 1 0000 760
• Ejemplo 1: S = A + B, dónde A = (+ 184) y B = (+ 576)
Suma en BCD
22
Signo Centena Decena Unidad Suma Decimal
1 1
1001 1000 0001 0110 - 184
1001 0100 0010 0100 - 576
1 1011 1100 0100 1010
0110 0110 0110
1 1001 1 0010 0100 1 0000 - 760
Acarreo BCD
Suma
Binaria
Corrección
Suma
BCD
• Ejemplo 2: S = A + B, dónde A = (- 184) y B = (- 576)
Suma en BCD
C10(A) = 9 816 C10(B) = 9 424
23
Caso 1: A > 0 y B > 0
Sistema decimal Sistema binario
A + 6 0 0000110
B +13 0 0001101
S = A + B +19 0 0 0010011
Suma en C1
Resultado correcto S = A + B
Sumador
Binario
Cin Cout
B A
S
24
Caso 2: A < 0 y B < 0
Sistema decimal Sistema binario
A - 6 1 1111001
B -13 1 1110010
S = A + B -19 1 1 1101011 (- 20)
Suma en C1
1
1 1101100
S = (rn – 1 – A) + ( rn – 1 – B) = rn – 1 + rn – 1 – ( |A| + |B| )
Resultado correcto Representación
binaria (r = 2)
25
Caso 3: A < 0 y B > 0 y |A| < |B|
Sistema decimal Sistema binario
A - 6 1 1111001
B +13 0 0001101
S = A + B + 7 1 0 0000110 ( + 6)
Suma en C1
S = (rn – 1 – A) + B = rn – 1 + ( |B| – |A| )
Resultado correcto
1
00000111
Representación
binaria (r = 2)
26
Caso 4: A > 0 y B < 0 y |A| < |B|
Sistema decimal Sistema binario
A + 6 0 0000110
B -13 1 1110010
S = A + B - 7 0 1 1111000
Suma en C1
S = A + (rn – 1 – B) = rn – 1 – ( |B| – |A| )
Resultado correcto
Representación
binaria (r = 2)
27
Sumador binario en C1
Σ
Sumador
Binario
Cin Cout
B A
S
Cuando sumamos números positivos y negativos
utilizando complemento a r – 1, se obtendrá el
resultado correcto siempre, si se suma rn al dígito
menos significativo.
28
Resta binaria
R = A - B R = A + (- B)
Se obtiene a partir del bloque sumador
Se complementa el sustraendo ( C2 ó C1)
29
Bibliotecas Unificadas: Sumador/Restador binario
Se disponen en distinto tamaño: 4, 8, 16 bits
Son encadenables
Números sin signo o C2
Interpretación de los operandos
Operandos de mayor tamaño
S = A + B + CI
30
Sumador/Restador binario
SUMA CI y CO son activos en alto (1)
S = A + B + CI ADD = 1
RESTA ADD = 0
S = A - B - CI
CI y CO son activos en bajo (0)
Suma CO OFL_SS
0 0 1
0 1 0
1 0 0
1 1 1
31
Sumadores/Restadores encadenados
CI del ADSU que opera con los
bits menos significativos se define
en base a la entrada suma (ADD)
El sobreflujo se detecta en el
ADSU que opera con los bits más
significativos. Depende del tipo
de representación adoptado
32
Sumador/Restador binario
C2 SS
SS
SS C2
C2
La representación adoptada
determinará la forma de detectar
el sobreflujo (OFC2 u OFSS)
33
Multiplicación y división binarias
Se obtienen a partir de la suma y resta binarias , realizando
los corrimientos correspondientes.
Se opera con los valores absolutos y se obtiene el signo del
resultado a partir de los signos de los operandos.
ALU • Operaciones aritméticas
• Operaciones lógicas
• Corrimientos y rotaciones
34
Representación de
números reales.
35
Representación de números reales
Se considera la coma o punto, fijo en cierta posición.
Se almacena la posición que ocupa la coma o punto.
Representación de punto fijo
Representación de punto flotante
36
Representación en punto fijo
El punto en el extremo izquierdo
El punto en el extremo derecho
El número es una fracción
El número es un entero
37
Representación en punto flotante
N = m x re
Mantisa: Número de punto fijo con signo
Exponente: Representa la posición del punto
La mantisa y el exponente se representan físicamente
38
Un número con punto flotante está normalizado si el
dígito más significativo de la mantisa es distinto de cero.
Normalización en punto flotante
Mantisa Exponente Mantisa Exponente
0 0011011 0 00100 0 1101100 0 0010
Número sin normalizar Número normalizado Nro. binario
+ 0011,011
Ejemplo: Mantisa fraccionaria (magnitud y signo 8 bits), exponente (C2, 6 bits)
El punto está a la derecha del bit de signo
Bit de signo
39
Representación computacional
de datos.
40
Representación computacional de datos
Enteros o en punto fijo
Reales en punto flotante
Decimales
Caracteres Código ASCII
41
Representación computacional de enteros
BYTE
WORD
SBYTE
SWORD
DWORD
SDWORD
8 Bits
16 Bits
32 Bits
42
+ 18 = 00010010 (complemento a dos, 8 bits).
+ 18 = 0000000000010010 (complemento a dos, 16 bits).
-18 = 11101110 (complemento a dos, 8 bits).
- 18 = 1111111111101110 (complemento a dos, 16 bits).
Conversión entre distintas longitudes
Ejemplo:
Debe completarse el formato usando el bit de signo
43
Nº BCD Empaquetado BCD Desempaquetado
12 0001 0010 0000 0001 0000 0010
623 0000 0110 0010 0011 0000 0110 0000 0010 0000 0011
910 0000 1001 0001 0000 0000 1001 0000 0001 0000 0000
ASCII
0011 0001 0011 0010
0011 0110 0011 0010 0011 0011
0011 1001 0011 0001 0011 0000
Nº
12
623
910
Representación computacional de decimales
BCD Empaquetado
BCD Desempaquetado
Modo Carácter
44
Representación computacional en punto flotante
Mantisa
normalizada
Representada en magnitud y signo
Se asume que es fraccionaria
Exponente sesgado Se suma un valor fijo para
que sea siempre positivo
La base se conoce y por lo tanto no se representa
45
Estándar 754 de IEEE para punto flotante
Los distintos formatos del esquema tienen la misma estructura
El significante es un número entre 1 y 2.
La mantisa se normaliza y no se
representa el bit más significativo SIGNIFICANTE
46
Estándar 754 de IEEE para punto flotante
47
Estándar 754 de IEEE para punto flotante
48
Estándar 754 de IEEE: Ejemplos
49
Existe un compromiso entre rango representable y resolución.
Estándar 754 de IEEE para punto flotante
Los bits disponibles en cada formato de la norma se reparten
entre significante y exponente
50
Suma y resta en punto flotante
Se siguen los siguientes pasos:
Verificación de operandos nulos
Alineación de significantes
Suma o resta de significantes
Normalización y redondeo del resultado
51
Suma y resta en punto flotante
La suma y la resta obligan a realizar un
alineamiento de significantes
S = 123 100 + 456 10-2 = 123 100 + 4,56 100 = 127,56 100
Ejemplo en decimal:
Los exponentes deben ser iguales
Se desplaza el significante del número más chico
Se pierden dígitos
significativos
52
Estándar 754 de IEEE: Bits de guarda
X = 1,000.........00 x 21
- Y = 0,111.........11 x 21
Z = 0,000.........01 x 21
Z = 1, 000........00 x 2-22
X = 1,000.........00 0000 x 21
- Y = 0,111.........11 1000 x 21
Z = 0,000.........00 1000 x 21
Z = 1, 000........00 0000 x 2-23
Sin bits de guarda: Con bits de guarda:
Sirven para reducir los errores al operar
Z = X – Y = 1,000 … 00 21 – 1,111 … 11 20
53
Estándar 754 de IEEE: Redondeo
Redondeo al más próximo
Redondeo hacia +
Redondeo hacia -
Redondeo a cero Trunca los bits de guarda
Usada por defecto
Se utilizan sólo si las necesidades
de exactitud son muy altas
54
Multiplicación y división en punto flotante
Se siguen los siguientes pasos:
Verificación de operandos nulos
Suma o resta de exponentes
Multiplicación o división de significantes
Normalización y redondeo del resultado
55
Caracterización de las
representaciones.
56
Caracterización de los sistemas de representación
Cantidad de tiras de datos distintas que es
posible representar en el sistema.
Capacidad de representación:
Depende del número de símbolos del alfabeto y de la
longitud de la tira con la que se representan los valores.
57
Sistema con alfabeto binario restringido a 6 bits
26 = 64 Número de representaciones posibles
Caracterización de los sistemas de representación
Capacidad de representación, ejemplos:
Que ocurre con el valor anterior si la representación es:
Punto fijo, se representan enteros positivos.
Punto fijo fraccionaria pura > = 0.
Punto flotante, mantisa entera en C2 de 3 bits,
exponente positivo de 3 bits.
58
Caracterización de los sistemas de representación
Rango:
En sistemas de numéricos, es un entorno que queda
definido por los valores mínimo y máximo que
pueden representarse en la recta numérica.
59
Representación restringida a n bits: Parámetros
[0 , 63]
Rango, ejemplos:
Sistema con alfabeto binario restringido a 6 bits
Números enteros >= 0
Números enteros, en C1 [- 31 , +31]
Mantisa fraccionaria pura >= 0 [0 , 0.111111]
Mantisa entera >= 0 (2 bits),
exponente en C1 [0 , 3*2 7]
60
Caracterización de los sistemas de representación
Resolución:
En sistemas de representación numéricos, se
define a partir de los números consecutivos en la
recta numérica.
61
Representación restringida a n bits: Parámetros
(0.000001)2
Resolución, ejemplos:
Sistema con alfabeto binario restringido a 6 bits
Números enteros >= 0
Mantisa fraccionaria pura >= 0
Mantisa entera >= 0 (2 bits), exponente en C1
(1)2
RM = (1* 27)2 Rm = (1*2-7)2
62
Conclusiones
El número de símbolos del alfabeto y la longitud de la tira
que se utiliza para representar los valores, son quienes
determinan la capacidad de representación de un sistema.
Representaciones numéricas restringidas a n dígitos
El rango en punto flotante es más amplio que en punto fijo.
63
Conclusiones
Los sistemas numéricos en punto flotante, tienen
resolución variable a lo largo de la recta numérica.
La distribución de los dígitos de la representación entre
mantisa y exponente en un sistema en punto flotante
constituye una solución de compromiso.
64
Conclusiones
Los sistemas reales tienen recursos limitados
Los requerimientos del diseño determinan las
características de la representación más adecuada.
La bondad del sistema de representación se evalúa
en el contexto de la aplicación en la que se lo utiliza