¿Qué es PCI Express?
Desde hace varias semanas tenemos en el mercado 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.
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) la 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.
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.
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.







Citar





Felicidades por el manual, esta muy bueno, solo que con unos cuantas confusiones.