Señalización diferencial

El otro día al hablar de las diferentes versiones del bus PCI, surgió este concepto. Pero, ¿a qué se refiere?.Ya hemos comentado en alguna ocasión que el ancho de banda de un bus está directamente relacionado con su frecuencia de funcionamiento. Pero entonces, para tener buses capaces de transferir más información por ciclo, ¿por qué no incrementar la frecuencia indefinidamente?.

El problema está en el ruido eléctrico que se genera entre las diferentes líneas que componen el bus. Es decir, este ruido y las interferencias que genera, también son proporcionales a la frecuencia de funcionamiento del bus. Así que, al diseñar el bus, aunque nos interesa que la frecuencia sea lo más alta posible, son las interferencias entre líneas (que acabarían haciendo que confundiéramos ceros con unos y unos con ceros) las que nos limitan este valor.

Si os fijáis, todos los buses clásicos funcionan a frecuencias en el orden de los MHz. Y sin embargo los buses nuevos como Hipertransporte o PCIExpress, funcionan a GHz. ¿Cómo se ha conseguido subir tanto la frecuencia sin tener problemas con el ruido?. Gracias, entre otras cosas, a la utilización de la señalización diferencial.

Para entenderlo bien, lo mejor es utilizar un ejemplo. Suponed que queremos un bus que transmita 16 bits de información. Con la señalización clásica, esto supondría incluir en el bus 16 líneas de datos. Para saber si cada una de ellas transmite un 0 o un 1, basta con comparar la tensión que lleva la línea con la tierra del sistema.

Supongamos en este ejemplo que el 0 lógico son 0 V y el 1 lógico son 5 V. Si queremos transmitir 16 unos, las 16 líneas de datos llevarán 5 V. Pero si existe alguna interferencia en el sistema, que por ejemplo reste alrededor de 3 V (es sólo un ejemplo!) a la tensión en las líneas, este valor puede llegar a disminuir tanto que alguno de estos 1’s se confunda con un 0.

En el caso de la señalización diferencial, por cada bit se utilizan dos líneas, así que en nuestro ejemplo nos harían falta 32 líneas de datos. Para saber si en un par de líneas hay un 0 lógico o un 1 lógico, basta con restar la tensión que hay en ambas. Por ejemplo, si una línea lleva 10 V y su par lleva 5 V, como la diferencia es 5V, eso se interpreta como un 1.

¿Qué ganamos con esto?. En el ejemplo de antes, si hay un ruido que resta 3 V a las líneas del bus, la que llevaba 10 V se queda en 7 V y su par pasa de 5 V a 2 V. Como la diferencia entre ambas sigue siendo alrededor de 5 V, se sigue interpretando correctamente el 1 lógico.

Es decir, tenemos un sistema para transmitir información que es mucho más robusto frente al ruido y que por lo tanto nos permite aumentar en gran medida la frecuencia de funcionamiento de los buses. A cambio, por cada bit de información, necesitaremos dos líneas de datos en el bus, por lo que suele tratarse de buses que transfieren menos datos en cada ciclo (si no, serían demasiado anchos).

No hay comentarios: