lunes, 29 de noviembre de 2010

Todo lo que hay que saber sobre PCI Express (parte II)

En la primera entrega de este tutorial vimos los conceptos básicos del bus PCI Express, incluyendo sus orígenes y sus diferencias con el bus PCI original. En esta ocasión analizaremos detalladamente por qué la comunicación serial de PCI Express es más veloz que la comunicación paralela de las tecnologías de bus tradicionales de la PC.

Casi todos los buses de PC (ISA, EISA, MCA, VLB, PCI y AGP) usan comunicación paralela, en la cual los bits se transmiten de a muchos por vez, en lugar de transmitir sólo un bit por vez, como ocurre en la comunicación serial. Este hecho hace que, en principio, la comunicación paralela sea más rápida que la serial, debido a que, cuantos más bits se transmitan por vez, más veloz será la comunicación.

Pero la comunicación paralela sufre de algunos problemas que impiden que las transmisiones alcancen mayores velocidades. Cuanto mayor sea la frecuencia de reloj, mayores serán los problemas con la interferencia magnética y las demoras en la propagación.

Cuando el flujo de corriente eléctrica pasa a través de un cable, un campo electromagnético se crea a su alrededor. Si el campo electromagnético creado por el cable resulta ser muy fuerte, dicho campo genera ruido en los cables contiguos, corrompiendo la información que se transmite. Dado que en la transmisión paralela varios bits se transmiten por vez, cada bit involucrado en la transmisión usa un cable. Por ejemplo, en una comunicación de 32 bits (como es el bus PCI), es necesario tener 32 cables sólo para transmitir datos, sin contar señales adicionales de control que también son necesarias. Cuanto mayor sea la frecuencia de reloj, mayor será el problema de interferencia electromagnética.

En un cable PCI, es casi imposible lograr que los 32 cables que conducen los datos tengan exactamente la misma longitud. En las PCs más antiguas, las diferencias en la longitud del cable no alteraba la forma en que operaba el bus, pero debido a la mayor velocidad con que se transmiten los datos en las PCs más recientes, los bits que viajaban por los cables de menor longitud comenzaban a llegar antes que los que se trasladaban por los cables más largos. En otras palabras, los bits en una comunicación paralela comenzaban a llegar fuera de orden.

Como consecuencia, el dispositivo receptor debía esperar a que todos los bits llegaran para poder procesar los datos, lo cual representaba una pérdida significativa de performance. Este problema se denomina demora de propagación, y se empeora cuando se incrementa la frecuencia de las transmisiones.

La solución de un bus basado en comunicación serial es mucho más simple de implementar que uno que emplea comunicación paralela, dado que sólo se necesitan dos cables para transmitir los datos (un cable para los datos y otro para la conexión a tierra). Además, la comunicación serial permite una operación con frecuencias mucho más altas que las de la comunicación paralela, al no verse tan afectada por los problemas de interferencia electromagnética y de demora de propagación como la comunicación paralela.

Otra diferencia entre la comunicación paralela y la serial es que la paralela es usualmente half-duplex (los mismos cables se usan para enviar y para recibir datos) debido al alto número de cables necesarios para su implementación, mientras que la comunicación serial es full-duplex (se usan conjuntos separados de cables para enviar y para recibir datos), gracias a que necesita sólo dos cables.

Es por todas estas razones que los ingenieros que desarrollaron PCI Express decidieron adoptar una tecnología de comunicación serial en lugar de una de comunicación paralela.

En la próxima entrega de este tutorial sobre PCI Express analizaremos los varios modos de operación del bus y los tipos de slots que ofrece.

No hay comentarios: