¿Qué es PCI Express?

Pareciera que nos están obligando a cambiarnos de plataforma y algunos todavía nos preguntamos... ¿Qué es PCI Express?

Desde hace varias semanas tenemos en el mercado chileno productos PCI Express, aunque esto se remite sólo a placas madre y tarjetas de video. Son totalmente incompatibles con nuestras tarjetas AGP y PCI estándar, lo que implica un gasto extra en el upgrade (aunque algunas placas madre PCI Express tienen slots PCI estándar) y las mejores tarjetas de video aparecen sólo en formato PCI E. Pareciera que nos están obligando a cambiarnos de plataforma y algunos todavía nos preguntamos... ¿Qué es PCI Express?

Mejorando al alumno menos aventajado

Memorias DDR y DDR2, tarjetas ethernet Gigabit, discos duros de alto rendimiento, procesadores más rápidos, tarjetas de video con poder de cálculo teórico mayor incluso que el de un procesador, placas sin controlador de memoria, x86-64 y direccionamientos de mas de 16 hexabytes de memoria, 130nm, 90nm, 65nm, Hypertransport, hyperthreading, Multi-core, virtualización etc... todos han mejorado en estos 10 años y el puerto PCI se mantiene igual. En algún momento tenía que cambiar.

¿Qué es PCI?


Una definición algo gruesa sería que PCI es el canal de datos en donde se conectan los dispositivos como tarjetas de red, discos duros, etc.  Cada dispositivo (una tarjeta de sonido, tarjeta de red, tarjeta de video PCI, tarjeta usb, etc) transmite datos hacia el SouthBridge (o Host según la imagen que sacamos de por ahí) el cual lo reenvía al NorthBridge y finalmente éste lo envía al procesador. Como se puede apreciar en la figura, es un bus compartido lo que significa que sólo un dispositivo puede transmitir a la vez. Trabaja a una frecuencia de 33Mhz en un bus de 32 bits permitiendo transferir hasta 133MB/seg.

Un poco de historia

El PCI (Peripheral Component Interconnect), como lo conocemos hasta ahora, fue creado por Intel en el año 1991 el cual se volvió estándar después de una encarnizada pelea con el sistema de buses VLB (VESA Local Bus) el cual contaba con una interface mejorada con respecto al ISA antiguo, con una frecuencia de 33 mhz a 32bits.   La mayor gracia del VLB con respecto al PCI es que era una extensión del mismo bus de datos del procesador, por lo que los tiempos de acceso lo hacían un bus bastante rápido con una velocidad final igual a la del procesador y sin necesidad de hacer escalas. Pero esta misma virtud del VLB fue su propia perdición. Al estar sincronizado el procesador con los dispositivos, si el procesador cambia deberás cambiar todos los dispositivos por unos completamente distintos y más caros. Por ejemplo, si quieres upgradear tu Celeron 1800Mhz a un Pentium 4 2400Mhz entonces tendrías que cambiar también las tarjetas de video, de red, de sonido por unas compatibles con el Pentium 4 2400Mhz que por lo demás serían muchísimo más caras.  Esto permitió que el PCI lograra el estándar, ya que a medida que el bus de datos de los procesadores venideros fue creciendo, se hizo poco viable el VLB ya que el fabricar un bus de estas características era costoso y además no permitía una gran cantidad de conexiones periféricas lo que era una limitante al momento de aglutinar varios sistemas de entrada y salida dentro de un mismo pc. El PCI en cambio, a pesar de su menor frecuencia de acceso, proporcionaba gran cantidad de conexiones a una velocidad y ancho de banda decente con un costo de implementación muy bajo, acceso directo a memoria y funcionamiento asíncrono a 25 o 33mhz lo que permitía tener procesadores mas rápidos sin necesidad de aumentar la frecuencia de los buses PCI. Ademas de eso su estructura facilitó la introducción del Plug & Play (o Plug & Pray para algunos) , asignaciones DMA e IRQ dinámicas y la posibilidad de que un dispositivo pudiera tomar el control del bus para dialogar entre si con otros dispositivos disminuyendo posibilidades de conflictos y aumentando el rendimiento para aquellos periféricos que requerían de mayor ancho de banda, como: discos duros, sistemas de almacenamiento o sistemas de red. Con la introducción del PCI 2.0 en el año 1993 y la aparición del Pentium el año 1994 el PCI terminó por convertirse, definitivamente, en estándar hasta el dia de hoy.

