Está en la página 1de 6

ARQUITECTURA DE COMPUTADORAS Ingeniera en Sistemas de Informacin Universidad Tecnolgica Nacional Facultad Regional Santa Fe

2.

CDIGOS
(edicin 2010)

Transmisin y codificacin de la informacin Fuente de informacin Mensaje Emitido Definiciones: Mensaje: Cualquier dato sobre algn suceso ocurrido. Canales de comunicacin: Enlaces informativos que sirven para transmitir mensajes. Seales: Portadores fsicos de la informacin en los canales de informacin. Codificacin: Conversin de una seal de una forma a otra. Por ejemplo en la transmisin de un telegrama. El mensaje se escribe en un formulario telegrfico que se convierte a la forma del cdigo Morse que consta de puntos y rayas transmitidos mediante impulsos de corriente, largos y cortos por la lnea de comunicacin. En la recepcin, por los impulsos captados se regenera el texto inicial del mensaje. Se observa la presencia del mensaje en calidad de seales de diferentes formas: - de texto literal - puntos y rayas del cdigo Morse - impulsos de corriente en la lnea de comunicacin De una forma a la siguiente, hay una codificacin. Alfabeto: Grupo de smbolos (letras, palabras, puntos, rayas, etctera) que tengan un sentido conocido tanto por el remitente como por el destinatario del mensaje. Los propios smbolos se determinan por convenio de las partes. Para la transmisin, el remitente elige del alfabeto, un smbolo tras otro, los convierte en las seales correspondientes y los transmite por el canal de comunicacin. En ste, las seales se someten a la influencia de las interferencias, lo que provoca su distorsin. As, las seales en la parte de recepcin van a diferir de las seales enviadas al canal de comunicacin. El proceso de recepcin consiste en que el destinatario al recibir cualquier seal debe identificarla con uno de los smbolos existentes del alfabeto, excluyendo los dems. Si hay grandes distorsiones en el canal, esta tarea de decodificacin puede presentar grandes dificultades. Los mtodos para superar estas dificultades constituyen la esencia de la Teora de la Comunicacin. En los sistemas tcnicos se emplean alfabetos de varios tipos. Pero por diversos motivos tiene gran empleo el alfabeto Binario, que slo utiliza dos tipos de smbolos asignados convencionalmente por 0 y 1. Mediante el alfabeto binario un mensaje est constituido por una secuencia de ceros y unos, como por ejemplo en 1001001. El nmero total de mensajes que constan de m letras del alfabeto binario es igual a 2 m. Cdigos binarios. Toda informacin de tipo discreta puede ser directamente codificada en binario. Los cdigos binarios se generan en funcin de las necesidades. As, si por ejemplo tenemos que discernir entre 4 objetos O1, O2, O3, O4 y podemos asignarles las combinaciones de 2 dgitos binarios 00, 01, 10 y 11 respectivamente. N En general, con N cifras binarias se pueden obtener 2 combinaciones. Cada una de estas se N puede asignar a un objeto distinto. Por ello el nmero total de asignaciones es el de permutaciones de las 2 N combinaciones, vale decir 2 !, que constituyen otros tantos cdigos binarios. Si N=1, 2 = 2 Si N=2, 2
2 1

Lnea de comunicacin Transmisor seal Transmitida Figura 2-1. seal Recibida Receptor

Destino de la informacin Mensaje Recibido

1 x 2 = 2 = 2! 1 x 2 x 3 x 4 = 24 = 4!

=4

En ste ltimo, entonces, para representar 4 objetos podemos escoger entre 24 cdigos de dos dgitos binarios. Ejemplo: Asignacin de cdigos para cuatro colores Cdigo 00 01 10 11 asignaciones posibles de colores AAAAAARRRRRRVVVVVVNNNNNN RRVVNNAAVVNNAARRNNAARRVV VNRNRVVNANAVRNANARRVAVAR NVNRVRNVNAVANRNARAVRVARA Tabla 2-1. A = Azul R = Rojo V = Verde N = Negro

Cdigos binarios especficos.


Estudiaremos a continuacin aquellos cuyo uso es ms frecuente debido a que poseen alguna propiedad particular.

ARQUITECTURA DE COMPUTADORAS - 2 CODIGOS (ed.2010)

