organizacion de computadoras - cs.uns.edu.arcs.uns.edu.ar/~ags/oc/downloads/apuntes de...

3

Click here to load reader

Upload: docong

Post on 25-Sep-2018

212 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Organizacion de computadoras - cs.uns.edu.arcs.uns.edu.ar/~ags/OC/downloads/APUNTES DE PRÁCTICA/Apunte-LR… · Organizacion de computadoras Departamento de Ciencias e Ingenier a

Organizacion de computadorasDepartamento de Ciencias e Ingenierıa de la Computacion

Universidad Nacional del SurSegundo Cuatrimestre de 2018

Anexo 3Apunte sobre LRC y CRC

Longitudinal Redundancy Checking (LRC)

El chequeo a nivel de palabra individual se suele referir como vertical, o bien Vertical Redun-dancy Checking (VRC), dado que el ancho del codeword se incrementa con los bits redundantes.

Una alternativa mas eficiente que un simple bit de paridad, para actuar sobre un conjuntode palabras en el que se puede producir un burst de error, es usar Longitudinal RedundancyChecking (LRC). Se organiza el dato en k filas por n columnas, incorporando una palabrachecksum al final del conjunto de palabras transmitido.

Para armar este checksum se computa la paridad para cada columna, obteniendo ası los nbits redundantes. Este checksum sera recalculado y comparado en el destino; de no coincidir,se habra detectado el error en la transmision. Se puede ver que con este esquema, un burst enerror de longitud menor o igual a n podra ser detectado.

Conceptualmente un burst de longitud x esta delimitado por dos posiciones en error extre-mas j e i, tal que j − i = x− 1. Las posiciones intermedias k, con j < k < i, podran estar o noen error y ser detectadas.

Cyclic Redundancy Checking (CRC)

Otro metodo superior al LRC, que es muy empleado en la deteccion de error en un bloque deinformacion, es el Polynomial Code, conocido tambien como Cyclic Redundancy Check (CRC).

Una cadena de bits es considerada como la representacion de los coeficientes de un polinomio,con valores 0 o 1. De tal forma, un frame de k bits se asocia a la lista de coeficientes de unpolinomio con k terminos, desde xk−1 hasta x0. Este polinomio tendra grado maximo k − 1.Ası, a tıtulo de ejemplo, 110001 tiene 6 bits y representa un polinomio con coeficientes 1, 1, 0,0, 0 y 1: x5 + x4 + 1.

La aritmetica a emplear para la suma y resta es en modulo 2, no hay ni carries para lasuma ni borrows para la resta. Ambas resultan equivalentes al xor (⊕) de los bits de ambosoperandos. La division se desarrolla de la forma conocida salvo que:

Se trabaja para la resta en modulo 2.

Las magnitudes de divisor y dividendo no cuentan en la determinacion de si esta o nocontenido el divisor en el dividendo. Todo lo que interesa es que el numero de bits deldivisor, el cual comienza con un 1, se corresponda (sea igual) al numero de bits deldividendo, el cual para la comparacion se requiere comience con un 1.

El transmisor y el receptor coinciden de antemano en un polinomio generador G(x) de grador, con r + 1 bits y la restriccion de que tanto el bit de mayor orden como el de menor ordensean 1. A partir de un frame M(x) de m bits, la idea es incorporar un checksum al final delframe de forma tal que el frame resultante sea divisible por G(x). Si al dividir por G(x) a esteframe el receptor obtiene un resto distinto a cero, se detecta el error de transmision.

1

Page 2: Organizacion de computadoras - cs.uns.edu.arcs.uns.edu.ar/~ags/OC/downloads/APUNTES DE PRÁCTICA/Apunte-LR… · Organizacion de computadoras Departamento de Ciencias e Ingenier a

Algoritmo

1. Si G(x) es de grado r, agregar r ceros a derecha de M(x), low order, el cual contendra detal forma n + r bits, y correspondera al polinomio xrM(x).

2. Dividir el polinomio xrM(x) por G(x), usando el esquema de division modulo 2 comentadoanteriormente.

3. El resto R(x), el cual tendra un numero de bits n ≤ r, constituye el CRC de M(x).

4. El frame a ser transmitido, al cual denominamos T (x), es M(x)R(x).

A continuacion, analizaremos la ejecucion del algoritmo anterior sobre un caso en concreto.Sean M(x) = 1101011011 (m = 10) y G(x) = 10011 (r = 4). El primer paso consiste en calcularxrM(X):

xrM(x) = 1 1 0 1 0 1 1 0 1 1 0 0 0 0

Luego, se debe operar empleado la aritmetica modulo dos:

1 1 0 1 0 1 1 0 1 1 0 0 0 0⊕ 1 0 0 1 1

0 1 0 0 1 1⊕ 1 0 0 1 1

0 0 0 0 0 1 0 1 1 0⊕ 1 0 0 1 1

0 0 1 0 1 0 0⊕ 1 0 0 1 1

0 0 1 1 1 0