PCI haciendo agua y las soluciones para aliviar el cuello de botella

En diez años los requerimientos crecen y hay que hacer algo al respecto. De esa forma tenemos sistemas con dos o más procesadores, puertos usb de alta velicidad, firewire, etc. El avance de la tecnología no se detiene y las necesidades de los usuarios tampoco. Pongamos un ejemplo práctico: una empresa necesita mucho rendimiento en acceso al disco para lo cual adquiere una controladora SCSI de alto rendimiento con un disco SCSI rápido. Hasta ahí podríamos decir que el bus PCI es suficiente para ese único disco SCSI, pero que pasa si ponemos una configuración de discos en RAID 5? Definitivamente el bus PCI será un gran cuello de botella pues sus 133MBytes por segundo no darán abasto para tal flujo de datos.

PCI-64 y PCI-X, soluciones para grandes servidores

Las empresas exigían una solución para sus cada vez más demandantes aplicaciones y el PCI convencional definitivamente les estaba quedando chico. Así se creó el sistema de buses PCI 64 que era básicamente el mismo PCI convencional pero con un bus de 64 bits corriendo a 66Mhz, lo que cuadruplicaba la tasa de transferencia hasta dejarlo en unos 533MBytes por segundo. Pero eso todavía era insuficiente para los grandes servidores por lo que se optó por aumentar los Mhz del bus hasta lograr subir la tasa de transferencia naciendo así el PCI-X. Se siguió aumentando la frecuencia hasta sacar la versión PCI-X 266 (o PCI-X DDR), que como su nombre bien lo dice corre a 266Mhz y alcanza la no despreciable tasa de transferencia de 2.133MBytes por segundo.

Esto pareciera resolver el problema del cuello de botella del PCI a punta de Mhz y aumentar el registro de la data, pero esto hizo que el bus PCI-X genere mucho "ruido" lo que implica sus componentes tienen que pasar estrictos controles de calidad lo que redunda en un altísimo precio que hace inviable llevar esa tecnología al escritorio del usuario común y corriente.  Además todavía hay algo que no se ha resuelto: PCI-X puede ser rápido pero sigue siendo un bus compartido lo que significa que sólo un nodo puede transmitir a la vez, creando cuellos de botella a medida que se suman más dispositivos PCI-X.

El salvavidas de las tarjetas de video

Con la entrada de los pcs en el mundo de los videojuegos, el dispositivo de video comenzó a jugar un papel importante. Fabricantes se alzaron para ofrecerle al usuario un dispositivo que liberara a la CPU y memoria ram del sistema del trabajo de procesamiento de imágenes a la vez que era capaz de manejar nuevos efectos visuales.  Como era obvio, a medida que pasaba el tiempo los juegos requerían más y más poder de procesamiento por lo que en el mercado aparecían tarjetas de video cada vez más poderosas. Pero existía una tremenda limitante: el bus PCI. La tarjeta de video tiene que enviar y recibir información permanentemente hacia la CPU. Esto debe ser fluido pues la aplicación, en este caso el juego, así lo requiere. El problema es que el bus PCI tiene un ancho de banda limitado y además compartido. Esto significa que si la tarjeta de sonido está transmitiendo (lo cual es lógico en un juego con audio) l
a tarjeta de video, por muy poderosa que sea, deberá esperar su turno para usar el bus provocando una baja de frames por segundo que afecta negativamente a la experiencia de juego. Si a eso le agregamos una tarjeta de red (en un juego lan, por ejemplo) y una controladora de disco tenemos entonces que el bus ya no se tendrá que compartir entre dos sino entre cuatro dispositivos.

NB: Northbridge, SB: Southbridge

Como se aprecia en la figura, el camino que debe recorrer la tarjeta de video para llegar al procesador es largo y tortuoso y el gran atochamiento del bus PCI no hace las cosas fáciles.  En el año 1997 Intel y otros fabricantes decidieron trasladar la tarjeta de video a una posición privilegiada dentro del sistema de buses de tal forma que tenga un rápido acceso al procesador. Así nació el puerto AGP (Accelerated Graphics Port), que fue ubicado en el olimpo del sistema: conectado al NothBridge (NB) de tal forma de tener un acceso directo con el procesador sin tener que comerse el atochamiento que significa convivir con los demás dispositivos PCI