Cdigos binarios continuos y cclicos. Combinaciones binarias adyacentes: son aquellas que difieren en un solo bit. Un cdigo binario es continuo si las combinaciones correspondientes a nmeros decimales consecutivos son adyacentes. Adems, un cdigo binario continuo es cclico si la ltima combinacin es adyacente a la primera. Cdigo reflejado de Gray. A partir del cdigo binario natural de dos bits, crearemos el cdigo de Gray de dos dgitos. Y reflejando sucesivamente los resultados se generar el cdigo para n cantidad de dgitos. 1) Cdigo natural de dos bits 00 01 10 11 00 01 11 10 10 11 01 00 5) Tomando el de tres bits, reflejndolo y agregando la columna siguiente con la mitad superior de las filas conteniendo ceros y la mitad inferior unos, se logra el reflejado de cuatro bits. Gray dec. 0000 0 0001 1 0011 2 0010 3 0110 4 0111 5 0101 6 0100 7 1100 1101 1111 1110 1010 1011 1001 1000 Cdigo progresivo Johnson. Es otro cdigo continuo y cclico. Su capacidad de codificacin es 2.n, siendo n el nmero de posiciones binarias. Es muy prctico para sistemas electrnicos de conteo. As para n=5, 2x5=10, lo que tan solo permite codificar los diez smbolos decimales. Dec. 0 1 2 3 4 5 6 7 8 9 Johnson 00000 00001 00011 00111 01111 11111 11110 11100 11000 10000 8 9 10 11 12 13 14 15 0 1 2 3 2) Asignamos la combinacin 10 al 3 y 11 al 2 para obtener el cdigo continuo y cclico de dos bits. 4) Para lograr el reflejado de tres bits basta agregar una tercera columna a la izquierda con ceros para las primeras 4 filas y con unos para las 4 filas restantes. 00 01 11 10 000 001 011 010 110 111 101 100 0 1 2 3 0 1 2 3 4 5 6 7

3) Reflejemos el cdigo anterior

El cdigo Gray se emplea principalmente para la conversin de informacin analgica a digital. Una gran ventaja de este cdigo es su facilidad de conversin al cdigo binario natural (que veremos en una unidad subsiguiente).

Tabla 2-3. Cdigo Reflejado de Gray

Tabla 2-4. Cdigo Johnson

Cdigos decimales codificados en binario (BCD).


En stos, cada cifra decimal se codifica directamente en un cdigo binario. Para representar los diez 3 smbolos de una cifra, se requieren cuatro bits, porque con tres, slo podramos codificar 2 = 8 smbolos. 4 Por lo tanto, de las 2 = 16 combinaciones de cuatro bits, slo se ocupan diez. sta sobreabundancia hace que se restrinja el empleo de stos cdigos BCD al diseo de sistemas de control digitales y calculadoras digitales de pequea capacidad, como las de bolsillo. Cdigos BCD ponderados. Son aquellos en los que a cada posicin o cifra binaria se le asigna un peso y por lo tanto, el nmero decimal equivalente surge de sumar los pesos de las posiciones que posean el valor 1. De los BCD ponderados, los ms importantes son el BCD natural (1 2 4 8), el BCD Aiken (1 2 4 2) y el BCD 1 2 4 5. 2-2

ARQUITECTURA DE COMPUTADORAS - 2 CODIGOS (ed.2010)

Por otra parte, el cdigo Aiken, adems de ser BCD ponderado es autocomplementario: la combinacin correspondiente al complemento a nueve de n, es decir 9 - n, se obtiene invirtiendo la combinacin correspondiente a n, es decir cambiando los ceros por unos y viceversa. Ej.: si n = 4, entonces tenemos que 9 4 = 5, luego como la combinacin para 4 es 0 1 0 0, su complemento es 1 0 1 1 que corresponde a la combinacin para 5. DGITO DECIMAL 0 1 2 3 4 5 6 7 8 9 BCD NATURAL 8 4 2 1 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0 0 1 0 1 0 1 1 0 0 1 1 1 1 0 0 0 1 0 0 1 BCD AIKEN 2 0 0 0 0 0 1 1 1 1 1 4 0 0 0 0 1 0 1 1 1 1 2 0 0 1 1 0 1 0 0 1 1 1 0 1 0 1 0 1 0 1 0 1 5 0 0 0 0 0 1 1 1 1 1 4 0 0 0 0 1 0 0 0 0 1 2 0 0 1 1 0 0 0 1 1 0 1 0 1 0 1 0 0 1 0 1 0

