Sei sulla pagina 1di 18

Arquitectura y Organizacin de Computadoras

Unidad 2: La informacin en una computadora: Tamaos principales: bit, byte, palabra, doble palabra. Aritmtica del procesador. Representaciones numricas de punto fijo. Operaciones. Representacin y aritmtica de nmeros en punto flotante. Codificacin de la informacin numrica y alfabtica. Otros sistemas de codificacin numricos y alfanumricos. Cdigos redundantes: Concepto, tipos.

La informacin en una computadora ................................................................................................ 2 BIT ............................................................................................................................................... 2 BYTE ........................................................................................................................................... 2 Palabra .......................................................................................................................................... 2 Representacin interna de la informacin ........................................................................................ 3 Representacin numrica de Punto Fijo ....................................................................................... 3 Rango y Precisin en sistemas restringidos a n bits ................................................................. 3 Sistemas de numeracin posicionales ...................................................................................... 4 Conversin entre sistemas ........................................................................................................ 4 Representacin de nmeros en los sistemas binario, octal y hexadecimal .............................. 6 Representacin de Binarios con signo (BCS) .......................................................................... 7 Aritmtica del computador ....................................................................................................... 8 Overflow y Carry ..................................................................................................................... 9 Representacin numrica en Punto Flotante ................................................................................ 9 Normalizacin y bit implcito ................................................................................................ 10 Rango y precisin ................................................................................................................... 11 Estndar del IEEE (norma 754) ............................................................................................. 12 Suma y resta en formato de punto flotante............................................................................. 12 Codificacin de la informacin .................................................................................................. 13 Codificacin de la informacin no numrica ......................................................................... 14 Cdigos redundantes .................................................................................................................. 17 1. Cdigos autodetectores ..................................................................................................... 17 2. Cdigos correctores ........................................................................................................... 18

La informacin en una computadora


Las personas estamos acostumbradas a contar objetos y a realizar operaciones utilizando el sistema decimal. Este es uno de los muchos mtodos de representacin de la informacin que existe. Sin embargo, las computadoras no lo pueden manejar porque estn formadas por dispositivos digitales, es decir, todos sus circuitos internos trabajan en forma binaria (encendido-apagado, si-no, 0-1). Esto implica que tengan que emplear otro sistema para gestionar la informacin: el sistema binario (sistema numrico con base 2, por lo que slo utiliza dos smbolos: el 0 y el 1). Estos unos y ceros no son ms que impulsos elctricos con un determinado voltaje (por ejemplo: 3,3 voltios para el 1 y 0 voltios para el 0).

BIT
Teniendo en cuenta que las computadoras manejan un lenguaje binario, analizaremos los DGITOS BINARIOS como la unidad ms elemental de informacin para la comunicacin de datos. Se denomina BIT (contraccin de BINARY DIGIT) al dgito binario que toma el valor 0 1. Representa la informacin correspondiente a la ocurrencia de un suceso de entre dos posibilidades distintas: prendido o apagado, abierto o cerrado. Un aspecto fundamental en la codificacin binaria es determinar la cantidad de BITS necesarios para representar la informacin, de manera que podamos identificar una entre varias posibles. Como un bit puede ser 1 o 0, podremos utilizarlo para seleccionar una informacin entre dos. Con dos bits, una entre cuatro; tres bits una entre ocho; etc. Las posibilidades aumentan como potencias de dos: Un bit --------> 21 = 2 posibilidades Dos bits --------> 22 = 4 posibilidades Tres bits --------> 23 = 8 posibilidades Si quisiramos conocer cuantos bits necesitamos para una de ocho situaciones utilizamos logaritmos en base 2 log2 8 = 3. En general el nmero de bits (B) que necesitaremos para poder codificar una determinada cantidad de informacin (N) estar determinado por: B = Log2 N Como ejemplo, para poder representar en forma binaria los 26 caracteres de nuestro alfabeto necesitaramos: B = Log2 26 = 4,7 bits ===> B = 5 bits

BYTE
A pesar de que el ordenador maneja internamente la informacin en binario, no acepta entradas ni muestra salidas de esa forma. Para que la informacin de E/S sea comprensible y fcil de manejar, se utiliza un conjunto de smbolos, denominados caracteres. Se establece una correspondencia entre la representacin interna binaria y el caracter externo, al que se le asigna una combinacin nica de bits que lo diferencia del resto. Casi todos los ordenadores utilizan internamente una agrupacin de 8 bits, denominada BYTE, para representar cada carcter. Habitualmente byte se utiliza como sinnimo de caracter.

Palabra
Normalmente hay acuerdo acerca del significado de los trminos bit y byte, pero no as sobre el concepto de palabra, el que depende de la arquitectura particular de cada procesador. La palabra o Word es un conjunto de uno o ms bytes que la CPU trata como unidad. Es la unidad de informacin procesada por la UAL. Los tamaos de palabra tpicos son de 16, 32, 64 y 128 bits, siendo el de 32 bits el ms comn. Intel considera el tamao de la palabra como de 16 bits y la doble palabra como de 32 bits. Recordemos brevemente cmo se realiza el procesamiento de la informacin: las instrucciones y los datos pasan a travs de buses a la memoria (MP). Dichas instrucciones son ejecutadas, una por vez, para lo cual primero cada una, por un bus, llega al registro de instrucciones (RI) de la UCP, donde permanece mientras se ejecuta, para que la UC interprete qu operacin debe ordenar. Luego, el dato a operar por dicha instruccin llega desde la memoria a un registro acumulador (AX) del procesador, antes de ser operado en
Arquitectura y Organizacin de Computadoras - 2012
2