. NB: Northbridge, SB: Southbridge

Este traslado significó una mejora tanto para la fluidez del video como también un desahogo para los demás dispositivos PCI al no tener que compartir el bus PCI con la demandante tarjeta de video. Nació entonces el conector AGP

AGP.

Y ya que estamos cambiando de ubicación el puerto entonces aprovechemos de mejorarlo. El primer AGP le dobló inmediatamente la tasa de transferencia al PCI Estándar al poder transmitir a 264MB/seg. Luego salió el AGP 2X con 528MB/seg, AGP 4X con 1 Gigabyte por seg y finalmente el AGP 8X con 2 Gigabytes por segundo.

Como se puede apreciar en el gráfico, la tasa de transferencia del AGP 8X es abrumadoramente mayor que sus predecesoras. Pero ojo, esto no significa que una tarjeta AGP 8X sea mejor que una AGP 4X sólo porque el bus permite el doble de megabytes por segundo pues hay varios factores muchísimos más importantes que la tasa de transferencia para determinar el rendimiento final de una tarjeta de video.  Un ejemplo: decir que una tarjeta de video AGP 8X me hará jugar mucho más fluido que AGP 4X es lo mismo que decir que me demoraré sólo 10 minutos en ir de Las Rejas a Plaza Italia en horario peak sólo porque el gobierno aumentó la velocidad máxima de la Alameda a 200KM/hora. Así que si un vendedor o ejecutivo de atención al cliente les dice que tal o cual tarjeta de video es buena porque es AGP 8X, sepan inmediatamente que el tipo no sabe.

Todos al Southbridge

Como hemos visto, ya le tenemos solucionada la vida a los servidores y a la tarjeta de video para los equipos de escritorio. Pero con el paso del tiempo los equipos de escritorio se han convertido en estaciones de trabajo multifuncionales con múltiples entradas USB para conectar todo tipo de periféricos (webcams, escaners, etc), varias unidades de almacenamiento de alto rendimiento (SATA), dispositivos Firewire, sonido integrado, dos conectores ethernet (una de ellas gigabit), etc. ¿Y donde va todo esto? Al atribulado bus PCI. Los distintos fabricantes han desarrollado alternativas para evitar el cuello de botella que significaría tener tantos dispositivos luchando porque el Southbridge los mande camino al procesador. La solución es bastante parche pero efectiva: integrarlos directamente en el Southbridge de tal forma de evitarse el taco.

Esta práctica recarga al Southbridge pero evita que el dispositivo desaproveche rendimiento producto de la espera en el bus PCI. De esto se desprende que si tu placa madre tiene dos controladoras SATA, prefiere siempre la que viene integrada en el Southbridge. Dado que ahora el Southbridge no sólo tiene que manejar la señal PCI sino que ahora tiene más dispositivos integrados pujando al mismo tiempo por llegar al Northbridge, fabricantes como VIA, SIS, Nvidia e Intel se vieron en la necesidad de mejorar el enlace Southbridge <-> Northbridge. Así nació el Vlink de VIA, SIS se matriculó con el MultiOl, Intel y su AHA (Accelerated Hub Architecture) son adaptativos y en cada nueva revisión van mejorando. Ahora se suma el Hypertransport de AMD con 1GB por segundo y aumentando. Todos son buses propietarios dependientes del chipset y el comprador puede elegir el que más le acomode a sus necesidades.

PCI Express, redibujando el bus de datos

Los desarrolladores de chipset han tratado de alivianar el bus pci linkeando directamente controladores al Southbridge, al mismo tiempo que lanzan soluciones de alta velocidad para conectar el SouthBridge con el Northbridge. El puerto AGP no fue una solución completa sino que un escape para la tarjeta de video. PCI-X sólo maximizó el ancho de banda, pero quedó latente la problemática del bus compartido al punto que por cada dispositivo extra que se conecta al puerto PCI-X hace al sistema menos eficiente.

PCI Express, conexión punto a punto