Tabla 2-5 : cdigos BCD ponderados Cdigos BCD no-ponderados. No tienen asignacin de peso. De stos el ms utilizado es el denominado exceso de 3. Es autocomplementario como el Aiken y se obtiene adicionando 3 a cada combinacin del BCD natural. Dgito Decimal 0 1 2 3 4 5 6 7 8 9 B C D ex-3 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100

Tabla 2-6. Codigo BCD ex-3

La codificacin de una cantidad decimal de dos o ms cifras mediante un cdigo BCD se realiza cifra por cifra. As por ejemplo, la cantidad decimal 748 se representa: BCD Natural Exc. 3 Aiken Cdigos alfanumricos. Un cdigo alfanumrico es un cdigo binario que permite representar los 10 smbolos decimales y los 26 smbolos alfabticos (letras) ms un cierto nmero de smbolos especiales, tales como: ; . , $ " etctera. 5 El mnimo nmero de bits para codificar es seis, ya que 2 = 32 no es suficiente. Los cdigos alfanumricos ms comunes son el ASCII (American Standard Code for Interchange of Information) que puede ser de 7 u 8 dgitos, y el EBCDIC (Extended Binary Coded Decimal Interchange Code) que tiene 8 dgitos. Existen otros como el interno de mquina y el cdigo Hollerich para tarjeta perforada que ya perdi casi totalmente su utilidad. Un ejemplo de codificacin en el cdigo interno "6 bits": J 100001 U 110100 A 010001 N 100101 7 0111 1010 1101 4 0100 0111 0100 8 1000 1011 1110

Ejemplo 2-1.

Cdigos Detectores de Errores.


En el manejo, y especialmente en la transmisin de una informacin numrica, es posible que se produzcan errores debido a la presencia de ruido en el proceso o por avera de alguno de los componentes. n Cuando en un cdigo binario se utilizan todas las combinaciones posibles (2 ) de sus n posiciones, es imposible la deteccin de un error, porque una combinacin del cdigo se transformar en otra que tambin pertenece a l. Por consiguiente la deteccin de errores en un cdigo binario se logra no utilizando todas las combinaciones posibles. Pero esta condicin, aunque es necesaria no es suficiente para que el cdigo permita detectar errores. Por ejemplo, el cdigo BCD ex 3 no utiliza ms que diez combinaciones de las diecisis posibles de los cuatro bits, pero, si por un error en un bit, la combinacin 0011 se convierte en 0111, no es posible detectarlo, porque ambas combinaciones pertenecen al cdigo. Para establecer la condicin necesaria y suficiente para que un cdigo binario permita detectar errores, definiremos el concepto de distancia mnima de un cdigo. Distancia mnima de un cdigo.

2-3

ARQUITECTURA DE COMPUTADORAS - 2 CODIGOS (ed.2010)

En un cdigo se define a la distancia mnima, como la menor de las distancias entre dos combinaciones binarias pertenecientes al mismo. El valor de la distancia mnima de los cdigos estudiados hasta ahora, es la unidad, y, por lo tanto, un error en uno solo de los bits de una combinacin binaria perteneciente a cualquiera de ellos, puede convertirlo en otra combinacin valida para dicho cdigo, haciendo que el error no sea detectable. De todo lo dicho se deduce que, para que un cdigo pueda detectar errores, su distancia mnima ha de ser superior a la unidad. Existen diversos tipos de cdigos detectores de errores, entre los cuales se encuentran los cdigos de control de paridad y los cdigos de peso constante (entendiendo por peso de una combinacin binaria al nmero de unos lgicos de la misma). Cdigos de control de paridad. Los cdigos de control de paridad se obtienen aadiendo a las combinaciones de los cdigos de distancia unidad anteriormente estudiados, un bit llamado de paridad. Si el cdigo que se desea obtener es de paridad par, dicho bit ser tal que el nmero de unos en cada combinacin del nuevo cdigo se par. Si, por el contrario, se desea un cdigo de paridad impar, el bit aadido a cada combinacin ha de ser tal que la combinacion resultante tenga un nmero impar de unos. La deteccin de errores en estos cdigos consiste en comprobar al recibir la informacin, si el nmero de unos de cada combinacin es par (cdigos de paridad par) o impar (cdigos de paridad impar). La principal ventaja de estos cdigos es que se forman a partir de cualquier otro cdigo o combinacin binaria. dgito decimal 0 1 2 3 4 5 6 7 8 9 BCD ex de 3 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 bit paridad impar 1 0 1 1 0 0 1 1 0 1 cdigo resultante 00111 01000 01011 01101 01110 10000 10011 10101 10110 11001

