¿Por qué necesitamos codificación de bits cuando usamos 8b/10b?

Quiero hacer lo contrario de esta pregunta.

Aquí está el propósito de los codificadores de bits:

  • Cifrar, pero los codificadores de bits LFSR (y otros usados) se pueden romper .
  • Recuperación de reloj, pero lo hace el 8b/
  • DC offset, pero lo hace el 8b/10b.
  • (¿Hay alguno?)

¿Por qué necesitamos codificación de bits cuando usamos 8b/10b?

¿La codificación mejora la resistencia a la pérdida de varios bits seguidos debido a un solo evento de ruido?
@tomnexus No lo creo. Por ejemplo, los CRC pueden detectar secuencias de ráfagas más largas que los errores distribuidos. Ayudaría a distribuir errores de ráfaga entre bloques de datos separados (como los que se usan en los CD-ROM), pero en tal situación no hay ninguna ventaja en la codificación; solo puede usar un patrón de intercalado fijo. Sin embargo, podría ser alguna forma de detección/recuperación de errores que estoy pasando por alto.

Respuestas (2)

Para referirse a la pregunta original, en SATA se usa para reducir el EMI emitido por el bus. Si observa la forma en que funciona la codificación 8b/10b, verá que es muy posible tener la misma palabra 10b codificada en todo el mensaje para ciertos valores de entrada 8b.

Por ejemplo, la entrada 00100011 siempre se codifica en 1001110001. Por lo tanto, un mensaje que consta completamente de 0x23 bytes creará una secuencia repetitiva de:

1001110001100111000110011100011001110001...

Esta secuencia periódica concentra la energía de la señal en un pequeño número de armónicos. Dada la forma en que se realizan las pruebas de EMC (observando las emisiones dentro de bandas estrechas), básicamente te estás haciendo la vida más difícil al permitir que la energía general se concentre de esta manera. Al codificar los datos, elimina estadísticamente este tipo de ocurrencias periódicas y se asegura de que la energía de la señal siempre se distribuya de manera uniforme en el ancho de banda del canal disponible.

Hay secuencias de bytes, lo que produce el mismo efecto también con la codificación de bits. (Descifrar una secuencia de bytes de los mismos bytes). Pero probablemente sea cierto que enviamos los mismos bytes con más frecuencia que enviar esta secuencia de bytes especial.

He encontrado otro aspecto en el documento de UG476 Xilinx.

El modo DFE se debe considerar cuidadosamente en aplicaciones 8B/10B o donde no se emplea la codificación de datos. Para adaptarse correctamente a los datos, la adaptación automática en el modo DFE requiere que los datos entrantes sean aleatorios. Por ejemplo, en una aplicación XAUI, los datos de la carga útil del usuario no están codificados y están codificados en 8B/10B. Si bien la carga útil del usuario generalmente es aleatoria, el contenido de frecuencia de los datos está inherentemente limitado por la codificación, y no hay nada definido en el protocolo para evitar que ocurran patrones repetidos. Estos patrones repetidos pueden hacer que los algoritmos de adaptación automática se alejen de la configuración de ecualización ideal.