PCI Express no es un parche o una solución de emergencia. Es un cambio radical en el sistema de buses PCI estándar y viene a cubrir las necesidades de distintos segmentos de mercado pues por su bajo costo puede satisfacer tanto a usuarios caseros como a servidores. Además, gracias a la homologación de la arquitectura no tendremos un puerto AGP y otro PCI, sino que todos serán PCI Express. Para llegar a todos los mercados se debe encontrar una solución de bajo coste. Esta se logra gracias a la serialización del bus a fin de necesitar menos pistas en las placas.  Otro punto a favor es el hecho de generar conexiones dedicadas hacia el Southbridge, de esta forma cada conexión tendrá su propio enlace para llegar directamente al SB.

Y ya que se están haciendo cambios tan drásticos aprovecharon de modificar y mejorar uno que otro defecto o carencia del PCI Estándar. Por ejemplo, la tasa de transferencia del PCI estándar no se ha modificado por años, en cambio con PCI Express se podrán agregar nuevas "rutas" (o lanes) al enlace a fin de aumentar la tasa de transferencia sin tener que esperar otra revolución tecnológica. También está la opción de conexión y desconexión en caliente (hot swap, desconectar un dispositivo mientras el equipo está prendido) para el usuario de escritorio, característica que ante que era privilegio del PCI-X de los servidores.  Los gamers y overclockeros podrán contar con un voltaje mayor al proporcionado por el AGP 8X lo que permitirá alcanzar mayores niveles de overclock al mismo tiempo que las tarjetas de video que más consuman podrían prescindir de un molex especial.

¿Qué tan rápido transmite PCI Express?

PCI Express 1x transmite a 250MB por segundo de ida y de vuelta con lo que un disco SATA (150MB por segundo) puede vivir tranquilo. ¿Pero eso
es suficiente? Si agregas otra ruta (lane) obtienes PCI Express 2x que nos da 500MB por segundo. ¿Eso es todo? No señores. A medida que doblamos el número de rutas también doblamos la tasa de transferencia, al punto que el PCI Express 32x puede llegar a la friolera de 8GB por segundo

.

Lo bueno de todo esto es que nuestro bus PCI Express puede componerse de varios conectores a velocidades distintas (recordemos que son conexiones punto a punto). Así, pueden convivir sanamente un dispositivo PCI Express 1x para una tarjeta de red gigabit al lado de un PCI Express 16x de tarjeta de video y más allá un PCI 32x para una controladora de discos de alto, muy alto rendimiento. Si lo comparamos con los buses PCI estandar, PCI-X y AGP 8X tenemos lo siguiente:

Pero eso no es todo. Cada ruta puede transmitir 250MB por seg de subida y 250MB por seg. de vuelta. De esa forma podríamos tener teóricos 500MB por segundo por cada ruta del PCI Express (o mejor dicho, por cada x). Altísimas tasas de transferencia sumados a la eficiencia de trabajar con conexiones punto a punto auguran un alto rendimiento para dispositivos que exijan al bus da datos. Una tarjeta de red gigabit pci express podría estar transmitiendo data a toda su capacidad mientras una controladora de discos SATA hace lo mismo, algo impensado aún para el bus PCI-X de los servers. Y de aquí sale otra interrogante: ¿será capaz el Southbridge de soportar tal flujo? El enlace que une el Southbridge con el Northbridge es propio de cada fabricante de chipset. Tenemos soluciones propietarias de SIS, VIA, Intel y Nvidia que son capaces de transmitir a tasas de 1 gigabyte por segundo, más que suficiente para el PCI estándar pero con la llegada del PCI Express no dará abasto. AMD ya está introduciendo la tecnología Hypertransport, nombre rimbombante para el enlace de alta velocidad que parte a 1GB por segundo y sigue en aumento a medida que salen nuevas revisiones. Por ahí incluso se dice que podría salir un chipset para servidores duales Opteron capaz de trabajar con dos enlaces Hypertransport y aprovechar plenamente la dualidad que nos da el poder de dos procesadores. El cuello de botella se ha trasladado más arriba, pero no tendremos que esperar otros diez años para encontrar una solución pues depende de la tecnología que implemente cada fabricante.

PCI Express 16x, el reemplazo del AGP 8x