Ejemplo 2-2. Clculo del bit de paridad Cdigos de peso constante. Entre los cdigos de peso constante se encuentran el 2 entre 5 y el biquinario que es un cdigo de 7 bits. Ambas combinaciones poseen solamente dos unos lgicos. dgito decimal 0 1 2 3 4 5 6 7 8 9 cdigo 2 entre 5 01100 11000 10100 10010 01010 00110 10001 01001 00101 00011 cd.biquinario 5043210 0100001 0100010 0100100 0101000 0110000 1000001 1000010 1000100 1001000 1010000 (pesos)

Tabla 2-7. Cdigos de peso constante

Los cdigos estudiados son de distancia mnima de dos y permiten, pues la deteccin de errores de un bit. Para poder detectar errores de ms de un bit es necesario utilizar cdigos de distancia mnima superior a dos. En general el nmero de bits errneos que se pueden detectar es igual al nmero en que la distancia mnima es superior a la unidad.

Cdigos Correctores de Errores.


Los cdigos correctores de errores, no slo indican la existencia de un error como los que hemos estudiado en el apartado anterior, sino que proporcionan informacin de cual es la cifra o cifras binarias errneas y, por consiguiente permiten su correccin invirtiendo simplemente el bit correspondiente. Estos cdigos se utilizan cuando no es posible o se hace muy difcil pedir la retransmisin de una informacin frente a la deteccin de un error. De producirse un error en un cdigo detector de errores, la combinacin errnea obtenida posee como mnimo dos adyacentes pertenecientes al cdigo, y no es posible discernir de cual de estos procede. Por ejemplo, en el cdigo BCD ex 3 con paridad impar la distancia mnima es dos, si se detecta la combinacin errnea '10001' es imposible conocer si el error se ha producido en el primer bit y la combinacin correcta es '10000',en el segundo y es correcto '10011', tercero y es '10101' o el cuarto y es '11001'. Por lo tanto, para poder corregir errores, la distancia mnima del cdigo ha de ser superior a dos. Si la distancia mnima de un cdigo es tres, la combinacin obtenida por error en un bit, es adyacente a una sola combinacin del cdigo y es posible conocer cul es el bit errneo. As, un cdigo de distancia mnima tres, permite detectar errores de 2 bits o corregir errores de 1 bit. En general, la distancia mnima de un cdigo para que permita corregir errores de n bits ha de ser dm = 2n + 1.

2-4

ARQUITECTURA DE COMPUTADORAS - 2 CODIGOS (ed.2010)

Nos limitaremos a estudiar los cdigos correctores de errores de un bit, cuya distancia mnima es tres y entre ellos los de mayor difusin, que son los cdigos de HAMMING. Cdigo corrector de HAMMING. Estos cdigos estn basados en la adicin de un cdigo de distancia unidad para n bits, de p bits, obtenindose un nuevo cdigo de n + p bits. En este nuevo cdigo se realizan p detecciones de paridad en bits preseleccionados del mismo, obtenindose un bit de paridad PAR. El conjunto de las ecuaciones de control de paridad forman un nmero del sistema binario que indica la posicin del bit errneo. En caso que no exista error, el nmero binario logrado debe ser igual a cero. El nmero de p bits aadidos ha de ser suficiente para permitir la deteccin de error en alguna de las n + p posiciones o la ausencia del mismo. p p Dado que con p bits se obtienen 2 combinaciones, se ha de cumplir la relacin 2 n + p + 1. Como ejemplo realizaremos el cdigo de Hamming obtenido a partir del cdigo BCDN. En este 3 cdigo n = 4 y, por lo tanto el nmero de bits que se han de aadir es 3, dado que 2 = 4 + 3 + 1. Para detectar los siete posibles errores de un bit en cada una de las posiciones y la ausencia de error son necesarias ocho combinaciones binarias que denominaremos correctoras de error. Dichas combinaciones se obtienen mediante 3 bits, c3, c2, c1 , y el nmero decimal equivalente al binario formado por ellos ha de indicar la posicin errnea. Veremos ahora la forma de generar cada uno de los bits de la combinacin correctora de errores. En la tabla, se presentan todas las combinaciones de los bits c3, c2, c1. numero decimal correcto 0 (b1) 1 (b2) 2 (b3) 3 (b4) 4 (b5) 5 (b6) 6 (b7) 7 c3 c2 c1 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1