la ALU, a fin de obtener un resultado. Este puede sustituir en el registro AX al dato ya operado, y luego pasar a la memoria si una instruccin as lo ordena. El procesamiento de los datos que estn en la MP ser ms rpido si en cada acceso a ella, el nmero de bits que la CPU puede tomar o enviar en paralelo es lo mayor posible. Es como llevar a la boca alimentos con una cuchara: cuando ms grande sea sta, ms rpido se ingerir la comida (a igualdad de cucharadas por minuto). Pero del mismo modo que existe un lmite fsico respecto de la cantidad mxima de alimento que se puede ingerir, en cada modelo de UCP se tiene una cantidad mxima de bits que sta puede tomar por vez de la MP para procesar, que en general es mltiplo de 8. La denominada palabra de un procesador es un indicador del nmero mximo de bits que puede tener un dato a ser operado por la UAL del mismo. Expresa tambin el nmero de bits de dato que maneja simultneamente la UCP. Si la palabra de un procesador es 32 bits, implica que la UAL puede sumar o restar dos nmeros de 32 bits, y que el resultado que genere tendr tambin 32 bits. El tamao o longitud de palabra determina adems el ancho de los buses internos de la CPU por donde se transmiten las palabras, y el de los registros donde una palabra puede almacenarse. Es decir, son compatibles todos los elementos internos de la CPU.

Representacin interna de la informacin


Sabemos que la informacin debe estar representada por patrones de 1 y 0. Sin embargo, existen muchas maneras de hacerlo, es decir, muchas maneras de codificar los datos. Algunos de los ejemplos ms utilizados son: la codificacin de nmeros de punto fijo (con o sin signo), la de los nmeros reales (conocida como Coma Flotante), y la de los caracteres requeridos para la impresin de texto.

Representacin numrica de Punto Fijo


En esta representacin la coma est ubicada siempre en el mismo lugar. Al representar con este formato, no se almacena la coma. Slo se supone que est en un lugar determinado. Respecto a un mtodo de representacin se deben hacer las siguientes consideraciones: capacidad de representacin, rango y precisin.

Rango y Precisin en sistemas restringidos a n bits


El rango y la precisin son conceptos importantes en la arquitectura de computadoras, debido a que ambos son elementos finitos en la implementacin de la arquitectura, mientras que son infinitos en el mundo real, por lo que el usuario debe tener en claro las limitaciones que surgen al tratar de representar informacin externa con formato interno. El rango est dado por el nmero mnimo representable y el nmero mximo representable. En un sistema binario sin signo (BSS) el rango es [0 ... (2n 1)], mientras que en un sistema binario con signo (BCS) el rango es [(-2n-1 +1) ... (2n-1 1)] La precisin es la mnima diferencia entre un nmero representable y el siguiente. La capacidad de representacin es la cantidad de nmeros que se pueden representar. Est dada por bn., donde b es la base del sistema en cuestin. Ej. 1: si utilizamos 3 dgitos, con la coma entre el primero y el segundo, en el sistema decimal tendramos un rango de 0,00 hasta 9,99 [0,00 ... 9,99]. La precisin de la representacin es de 0,01, y el error es la mitad de la diferencia entre dos nmeros consecutivos, como 4,01 y 4,02 es decir 0,01/2= 0,005. Implica que cualquier nmero de este rango puede representarse en este formato con una aproximacin de hasta 0,005 de su valor real o preciso. Ej. 2: en un sistema de representacin binario sin signo, con cinco dgitos, el nmero mximo representable es 31 (bn-1). El rango es [0, 31], es decir [00000, 11111] y la capacidad de representacin 25 nmeros, es decir, 32 nmeros.
Arquitectura y Organizacin de Computadoras - 2012

Sistemas de numeracin posicionales


La base o raz de un sistema de numeracin define el rango de valores posibles que pueden adoptar sus dgitos. La expresin general que permite determinar el valor de un nmero en un sistema de numeracin de base k y en formato de punto fijo es la siguiente:

