Sistema istemas s de Procesa oc esamiento miento de Datos
U.T.N. F.R.R .R.Re. e.
CODIFICACIÓN DE LA INFORMACIÓN 1. INTRODUCCIÓN. Para poder transmitir información existen dos problemas fundamentales: el HARDWARE y el LENGU NG UAJ E DE C O MUNIC MUNIC AC IÓ N. Ha c iendo una a nalogía ent e ntrre las c omputadoras omputad oras y la la c omunica c ión huma huma na pod p odemo emoss dec de c ir que, que , si si bien tod toda a s las per pe rsonas ona s del de l mundo tienen el e l mis mismo hardwar hardwa re para p ara la c omunic omunic a c ión habl hab lada ad a (la (la bios, bios, lengua lengua,, dientes dientes y el resto esto del de l complej co mplejo o a par pa ra to buc a l) pa ra tra tra nsmi nsmiti tirr y los oídos oído s pa ra rec ibir ibir, la la c omunica c ión ora ora l es pos po sible ible sola solamente mente cua c uando ndo dos do s per pe rsona s c onoc ono c en el e l mis mismo lenguaj lengua je , es dec de c ir la mis misma manera ma nera de d e codificar la información. Así como el habla sería imposible sin lenguajes comunes, la comunicación entre c omputad omp utadoras oras serí ería a impo impossible sin sin c oo oorrdinac dina c ión de c ó d ig i g o s d e c a ra c t e re re s. s. Tod Toda a s la s c omputador omputad ora a s digitales digitales a c tua tua les usan usan un lenguaje binario para representar la información, internamente. Debido a que algunos de los dispositivos con los que se deben comunicar las computadoras están diseñados para uso humano (específicamente teclados, monitores e impreso impreso ra s), es e s impor impo rtante q ue esto esto s periféricos uti utilic en un có digo de d e c omuni omunic ac ión c ompati ompa tible ble con co n la la c omuni omunic ac ión humana. humana. Existen varios métodos para alcanzar dicha compatibilidad y cada uno utiliza un modo diferente de codificar los números y las letras, que conforman la base de la comunicación escrita entre las personas. Actualmente es frecuente encontrar en los sist e m a s d e c ó m p u t o , dispositivos provistos por distintos fabricantes. La posibilidad de conectar estos dispositivos existe únicamente si éstos util utiliza iza n un un código có digo c o mún pa ra la tra tra nsmi nsmissión y rec epc ep c ión de la infor informac mac ión. Son claras las ventajas de conseguir que todas las computadoras utilicen el mismo código de comunicación. Aún cuando la calidad de los códigos varía enormemente, casi cualquier estándar universal sería mejor que ninguno. Si bien hay códigos que prácticamente son aceptados por todos los fabricantes, aún no existe un estándar que optimice el aprovechamiento tanto de los recursos del hardware como las nuevas teorías sobre codificación e información.
En sentido genérico CÓDIGO significa:
Sistema de signos y de reglas que permite formular y
comprender un mensaje.
La codificación consiste en establecer una ley de correspondencia, llamada CÓDIGO, entre las inform informa a c iones por po r repr ep resenta esentarr y la la s pos po sibles c onfigura onfigura c iones binar bina rias ias,, de tal maner mane ra que a c a da informac nformac ión c orres orrespo ponda nda una y gener ge nera a lmente mente solo una, c onfigur onfigura a c ión bi b inaria naria .
El proc proc es eso o c e CODIFICAR signific significa a : Transformar, mediante las reglas de un código, la formulación de un mensaje.
Llamamos CODIFICACIÓN al proceso de convertir un símbolo complejo en un grupo de símbo ímbolos los más ssim imples ples.. Ejemplo: Ejemplo: conve c onverrtir tir una letra etra del de l alfabeto alfab eto en un c ódigo ód igo de c inc inc o bits. bits.
DECODIFICAR: Aplicar inversamente las reglas de su código a un mensaje codificado para obtener la forma primitiva de este.
Año 2007 2007
Pagina Nro. Nro. 1
Sistemas de Procesamiento de Datos
U.T.N. F.R.Re.
DECODIFICACIÓN es el proc eso inverso al de c odificación, se convierte a un código donde la cantida d de símbolos es menor, pero c ada una c ontiene más informac ión. TRANSCODIFICACIÓN: Aplicación de un cambio de código a una información ya codificada. Ejemplo: EBC DIC a ASC II. OTRAS DEFINICIONES: In communications, a code is a rule for converting a piece of information (for example, a letter, word, or phrase) into another object or action, not necessarily of the same sort. One reason for this is to enable communication in places where ordinary spoken or written language is difficult or impossible. For example, a cable code replaces words (eg, ship, invoice, ...) into shorter words, allowing the same information to be sent with fewer characters, more quickly, and most important, less expensively. Another example is the use of semaphore flags, where the configuration of flags held by a signaller or the arms of a semaphore tower encodes parts of the message, typically individual letters and numbers. Another person standing a great distance away can interpret the flags and reproduce the words sent. In communications systems, coding is the altering of the characteristics of a signal to make the signal more suitable for an intended application, such as optimizing the signal for transmission, improving transmission quality and fidelity, modifying the signal spectrum, increasing the information content, providing error detection and/or correction, and providing data security (Note: A single coding scheme usually does not provide more than one or two specific capabilities. Different codes have different sets of advantages and disadvantages.) In communications and information processing, decoding is the process of converting message data, which has been sent by a source, into information understandable by a receiver. In telecommunication, transcoding is the direct digital-to-digital conversion from one encoding scheme, such as voice LPC-10, to a different encoding scheme without returning the signals to analog form.
Source: Federal Standard 1037C and from MIL-STD-188 http://www.free-definition.com/Glossary-of-coding-terms.html
BITS: Teniendo en cuenta que las computadoras manejan un lenguaje binario analizaremos los DÍGITOS BINARIOS c omo c aracteres para comunicac ión de datos. La condición binaria es la que posee una calidad BIVALUADA. En el sistema binario de numeración esas condiciones están representadas por los dígitos 0 y 1. Se denomina BIT (contracción de BINARY DIGIT) al dígito binario, independientemente del valor asignado (0 o 1). Los dígitos binarios llevan, ambos, la misma cantidad de información, ya que la presencia de uno significa la ausenc ia del otro. Un proceso fundamental en la codificación binaria es determinar la cantidad de BITS necesarios para representar las informaciones. De manera que podamos identificar una entre varias posibles. Como un bit puede ser 1 o 0, podremos utilizarlos pa ra selec cionar una informac ión entre dos; con dos bits, una entre cuatro; tres bits una entre ocho; etc. Las posibilidades aumentan como potencias de dos: Un bit Dos bits Tres bits
Año 2007
21 = 2 elecciones 22 = 4 elecciones 23 = 8 elecciones
Pagina Nro. 2
Sistemas de Procesamiento de Datos
U.T.N. F.R.Re.
Si quisiéramos conocer cuantos bits necesitamos para una de ocho situaciones utilizamos logaritmos en base 2, así:
log2 8 = 3.En general el número de bits (I) que necesitaremos para poder codificar una determinada cantida d de informac iones (N) estará determinado por:
I = Log2 N Como ejemplo, para poder representar en forma binaria los 26 caracteres de nuestro alfabeto necesitaríamos:
I = Log2 26 = 4,7 bits
I = 5 bits
2. C ODIFICACIÓN DE LA INFORMACIÓN EN LA MÁQINA . Analizaremos los siguientes Puntos:
2.1. Codificación de la información numérica. 2.1.1 Códigos ponderados. 2.1.2 Códigos no ponderados. 2.2. Codificación de la información no numérica. 2.2.1. Codificación de los caracteres. 2.2.2 codificación de las instrucciones.
Año 2007
Pagina Nro. 3
Sistemas de Procesamiento de Datos
U.T.N. F.R.Re.
2.1.CODIFICACIÓNDELA INFORMACIÓNNUMÉRICA. Estudiaremos la representación de los símbolos del sistema decimal de numeración mediante símbolos binarios (BIT).
¿Cuántos bits necesitamos para representar los 10 símbolos del sistema decimal de numeración? I = Log2 10 = 3,162....... 4 Esto nos indica que cualquier código que utilicemos para representar los números del sistema dec imal precisará, como mínimo, 4 Dígitos Binarios (Bits). C ua nd o e l c ód ig o utilic e m ás d íg ito s q ue lo s q u e n e c e sit a l o d e n o m in a re m o s
. C O DIGO REDUNDA NTE
2.1.1. C ÓDIGOS PONDERADOS. Se denomina c ódigo ponderad o a aquel que respeta, pa ra la representac ión de cada dígito dec imal, el “peso” que c orresponde a cada dígito binario de acuerdo a la posición que oc upa. Ejemplos: BCD (8421), AIKEN(2421), 84-2-1.
NOTA I: En cualquiera de los códigos numéricos (ponderados y no ponderados) un número dec imal se codificará c ada dígito dec imal por separado. Ejemplo: el número 345 se c odificará 3 0011 0011
en BCD en AIKEN
4 5 0100 0101 345(10 = 0100 1011 345(10 =
001101000101(BCD 001101000111(AIKEN
NOTA II: si bien los símbolos utilizados se corresponden con los del sistema binario, la representación codificada no tiene nada que ver con el SISTEMA BINARIO DE NUMERACIÓN. E JERCICIOS PROPUESTOS. Codifique los siguientes números decimales utilizando los distintos códigos ponderados.
BCD (PESOS 8, 4, 2, 1) El código BCD (DECIMAL CODIFICADO BINARIO) respeta para cada dígito decimal el “peso” que c orresponde a cada dígito binario de acuerdo a la posición que ocupa, teniendo en cuenta el “peso” asignado en el sistema binario de numeración.
8421 8421 8421 8421 8421 70922(10 = 12345(10 = 68284(10 = 95135(10 = 35746(10 = 87453(10 = 25846(10 =
0111 0000 1001 0010 0010
Año 2007
Pagina Nro. 4
Sistemas de Procesamiento de Datos
U.T.N. F.R.Re.
2, 4, 2, 1 2421 2421 2421 2421 2421 70922(10 = 0111 0000 1111 0010 1000 12345(10 = 0010 68284(10 = 1000 95135(10 = 35746(10 = 87453(10 = 25846(10 = 0010 Aclarac ión: El código 2, 4, 2, 1, permite dos combinac iones de los dígitos 2, 3, 4, 5, 6 y 7. Cualquiera es válida, más aún, en un mismo número de varios dígitos iguales pueden usarse codifica ciones distintas. Ver ejemplo en la tabla anterior. AIKEN (PESOS 2, 4, 2, 1) C onstrucc ión de la tabla de código AIKEN
0 1 2 3 4 5 6 7 8 9
2 0 0 0 0 0 1 1 1 1 1
AIKEN 4 2 0 0 0 0 0 1 0 1 1 0 0 1 1 0 1 0 1 1 1 1
1 0 1 0 1 0 1 0 1 0 1
2 4 2 1
1 1 1 0 0 0
0 0 0 1 1 1
0 0 1 0 1 1
0 1 0 1 0 1
2421 2421 2421 2421 2421 70922(10 = 12345(10 = 68284(10 = 95135(10 = 35746(10 = 87453(10 = 25846(10 = 8, 4, -2, -1
0111 0000 1111 0010 0010 0010 0010
0010
70922(10 = 12345(10 = 68284(10 = 95135(10 = 35746(10 = 87453(10 = 25846(10 = Año 2007
8 4-2-1
8 4-2-1
8 4-2-1
8 4-2-1
8 4-2-1
1001
0000
1111
0110
0110
Pagina Nro. 5
Sistemas de Procesamiento de Datos
U.T.N. F.R.Re.
EXCESO EN TRES La representación en el código exceso de 3, cada dígito decimal se representa como en BCD pero excedido en 3. Ejemplo la representación del 2 es la BC D del 5.70922(10 = 12345(10 = 68284(10 = 95135(10 = 35746(10 = 87453(10 = 25846(10 =
1010 0011 1100 0101 0101
2.1.2. C ÓDIGOS NO PONDERADOS. En estos códigos la representación de cada dígito decimal es en principio arbitraria o responde a características que no son el “peso” de a cuerdo a la posición que ocupan. Ejemplos: C ódigo de G RAY.
C ONSTRUCC IÓN DE LA TABLA DEL CÓDIGO DE GRAY. I. Se colocan los dos bits (0 y 1) y se traza una línea debajo de ellos (espejo), se copian los bits como si se reflejaran en dicho espejo.
0 1 1 0 II. se completa la siguiente columna con 1 por debajo del espejo y con 0 por encima del mismo.
0 0 1 1
0 1 1 0
III. Se repite la operación de reflejado con los cuatro números obtenidos.
0 0 1 1 1 1 0 0
0 1 1 0 0 1 1 0
Año 2007
Pagina Nro. 6
Sistemas de Procesamiento de Datos
U.T.N. F.R.Re.
IV. Se c ompleta la tercer columna con 1 debajo del espejo y 0 por encima.
0 0 0 0 1 1 1 1
0 0 1 1 1 1 0 0
0 1 1 0 0 1 1 0
V. Se vuelve a rea lizar la operac ión hasta completar los diez dígitos.
0 0 0 0 0 0 0 0 1 1
0 0 0 0 1 1 1 1 1 1
0 0 1 1 1 1 0 0 0 0
0 1 1 0 0 1 1 0 0 1
0 1 2 3 4 5 6 7 8 9
0 0 0 0 0 0 0 0 1 1
0 0 0 0 1 1 1 1 1 1
0 0 1 1 1 1 0 0 0 0
0 1 1 0 0 1 1 0 0 1
E JERCICIOS PROPUESTOS. Codifique los siguientes números dec imales utilizando el código de G RAY. 70922(10 = 12345(10 = 68284(10 = 95135(10 = 35746(10 = 87453(10 = 25846(10 =
0100 0000 1101 0011 0011
ALGUNOS CÓDIGOS NÚMERICOS MAS USUALES. Dígito Decimal 0 1 2 3 4 5 6 7 8 9 Año 2007
B.C.D EXCESO (8421) de tres 0000 0011 0001 0100 0010 0101 0011 0110 0100 0111 0101 1000 0110 1001 0111 1010 1000 1011 1001 1100
AIKEN (2421) 0000 0001 0010 0011 0100 1011 1100 1101 1110 1111
8 4 -2 -1 0000 0111 0110 0101 0100 1011 1010 1001 1000 1111
Código de Gray 0000 0001 0011 0010 0110 0111 0101 0100 1100 1101 Pagina Nro. 7
Sistemas de Procesamiento de Datos
U.T.N. F.R.Re.
ALGUNOS COMENTARIOS SOBRE LOS CODIGOS. I. Los códigos Exceso de 3, el 2421 y 84-2-1 son autocomplementarios, o sea que el c omplemento a 9 del número dec imal se obtiene c ambiando los ceros por unos y los unos por ceros. II. El código de G ray o BINARIO REFLEJ ADO tiene la particularida d que de un dígito dec imal al siguiente cambia siempre un solo dígito por vez.
2.2.C ODIFICACIÓN DE LA INFORMACIÓN
NO NUMÉRICA.
2.2.1. C ODIFICAC IÓN DE LOS CARACTERES. Luego de ver como pueden representarse los números, analizaremos ahora como extender el sistema de codificación al conjunto de signos de la máquina de escribir: letras, signos de puntuación, operadores y caracteres especiales.
C ONDICIONES QUE SE IMPONEN PARA LA CODIFICACIÓN DE CARACTERES I) La representación debe engloba r a las de las cifras en una de las formas descriptas (BCD, 2421, etc.) y permitir distinguir las cifras rápidamente de los otros caracteres. II) La representación debe permitir añadir nuevos caracteres específicos para una aplicación determinada. III) En el caso de las transmisiones, la representación debe incluir un sistema de redundancia que permita la detección de errores.
C ARÁCTER. El concepto de caracter aparece como la cantidad de BITS necesarios para representar los diferentes símbolos del alfabeto (letras, cifras, signos de puntuación, etc.). De acuerdo al código utilizado cada caracter puede codificarse c on un número variable de BITS, pero dentro de un sistema todos los caracteres se representan con el mismo número de bits. El código ASCII se definió inicialmente con 6 bits, esto permitía representar 26 = 64 c arac teres. Posteriormente la ANSI (Instituto Nacional Norteamericano de Normas) definió un nuevo ASCII (que se mantiene como norma) de 7 bits. Esta nueva definición permite codificar 128 caracteres; haciéndolo más apto, fundamentalmente para la transmisión donde parte de los “caracteres” codifican funciones de c ontrol. El código EBCDIC crea do por IBM utiliza 8 bits pa ra representar cada caracter.
PALABRA. La palabra es un conjunto de caracteres, fijo o variable, según el caso, que la computadora trata como unida d. Es una unidad de información de rango superior al caracter. Generalmente contiene un número entero de caracteres. La palabra es la unida d de informac ión procesada por la máquina.
Año 2007
Pagina Nro. 8
Sistemas de Procesamiento de Datos
U.T.N. F.R.Re.
B YTE. El término BYTE (octeto), se utiliza para describir un conjunto de 8 bits consecutivos que se toman c omo unidad. El BYTE muchas vec es no es prác tico para manipular da tos en problemas de programac ión, rec urriéndose al concepto de PALABRA (WORD), de a cuerdo a la siguiente relac ión: 1 BYTE 1 PALABRA 1 DOBLE PALABRA 1 C UDRUPLE PALABRA 1 DEC ABYTE
= = = = =
8 bits 2 Bytes 4 Bytes 8 Bytes 10 Bytes
NOTA III: El KILOBYTE (KB): Unidad de capa cidad de memoria que representa 210 unidades de información, por lo tanto una memoria de 1 KB podrá almacenar 1024 caracteres. C ÓDIGO EBCDIC (EXPANDED BINARY CODE DECIMAL INTERCHANGE CODE). Este código fue diseñado y utilizado exclusivamente por IBM. Su importancia radica en que sirvió como base para los códigos posteriores normalizados. Utiliza 8 dígitos binarios pa ra representar cada caracter. La c orrespondencia entre las informaciones por representar la correspondiente sec uenc ia binaria se enc uentra en tablas con distintos formatos. Con respecto a los caracteres alfabéticos y signos de puntuación no tiene características que lo destaquen, salvo que podemos enc ontrar pequeñas alteraciones al ser utilizados en países con distintos alfabetos.
REPRESENTAC IÓN DE LA INFORMACIÓN NUMÉRICA (EBCDIC). Cada dígito decimal es representado internamente con 8 bits, distribuidos de la siguiente forma: ZONA DIGITO 4 Bits 4 Bits
ZONA: Ocupa los 4 bits de orden superior del Byte, tiene una sec uencia binaria fija pa ra cualquier número: 1111(2 = F(16 DIGITO: En este espacio se representa el número decimal codificado en BCD Los datos numéricos codificados en EBCDIC con zona, no son técnicamente aptos para ser procesados aritméticamente. Si necesitamos realizar operaciones aritméticas con ellos, se debe eliminar la parte correspondiente a la ZONA de cada byte. Esta operación se llama empaque y la información resultante, información empacada (empaquetada) o decimal sin zona . Los datos numéricos con zona se denominan información desempacada o zoneada.-
Año 2007
Pagina Nro. 9
Sistemas de Procesamiento de Datos
U.T.N. F.R.Re.
EJ EMPLO: Queremos representar el número 36045 en EBCDIC F
3
F
6
F
0
F
4
F
5 Decimal con zona (zoneado)
0
0
0
0
3
6
0
4
5
F Decimal sin zona (empacado) Medio byte correspondiente al signo F o C (positivo), B o D (negativo)
0
0
0
0
3
6
0
4
5
D - 36,045 (empacado)
En las representaciones internas de memoria, de los números, el punto decimal (coma) no se representa, queda implícitamente considerado en el lugar correspondiente, nunca forma parte física de la cifra, es el programador quien debe tenerlo en cuenta cuando efectúe la salida de los resultados.
C ÓDIGO ASCII (AMERICAN STANDARD C ODE FOR INFORMATION INTERCHANGE). Se trata de un código que utiliza 7 bits para representar cada caracter. Parte de las configuraciones binarias son utilizada s pa ra codifica r funciones de control. La mayor parte de las máquinas actuales utilizan este código normalizado, pero generalmente agregar un octavo bit, que les permite extender el código para representaciones no previstas o pa ra utilizarlo como bit de control de pa ridad en las transmisiones. El éxito de este código se basa en que cumple con todas las condiciones impuestas para la codificac ión de c aracteres: • •
•
Utiliza relaciones pa ra establecer el código. Los valores correspondientes a las letras de 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. Agrupamiento de las funciones de control, con solo analizar los dos primeros bits de una combinac ión cualquiera codificada, la computadora puede determinar si se trata de una función de control (dos ceros) o de un caracter (uno de los dos no es cero).
REPRESENTACIÓN DE LOS NÚMEROS. En este código, al igual en el EBCDIC, la representación de la información numérica contempla representar los símbolos del sistema decimal de numeración en forma binaria. Cada dígito se c odifica con 7 bits que también se encuentran asoc iados en dos grupos ZONA Y DIGITO. La zona es siempre 011 y dígito c orresponde a la representación BCD del número. Aquí surge el mismo inconveniente visto en el código EBCDIC, la dificultad para realizar operaciones matemáticas con los números representados con la ZONA, la solución es la misma que la indicada para el código anterior. C omo la mayor parte de las máquinas utilizan 8 bits pa ra cada dígito no surgen conflictos al producirse el EMPAQUE. Año 2007
Pagina Nro. 10
Sistemas de Procesamiento de Datos
U.T.N. F.R.Re.
E JERCICIOS PROPUESTOS. Completar el siguiente cuadro utilizando las tablas de ASCII y EBCDIC. Tenga en cuenta que la información codifica da se refiere a formatos internos de memoria.
Caracteres
EBCDIC Zoneado
ASCII Emp. c/signo
Hexadecimal
Octal
U.T.N. F.R.Re. Arquitectura Computadoras 17/08/2002 user -1298 +100,001 4D40D5F1405D F3F2F7D3 007423C 0063346D 492E532E492E 3430313236 062063065060 124145162155151156145 Nota: Tenga en cuenta que en la columna Caracteres la coma (del número +100,001) no se representa si se la trata como número.
2.2.2. C ODIFICACIÓN DE LAS INSTRUCCIONES. La codifica ción de las instrucciones se desarrollará cuando junto con la ARQUITEC TURA DEL PROCESADOR.
3. C ÓDIGOS REDUNDANTES. Es difícil pensar en un equipo que funcione sin fallas durante un tiempo indefinido. Para cualquier máquina se define un Tiempo Medio Entre Fallas (MTBF), el objetivo de los desarrollos tecnológicos es incrementar ese tiempo. Teniendo en c uenta esa premisa, es de esperar que la informac ión pueda verse alterada en transcurso de la transmisión o almacenamiento, si nuestro equipo tiene la posibilidad de detectar o , mejor aún, corregir esas modificaciones es evidente que aumentará la confiabilidad del mismo.
3.1.C ÓDIGOS AUTODETECTORES. Código en el que mediante un determinado número de bits de redundancia se puede detectar si la información recibida es correcta o no. El ejemplo mas clásico de este tipo de códigos es de CONTROL DE PARIDAD. Año 2007
Pagina Nro. 11
Sistemas de Procesamiento de Datos
U.T.N. F.R.Re.
C ONTROL DE PARIDAD. Este código, si bien no permite detectar errores dobles, es el mas utilizado debido a su simplicidad y a que en los ordenadores la probabilidad de que oc urra un error es muy pequeña, por lo tanto que ocurran 2 es mucho menos probable. Consiste en agregar a los bits de información transmitidos un bit mas (generalmente el primero de la izquierda), que hace que la cantidad de unos transmitidos sea PAR (PARIDAD PAR) o IMPAR (PARIDAD IMPAR).
E JERCICIOS PROPUESTOS. Los siguientes mensajes se verifican mediante un bit de paridad par (de unos) que corresponde al primer bit de la izquierda. Indique si la información es correcta, o no, en cada caso :
100010100100 011110001000 000001000100 100000001010 111110010111 000000000000 101010101010 111111111111 000111000111
Correcta Correcta Correcta Correcta Correcta Correcta Correcta Correcta Correcta
Incorrecta Incorrecta Incorrecta Incorrecta Incorrecta Incorrecta Incorrecta Incorrecta Incorrecta
Agregue el bit de paridad impar (de ceros) en los siguientes mensajes. La ubicación del bit de pa rida d es al final de la c adena de bits.
100010100100___ 011110001000___ 000001000100___ 100000001010___ 111110010111___ 000000000000___ 101010101010___ 111111111111___ 000111000111___
3.2.C ÓDIGOS AUTOCORRECTORES. Mediante el uso de estos códigos, el receptor puede determinar si la información recibida es correc ta o no y en este c aso corregir el error producido durante la transmisión.
C ONTROL 2 EN 3. Para transmitir una información cualquiera de “n” bits, se envían 3 veces esos “n” bits, en forma sucesiva. El receptor de la información, al efectuar el análisis de la misma, pueden presentársele tres situac iones distintas: I. Las tres son idénticas. La informac ión se toma como correc ta. II. Dos son iguales y una distinta. El código se c omporta c omo AUTOCORRECTOR, selecciona una de las dos iguales y la toma c omo correc ta. Año 2007
Pagina Nro. 12
Sistemas de Procesamiento de Datos
U.T.N. F.R.Re.
III. Las tres son distintas. El código se comporta como AUTODETECTOR, la máquina detecta que hay error pero no puede determinar cual es la informac ión c orrec ta.
E JERCICIOS PROPUESTOS. Ejemplifique los tres casos que se pueden dar en la transmisión de información utilizando control 2 en 3.
C ÓDIGO DE HAMMING. C ODIFICACIÓN. Estos códigos permiten detectar y corregir uno o mas errores producidos durante la transmisión pa ra pa labras de cualquier número de bits. Analizaremos el método para construir un código de Hamming para corregir un solo error. El primer paso consiste en determinar, para un código de “i” dígitos binarios de información, cuantos bits de control de pa rida d “p” son nec esarios pa ra detectar y corregir un error único. Si consideramos que tenemos i dígitos de informac ión y p bits de control y con la premisa que los casos que se pueden presentar son de ningún error o un solo error por vez, tendremos i + p + 1 condiciones que deben identificarse usando los p bits de c ontrol de paridad. Teniendo en cuenta que con p bits podemos formar 2p combinaciones, entonces la cantida d de bits de control de parida d debe ser tal que satisfaga que 2p i + p + 1 Mediante esta expresión podemos construir la siguiente tabla:
i 1 2 3 4 5 6 7 8 9 10 11 12 ..... Bits de información p 2 3 3 3 4 4 4 4 4 4 4 5 ..... Bits de control n 3 5 6 7 9 10 11 12 13 14 15 17 ..... Bits del mensaje La forma en que se distribuyen los bits de información y los de control, para conformar el mensaje, es en principio arbitraria. Analizaremos una distribución en el mensaje de la siguiente forma, considerando un mensaje de 4 bits de informac ión y que p or lo tanto necesitará 3 bits de control: Posición mensaje
7 i3
6 i2
5 i1
4 p2
3 i0
2 p1
1 p0
Los bits de control se colocan en las posiciones que corresponden a las potencias de dos. Se desea que los dígitos de control (en nuestro ejemplo 3) que indican el resultado del test de pa ridad sobre los dígitos de pa ridad, den (en binario) la posición del dígito erróneo.
Año 2007
Pagina Nro. 13
Sistemas de Procesamiento de Datos
U.T.N. F.R.Re.
Para determinar el valor que tomará cada bit de paridad se construye una tabla de combinaciones binarias de tantas columnas como la cantidad de bits de paridad determinada para la codificación. Para el caso anterior serían 3 columnas (p0, p1 y p2)
0 1 2 3 4 5 6 7
p2 0 0 0 0 1 1 1 1
p1 0 0 1 1 0 0 1 1
p0 0 1 0 1 0 1 0 1
Cada bit de paridad controla la posición que coincide con un 1 en su columna en la tabla binaria. Es decir: p0 controla las posiciones: 1, 3, 5 y 7 p1 controla las posiciones: 2, 3, 6 y 7 p3 controla las posiciones: 4, 5, 6 y 7
Para mayor ca ntida d de bits de pa rida d se agregan más columnas a la tabla. El bit de pa rida d debe hacer que la cantida d de bit unos controlados sea pa r.
NOTA IV: Para el caso de un byte (8bits) de información, corresponde un mensaje de 12 bits. C ONTROL Y CORRECCIÓN. Cuando el mensaje es enviado, el receptor calcula el valor del los bits de control de la siguiente forma:
c0 =1 c1 =2 c2 =4
3 3 5
5 6 6
7 7 7
NOTA V: los números corresponden a la posición de cada bit utilizado para el cálculo de los bits de control (ej. “3” corresponde al bit ubicado en la posición 3) y el símbolo designa la operación OR exclusiva. Si el bit de control es igual a 0 es correcto, si es 1 es incorrecto. La posición del error se determina según los valores obtenidos en los bits de control ordenados en forma decreciente, es decir c 2, c 1 y c 0. Si todos los bits de control son igual a cero no se detecta error en el mensaje.
Ejemplo: Información a transmitir: 1 1 0 1 p = 3 (2p i + p + 1) 7 6 5 4 3 2 1 1 1 0 __ 1 __ __ i3 i2 i1 p2 i0 p1 p0 p0 : 1,3,5,7 0, 1, 0, 1 (para mantener la paridad par toma el valor 0) p1 : 2,3,6,7 1, 1, 1, 1 (para mantener la paridad par toma el valor 1) p2 : 4,5,6,7 0, 0, 1, 1 (para mantener la paridad par toma el valor 0) Año 2007
Pagina Nro. 14
Sistemas de Procesamiento de Datos
U.T.N. F.R.Re.
Mensaje transmitido: 7 6 5 4 3 2 1 1 1 0 0 1 1 0 Supongamos que al rec eptor llega el siguiente mensaje: 1 1 0 1 1 1 0 Al calcular, el rec eptor, los bit de control determina:
c 0 =1 3 5 7 = 0 1 0 1 = 0 correcto c 1 =2 3 6 7 = 1 1 1 1 = 0 correcto c 2 =4 5 6 7 = 1 0 1 1 = 1 incorrecto 100(2 = 4 Indica la posición del error. c 2c 1c 0 7 1
6 1
5 0
4 0
3 1
2 1
1 0
Error en pos. 4 (se cambia el valor del bit)
E JERCICIOS PROPUESTOS. Codifique utilizando el código de HAMMING.
i8 i7 i6 i5 i4 p i3 i2 i1 p i0 p p 3
2
1
0
011010001 101010101 100000010 111100010 111000111 Verifique si los siguientes mensajes codificados según el método de HAMMING, son correctos. En caso de que exista error corregirlo.
Error en posición
Mensaje corregido
100010010001011 011001101100110 000001111000000 110011001100110 001111110001111 Mas información sobre códigos redundantes puede obtenerse en: M. Morris Mano: INGENIERIA C OMPUTAC IONAL; 1ª Edic.1991; Edit. Prentice Hall J ulio M. Perez: TEC NIC AS DIGITALES Y MIC ROELEC TRONIC A; 1ª Edic. 1985; Edit. Arbó • • •
John P. Hayes: COMPUTER ARCHITECTURE AND ORGANIZATION; 6ª Reimpresión. 1985; Edit. Mc Graw Hill
Año 2007
Pagina Nro. 15