Tabla 2-8. Asignacin binaria para cada bit del cdigo El bit c1 ha de tomar el valor 1 si se produce un error en los bits b1, b3, b5, b7, de la combinacin del cdigo. Si el nmero de unos existentes en esas cuatro posiciones es siempre par, un error en uno cualquiera de esos cuatro bits lo convierte en impar. Por lo tanto c1 ha de valer 1 si el nmero de unos en las posiciones b1, b3, b5, b7, es impar y cero en caso contrario. Esto se expresa algebraicamente de la siguiente forma: c1 = b1 b3 b5 b7 Donde es el smbolo de la funcin reunin excluyente que se estudiar ms adelante. De igual forma se deduce que c2 y c3 han de obtenerse por medio de las expresiones: c2 = b2 b3 b6 b7 c3 = b4 b5 b6 b7 para lo cual ha de cumplirse la condicin de que el nmero de unos ha de ser par en las combinaciones b2, b3, b6, b7 y b4, b5, b6, b7 . Para lograr estas condiciones se han de generar adecuadamente los tres bits que se aaden a los cuatro de la combinacin BCDN. Dado que b1, b2, b4, por ser potencias de 2 (tienen un solo 1 en su combinacin binaria) aparecen en una sola expresin cada uno, los elegiremos como bits de control y lo aadimos a la combinacin de entrada que ser volcada en b3, b5, b6, b7. El bit b1 ha de valer uno si el nmero de unos de b3, b5 y b7, es impar y cero en caso contrario, por lo tanto. b1 = b3 b5 b7 De igual forma b2 y b4; se han de obtener respectivamente: b2 = b3 b6 b7 b4 = b5 b6 b7 De todo lo anterior se deduce el cdigo de Hamming siguiente: nmero decimal 0 1 2 3 4 5 6 7 8 9 b7 b6 b5 b4 b3 b2 b1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 1 1 0 0 0 0 1 1 1 1 0 0 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 1 0 1 0 1 0 0 1 1 0 0 1 1 0 1 0

Ejemplo 2-3.

2-5

ARQUITECTURA DE COMPUTADORAS - 2 CODIGOS (ed.2010)

Como ejemplo comprobaremos la deteccin de un error en el b6; de la combinacin 0011001 correspondiente al nmero decimal 2, la combinacin errnea es 0111001. Para detectarlo comprobaremos el valor lgico de c3, c2, c1. c3 = b4 b5 b6 b7 = 1 1 1 0 = 1 c2 = b2 b3 b6 b7 = 0 0 1 0 = 1 c1 = b1 b3 b5 b7 = 1 0 1 0 = 0 En efecto, la combinacin c3, c2, c1, es 1102, equivalente al nmero decimal 6. Ejercicio: Obtener un cdigo corrector de Hamming a partir del cdigo Johnson para los nmeros del 0 al 9.

ANEXO I
Cdigos de caracteres alfanumricos. Carcter A B C D E F G H I J K L M N O P Q R S T U V W X Y Z ASCII 7-8 bits 0100 0001 0100 0010 0100 0011 0100 0100 0100 0101 0100 0110 0100 0111 0100 1000 0100 1001 0100 1010 0100 1011 0100 1100 0100 1101 0100 1110 0100 1111 0101 0000 0101 0001 0101 0010 0101 0011 0101 0100 0101 0101 0101 0110 0101 0111 0101 1000 0101 1001 0101 1010 EBCDIC 8 bits 1100 0001 1100 0010 1100 0011 1100 0100 1100 0101 1100 0110 1100 0111 1100 1000 1100 1001 1101 0001 1101 0010 1101 0011 1101 0100 1101 0101 1101 0110 1101 0111 1101 1000 1101 1001 1110 0010 1110 0011 1110 0100 1110 0101 1110 0110 1110 0111 1110 1000 1110 1001 Carcter 0 1 2 3 4 5 6 7 8 9 espacio . + $ * ) / , = ASCII 7-8 bits 0011 0000 0011 0001 0011 0010 0011 0011 0011 0100 0011 0101 0011 0110 0011 0111 0011 1000 0011 1001 0010 0000 0010 1000 0010 1011 0010 0100 0010 1010 0010 1001 0010 1101 0010 1111 0010 1100 0011 1101 EBCDIC 8 bits 1111 0000 1111 0001 1111 0010 1111 0011 1111 0100 1111 0101 1111 0110 1111 0111 1111 1000 1111 1001 0100 0000 0100 1011 0100 1110 0101 1011 0101 1100 0101 1101 0110 0000 0110 0001 0110 1011 0111 1110

Tabla 2A-1.

2-6