El valor del dgito que ocupa la posicin i est representado por bi. Existen en este caso n dgitos a la izquierda de la coma fraccionaria y m dgitos a su derecha. Esta forma de representacin de un nmero, en la que cada posicin tiene asignado un determinado valor, se denomina sistema de numeracin posicional. Supongamos la expresin 541,25(10, con n=3, m=2, k=10 541,25(10 = 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)10 Si en forma similar se considera el nmero binario 1010,01(2, en el que n=4, m=2 y k=2 1010,01(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,25 = 10,25(10 En estos sistemas de numeracin posicionales se define el bit con el mayor peso asociado como bit ms significativo (MSB, most significant bit), y el bit de menor peso como bit menos significativo (LSB, least significant bit).

Conversin entre sistemas


De binario a decimal
El procedimiento visto anteriormente permite convertir un nmero expresado en un sistema de numeracin de base cualquiera al sistema de numeracin decimal, mediante la utilizacin de una representacin polinmica. Se trata de multiplicar cada dgito por el peso asignado a su posicin y luego sumar los valores para obtener el nmero convertido.

De decimal a binario
La forma ms sencilla de convertir nmeros que contengan tanto parte entera como fraccionaria, consiste en operar cada una de sus partes por separado. Ej.: 23,375 a binario 23,375 = 23 + 0,375 Parte entera Mtodo de los restos La forma polinmica general para la representacin de un nmero entero binario es: bi x 2i + bi-1 x 2i-1 + ... + b1 x 21 + b0 x 20 Si se divide el nmero entero por 2, se obtendr: bi x 2i-1 + bi-1 x 2i-2 + ... + b1 x 20 con un resto de b0. Como resultado de dividir por 2 el entero original se obtiene el valor del primer coeficiente binario b0. Si se repite el proceso, se obtiene el segundo coeficiente b1. Este procedimiento forma la base del mtodo de los restos. Contina hasta obtener 0 como cociente. Los restos obtenidos se unen en el orden indicado por la figura, teniendo en cuenta el MSB y LSB.

Arquitectura y Organizacin de Computadoras - 2012

En general, todo nmero entero expresado en el sistema decimal puede convertirse a cualquier otro sistema dividindolo reiteradamente por la base del sistema de numeracin al que se lo quiere convertir.

Parte fraccionaria - Mtodo de las multiplicaciones La conversin puede resolverse multiplicando sucesivamente la fraccin por 2. La forma polinmica general para la representacin de una fraccin binaria es: b-1 x 2-1 + b-2 x 2-2 + b-3 x 2-3 + ... Si se multiplica dicha expresin por 2, se obtiene b-1 + b-2 x 2-1 + b-3 x 2-2 + ... Se determina as el coeficiente b-1. Reiterando el proceso sobre la fraccin remanente, se obtendrn los sucesivos bi. Este proceso contina hasta obtener una fraccin nula, o hasta que se haya alcanzado el lmite de precisin requerida.

Por ltimo, se combinan las partes entera y fraccionaria para obtener el resultado final: 23,75 = 10111,011(2 Este proceso, denominado mtodo de las multiplicaciones, puede ser utilizado para convertir nmeros fraccionarios entre distintos sistemas de numeracin, multiplicando por la base correspondiente. El multiplicador coincide con la base del sistema numrico de destino.

Arquitectura y Organizacin de Computadoras - 2012

Si bien el mtodo funciona con todos los sistemas de numeracin, el proceso puede llegar a producir prdidas de precisin. No todas las fracciones representadas en el sistema de numeracin decimal pueden tener como equivalente un nmero racional exacto en el sistema binario. Por ej. el proceso de conversin del nmero decimal 0,2 (ver figura), llega a un punto en que se repite en forma peridica

Representacin de nmeros en los sistemas binario, octal y hexadecimal


Si bien los nmeros binarios reflejan la realidad de la representacin interna de los nmeros en la computadora, tienen como desventaja el hecho de requerir mayor cantidad de dgitos para representar un nmero que cualquier otro sistema de numeracin posicional. Adems, es ms probable que se cometan errores al escribir binarios debido a la gran cantidad de ceros y unos que se deben utilizar. Por estas razones es una prctica comn la conversin a los sistemas octal (base 8) o hexadecimal (base 16), sistemas estrechamente vinculados al binario. Esta relacin est dada por el hecho de ser estas bases potencias de 2 (la menor de todas ellas). Por otra parte, la conversin entre estos sistemas es trivial, y mucho ms sencilla que convertir desde o hacia el sistema decimal. Para el sistema hexadecimal se requieren seis dgitos ms que en el decimal. Se utilizan letras, de A a F. Binario (base 2) 000 001 010 011 100 101 110 111 1000 1001 1010 1011 1100 1101 1110 1111 Octal (base 8) 0 1 2 3 4 5 6 7 10 11 12 13 14 15 16 17 Decimal (base 10) 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Hexadecimal (base 16) 0 1 2 3 4 5 6 7 8 9 A B C D E F

Arquitectura y Organizacin de Computadoras - 2012

Al comparar las columnas de la tabla, se observa la necesidad de 3 bits para representar en binario cada uno de los dgitos del sistema octal, y cuatro para el sistema hexadecimal. En general, se requieren k bits para representar en binario un dgito del sistema de numeracin de base 2k, siendo k un nmero entero. Para convertir un nmero del binario al octal, se divide el nmero original en grupos de 3 bits cada uno, empezando a partir de la coma decimal, completando el grupo ms significativo con ceros, si fuera necesario. Luego, cada tro de bits se convierte en forma individual al sistema octal. Para conversiones desde el binario al hexadecimal, se utilizan grupos de 4 bits. 11010,012 = (0112)(0102),(0102) = 32,28 1101101,0112 = (01102)(11012),(01102) = 6D,616

Representacin de Binarios con signo (BCS)


Existen cuatro convenciones distintas de uso habitual en la representacin con signo 1. Mdulo y signo (MS) El bit que est situado ms a la izquierda representa el signo, y su valor ser de 0 para el + y de 1 para el -. El resto de los bits (n-1) representan el mdulo o valor absoluto del nmero. El rango de representacin es para n dgitos de: [-2n-1+ 1 ... 2n-1 -1] Para el caso de 8 bits el rango es [-127 ... 127] Por ej.: disponemos de 8 bits y queremos representar los nmeros 10 y -10. Nmero 10 0 0001010 + mdulo Nmero -10 1 0001010 - mdulo

En esta convencin existen dos modos de representar el cero, una negativa y una positiva: 0000 0000 y 1000 0000 2. Complemento a 1 (C-1) Este sistema de representacin utiliza el bit de ms a la izquierda para el signo, correspondiendo el 0 para el + y el 1 para el -. Para los nmeros positivos el resto de los bits (n-1) representan el mdulo del nmero. El negativo de un nmero positivo se obtiene complementando todos sus dgitos (cambiando ceros por unos y viceversa) incluido el bit de signo. El rango de representacin es de: [-2n-1+ 1 ... 2n-1 -1] Para el caso de 8 bits el rango es [-127 ... 127] Este sistema, a semejanza del MS, posee la desventaja de tener dos representaciones del 0, en este caso, 0000 0000 y 1111 1111. Nmero 10 0 0001010 + mdulo Nmero -10 1 1110101 - mdulo

3. Complemento a 2 (C-2) Este sistema de representacin utiliza el bit de ms a la izquierda para el signo, correspondiendo el 0 para el + y el 1 para el -. Para los nmeros positivos el resto de los bits (n-1) representan el mdulo del nmero. El negativo de un nmero positivo se obtiene complementan el nmero positivo en todos sus bits (cambiando ceros por unos y viceversa) incluido el bit de signo, para luego sumarle 1, despreciando el ultimo acarreo si existe. Ejemplo: Nmero 10 0 0001010 Nmero -10.........1 1110101 +1 1 11110110 El rango de representacin es: [-2n-1 ... 2n-1 -1] Para el caso de 8 bits el rango es [-128 ... 127] Este mtodo tiene la ventaja de poseer una sola representacin para el 0. Es la convencin ms utilizada en las computadoras.
Arquitectura y Organizacin de Computadoras - 2012
7

4. Representacin excedida, o Exceso a 2 elevado a n-1 Este mtodo no utiliza ningn bit para el signo, con lo cual todos los bits representan un modulo o valor que corresponde al nmero representado ms el exceso, que para n bits viene dado por 2 elevado a n-1. Por ej., para 8 bits el exceso es de 27 = 128. El nmero 10 vendr representado por 10 + 128 = 138. Para el caso de -10 tendremos -10 + 128 = 118. Nmero 10 10001010 Nmero -10.....01110110 En este caso, el 0 tiene una nica representacin, que para 8 bits corresponde a: Nmero 0 ( 0 + 128) 10000000 El rango de representacin es: [-2n-1 ... 2n-1 -1] Para el caso de 8 bits el rango es [-128 ... 127] En este mtodo, el valor del exceso tiene el formato del nmero negativo ms grande, lo que produce como efecto que los nmeros aparezcan ordenados numricamente si se los mira en una representacin binaria no signada. As, el nmero negativo ms grande es -12810 = 0000 00002 y el ms grande positivo es 12710 = 1111 11112 . Esta representacin simplifica las comparaciones entre nmeros, dado que las representaciones binarias de los nmeros negativos tienen valores numricamente menores que las representaciones de los nmeros positivos. Esto se hace importante cuando se representan los exponentes de los nmeros en coma flotante, donde se requiere comparar los exponentes de dos cantidades para igualarlos, en caso de ser necesario, para sumar o restar.

Aritmtica del computador


La suma binaria se realiza siguiendo las mismas reglas que en el sistema decimal. Cuando la suma de los dgitos excede los smbolos numricos disponibles de la notacin, se acarrea un 1 a la posicin de dgito inmediatamente superior. Por lo tanto, en el sistema decimal, 3+5=8, pero 9+1=0 con acarreo de un 1 (es decir 10). En el sistema binario hay solamente dos smbolos, 0 y 1. Por lo tanto, al sumar 1+1 en la notacin binaria se excede el lmite de la cuenta (ya que no hay otro smbolo disponible) y, en consecuencia, el resultado es 0 con acarreo de un 1 a la posicin de dgito inmediatamente superior. En la computadora se implementa la operacin de suma mediante circuitos lgicos digitales combinatorios. Dos nmeros binarios A y B se suman de derecha a izquierda, generando un bit de suma y uno de arrastre en cada posicin binaria.

Suma y resta en complemento a dos


Se analizar la resta implcitamente en la suma, como resultado del principio aritmtico segn el cual: a b = a + (-b), por lo tanto, se puede realizar la resta por medio del nmero complementado de este mtodo. Como consecuencia, se ahorra en la estructura circuital de la unidad de clculo, dado que se evita la necesidad de un elemento restador por hardware. Lo que s debe hacerse al sumar en C-2 es modificar la interpretacin de los resultados de la suma. A continuacin se plantean dos casos especiales de suma de dos nmeros de 3 bits 0 1 1 (+3) + 1 1 1 (-1) (1)0 1 0 (+2) Arrastre (carry) 0 1 1 (+3) + 0 0 1 (+1) 100 Desborde (overflow)

En el primer ejemplo se produce un acarreo desde la posicin ms significativa (bit de la izquierda). En este mtodo se descarta dicho acarreo, y el resultado de la operacin es correcto. En el segundo caso se produce un desbordamiento, y el resultado es errneo. Si bien el resultado parece un 4 si se lo analiza como un nmero sin signo, al trabajar en forma signada, el primer dgito indica un nmero negativo, lo que resulta claramente errneo.
Arquitectura y Organizacin de Computadoras - 2012

Suma y resta en complemento a uno


Las consideraciones generales son similares a las de C-2. La diferencia est en el tratamiento del bit de arrastre que se genera a partir de la posicin ms significativa. Este no se descarta, sino que se vuelve a sumar con la posicin menos significativa del resultado obtenido. 1 0 0 1 1 (-12) + 0 1 1 0 1 (+13) 100000 + 1 00001 Correccin del resultado El hecho de haber dos representaciones para el cero, y la necesidad potencial de realizar otra suma para agregar el bit de arrastre son dos razones importantes para que los diseadores prefieran la aritmtica de C2 antes que la de C-1.

Overflow y Carry
Junto con el resultado de cada operacin, la UAL genera varios indicadores (flags) acerca del mismo, que se conocen por sus iniciales inglesas S,Z,V,C. Indicador de Signo S=1 indica que el resultado de la operacin es negativo Indicador Z de resultado cero Z=1 si el resultado es cero (zero) Indicador C de acarreo C=1 si existe un acarreo (carry) Indicador V de overflow o desborde V=1 si el resultado de una suma entre nmeros con bit de signo excede el mayor valor positivo o negativo que se puede representar. Tanto en la representacin en Ca1 como en Ca2 una operacin puede dar como resultado un nmero que excede la capacidad de la palabra de memoria, producindose as el overflow. Al sumar dos nmeros el overflow se puede dar slo si los dos tienen el mismo signo; la suma de dos nmeros de distinto signo nunca dar como resultado un nmero con mdulo mayor al de mayor mdulo de los dados, a lo sumo ser igual (al sumarle 0 a otro nmero), pero en general ser menor, por lo tanto no puede exceder la capacidad de la palabra de memoria. El overflow se reconoce cuando los bits de signo de los dos nmeros que se suman son iguales entre s pero distintos del bit de signo del resultado, o sea cuando los nmeros son positivos y da resultado negativo o viceversa. En este caso el contenido de la palabra de memoria es incorrecta.

Representacin numrica en Punto Flotante


La representacin de nmeros en formato de punto fijo ubica la coma decimal en una posicin fija, por lo que tiene una cantidad fija y determinada de dgitos tanto a la izquierda como a la derecha de la coma decimal. Por lo tanto, esta notacin puede requerir una gran cantidad de dgitos para representar algunos nmeros. Por ej, si queremos representar nmeros del orden del billn, necesitaremos al menos 40 bits, puesto que 1012 es aproximadamente igual a 240. Por otra parte, si adems se debiera representar una fraccin equivalente al billonsimo, se necesitarn otros 40 bits, lo que dara por resultado una palabra de 80 bits. En la prctica, suelen presentarse en los clculos nmeros con 80 o ms bits (ej: distncia al sol, trayectoria de un misil, etc). Para manejar y almacenar nmeros con 80 o ms bits se requiere una buena cantidad de hardware, y por otra parte, las operaciones de clculo pueden llegar a resolverse ms lentamente cuando se trabaja con grandes cantidades de bits. Para nmeros decimales, esta limitacin se supera utilizando notacin cientfica. As, 976.000.000.000.000 puede representarse como 9,76 * 1014, y 0,0000000000000976 puede expresarse como 9,76 * 10-14. Es decir, se desplaza convenientemente la coma decimal, incrementando o decrementando adecuadamente el
Arquitectura y Organizacin de Computadoras - 2012
9

exponente, para mantener la relacin. Esto permite representar un rango de nmeros muy grandes y muy pequeos con slo unos cuantos dgitos. Esa misma tcnica puede aplicarse a nmeros binarios, representndolos de la siguiente manera: +/- S * B +/-E Este nmero puede almacenarse en una palabra binaria con tres campos Signo: + o Parte significativa o mantisa (S significant) Exponente (E) La base B est implcita y no es necesario almacenarla.

Normalizacin y bit implcito


Un nmero representado con este formato, puede tener distintas formas. As, son equivalentes las siguientes expresiones: 0,110 * 25 110 * 22 0,0110 * 26 Para simplificar los clculos con nmeros en coma flotante, se procede a normalizar. Un nmero normalizado es el que tiene la forma +/- 0,1bbbb * 2+/-E donde cada b es un dgito binario (1 o 0). Se desplaza la coma decimal hasta ubicarla a la izquierda del dgito no nulo ms significativo. Esto implica que el bit ms a la izquierda de la mantisa fuera siempre 1, por lo que no sera necesario almacenarlo. La mayora de los mtodos de representacin en coma flotante no almacenan dicho bit inicial. Lo que se hace es recortarlo antes de empaquetar el nmero para su almacenamiento, recuperndolo al desempaquetar y llevar el nmero a su representacin de mantisa y exponente. A raz de este artificio, se obtiene un bit adicional a la derecha de la mantisa, lo que mejora la precisin de la representacin. Este bit suele denominarse bit implcito. Por ejemplo, si en un formato determinado la mantisa luego de la normalizacin se representa como 0,11010, el patrn a ser almacenado es 1010 y el bit ms significativo se oculta. Como inconveniente, este esquema no permite representar el cero, por lo que su representacin debe hacerse a travs de un procedimiento de excepcin. Veremos que se incluye una combinacin especial para representar el cero. Ejemplo 1: Representar en coma flotante el nmero decimal 34, en C a 2, con 1 bit para el signo, 5 bits para el exponente y 8 bits para la mantisa, con bit implcito. - Convertir a binario: 00100010 - Notacin exponencial (normalizar): 00100010 * 20 0,100010 * 26 - Mantisa a almacenar (con bit implcito) 00010 - Exponente: 110 - Empaquetar los elementos, segn especificaciones (rellenar con 0 la mantisa) 0 00110 00010000 Ejemplo 2: Determinar el nmero decimal que representa el patrn 1010110010000, codificado en coma flotante, con bit oculto, segn las siguientes especificaciones: 1 bit para el signo, 4 bits para el exponente y 8 bits para la mantisa, estos ltimos expresados en MS - 1 0101 10010000 - Signo: - Exponente: 5 - Mantisa: 0,1 10010000 - Componiendo: - 0,110010000 * 25 = -11001 = -25

Arquitectura y Organizacin de Computadoras - 2012

10

Rango y precisin
La representacin de nmeros en formato de punto flotante permite representar un amplio rango de nmeros con poca cantidad de dgitos binarios. Para ello se separan los dgitos utilizados para determinar la precisin (mantisa), de aquellos necesarios para representar el rango (exponente). Supongamos el nmero decimal en formato de punto flotante +6,023 * 1023 Segn la convencin vista (ntese que la coma decimal no se almacena) + Signo 2 3 Exponente Dos dgitos 6 0 2 3 Mantisa Cuatro dgitos

El rango de la representacin queda determinado bsicamente por la cantidad de dgitos del exponente. En este caso se expresa a travs de una potencia de la base 10 (1023). La precisin queda determinado por la cantidad de dgitos de la mantisa (cuatro en este ejemplo). Si se requiere un rango mayor, y si a cambio se est dispuesto a sacrificar precisin, se pueden usar 3 dgitos para la parte fraccionaria y dejar tres dgitos para el exponente, sin necesidad de aumentar la cantidad de dgitos totales de la representacin. + 0 2 3 6 0 2

La posibilidad de plantear soluciones de compromiso entre rango y precisin es una de las ventajas principales de la representacin en punto flotante. Un inconveniente que presenta este mtodo es que existen valores no representables. El rango de representacin tiene la estructura:
mNN MNN 0 mNP MNP

mNN es el mnimo nmero negativo = - mxima mantisa * base mximo exponente positivo MNN es el mximo nmero negativo = - mnima mantisa * base mximo exponente negativo mNP es el mnimo nmero positivo = mnima mantisa * base mximo exponente negativo MNP es el mximo nmero positivo = mxima mantisa * base mximo exponente positivo

Ejemplo: considrese una representacin en coma flotante en la que se tiene 1 bit de signo, un exponente de 2 bits en notacin exceso 2 y una mantisa normalizada binaria, con 3 bits, con el primer 1 no implcito. Exponente mnimo (representacin en exceso en 2 bits): - 2n-1 = - 2 1 = - 2 Exponente mximo (representacin en exceso en 2 bits): 2n-1 - 1= 2 1 - 1= 1 Mnima mantisa: 0,100 Mxima mantisa: 0,111

mNN = - mxima mantisa * base mximo exponente positivo = - 0,111 * 21 MNN = - mnima mantisa * base mximo exponente negativo = - 0,100 * 2-2 mNP = mnima mantisa * base mximo exponente
negativo

= 0,100 * 2-2

MNP = mxima mantisa * base mximo exponente positivo = 0,111 * 21

Arquitectura y Organizacin de Computadoras - 2012

11

Estndar del IEEE1 (norma 754)


Existen muchas maneras de representar nmeros en formato de punto flotante. Cada uno tiene caractersticas propias en trminos de rango, precisin y cantidad de elementos que pueden representarse. En un esfuerzo por mejorar la portabilidad de los programas y asegurar la uniformidad en la exactitud de las operaciones en este formato, el IEEE desarroll su norma IEEE 754. Este estndar ha sido ampliamente adoptado y se utiliza prcticamente en todos los procesadores y coprocesadores matemticos actuales.

Formatos
a) Simple precisin (32 bits) Signo 31 Exponente 30 - 23 Mantisa 22 - 0

Exponente: 8 bits. Se utiliza una representacin conocida como sesgada. El sesgo toma el valor (2k-1 1), donde k es el nmero de bits disponibles para la representacin del exponente. En este caso 28-1 1 = 127. Este sesgo se suma al exponente original, y el resultado es el que se almacena: E = EO + S Mantisa: 23 bits. Bit implcito 24 bits efectivos. Est normalizada. La normalizacin toma la forma 1,bb..b, donde el patrn bb..b representa los 23 bits de la mantisa que se almacenan. Ntese que la coma en esta normalizacin est a la derecha del primer dgito significativo. b) Doble precisin (64 bits) Signo 63 Exponente 62 52 Mantisa 51 - 0

Exponente: 11 bits. Sesgo 211-1 1 = 1023 Mantisa: 52 bits. Bit implcito 53 bits efectivos. Igual consideracin para la normalizacin. Algunas combinaciones se emplean para representar valores especiales. Se presentan los siguientes casos: Un exponente cero junto a una mantisa cero representa el cero positivo o negativo, dependiendo del bit de signo. (00000000 00000000000000000000000 0) Un exponente todo unos junto con una mantisa cero representa, dependiendo del bit de signo, el infinito positivo o el negativo (11111111 00000000000000000000000 ) Un exponente todos unos junto a una mantisa distinta de cero representa un NaN (not a number), y se emplea para sealar una excepcin (11111111 xxxxxxxxxxxxxxxxxxxxxxx NaN)

Suma y resta en formato de punto flotante


Las operaciones aritmticas en este mtodo difieren del visto en punto fijo en el hecho de que, adems de considerarse las magnitudes de los operandos, tiene que considerarse tambin el tratamiento que debe darse a sus exponentes. Como en el caso habitual de las operaciones decimales en notacin cientfica, los exponentes de los operandos deben ser iguales para poder sumar o restar. Se suman o restan las mantisas segn corresponda, y se completa la operacin normalizando el resultado. Los procesos de ajuste de la mantisa y de redondeo del resultado pueden llevar a una prdida de precisin. Hay cuatro etapas bsicas en el algoritmo para sumar o restar Comprobar valores cero Ajuste de exponente y mantisa Sumar o restar las mantisas Normalizar el resultado
1

Instituto de Ingeniera Elctrica y Electrnica de Estados Unidos


12

Arquitectura y Organizacin de Computadoras - 2012

Para la operacin de suma o resta, los dos operandos deben transferirse a registros que sern utilizados por la ALU. Si el formato incluye un bit de mantisa implcito, dicho bit debe hacerse explcito para la operacin. Dado que la suma y la resta son idnticas, excepto por el cambio de signo, el proceso comienza cambiando el signo del substraendo cuando se trata de una resta. A continuacin, si alguno de los operandos es cero, se da el otro como resultado. Luego se procede al ajuste de los exponentes, en sucesivas operaciones. Si en este proceso se obtiene una mantisa cero, se da el otro nmero como resultado. Esto significa que cuando dos nmeros tienen exponentes muy diferentes, se pierde el menor de los nmeros. Luego se suman las mantisas, teniendo en cuenta sus signos. Ya que los signos pueden diferir, el resultado puede ser cero. Existe tambin la posibilidad de desbordamiento de la mantisa en un dgito. Si es as, se desplaza a la derecha la mantisa del resultado (se pierde el dgito menos significativo), y se incrementa el exponente. Como resultado podra producirse un desbordamiento en el exponente. Esto se debe indicar, y la operacin se detendra. Por ltimo, se normaliza el resultado. Ejemplo: sumar (0,101 * 23) + (0,111 * 24) - Se iguala el menor de los exponentes al mayor, modificando en forma acorde la mantisa 0,101 * 23 = 0,010 * 24 En este proceso se pierde precisin en la cifra menos significativa del valor original - Se suma: (0,010 + 0,111 ) * 24 = 1,001 * 24 - Se normaliza: 0,1001 * 25 - Se vuelve a redondear a 3 dgitos: 0,100 * 25 perdindose precisin nuevamente

Codificacin de la informacin
Para permitir la comunicacin de datos existe una primera cuestin a tener en cuenta: el Hardware. Pero esta es solo una parte. Todas las personas del mundo tienen el mismo hardware para la comunicacin hablada: labios, lengua, dientes y el resto del complejo aparato bucal para transmitir y los odos para recibir. La comunicacin oral, sin embargo, es posible solamente cuando dos personas conocen el mismo lenguaje, es decir la misma manera de codificar la informacin.As como el habla sera imposible sin lenguajes comunes, la comunicacin entre computadoras sera imposible sin coordinacin de cdigos de caracteres.Todas las computadoras digitales actuales usan un lenguaje binario para representar la informacin internamente. Debido a que algunos de los dispositivos con los que se deben comunicar las computadoras estn diseados para uso humano (especialmente impresoras y terminales de video), es importante que esos perifricos utilicen un cdigo de comunicacin compatible con la comunicacin humana. Existen varios mtodos para alcanzar dicha compatibilidad y cada uno utiliza un modo diferente de codificar los nmeros y las letras que conforman la base de la comunicacin escrita entre las personas. Actualmente es frecuente encontrar en un sistema de cmputo dispositivos provistos por distintos fabricantes. La posibilidad de conectarlos existe nicamente si esos dispositivos utilizan un cdigo comn para la transmisin y recepcin de la informacin. Son claras las ventajas de conseguir que todas las computadoras utilicen el mismo cdigo de comunicacin. An cuando la calidad de los cdigos vara enormemente, casi cualquier estndar universal sera mejor que ninguno. Si bien hay cdigos que prcticamente son aceptados por todos los fabricantes, an no existe un estndar que optimice el aprovechamiento de los recursos del hardware. La codificacin consiste en establecer una ley de correspondencia, llamada CDIGO, entre la informacin por representar y las posibles configuraciones binarias, de tal manera que a cada informacin corresponda una y generalmente solo una, configuracin binaria. Llamamos CODIFICACIN al proceso de convertir un smbolo complejo en un grupo de smbolos ms simples. Ejemplo: convertir una letra del alfabeto en un cdigo de cinco bits. DECODIFICACIN es el proceso inverso al de codificacin, se convierte a un cdigo donde la cantidad de smbolos es menor, pero cada una contiene ms informacin. TRANSCODIFICACIN: Aplicacin de un cambio de cdigo a una informacin ya codificada. Ejemplo: de EBCDIC a ASCII.
Arquitectura y Organizacin de Computadoras - 2012
13

Codificacin de la informacin no numrica


A diferencia de los nmeros reales, que tiene un rango infinito, existe slo una cantidad finita de caracteres representables. El concepto de caracter aparece como la cantidad de BITS necesarios para representar los diferentes smbolos del alfabeto (letras, cifras, signos de puntuacin, etc.) De acuerdo al cdigo utilizado cada caracter puede codificarse con un nmero varible de BITS, pero dentro de un sistema todos los caracteres se representan con el mismo nmero de bits. Generalmente, los caracteres se agrupan de la siguiente manera: Caracteres alfabticos: letras maysculas y minsculas: A-Z, a-z Caracteres numricos: cifras decimales: 0-9 Caracteres especiales: son caracteres no incluidos en los grupos anteriores y que se utilizan con mucha frecuencia: / + = ! ? ) ( , . >< # Caracteres grficos: Suelen representar iconos o figuras elementales: Caracteres de control: representan ciertas rdenes de control, como control de carro, final de archivo, tabulacin, etc.

Condiciones que se imponen para la codificacin de caracteres


A) El cdigo debe englobar al de los nmeros, y permitir distinguir las cifras rpidamente de los otros caracteres. B) La representacin debe permitir aadir nuevos caracteres especficos para una aplicacin determinada. C) En el caso de las transmisiones, la representacin debe incluir un sistema de redundancia que permita la deteccin de errores. A continuacin se describen tres representaciones habituales en la codificacin de caracteres: los cdigos ASCII, EBCDIC y Unicode. 1) Cdigo ASCII (American Standard Code for Information Interchange) El cdigo ASCII se defini inicialmente con 6 bits, esto permita representar 26 = 64 caracteres. Posteriormente el ANSI (Instituto Nacional Norteamericano de Normas) defini un nuevo ASCII (que se mantiene como norma) de 7 bits. Esta nueva definicin permite codificar 128 caracteres; hacindolo ms apto, fundamentalmente para la transmisin, donde parte de los caracteres codifican funciones de control. Existen cdigos ASCII ampliados (no normalizados) que usan los 8 bits para codificar una serie de caracteres grficos especiales, incluidas las vocales con acento. La mayor parte de las mquinas actuales utilizan el cdigo normalizado, pero generalmente agregan un octavo bit, que les permite extender el cdigo para representaciones no previstas o para utilizarlo como bit de control de paridad en las transmisiones. Este cdigo es ampliamente usado para la transmisin de informacin. El xito de este cdigo se basa en que cumple con todas las condiciones impuestas para la codificacin de caracteres: Los valores correspondientes a las letras del alfabeto y a los restantes caracteres, siguen una secuencia binaria continua, la computadora no tiene que dejar su propio lenguaje binario para realizar operaciones secuenciales con esos caracteres. Adems con el agrupamiento de las funciones de control, con solo analizar los dos primeros bits de una combinacin cualquiera codificada, la computadora puede determinar si se trata de una funcin de control (dos ceros) o de un caracter (uno de los dos no es cero). Las maysculas de la A a la Z se codifican segn una sucesin ordenada de nmeros binarios, que permite realizar ordenaciones alfabticas: A = 01000001 = 41(16 = 65(10 ; B = 01000010 = 42(16 = 66(10 ; Z = 01011010 = 5A(16 = 90(10 Lo mismo ocurre con los dgitos decimales:
Arquitectura y Organizacin de Computadoras - 2012
14

0 = 00110000 = 30(16 = 48(10 ;

1 = 00110001 = 31(16 = 49(10 ; 9 = 00111000 = 39(16 = 57(10

Existen teclas de control correspondientes a rdenes mecnicas, como la barra espaciadora (SP en ingles, de SPace), la tecla de retorno de carro a un nuevo rengln (CR de Carry Return), que aparece como Enter en los teclados, la de retroceso (BS o Back Space). Estas teclas sirven para organizar la impresin de caracteres en renglones de un papel o de una pantalla, y se conocen como caracteres no imprimibles, siendo en esencia rdenes para desplazar el carro de una mquina de escribir o su equivalente cursor en una pantalla. Existen diversas maneras de presentacin de una tabla con el cdigo ASCII, las cuales mayormente indican, por razones de comodidad, o para operar desde el teclado, las equivalencias hexadecimales o decimales de cada combinacin binaria del cdigo, sin indicar sta. Esto puede observarse en la siguiente figura, que muestra la tabla de equivalencias a la que se accede desde un editor de texto sin formato.

Representacin de los Nmeros Cada dgito decimal es representado internamente con 8 bits, distribuidos de la siguiente forma: ZONA: Es siempre 0011 DIGITO: En este espacio (4 bits) se representa el nmero decimal codificado en BCD Los datos numricos as codificados no son tcnicamente aptos para ser procesados aritmticamente. Si es necesario realizar operaciones aritmticas con ellos, se debe eliminar la parte correspondiente a la ZONA de cada byte. Esta operacin se llama empaque y la informacin resultante, informacin empacada (empaquetada) o decimal sin zona. Los datos numricos con zona se denominan informacin desempacada o zoneada. 2) Cdigo EBCDIC(Expanded Binary Code Decimal Interchange Code) Este cdigo fue diseado y utilizado exclusivamente por IBM. Su importancia radica en que sirvi como base para los cdigos posteriores normalizados. Utiliza 8 dgitos binarios para representar cada carcter, por lo tanto hay un total de 28=256 caracteres posibles. La correspondencia entre la informacin por representar y la correspondiente secuencia binaria se encuentra en tablas con distintos formatos. Con respecto a los caracteres alfabticos y signos de puntuacin no tiene caractersticas que lo destaquen, salvo que podemos encontrar pequeas alteraciones al ser utilizados en pases con distintos alfabetos. La estructura del Byte segn la representacin es la siguiente:

Arquitectura y Organizacin de Computadoras - 2012

15

5 4

3 2

1 0

Posicin 7 y 6 11- Letras maysculas y nmeros 10 - Letras minsculas. 01 - Caracteres especiales 00 - Ningn carcter encontrado

Posicin 5 y 4 00 - A-I 01 - J-R 10 - S-Z 11 - Nmeros

Representacin de los Nmeros En este cdigo, al igual que en el ASCII, cada dgito decimal es representado internamente con 8 bits, distribuidos de la siguiente forma: ZONA: Ocupa los 4 bits de orden superior del Byte. Tiene una secuencia binaria fija para cualquier nmero: 1111(2 = F(16 DIGITO: En este espacio se representa el nmero decimal codificado en BCD Aqu surge el mismo inconveniente visto en el cdigo ASCII: la dificultad para realizar operaciones matemticas con los nmeros representados con la ZONA. La solucin es la misma que la indicada para el cdigo anterior. Como la mayor parte de las mquinas utilizan 8 bit para cada dgito no surgen conflictos al producirse el EMPAQUE. 3) El cdigo UNICODE Los cdigos ASCII y EBCDIC sirven para soportar los conjuntos de caracteres (latinos) histricamente dominantes en las representaciones de la computacin. Existen muchos otros conjuntos de caracteres en uso en el mundo, y no siempre es posible la conversin de cdigo ASCII al cdigo correspondiente al idioma X. A raz de esto surgi un nuevo conjunto de caracteres, universal y normalizado, al que se conoce como Unicode, y que sirve para soportar una buena cantidad de alfabetos que se usan en el mundo. Este cdigo es una norma en desarrollo, que se modifica a medida que se le incorporan los smbolos correspondientes a alfabetos nuevos, y a medida que los conjuntos de caracteres incorporados se van modificando y se refinan las correspondientes representaciones. En la versin 2.0 de Unicode se incluyen 38.885 caracteres diferentes, los que cubren los principales lenguajes escritos de uso en Amrica, Europa, Medio Oriente, Asia, India y las islas del Pacfico. Utiliza un conjunto de caracteres de 16 bits. Si bien este cdigo soporta muchos ms caracteres que ASCII y EBCDIC, no es la norma de mayor importancia. Los primeros 128 caracteres del Unicode coinciden con los del ASCII. La siguiente figura muestra los smbolos disponibles para insercin desde un documento de Word. En la ventana puede observarse la disponibilidad de caracteres Unicode y ASCII, y el cdigo decimal o hexadecimal correspondiente.

Arquitectura y Organizacin de Computadoras - 2012

16

Cdigos redundantes
Es difcil pensar en un equipo que funcione sin fallas durante un tiempo indefinido. Para cualquier mquina se define un Tiempo Medio Entre Fallas (MTBF). El objetivo de los desarrollos tecnolgicos es incrementar ese tiempo. Teniendo en cuenta esa premisa, es de esperar que la informacin pueda verse alterada en el transcurso de la transmisin o almacenamiento. Si el equipo tiene la posibilidad de detectar o, mejor an, corregir esas modificaciones, es evidente que aumentar la confiabilidad del mismo. Para este fin, existen dos tipos de cdigos:

1. Cdigos autodetectores
Cdigo en el que mediante un determinado nmero de bits de redundancia se puede detectar si la informacin recibida es correcta o no. El ejemplo mas clsico de este tipo de cdigos es el de control de paridad. 1.1. Control de paridad Este cdigo, si bien no permite detectar errores dobles, es el ms utilizado debido a su simplicidad y a que en los ordenadores la probabilidad de que ocurra un error es muy pequea, por lo tanto que ocurran 2 es mucho menos probable. Consiste en agregar a los bit de informacin transmitidos un bit mas (generalmente el primero de la izquierda), que hace que la cantidad de unos transmitidos sea PAR (PARIDAD PAR pone un 0) o IMPAR (PARIDAD IMPAR pone un 1). Ejemplo: Se desea enviar los caracteres ASCII A (cdigo decimal 65) y C (cdigo decimal 67) desde un equipo emisor a otro receptor, utilizando una comprobacin de paridad par: Emisor (Codificacin del Byte del carcter para comprobacin de paridad PAR)
Arquitectura y Organizacin de Computadoras - 2012
17

Carcter ASCII A (65) C (67)

Cdigo binario del dato 1000001 1000011

Bit de paridad 0 (el nmero de unos es par) 1 (el nmero de unos es impar)

Byte completo 0 1000001 1 1000011

Cuando el receptor recibe la informacin lo que har ser volver a contar el nmero de unos que tiene el dato y comprobar que concuerda con lo especificado en el bit de paridad. Si llega: Receptor (Comprobacin de paridad PAR) Byte recibido 0 1000001 1 1000001 Dato 1000001 A 1000001 A N de unos recibido 2 (par) 2 (par) Bit de paridad que tiene 0 1 Error NO SI

Se puede detectar que en el segundo carcter transmitido hay un error porque el bit de paridad no concuerda con lo que se expresa en los bits de datos: el nmero de unos es impar pero el bit de paridad indica que debera ser par.

2. Cdigos correctores
Mediante el uso de estos cdigos, el receptor puede determinar si la informacin recibida es correcta o no y en este caso corregir el error producido durante la transmisin. 2.1. Cdigos de Hamming Estos cdigos permiten detectar y corregir uno o ms errores producidos durante la transmisin para palabras de cualquier nmero de bits. Consiste en determinar en cuntos bits difiere la palabra recibida de la enviada, a lo que se llama distancias de Hamming. Para ello, la informacin n enviada consiste de m bits de datos y r bits redundantes, de control de paridad, siendo n = m + r 2.2. Control 2 en 3 Para transmitir una informacin cualquiera de n bits, se envan 3 veces esos n bits, en forma sucesiva. Al receptor de la informacin, al efectuar el anlisis de la misma, pueden presentrsele tres situaciones distintas: Las tres son idnticas. La informacin se toma como correcta. Dos son iguales y una distinta. El cdigo se comporta como AUTOCORRECTOR, selecciona una de las dos iguales y la toma como correcta. Las tres son distintas. El cdigo se comporta como AUTODETECTOR, la mquina detecta que hay error pero no puede determinar cual es la informacin correcta.

Arquitectura y Organizacin de Computadoras - 2012

18

Potrebbero piacerti anche