Notese que el cociente, el cual se descarta, resulta 1 1 0 0 0 0 1 0 1 0 y el resto R(x) es 1 1 1 0.Finalmente, el frame a transmitir es entonces:

T (x) = M(x)R(x) = 1 1 0 1 0 1 1 0 1 1 1 1 1 0

En caso de producirse un error de transmision, el frame recibido puede verse como T (x) +E(x), donde el polinomio E(x) tendra un 1 en aquellas posiciones en las cuales se produjo errory un 0 en las restantes.

En cuanto a la capacidad de deteccion del CRC, dado que G(x) divide a T (x), la posibilidadde deteccion depende de que G(x) no divida a E(x). Con G(x) de longitud al menos 2 bits,resulta claro que un error sera detectado dado que no puede dividir a xi (E(x)), asumido elerror en la posicion i. Ademas, cualquier burst de longitud menor o igual a r, grado de G(x),sera siempre detectado. Esto es ası pues, para una longitud k del burst y posicion de comienzoi, se tiene:

E(x) = xi(xk−1 + xk−2 + . . . + x0)

Dado que G(x), con r + 1 ≥ 2 no divide a xi, y que tampoco G(x) con grado r podra dividir aun polinomio con grado r − 1, se concluye que el cociente tendra resto no nulo.

Para el caso en que la longitud del burst sea de r+1 bits, la posibilidad de que el error no seadetectado depende de que E(x) sea estrictamente igual a G(x) pues, segun la descomposicionanteriormente realizada para E(x), se estara haciendo el cociente entre dos polinomios de igualgrado. Observese que la posibilidad de que coincida con el polinomio generador, en cuyo casono serıa detectado el error, sera 2−r+1, asumiendo igual probabilidad de error para todos los

2

Page 3: Organizacion de computadoras - cs.uns.edu.arcs.uns.edu.ar/~ags/OC/downloads/APUNTES DE PRÁCTICA/Apunte-LR… · Organizacion de computadoras Departamento de Ciencias e Ingenier a

bits dado que exige coincidencia en las r − 1 posiciones internas (los extremos coinciden en 1por la definicion de burst y por las restricciones al G(x) en cuanto a que el coeficiente a0 y arsean 1). Por ende, la probabilidad de detectar el burst en error es 1 − 2−r+1.

Para los restantes casos, con longitudes l > r+1, vamos a demostrar que la probabilidad deno detectarlo desciende a la mitad, esto es 2−r, cualquiera sea la longitud del burst. Por ende,la probabilidad de detectar el error es en este caso 1−2−r. Para ello deberemos tener en cuentaque la funcion logica xor trata a los ceros y unos por igual, a diferencia del and que privilegiael 0 y del or que privilegia el 1. Por ello, el analisis de todos los valores posibles de un burstcon l > r + 1, lo podemos realizar a partir de las exigencias sobre el ultimo dividendo parcialque enfrente el proceso de division, esto es, para el calculo del q0. La unica posibilidad de queel resto sea cero es que este dividendo, de la forma dr, dr−1, . . . , d1, d0, asegure la coincidenciacon los r primeros bits de G(x), gr, gr−1, . . . , g1, dado que se sabe de antemano que en la ultimaposicion g0 se tiene necesariamente una coincidencia en 1 con d0, por lo cual la probabilidadde no ser detectado estara dada por 2−r, y la de detectar el error 1 − 2−r, como querıamosdemostrar.

Construccion de Codigos Cıclicos

Sea k la longitud del mensaje que se desea transmitir, y n la longitud del frame resultantede combinar ese mensaje con el checksum correspondiente. En este contexto, resulta interesanteanalizar bajo que condiciones se puede encontrar un codigo cıclico para el par (n, k). Matemati-camente se puede demostrar que cuando G(x) es un polinomio de grado n − k tal que resultauno de los factores del polinomio xn + 1, G(x) generara un codigo cıclico para (n, k), inclusoindependientemente de cual de los factores de grado n− k tomemos.

Para considerar un caso en concreto, consideremos el polinomio x15 + 1, el cual se factorizade la siguiente manera:

x15 + 1 = (x4 + x + 1) × (x4 + x3 + 1) × (x4 + x3 + x2 + x + 1) × (x2 + x + 1) × (x + 1)

En este caso en concreto, cada uno de los factores de grado 4 encontrados constituye un poli-nomio generador de un codigo cıclico para (15, 11), mientras que el producto de cualesquierados de estos factores de grado 4 constituira un polinomio generador para (15, 7) (puesto que elgrado del polinomio generado resultante sera 8).

Como puede observarse, para grandes valores de n, xn + 1 puede contener muchos factoresde grado n− k, algunos de los cuales daran lugar a buenos codigos, pero otros tambien puedendar lugar a codigos no tan utiles.

Como elegir los factores a combinar, de forma tal que resulte un codigo interesante, no esuna tarea facil. Un cierto numero de estos codigos cıclicos con un comportamiento atractivoya han sido descubiertos, como Hamming, el codigo BCH o el codigo Reed-Solomon, quienescuentan en la actualidad con numerosas aplicaciones practicas.

3