ARQUITECTURA DE COMPUTADORAS I Prof. Rosendo

Anuncio
ARQUITECTURA DE COMPUTADORAS I Prof. Rosendo Perez
Revision 1.6d
1
REPRESENTACION DE LA INFORMACION • Codificación de números de punto fijo con y sin signo
• Números reales (números de punto flotante)
• Caracteres para impresión de texto
NUMEROS DE PUNTO FIJO Todos los números a representar tienen exactamente la misma cantidad de dígitos y la
coma esta siempre ubicada en el mismo lugar.
Ej.:
0,23
5,12
9,11
En binario
11,10
01,10
00,11
En una computadora los números no se almacenan como decimales sino que se
presupone que ocupan un lugar determinado que los identifica como tales
RANGO Y PRECISION EN NUMEROS DE PUNTO FIJO RANGO: Expresa la diferencia entre el mayor y menor numero representable.
PRECISION: Distancia entre dos números consecutivos en una serie numérica.
Ej.:
Con 3 dígitos en decimal
Rango: 0.00 a 9.99
Precisión: La mitad entre dos valores consecutivos 0.01 y 0.02 max. Error 0.005.
LA LEY ASOCIATIVA DEL ALGEBRA NO SIEMPRE FUNCIONA EN LA COMPUTADORA A+(B+C)=(A+B)+C) En el caso de números en el formato de punto fijo con representación finita donde
suponemos un registro que puede almacenar un solo digito.
Ej.: A:7, B:4 y C:-3.
A+(B+C)= 7 + (4-3)= 8
(A+B)+C= (7+4) - 3= 11 - 3
FUERA DE RANGO
(A+B)+C = ( 7 + 4 ) – 3 = 9 – 3 = 6
Se produjo un desborde en el resultado intermedio al utilizar un formato de punto fijo
de longitud finita.
La única solución es detectar el desborde y modificar el tamaño del registro donde se
almacena el mismo, pero no siempre es posible hacerlo.
SISTEMAS DE NUMERACION POSICIONAL 2
Analiza la utilización de sistemas numéricos con bases arbitrarias
BASE o RAIZ: de un sistema de numeración define el rango de valores posibles.
n −1
VALOR : ∑ bi .k −i
i:− m
donde k es la base
Existen en este caso n digitos a la izquierda de la coma y m a la derecha.
Ej.:
541,25
Base: 10 k= 10
n=3
m=2
= 5 x 102 + 4 x 101 + 1 x 100 + 2 x 10-1 + 5 x 10-2
= 500 + 40 + 1 + 2/10 + 5/100
= 541,25
Ej.: binario (1010,01)2
K=2
n=4
m=2
= 1 x 23 + 0 x 22 + 1 x 21 + 0 x 20 + 0 x 2-1 + 1 x 2-2
= 8 + 0 + 2 + 0 + 0/2 + ¼
= 10,25
CONVERSION ENTRE SISTEMAS Es simple pasar de binario a decimal, no al revés.
Si hay parte entera y decimal, se operan por separado
Conversión de la parte entera de un número de punto fijo La representación era
bi x 2i + b i-1 x 2 i-1 + … + b1 x 21 + b0 x 20
dividiendo el numero por 2
bi x 2i-1 + b i-1 x 2 i-2 + … + b1 x 20 con un resto de b0.
METODO DE LOS RESTOS Ej.: 23
23/2 = 11
resto
1
bit menos significativo
3
11/2 = 5
5/2= 2
2/2= 1
1/2 = 0 resto
resto 1
resto 1
resto 0
1
bit mas significativo
(23)10 = (10111)2
En forma inversa
= (10111)2
= 1 x 24 + 0 x 23 + 1 x 22 + 1 x 21 + 1 x 20
= 16 + 0 + 4 + 2 + 1
= 23
CONVERSION DE LA PARTE FRACCIONARIA DE UN NUMERO DE PUNTO FIJO METODO DE LAS MULTIPLICACIONES
Una fracción binaria esta representada por:
b-1 x 2-1 + b-2 x 2-2 + b-3 x 2-3 +…
si multiplicamos por 2
b-1 + b-2 x 2-1 + b-3 x 2-2 +…
Ej.: 0,375
0.375 x 2 =
0.75 x 2 =
0,5 x 2 =
0.75
1.5
1
bit mas significativo
bit menos significativo
(0.375)10 = (0.011)2
(0.011)2 = 0 x 2-1 + 1 x 2-2 + 1 x 2-3
= 0 +1/2 + 1/8
= 0 + 0.25 + 0.125
4
= (0.375)10
FRACCIONES NO EXACTAS No todas las fracciones representadas en el sistema decimal tienen un numero racional
exacto en binario.
Ej.: (0,2)10
0.2 x 2 =
0.4 x 2 =
0.8 x 2 =
0.6 x 2 =
0.2 x 2 =
0. 4
0. 8
1. 6
1. 2
0. 4
0
0
1
1
0
Para números de un solo digito, solo 0 y 0.5 dan soluciones exactas
Para números de 4 dígitos lo hacen 0 , 0.25, 0.5 y 0.75
REPRESENTACION BINARIA Vs DECIMAL. REPRESENTACION DE NUMEROS EN LOS SITEMAS BINARIO, OCTAL Y DECIMAL Para pasar a octal se divide el número binario en grupos de 3, y para el hexadecimal en
grupos de 4.
(10110)2 = (010)2 (110)2 = (2)8 (6)8 = (26)8
(10110110)2 = (1011)2 (0110)2 = (B)16 (6)16 = (B6)16
CONVERSIÓN DE UN NUMERO DECIMAL A OCTAL Para convertir un número en el sistema decimal al sistema de numeración Octal,
debemos seguir los pasos que mostraremos en el siguiente ejemplo
Convertir el número decimal 323.625 a el sistema de numeración Octal
1.
2.
3.
4.
Se toma el numero entero y se divide entre 8 repetidamente hasta que el dividendo
sea menor que el divisor, para colocar entonces el numero 0 y pasar el dividendo a
formar el primer dígito del numero equivalente en decimal
Se toma la parte fraccionaria del numero decimal y la multiplicamos por 8
sucesivamente hasta que el producto no tenga números fraccionarios
Pasamos la parte entera del producto a formar el dígito correspondiente
Al igual que los demás sistemas , el numero equivalente en el sistema decimal , esta
formado por la unión del numero entero equivalente y el numero fraccionario
equivalente.
5
Conversión de decimal a octal
CONVERSIÓN DE UN NUMERO OCTAL A BINARIO La ventaja principal del sistema de numeración Octal es la facilidad conque pueden
realizarse la conversión entre un numero binario y octal. A continuación mostraremos
un ejercicio que ilustrará la teoría. Por medio de este tipo de conversiones, cualquier
numero Octal se convierte a binario de manera individual. En este ejemplo, mostramos
claramente el equivalente 100 111 010 en binario de cada numero octal de forma
individual.
Figura 11: Conversión de octal a binario
CONVERSIÓN DE UN NUMERO DECIMAL A UN NUMERO HEXADECIMAL Convertir el número 250.25 a Hexadecimal
1.
2.
3.
4.
Se toma la parte entera y se divide sucesivamente por el numero
decimal 16 (base) hasta que el cociente sea 0
Los números enteros resultantes de los cocientes, pasarán a
conformar el numero hexadecimal correspondiente, teniendo en
cuenta que el sistema de numeración hexadecimal posee solo 16
símbolos, donde los números del 10 hasta el 15 tienen símbolos
alfabéticos que ya hemos explicado
La parte fraccionaria del numero a convertir se multiplica por 16
(Base) sucesivamente hasta que el producto resultante no tenga
parte fraccionaria
Al igual que en los sistemas anteriores, el numero equivalente se
forma, de la unión de los dos números equivalentes, tanto entero
como fraccionario, separados por un punto que establece la
diferencia entre ellos.
6
Conversión de decimal a hexadecimal
CONVERSIÓN DE UN NUMERO HEXADECIMAL A UN NUMERO DECIMAL Como en los ejemplos anteriores este también nos ayudará a entender mejor este
procedimiento: Convertir el numero hexadecimal 2B6 a su equivalente decimal.
1. Multiplicamos el valor de posición de cada columna por el dígito hexadecimal
correspondiente.
2. El resultado del número decimal equivalente se obtiene, sumando todos los
productos obtenidos en el paso anterior.
Conversión de hexadecimal a decimal
ARITMETICA DE LAS COMPUTADORAS SUMA: Similar a la realizada a mano para números decimales
0+0=0
0+1=1
1+0=1
1+1=0 y nos llevamos 1 (arrastre)
Arrastre
Sumando A
Sumando B
11110000
01111100
01011010
11010110
(124)10
(90)10
(214)10
7
SUMA BINARIA Suma binaria
La suma o adición binaria es análoga a la de los números decimales. La
diferencia radica en que en los números binarios se produce un acarreo
(carry) cuando la suma excede de uno mientras en decimal se produce un
acarreo cuando la suma excede de nueve(9). Del gráfico anterior podemos
sacar las siguientes conclusiones:
1. Los números o sumandos se suman en paralelo o en columnas, colocando
un numero encima del otro. Todos los números bajo la misma columna
tienen el mismo valor posicional.
2. El orden de ubicación de los números no importa (propiedad conmutativa).
Reglas para la suma binaria
En la figura anterior se indican las reglas que rigen la suma binaria y en la
figura proxima se muestra un circuito lógico llamado semisumador, que
suma 2 bits (A y B) que genera un bit de suma y un bit de acarreo cuando
este se produce.
La operación de un semisumador como el anterior mostrado en la figura se
puede sintetizar mediante las siguientes 2 operaciones booleanas:
S=A(xor)B (suma) Co=A·B (acarreo) Para realizar una suma binaria donde
se tenga presente un carry de entrada se debe implementar un circuito que
tenga presente esta nueva variante; como es el caso del sumador completo.
El sumador completo tiene 3 entradas que se suman y son: A, B, y Cin
(entrada de arrastre), y las salidas habituales S y Co (suma y salida de
arrastre)
Semisumador
8
Sumador completo
RESTA: Se resuelve igual que en el sistema decimal, tomando una unidad prestada de
la posición siguiente: 10-1=1 y me llevo 1, lo que en decimal equivale a decir 2 – 1 = 1.
Esa unidad prestada debe devolverse, sumándola a la posición siguiente.
10001 (17) 10
-01010 -(10 ) 10
00111 ( 7 ) 10
RESTA BINARIA Resta binaria
La resta o sustracción de números binarios es similar a los números decimales. La
diferencia radica en que, en binario, cuando el minuendo es menor que el sustraendo, se
produce un préstamo o borrow de 2, mientras que en decimal se produce un préstamo de
10.
Al igual que en la suma, el proceso de resta binaria, se inicia en la columna
correspondiente a la de los dígitos menos significativos. En la figura 5 se indican las
reglas que rigen la resta binaria y en la figura 6 se muestra un circuito lógico, llamado
semirrestador (HS), que sustrae un B de un bit A y suministra un bit de diferencia (Di) y
un bit de préstamo (Bo).
La operación de un Semirrestador como el mostrado en la figura anterior se puede
resumir mediante las 5 ecuaciones booleanas:
Di=A·B(neg)+A(neg)·B= A(xor)B (diferencia) Bi=A(neg).B (borrow)
En la figura siguiente se muestra el proceso de resta de 2 números binarios de 5 bits. El
objeto de esta operación es ilustrar el manejo de los préstamos y plantear la necesidad
de un restador completo de 2 bits que tenga, como entradas, el minuendo, el sustraendo,
y el préstamo anterior y ofrezca como salidas, la diferencia y el préstamo, si existe.
9
En la figura se muestra el diagrama de bloques, conexión en bloques utilizando
semirrestadores y una puerta OR y el diagrama lógico de un restador completo.
Figura 6: Semirrestador
Restador completo
10
NUMEROS CON SIGNO EN FORMATO DE PUNTO FIJO Hay 4 convenciones en la representación de números con signo
• MAGNITUD (Valor Absoluto) y SIGNO
• COMPLEMENTO A UNO
• COMPLEMENTO A DOS
• NOTACION EXCEDIDA
MAGNITUD Y SIGNO (o Valor Absoluto y Signo)
Es la mas habitual
Para el signo se utiliza el bit de mayor valor significativo
0+
1–
+(12)10 = (0000 1100)2
-(12)10 = (1000 1100)2
Existen dos representaciones para el cero
+0 = 0000 0000
-0 = 1000 0000
En este caso, con 8 bits se pueden representar 255 números (no 256) por la duplicación
del cero.
COMPLEMENTO A UNO NO ES DE USO COMUN
Tiene una resolución trivial
Para la parte negativa convierte todos los ceros en uno y todos los unos en cero.
Decimal
3
2
1
+0
-0
-1
-2
-3
Magnitud y Signo
011
010
001
000
100
101
110
111
Complemento a Uno
011
010
001
000
111
110
101
100
Esto se conoce como complementación de la palabra.
+(12)10 = (0000 1100)2
-(12)10 = (1111 0011)2
11
COMPLEMENTO A DOS Se realiza el complemento a 1 y se le suma 1 al resultado obtenido, y si hay un
arrastre al bit mas significativo, se descarta excepto que haya desborde.
Su ventaja es que hay una sola representación del cero.
+ (0)10 = (0000 0000)2
complemento
- (0)10 = 1111 1111
+
1
0000 0000
+ (12)10 = 0000 1100
complemento
- (12)10 = 1111 0011
+
1
1111 0100
Se considera solo +0 y para abajo arranca en -1
Es la representación mas utilizada en computadoras
REPRESENTACION GRAFICA DE COMPLEMENTO A 2 12
REPRESENTACION EXCEDIDA (DESPLAZADA) Los números se tratan como si no tuviesen signo, pero se los desplaza en su valor por
medio de la resta de otro número conocido como exceso o desplazamiento.
Lo que logra es desplazar el número en un valor dado.
Ej.: +12 y -12 con representación en exceso 128.
128 + 12 = 140
+ 12 = (1000 1100)2
128 - 12 = 116
- 12 = (0111 0100)2
No hay ningún significado numérico asociado con el valor del exceso. Su efecto es
simplemente el de desplazar la representación de los números expresados en
complemento de dos.
+ 127 = 1111 1111
- 128 = 0000 0000
DECIMAL CODIFICADO EN BINARIO BCD: Binary Coded Decimal Se representa con 4 bits
16 posibilidades
Existen menos problemas para representar fracciones decimales exactas.
En la representación de complemento a nueve los números positivos se representan en
el formato BCD habitual, pero el digito decimal mas significativo adopta un valor
menor a 5 si el número es positivo y 5 o mas si el numero es negativo.
El complemento a 9 se obtiene restando cada digito de 9.
Ej.:
+ 301
-
301
0301
9698
El complemento a 10 se obtiene sumando 1 al complemento a 9
- 301 = 9698 + 1 = 9699
13
Rango: números positivos = 0 a 4999
números negativos = 5000 a 9999
14
REPRESENTACION EN PUNTO FLOTANTE 23
Ej.: Número de Avogadro = + 6.023 x 10
(El NUMERO DE AVOGADRO ES EL NUMERO DE MOLECULAS QUE HAY EM
UN MOL DE GAS.
ES UNA CONSTANTE UTILIZADA EN FISICA Y QUIMICA PARA ESTABLECER
UNA RELACION ENTRE LA MASA O EL VOLUMEN Y LA CANTIDAD DE
MATERIA. SE DEFINE COMO LA CANTIDAD DE ATOMOS DE CARBONO 12
CONTENIDOS EN 12 GRAMOS DE ESTE ELEMENTO (Definición de MOL).
EL VALOR RECOMENDADO ES NA = (6,0221415 + 0,000001) x 1023 mol-1
El MOL es la unidad básica del SISTEMA INTERNACIONAL DE UNIDADES que
mide la CANTIDAD DE SUSTANCIA de un elemento.)
Con coma fija es complicado representar números muy grandes o muy pequeños.
Una forma de solucionarlo para números decimales es utilizando la notación científica
(9.76 x 1014 o 9.76 x 10-14 me ahorran el escribir 13 ceros).
Se separan los dígitos utilizados para determinar la precisión de los que se necesitan
para representar el rango.
Ubicación de la coma
potencia
+ 23 6,023
signo
Exponente
Dos dígitos
Mantisa
Cuatro digitos
En la división de dos números grandes puede perderse la parte fraccionaria del cociente.
La misma técnica de correr la coma y poner una potencia de 10 puede hacerse con los
números binarios.
Permiten representar un amplio rango de números con poca cantidad de dígitos binario
Otra forma de explicarlo es:
Una representación en coma flotante se compone de tres números (campos) que siguen
el siguiente patrón:
r: valor real del número a representar
m: mantisa o significando, dígitos significativos del número. El tamaño máximo de este
campo, usualmente fijo y limitado, determina la precisión de la representación. Este
15
campo está usualmente normalizado, es decir, su parte entera sólo consta de un dígito
(que será la primera cifra significativa del número a representar).
b: base del sistema de representación (10 en sistema decimal, 8 en sistema octal, 2 en
sistema binario, etc)
e: exponente, orden de magnitud del significando. El mínimo y máximo valor posible
del exponente determinan el rango de valores representables. Como puede notarse, cabe
añadir que cuando e vale cero el valor real coincide con el significando.
En ciertos casos se usa como, con un cuarto campo, s, que tiene el valor de 1 ó -1 según
el signo del número (que se extrae del significando).
RANGO Y PRECISION EN LOS NUMEROS CON COMA FLOTANTE
MANTISA se denomina en esta forma al valor del punto fijo
El rango de la representación queda determinado básicamente por la cantidad de dígitos
del exponente y la base a que ese exponente afecta.
La precisión queda determinada por la cantidad de dígitos de la mantisa.
La coma decimal no se almacena porque ocupa siempre la misma posición dentro de la
mantisa.
Podemos representar un numero como + S x B +E
donde:
+ : Signo
S: Parte SIGNIFICATIVA o MANTISA (S: Significand)
E: Exponente
Ejemplo: Numero con coma flotante de 32 bits
0.11010001 x 210100
:
0 10010011 101000100000….
El bit mas a la izquierda contiene el signo del numero (0:+, 1:-).
El valor del exponente se almacena en los bits 1 a 8 en forma “sesgada”.
Un valor fijo llamado “sesgo” se resta de este campo para conseguir el valor de
exponente verdadero.
Generalmente el sesgo tiene el valor:
(2k-1 – 1)
donde k es el numero de bits en el exponente binario
Ejemplo: 16
En este caso hay un campo de 8 bits (0 a 255). Con un sesgo de 127 los valores del
exponente serán de -127 a + 128
MANTISA: La normalizamos, es decir que cualquier numero quedara;
+ 0.1 bbb…b x 2+E
donde cada b es un digito binario.
Esto implica que el bit mas a la izquierda de la mantisa es siempre 1.
Como es innecesario almacenarlo, ese bit esta siempre implícito.
De esa forma el campo de 23 bits almacena una mantisa de 24 bits.
Ej.:
0.11010 se almacena como 1010
NORMALIZACION Y ESQUEMA DE BIT IMPLICITO Uno de los problemas existentes es que el mismo número puede representarse de varias
maneras.
3584.1 x 100 = 3.5841 x 103 = 0.35841 x 104
Para evitar esta circunstancia se emplean formatos normalizados.
La coma se desplaza a la derecha o a la izquierda y se ajusta el exponente en forma
coherente con el desplazamiento de la coma hasta ubicarla a la izquierda del digito no
nulo mas significativo.
En el caso anterior seria = 0.35841 x 104
Esto implica no poder representar el cero. El mismo se representa con una mantisa
nula.
Si la condición de normalización implica que la mantisa siempre comienza con un uno,
este se puede sobrentender y esconder.
Ej.: 358
1ro pasarlo a base 16
entero
358/16:
22
22/16:
1
1/6
resto
6
6
1
(358)10 = (166)16
(166)16 = (166.0)16 x 160
= (0.166)16 x 163
1. Es + = 0
2. Exponente: 3 y representado en exceso 4.
17
exceso 4
Exponente en exceso 4
0
111 ,
signo exponente
011
+100
111
(+3)10
(+4)10
0001 0110 0110
1
6
6
mantisa
La coma no se representa, esto implica que la computadora almacena:
0111 0001 0110 0110
REPRESENTACION DE NUMEROS DE PUNTO FLOTANTE DENTRO DE LA COMPUTADORA La mantisa se representara en forma de magnitud y signo, con un bit para el signo y
tres dígitos hexadecimales (12 bits) como tamaño de la representación.
Exponente de 3 bits, expresado en exceso 4 con base 16.
Forma normalizada con la coma a la izquierda de los 3 dígitos hexadecimales.
•
•
•
•
El signo se almacena en el 1er. Bit de la palabra
El 1er. Bit de la mantisa original es siempre 1 y no necesita almacenarse en el
campo de la mantisa.
Se suma 127 al exponente original para almacenarlo en el campo del exponente.
La base es 2.
La siguiente figura indica el rango de números que pueden representarse con una
palabra de 32 bits
ENTEROS REPRESENTABLES
NOTACION ENTERA EN COMPLEMENTO A DOS Pueden representarse todos los
enteros
desde -231 hasta
231 – 1 con un total de 232
ENTEROS
EN COMPLEMENTO
A
DESBORDA
números diferentes.
DESBOR
MIENTO A
NUMEROS
NUMEROS
Con el ejemplo de NEGATIVOS
coma flotante
son posibles
DAMIENTO
CERO los siguientes
POSITIVOSrangos:
REPRESENTA A CERO
BLES
-24NEGATIVO
128
Números negativos: -( 1 – 2 ) x 2
-0.5 x 2-127
DESBORDAMIEN
TO NEGATIVO
POSITIVO
REPRESENTA
BLES
DESBORDAMIEN
TO POSITIVO
Están excluidos
NUMEROS EN COMA FLOTANTE
18
•
Números negativos menores que – (1 – 2-24) x 2128
•
Números negativos mayores que – 0.5 x 2-127
•
El cero
•
Números positivos menores que 0.5 x 2-127
•
Números positivos mayores que (1 – 2-24) x 2128 DESBORDAMIENTO
POSITIVO
DESBORDE
NEGATIVO
DESBORDAMIENTO A
CERO NEGATIVO
DESBORDAMIENTO A
CERO POSITIVO
Un desbordamiento ocurre cuando una operación aritmética da lugar a un numero cuyo
exponente es mayor que 128 (ej. 2120 x 2100 = 2220).
Un desbordamiento a cero ocurre cuando una magnitud fraccionaria es demasiado
pequeña (ej. 2-120 x 2-100 = 2-220).
Los números con coma flotante no están espaciados por igual en la recta de números
reales.
Hay mas valores en el origen, y esto puede dar lugar a errores al multiplicar números
altos.
En el formato de punto fijo la coma decimal esta en una ubicación fija y hay una
cantidad de dígitos delante y detrás de la misma.
Esto puede implicar palabras de computadora muy largas. Una cifra de billones con una
fracción también de millonésimas llevaría al menos 80 bits (40 a la derecha de la coma
y 40 a la izquierda).
ERRORES EN LA REPRESENTACION DE PUNTO FLOTANTE •
•
Tiene precisión finita, eso implica que se debe considerar el tamaño del error.
Por error se considera la distancia entre dos números representables
consecutivos
CARACTERIZACION DEL ERROR, EL RANGO Y LA PRECISION b: base
S: cantidad de dígitos significativos (no bits) en la mantisa
M: mayor exponente
m: menor exponente
19
•
•
Si la base es diferente a 2, la cantidad de dígitos es diferente a la cantidad de
bits.
Si la base es 2k, siendo k un entero se utilizaran k bits para representar cada
digito
Base 16 : 24 : 4 bits x digito
•
Si
Como el exponente es de 3 bits y se representa en exceso 4, esto le asigna al
exponente desde -22 hasta 22-1.
b : 16
S:3
M:3
m: -4
CARACTERISTICAS A CONSIDERAR EN LA REPRESENTACION CON PUNTO FLOTANTE •
•
•
Cual es la cantidad de números que permiten representar.
Cuales son los números de mayor y menor magnitud (fuera del cero).
Cuales son los tamaños de la mayor y menor diferencia entre números
consecutivos.
La cantidad de números representados puede expresarse por:
2
x
A
Bit de
Signo
((M – m) + 1)
B
Cantidad de
exponentes
x
(b – 1)
x
C
1er digito de
la mantisa
bs-1
+
D
dígitos
restantes de
La mantisa
1
E
cero
C – 1er digito de la mantisa
•
•
•
•
En un formato normalizado puede tomar cualquier valor excepto cero.
Los digitos restantes pueden adoptar cualquiera de los b valores diferentes ( bs-1
en D ).
Si se utiliza un bit implícito debe eliminarse la posición C y esto hace que D sea
reemplazado por bs.
La posición para el cero se considera en E.
Números extremos de la posición planteada
Mínimo valor: numero con menor exponente y la menor mantisa normalizada no nula
bm x b-1 : bm-1
Máximo valor: mayor mantisa (todos 1) y el máximo exponente bM x ( 1 – b-s).
20
Diferenca máxima y mínima:
Menor diferencia:
bm x b-s : b(m-s)
Mayor diferencia:
bM x b-s : b(M-s)
Ej.:
•
•
•
•
Bit de signo
Exponente de 2 bits en notación exceso 2.
Mantisa normalizada binaria de 3 bits con el 1er. Uno no visible, no implícito.
Cero : 00 0000
Minimo valor: exponente= -2
Mínima mantisa normalizada: (0.100)2
bm x b-1 : bm-1 : 2-2-1 : 1/8
Maximo valor: bM x (1 – b-5) : 21 x (1 – 2-3) : 7/4
Distancia mas chica
Cuando el exponente tiene el menor valor y se produce un cambio en el bit menos
significativo de la mantisa.
bm x b-5 : bm-5 : 2-2-3 : 1/32
Distancia maxima
Con el máximo valor del exponente se altera el bit menos significativo de la mantisa.
bM x b-5 : bM-5 : 21-3 : ¼
Debido a la normalización, la cantidad de números validos es menor a la cantidad de
combinaciones.
: 2 x ((M – m) + 1) x (b – 1) x b5-1 + 1
: 2 x ((1 – (-2) + 1) x (2 – 1) – 23-1 + 1
: 33
•
•
Los intervalos son pequeños para números pequeños y aumentan para números
grandes
El error relativo es aproximadamente el mismo en todo el rango.
Ej.:
Convertir 9.375 x 10-2 a formato de numeración científica utilizando el sistema binario
de numeración.
x, yy x 2E
0.09375 x 2 : 0.1875
0.1875 x 2:
0.375
21
0.375 x 2:
0.75 x 2:
0.5 x 2:
0.75
1.5
1
(0.09375)10 : (0.00011)2
Conversión a representación normalizada de punto flotante
0.00011 : 0.00011 x 20 : 1.1 2-4
22
IEEE 754 Es la utilizada habitualmente por todas las arquitecturas modernas.
Es un Standard que se desarrollo para facilitar la portabilidad de los programas de un
procesador a otro. Es el utilizado en casi todos los procesadores matemáticos actuales
Formatos
Dos formatos
ƒ Simple precisión
ƒ Doble precisión
A su vez, cada uno de estos admiten dos formatos ampliados (simple y doble) cuya
forma exacta depende del procesador en que se utilice. Se los utiliza en cálculos
intermedios para disminuir el error.
Simple precision
32 bits
8 bits
Signo
(1 bit)
23 bits
Mantisa
Exponente
Doble
precisión
64 bits
11 bits
Signo
•Signo
0 positivoExponente
•(1 bit)
1 negativo
52 bits
Mantisa
Exponente de 8 bits implica exceso 127, exponente de 11 bits implica exceso 1023
Las combinaciones
0000 0000
1111 1111
quedan para casos especiales
Mantisa
23 bits pero con un bit implicito 1.fffffff...fff
El número se presenta normalizado, a no ser que la estructura los soporte
desnormalizados.
23
En la norma se pueden representar 5 tipos de números.
Números no nulos
De la forma antes mencionada.
Admite una representación limpia del cero.
Todos 0 en el exponente y 0 en la mantisa.
El bit de signo puede ser 1 o 0 (2 representaciones de cero)
Infinito
Bit de signo
Exponente
Mantisa
0o1
1111 1111
0
Se utilizan para manejar situaciones de desborde o para representar un numero dividido
por cero.
Intervalo entre cero y el 1er. Numero que puede representarse
Los números incluidos en este intervalo se resuelven con el “cero sucio”
desnormalizado.
•
•
•
El bit de signo puede ser 0 o 1
El campo del exponente 0000 0000 (-126) para precisión simple y -1022 para
doble precisión.
En este formato no hay bit implícito.
(b) utiliza el mínimo exponente en simple precisión
(c) utiliza el exponente máximo en simple precisión (+127).
(d) y (e) son dos representaciones del cero.
24
(f) +∞
(h) +NaN: Not a number
Extendido simple – Extendido doble
No son visibles para el usuario, pero se usan internamente para disminuir los errores de
redondeo.
Les agregan bits al exponente y a la mantisa.
Ej. El formato extendido doble tiene 80 bits (15 bits de exponente y 64 para la mantisa).
PARAMETROS DEL FORMATO IEEE 754
PARAMETRO
Longitud de la palabra (bits)
Longitud del exponente (bits)
Sesgo del exponente
Exponente máximo
Exponente minimo
Rango de números (base 10)
Longitud de mantisa (bits)
Numero de exponentes
Numero de fracciones o mantisas
Numero de valores
FORMATO
SIMPLE
32
8
127
127
-126
10-38,
10+38
23
254
2
23
1.98x231
SIMPLE
AMPLIADO
≥ 43
≥ 11
Sin
especificar
≥ 1023
≤ -1022
Sin
especificar
≥ 31
Sin
especificar
Sin
especificar
Sin
especificar
DOBLE
SIMPLE
64
11
1023
1023
-1022
10-308
10+308
52
2046
52
2
1.98x263
DOBLE
AMPLIADO
≥ 79
≥ 15
Sin especificar
≥16383
≤ -16382
Sin especificar
≥ 63
Sin especificar
Sin especificar
Sin especificar
CASO MISIL PATRIOT
De acuerdo al gobierno de EE.UU, la pérdida de precisión al convertir un número
integrado de 24 bits en un numero de punto flotante de 24 bits fue el responsable
por la falla del misil Patriot.
25
CODIGOS ALFANUMERICOS ASCII
EBCDIC
UNICODE
ASCII
American Standard Code for Information Exchange
Son 7 bits x caracter, lo que implica 128 caracteres validos
00 – 1F y 7F son caracteres de control
La tabla de valores tiene un ordenamiento especial
•
Para obtener el valor decimal de un digito se debe restar (30)16 a la
representación ASCII del mismo.
5
•
es (35)16 - (30)16 = 5 o lo que es lo mismo (35 – 30 = 5)16
Para convertir una letra mayúscula en minúscula se le suma (20)16
H es (48)16 y eso implica ( 48 + 20 = 68 )16 = (68)16 = h
26
EBCDIC
•
•
El problema con el ASCII es la poca cantidad de caracteres que puede manejar,
especialmente caracteres especiales.
El EBCDIC (Extended Binary Coded Decimal Interchange Code) es
básicamente utilizado por IBM pero es compatible con el ASCII
27
UNICODE
El ASCII y el EBCDIC manejan básicamente caracteres latinos, por lo que para poder
manejar otros idiomas se creo el UNICODE.
• Es una norma en desarrollo que se modifica a medida que se incorporan los
símbolos correspondientes a caracteres nuevos.
• La versión 2.0 puede representar 38.855 caracteres diferentes.
• Utiliza un conjunto de caracteres de 16 bits.
• Es en realidad un subconjunto del UCS-4 : Conjunto Universal de Caracteres
ISO 10646 de 32 bits de palabra.
28
ARITMETICA SUMA Y RESTA EN PUNTO FIJO El enfoque se orienta hacia las operaciones en complemento a dos por ser esta forma
casi universal.
SUMA Y RESTA EN LA REPRESENTACION DE COMPLEMENTO A DOS a – b = a + ( - b)
El correspondiente negativo de un número se puede obtener por medio de su
complemento, por lo que una resta se puede realizar como la suma de su complemento.
Lo que se debe hacer cuando se sumen números en representación de complemento es
modificar la interpretación de los resultados de la suma.
0000 1010
+ 0001 0111
0010 0001
(+10)10
(+23)10
(+33)10
De igual forma se pueden sumar números de signos opuestos.
arrastre a descartar
0000 0101
+ 1111 1110
(1) 0000 0011
(+5)10
(-2)101
(+3)10
Cuando se suman dos números representados en complemento dos se debe descartar el
arrastre producido por la suma en la posición mas significativa. Ídem cuando hay
arrastre en la suma de dos números negativos.
arrastre a descartar
1111 1111
+ 1111 1100
(1) 1111 1011
(-1)10
(-4)10
(-5)10
DESBORDE Cuando se suman dos números de igual signo. Se producirá desborde si el resultado es
demasiado grande con la cantidad de bits utilizados para representar los operandos.
0101 0000
+ 0011 0010
1
Recordar
(+80)10
(+50)10
2 → 0000 0010
Complemento 1 de 2 → 1111 1101
+
1
Complemento 2 de 2
1111 1110
29
1000 0010
(-126)10
Cuando se suman dos números de diferente signo no puede haber desborde.
REGLA
Si los números que se suman tienen el mismo signo y el resultado tiene signo opuesto,
se ha producido desborde por lo que el resultado es incorrecto
Si los números que se suman son de signo opuesto, no hay posibilidades de desborde.
METODO ALTERNATIVO
Para detectar desborde en la suma hay que saber que se produce si y solo si el arrastre
que se ingresa hacia el bit de signo difiere del bit de arrastre que sale de dicho bit.
DIAGRAMA DE BLOQUES DEL HARDWARE PARA LA SUMA Y RESTA
El elemento central es un sumador binario, al que se le presentan los números a sumar y
restar, y produce una suma y un indicador de desbordamiento. El sumador binario trata
los dos números como binarios sin signo.
Para sumar, los números se presentan al sumador desde dos registros (A y B). El
resultado es normalmente almacenado en uno de estos registros o en un tercero. La
indicación de desbordamiento se almacena en un indicador (o biestable) de
desbordamiento (OF: Overflow flag) de 1 bit (0 = desbordamiento, 1=
desbordamiento). Para la resta, el substraendo (registro B) se pasa a través de un
complementador que presenta su salida al sumador.
IMPLEMENTACION CIRCUITAL DE SUMADORES Y
RESTADORES
SUMADORES Y RESTADORES EN SERIE (RIPPLE CARRY
ADDER)
FIG. 3.2 – SALE DEL APENDICE A.
VER PAGINA 469
FALTA LA IMPLEMENTACION CIRCUITAL PAG. 65
SUMA Y RESTA EN REPRESENTACION DE COMPLEMENTO A UNO
No es muy utilizado en la actualidad, pero si en las primeras computadoras
OF: Bit de desborde
SW: Conmutador (selecciona Suma o Resta)
30
El bit de arrastre que se genera a partir de la posición mas significativa no se descarta
sino que se vuelve a sumar con la posición menos significativa (se denomina
ARRASTRE CIRCULAR FINAL).
10011 (-12)10
+
01101 (+13)10
(1) 00000
+
00001
00001 (+1)10
Se suma el número porque en este caso hay dos representaciones para el cero (000 y
111) y el agregado del bit de arrastre a la columna de las unidades desplaza en 1 el
resultado final para salvar esta situación.
LA DISTANCIA ENTRE +0 Y -0 ES LA DISTANCIA ENTRE DOS ENTEROS
EL HECHO DE QUE
ESXISTAN DOS
REPRESENTACIONES
PARA EL CERO ES UNA
DE LAS RAZONES PARA QUE EL SISTEMA NO SE UTILICE
31
PRODUCTO Y COCIENTE EN PUNTO FIJO MULTIPLICACION DE NUMEROS SIN SIGNO
Es similar a la realizada manualmente para los numeros decimales
PRODUCTO P
1101 (13)10
x 1011 (11)10
1101
1101
0000
1111
1 0000111
(143)10
MULTIPLICANDO M
MULTIPLICADOR Q
Cada bit del multiplicador determina el desplazamiento a la izquierda
Cuando se multiplican dos numeros signados de n bits el resultado esta formado por:
2 (n-1) + 1 = 2n – 1 bits
signo
DIAGRAMA DE FLUJO PARA LA MULTIPLICACION DE BINARIOS SIN SIGNO
32
IMPLEMENTACION CIRCUITAL Ej. Unidad multiplicadora de 4 bits
Lógica de
control para
suma y
desplazamiento
suma
Desplazamiento a
la derecha
PASOS
• A y C se limpian
• M y Q contienen el multiplicando y el multiplicador
• El bit menos significativo de Q es 1 por lo que M se suma con A
• Los registros A y Q se desplazan a la derecha
• Los registros A y Q se vinculan como un par para contener el producto de 8 bits,
el bit menos significativo de A se desplaza hacia la posición mas significativa de
Q y el bit menos significativo de Q se descarta.
• C se desplaza hacia la posición mas significativa de A y se inserta un cero en C
• El proceso continua durante tantos pasos como bits tenga el multiplicador.
4 bits – 4 pasos
1
2
3
4
33
PRIMERO SUMA Y DESPUES HACE EL SHIFT 34
DIVISION SIN SIGNO En la división binaria se debe intentar reiteradamente la resta del dividendo menos el
divisor, usando la menor cantidad de bits posibles en el dividendo.
Ej.
42:6 = 7
•
•
•
•
Se intenta dividir el dividendo por el divisor, empezando por tomar en ambos el
mismo numero de cifras (101 entre 110 por ejemplo). Si no puede dividirse, se
intenta la división tomando un digito más (1010 entre 110).
Si la división es posible, entonces el divisor solo podrá estar contenido una vez
en el dividendo, es decir que la primera cifra del cociente es 1.
En este caso el resultado de multiplicar el divisor por 1 es el propio divisor.
Restamos las cifras del dividendo del divisor y bajamos la cifra siguiente.
El sistema continúa de igual forma que en el sistema decimal.
La división se maneja en forma similar a la que se utiliza para el producto de los enteros
binarios con la dificultad de ver si el dividendo cabe o no en el divisor.
En el algoritmo de división, en lugar de desplazar el producto a la izquierda como en el
producto, se desplaza el cociente a la izquierda, y se resta en lugar de sumar.
Cuando se dividen dos números sin signo de n bits, el resultado no puede tener más de n
bits.
IMPLEMENTACION CIRCUITAL En la figura se muestra una unidad divisora para un número de 4 bits.
Logica de control
para suma, resta
y desplazamiento
Desplazamiento
a la izquierda
•
Se utilizan registros de 5 bits para A y M (en lugar de 4) porque se requiere un
bit adicional para indicar el signo de los resultados intermedios.
35
•
•
•
•
•
Si bien este método es para números sin signo, como se utilizan restas en el
proceso, podrían existir números negativos.
Para dividir dos números de 4 bits, se almacena el dividendo en el registro Q y el
divisor en el registro M, en tanto que el registro A y el bit mas significativo de
M se cargan con 0.
El bit más significativo del registro A determina en cada paso si el divisor debe
volver a sumarse al dividendo.
Se habla de una división con reposición porque en los casos en que el resto es
negativo, se debe restaurar el dividendo a su valor anterior.
Cuando el resultado no es negativo, el bit menos significativo de Q se lleva a 1
para indicar que el divisor cabe en el dividendo.
PROCESO DE DIVISION • El registro A y el bit mas significativo de M se llevan a cero.
• Q ( dividendo) y los bits menos significativos de M se cargan con el dividendo y
el divisor respectivamente.
• Los registros A y Q se desplazan en conjunto a la izquierda, y se resta el divisor
M de A.
• Como el resultado es negativo, el divisor se vuelve a sumar para reponer el
dividendo y q0 se carga con 0.
• El proceso se repite, desplazando A y Q a la izquierda y restando M de A.
Nuevamente se obtiene un resultado negativo, por lo que se vuelve a reponer el
•
dividendo y se coloca un 0 en q0.
• El proceso se repite una vez mas para realizar una iteracción final en la que
nuevamente A y Q se desplazan a la izquierda, y M se resta de A, lo que vuelve
a dar un resultado negativo.
• Se repone el dividendo y se carga un 0 en q0.
• El cociente queda contenido en el registro Q y en el A se coloca el resto.
36
DIVIDENDO Q
RESTO
Recordar que proceso de resta es: 1 – 0: 1 10 – 1: 01 1 – 1 : 0 0 – 0 : 0 PRODUCTO Y COCIENTE SIGNADOS COCIENTE
el Si se aplica el producto y cociente a números con signos, pueden surgir problemas.
37
Ej.
(-1) x (+1) = (+15) en lugar de (-1)
Esto sucede porque el bit de signo no se extendió hacia la izquierda del resultado
Esto no es problema cuando el resultado es + dado que los bits de mayor peso adoptan
el valor 0.
Como técnica general, la solución consiste en convertir ambos operandos a su forma
positiva, realizar la operación y finalmente convertir el resultado a su signo correcto
1111 (-1)10
x 0001 (+1)10
1111
0000
0000
0000
00001111 (+15)10
x
1111 1111 (-1)10
0001
(+1)10
1111 1111
0000 000
0000 00
0000 00
1111 1111
(-1)10
En la figura anterior se utiliza otra aproximación en la que cada uno de los productos
parciales se extiende a todo lo ancho de la palabra resultado, reteniéndose solo los bits
menos significativos de dicho resultado. Si ambos operandos son negativos, se
extienden ambos signos, nuevamente reteniéndose solo los 8 bits menos significativos
del resultado.
38
ARITMETICA DE PUNTO FLOTANTE Es similar a la de punto fijo, aunque hay que tener especial cuidado con las
características propias de dicho tipo de representación.
En sumas y restas hay que asegurarse que ambos operandos tengan el mismo exponente
Los inconvenientes que se pueden presentar en estas operaciones son:
Desbordamiento del exponente: un exponente positivo que excede el valor del
exponente máximo posible.
Desbordamiento a cero del exponente: exponente negativo menor que el mínimo
valor posible, con lo cual podría ser considerado como 0.
Desbordamiento a cero de la mantisa: cuando en el proceso de alineación o ajuste de
la mantisa se pierden dígitos por la parte derecha de la misma, lo cual implica algún tipo
de redondeo.
Desbordamiento de la mantisa: cuando la suma de dos mantisas del mismo signo
produce un acarreo procedente del bit mas significativo.
39
SUMA Y RESTA EN FORMATO DE PUNTO FLOTANTE Difieren de las de punto fijo en que no solo hay que considerar la magnitud de los
operandos, sino también el que se le da a los exponentes.
LOS EXPONENTES DEBEN SER IGUALES PARA PODER SUMAR O
RESTAR.
Se suman o restan las mantisas según corresponda y se completa la operación
normalizando el resultado.
ATENCION: Los procesos de ajuste de la parte fraccionaria y el redondeo del resultado
pueden llevar a una perdida de precisión.
Ej.:
(0,101 x 23) + (0,111 x 24)
Donde las mantisas se representan con tres dígitos representativos.
0,101 x 23 = 0,0101 x 24
(0,010 x 24) + ( 0,111 x 24) = 1,0001 x 24
= 0,100 x 25
Tenemos dos perdidas de precisión
0,0001 x 24 y 0,0001 x 25 = 0,0011 x 25
La ventaja del formato de punto flotante que contiene un bit de signo seguido por un
exponente de notación excedida seguido por la magnitud de la mantisa es que permite la
realización de comparaciones entre dos números de punto flotante por mayor, menor o
igual sin necesidad de desempaquetar los números.
40
PRODUCTO Y COCIENTE EN FORMATO DE PUNTO FLOTANTE Se resuelve en forma similar a la de la suma y la resta en punto flotante, excepto que
tanto el signo como el exponente y la mantisa del resultado se pueden calcular por
separado.
Si los operandos tienen el mismo signo el resultado es (+).
Distintos signos producen resultados (-).
PRODUCTO Ej. Considerese mantisa de 3 bits.
( + 0,101 x 22) x (- 0.110 x 2-3)
Como los signos difieren, tendrá resultado negativo.
1. Resta de exponentes:
2. Multiplicación de mantisas
3. Normalizando
+2+(-3)=-1
0.01111 (0.1111 x 2-1)
-0.111 x 2-2
COCIENTE (+ 0.110 X 25) / (+ 0.100 X 24) con mantisa de 3 bits
Como tienen igual signo el resultado es +
1. Se restan los exponentes
5-4=1
2. Se dividen las mantisas. Si las tratamos como enteros no signados seria
110/100=1 con RESTO 10
41
3. Como no queremos un cociente y un resto, escalamos el dividendo dos
posiciones a la izquierda
11000/100=110.
4. El resultado se escala dos posiciones a la derecha para mantener el factor de
escala original (1.1) que luego de la normalización se convierte en (+ 0.110 x
22).
ESTÁNDAR DEL IEEE PARA LA ARITMETICA BINARIA CON COMA
FLOTANTE
Se deberán tener en cuenta no solo el redondeo sino los casos específicos de
• INFINITO
• NaN (Not a Number)
• NUMEROS DESNORMALIZADOS
INFINITO
Las operaciones con infinito son tratadas como casos limites de la aritmetica, ya que
-∞ < (todo numero finito) > +∞
Cualquier número sumado o multiplicado por ∞ será ∞, y cualquier numero dividido
por el mismo, ser 0
NaN
Es una entidad simbólica codificada en formato de coma flotante. Si el mismo aparece
como operando, significa que la operación no es valida. Si no permiten representar
valores de variables no inicializadas o tratamientos aritméticos no contemplados en el
estándar.
NUMEROS DESNORMALIZADOS
Cuando el resultado del exponente de un numero es demasiado pequeño (un exponente
negativo con magnitud muy grande) el resultado se desnormaliza desplazando a la
42
derecha la parte fraccionaria e incrementando el exponente a cada desplazamiento hasta
que dicho exponente este en un rango representable.
43
ARITMETICA DE ALTO RENDIMIENTO
La velocidad con que se realizan las operaciones es el cuello de botella en el
rendimiento de una computadora
SUMA DE ALTO RENDIMIENTO El proceso de sumar en si es relativamente rápido (el circuito posee una lógica de solo
dos niveles), pero la propagación del arrastre demora un tiempo largo en recorrer el
circuito.
El tiempo de propagación es proporcional a la cantidad de bits del operando.
El aumento de la cantidad de dígitos significativos en una suma se traduce en un mayor
requerimiento de tiempo para realizar la suma.
Un método para mejorar esta situación se conoce como SUMADOR CON ARRASTRE
ANTICIPADO ( Carry lookahead aadder).
PRODUCTO DE ALTO RENDIMIENTO ALGORITMO DE BOOTH Trata a los números positivos y negativos de la misma forma.
Se basa en que cuando en el multiplicador existen secuencias de ceros o unos, no se
requieren sumas sino solo desplazamientos.
Las sumas o las restas se llevan a cabo en los limites de las secuencias donde se
detectan transiciones de 0 a 1 o de 1 a 0.
EL ALGORITMO DE BOOTH REALIZA UNA RESTA CUANDO SE
ENCUENTRA EL PRIMER 1 DEL BLOQUE (1-0) Y UNA SUMA
CUANDO LO ENCUENTRA EN EL FINAL DEL BLOQUE (0-1)
Una secuencia de unos en el multiplicador , ubicada entre las posiciones de
pesos 2u a 2v puede considerarse como 2u+1 – 2v
Ejemplo
Multiplicador : 001110 (+14), u = 3 y v = 1, por lo que 24 – 21 = 14
TIENE EN CUENTA LA POSICION DE LA RAFAGA DE UNOS, SUS
POSICIONES DE COMIENZO Y DE FINAL.
En la implementación circuital se analiza el multiplicador de derecha a izquierda. La
primera transición que se detecta es un cambio de 0 a 1, lo que requiere la resta del
valor inicial (0) menos 21. En la transición siguiente, de 1 a 0, se suma 24, lo que da por
resultado +14.
(Se debe agregar un 0 agregado a la derecha del multiplicador con el objeto de definir la
situación en el caso de que aparezca un 1 como digito menos significativo del mismo.)
Si el multiplicador se codifica de acuerdo al algoritmo de BOOTH, el proceso de
multiplicación puede llegar a requerir menos pasos.
Ejemplo:
44
El multiplicador (14)10 contiene tres unos consecutivos, lo que implica, si se usara el
procedimiento de multiplicar con sumas y restas la necesidad de tres operaciones de
suma.
El multiplicador codificado según BOOTH se obtiene analizando el multiplicador
original de derecha a izquierda, colocando un -1 en la primera posición que se encuentre
un 1, y un +1 en la posición que aparezca el siguiente 0.
El multiplicador se convierte asi en 0 + 100 – 1 0.
Este multiplicador codificado solo contiene dos posiciones no nulas, lo que significa
que habrá que realizar una unida suma y una única resta, por lo que se logra una
reducción en el tiempo para realizar el producto.
Tener en cuenta que la operación que realizo en primer termino fue:
Cuando hace (-21 x 2)10 efectua
-21 : 111111 010101 12 posiciones: 2 pos. de 6
2: 00000 000010
111111 010111
Y lo mismo al multiplicar por 16
DIVISION DE ALTO RENDIMIENTO Utiliza la misma metodología de la división de números enteros sin signo.
En el caso de una división a/b, y para que parezcan enteros, la idea es escalar a y b,
realizar el proceso de división y luego volver a escalar el cociente para que se
corresponda con el resultado correcto de la división a por b.
45
Descargar