ARQUITECTURA DE COMPUTADORAS I. Prof. Rosendo Perez Revision 1.6d

ARQUITECTURA DE COMPUTADORAS I    Prof. Rosendo Perez Revision 1.6d 1 REPRESENTACION DE LA INFORMACION    • Codificación de números de punto fijo

26 downloads 163 Views 773KB Size

Story Transcript

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

Get in touch

Social

© Copyright 2013 - 2024 MYDOKUMENT.COM - All rights reserved.