Todo este cambio legó uniformidad al sistema de buses. Gracias a ello ahora no tenemos dos conectores tan distintos como el AGP y PCI, sino que todo es PCI Express. La tarjeta de video mantendrá su sitial privilegiado codeándose con los ricos y famosos: la memoria ram y el procesador. Eso si, ahora tendrá una conexión de altísima velocidad para acceder al NortBridge. Ojo, el paso de AGP 8x a PCI Express 16x no da ninguna ganancia extra de rendimiento como lo quieren hacer parecer las grandes empresas de hardware. De la misma forma que el paso del AGP 4x a AGP 8x no se sintió realmente, nuevamente tenemos un bus mucho más rápido que no se aprovecha.  Pero no todo está perdido: el hecho de trabajar con conexiones punto a punto permite también unicar dos conectores PCI Express 16x conectados directamente al NorthBridge con el objeto de tener dos tarjetas de video y combinar poder de procesamiento. De esta forma se puede mejorar el rendimiento de las cada vez más exigentes aplicaciones 3d. Además tenemos la mejora del voltaje con lo que las tarjetas podrían alcanzar mejores frecuencias (en algunos casos mejor margen de overclock).

¿Se pueden comprar productos PCI Express en el mercado?

Desde hace varias semanas que el mercado chileno ofrece a sus compradores la posibilidad de llevarse a su escritorio una configuración PCI Express. Intel fue el primero en meter esta nueva tecnoligía al mercado con sus placas madre basadas en los chipsets Intel 915 e Intel 925. Por su parte, AMD entró después con chipset desarrollados por terceros como el Nforce4 de Nvidia y el VIA KT890Pro. Tarjetas de video PCI Express 16x las puedes encontrar con precios que van desde 80 mil pesos hasta sobre 300 mil pesos. Eventualmente puedes sentirte pudiente y comprar dos tarjetas de video de la serie GeForce 6XXX con capacidad para conectarse entre ellas (tecnología SLI de Nvidia) y mejorar el poder de proceso.  Más dispositivos que eso no hay todavía en nuestro mercado pero son suficientes. Los demás componentes están integrados: Controladora de Red de un Gigabit, sonido 6.1, usb, firewire y controladora de discos SATA. A medida que PCI Express se haga masivo comenzaremos a tener tarjetas PCI Express independientes de todo tipo en reemplazo de las fieles PCI convencionales.

¿Qué pasará con las actuales tarjetas PCI convencionales?

Los conectores PCI Express son físicamente incompatibles con los AGP y PCI convencionales así que por más que te esfuerces no podrás hacer calzarlas.

Tarjetas de video de distintos conectores.

Varias placas madres PCI Express cuentan con conectores PCI convencionales como para mantener tus dispositivos. Si tienes una tarjeta PCI que te es muy útil y no puedes reemplazarla por un integrado PCI Express, pues busca una placa madre PCI E con conectores PCI y asunto arreglado

. Placa Madre Asus A8N SLI PCI Express con tres conectores PCI convencionales.

PCI Express en el área de servidores

Después de tanta maravilla que hemos hablado es lógico pensar que dicha tecnología pasará al área de los servidores. Como ese mercado se mueve lento la migración no se llevará a cabo de un día para otro, pero de que llegará, llegará. Ya Intel ha anunciado una plataforma PCI Express para su línea de productos Xeon orientados a empresas y AMD ya tiene a sus Opteron trabajando con el nuevo bus PCI E.

Placa Madre Tyan Thunder K8WE para AMD Opteron con sistema de bus PCI Express además de contar con conectores PCI convencionales y PCI-X. Más info acá

Placa Madre Tyan Thunder i7525 para Intel Xeon con sistema de bus PCI Express además de contar con conectores PCI convencionales y PCI-X. Más info acá

Con los conectores dedicados, el rendimiento no se perderá aún cuando conectemos uno o más dispositivos. De esta manera podríamos tener dos tarjetas de red gigabit y dos controladoras SCSI o, aún mejor, un conector hacia un storage externo. Todos ellos transmitiendo independientemente.  La lógica indica que PCI Express puede evolucionar para el área de servers tal como lo hizo el PCI convencional. Podríamos ver PCI Express a 64 bits y 533Mhz por ruta: serían carísimos pero imbatibles en performance, tal como lo necesitan los grandes servidores.

¿Software especial para PCI Express?

Para nada. El bus es una caja negra para el sistema operativo y para el software así que no tienes por qu

powered byDisqus