diarioelectronicohoy.com » Optimización del rendimiento de sistema con PCIe


Optimización del rendimiento de sistema con PCIe

Los switches Gen 2 PCIe están optimizando el rendimiento de sistema de múltiples maneras. PCIe 2.0 dobla el ratio de datos de enlace y sus innovadoras características contribuyen a superar los problemas y las limitaciones de componentes encontrados en los primeros sistemas PCI Express (PCIe).

Las latencias largas de respuesta de lectura que reducen el rendimiento I/O agregado se pueden producir en sistemas PCIe ‘centrados en host’, incluso cuando un punto final lee de forma agresiva para garantizar que nunca “pasará hambre” de datos. La nueva generación de switches PCIe puede prevenir esta forma de degradación de rendimiento.

Creación de congestión
En una aplicación centrada en host, el enlace de host, aunque sea un punto de agregación, no suele ser tan amplio como la suma de los anchos de todas sus conexiones de puerto downstream, creando así congestión. En un sistema en el que se utilizan puntos finales mixtos para generar peticiones de lectura en el host con diferentes ratios, el punto de final de lectura más agresiva puede causar congestión y, consecuentemente, degradación de rendimiento de los puntos finales menos agresivos.

Los actuales procesadores y ‘north bridges’ (NB) no disponen de mecanismos para proteger ante puntos finales agresivos o no autorizados que pueden degradar seriamente el rendimiento de sistema al causar congestión de esta manera.

El problema general de un punto final agresivo, que lee más datos de lo que es requerido para ocultar la latencia del viaje de ida y vuelta (round-trip) en el ‘root complex’ (RC), se agrava cuando un puerto estrecho solicita grandes bloques de datos que no puede abrir con el ratio que puede ofrecer un puerto de amplio upstream, como se muestra en la Figura 1a.

Estos datos se pueden guardar en el switch hasta que se consuma todo el crédito de control de flujo. En este punto, el RC no puede enviar conclusiones de lectura a cualquier punto final, sino solamente al que está ‘back-logged’.

Las actuales implementaciones RC agravan el problema al atender a solicitudes de lectura downstream desde una sola cola FIFO. Cuando muchas solicitudes de lectura desde un “solicitante” agresivo hacen cola en el RC, la latencia para nuevas peticiones desde otros puntos finales se incrementa proporcionalmente. Con varias colas, el RC podría limitar el ratio al que sirve a cualquier punto final con el objetivo de completar las peticiones y permitir que las solicitudes desde diferentes dispositivos pasaran del uno al otro.

Desafortunadamente, no existen mecanismos de arquitectura PCIe para compartir tráfico o limitar el ratio. Dada la escasa viabilidad de rediseñar el RC, un usuario puede intentar configurar el comportamiento de lectura de los puntos finales para que sean menos agresivos. La única posibilidad parece ser la reducción del máximo tamaño de petición de lectura. Esto puede ayudar, pero no es una solución completa.

La especificación PCIe prohíbe los puntos finales desde terminaciones de control de flujo. Como se requiere un punto final para reservar los buffers suficientes para todos los datos de lectura, puede consumir los datos desde un enlace PCIe a velocidad ‘wire’ al retornar. Esto funciona bien si la fuente y el ‘sink’ tienen el mismo ancho de banda, pero no solventa el problema cuando, muy a menudo, la fuente (host) tiene una conexión más amplia o ancha que el punto final. En este caso, algunos datos de la terminación de lectura se guardan en el switch y causan congestión si todos los buffers se han consumido.

Por lo tanto, parece obvio que se requiere una solución que controle el comportamiento de los puntos finales en relación con una “solicitud de lectura” que va hacia el host. Como un switch PCIe es un dispositivo intermediario entre el NB y los puntos finales, puede ser el elemento decisivo a la hora de gestionar este comportamiento.

Una nueva característica de los modelos PCIe Gen 2, denominada Read Pacing, resuelve el problema antes descrito. La especificación PCIe permite que los escritos posteados eludan las peticiones de lectura. En Read Pacing, las solicitudes de lectura se retardan en el switch para evitar que bloqueen a otros dispositivos en el NB y limitar el tamaño de la cola en el propio switch. En este contexto, el exceso es más que necesario para enmascarar la latencia ente el punto final y la memoria en el RC.

Los conmutadores PCIe Gen 2 con capacidad Read Pacing se encuentran disponibles en un amplio rango de configuraciones flexibles de puertos y lanes: desde tres puertos y doce lanes a cuarenta y ocho lanes y doce puertos.

La Figura 1b ilustra un sistema simplificado con dos puntos finales conectados al host a través de un NB. No obstante, este ejemplo es aplicable a cualquier número de puntos finales y cualquier tipo de interface. Aquí, al poner en marcha la función Read Pacing se limita el número de solicitudes de lectura enviadas a la CPU desde un adaptador de bus de host (HBA) Fibre Channel, que es un lector agresivo, para fomentar la conservación de mejor conservación de puntos finales, como una tarjeta de adaptador de red (NIC) GbE, y obtener las terminaciones de modo más rápido. Con el exceso de peticiones de lectura en el puerto de ingreso de HBA del conmutador en lugar del NB, la tarjeta NIC logra una latencia mucho menor y, por consiguiente, ofrece un elevado rendimiento. Ahora, como sólo las peticiones excesivas se retardan, las prestaciones del HBA permanecen inalteradas.

Función ‘Read Pacing’
La implementación que ilustra la Figura 2 muestra que hay dos métodos para controlar o marcar el ritmo de las peticiones de lectura al host. El primero es establecer espacios entre las solicitudes upstream enviadas desde cada puerto downstream, por lo que el NB no tiene tiempo para intercalar peticiones de otros puertos (puntos finales). El segundo es crear un límite que defina el nivel de solicitudes considerado como excesivo.

El umbral Read Pacing es la cantidad acumulada de datos de finalización de lectura que el puerto de punto final ha pedido, pero que no ha recibido. El límite óptimo va acorde al retardo del viaje de ida y vuelta entre el punto final y la memoria de sistema, así como al ancho de banda de los enlaces PCI del host y los puntos finales.

Tras alcanzar el umbral de lectura en un puerto, las peticiones posteriores para ese puerto quedan es espera para completar los datos. Si se produce un número muy elevado de solicitudes de lectura en el propio switch, se elimina el retorno de más crédito de flujo de control no posteado al punto final con el objetivo de evitar presiones en el “solicitante” de lectura.

La característica Read Pacing de los switches Gen 2 se “desconecta” por defecto, pero todos aquellos usuarios que requieran de sus ventajas pueden hacerlo mediante los ciclos de configuración a través de I²C, configuración en banda o una EEPROM opcional.

PLX ha llevado a cabo varias pruebas para medir el rendimiento con la característica Read Pacing en puntos finales de naturaleza volátil. Los resultados muestran un incremento en las prestaciones entre diez y cien veces, aunque varían según la configuración, el número de puertos y el tipo de puntos finales.

Protección ante puntos finales no autorizados
Además de ofrecer mejoras en rendimiento, Read Pacing permite a los usuarios crear una protección ante puntos finales ‘no conformes’, hiperactivos, con mal comportamiento o ‘no autorizados’ al limitar sus solicitudes de lectura por debajo de un umbral determinado. Esto contribuye a mejorar la calidad de servicio (QoS).

En el gráfico de la Figura 3 se observa que un switch Gen 2 PCIe PLX fue testado sin la función Read Pacing cuando se estaban generando un gran número de peticiones de lectura desde una tarjeta Catalyst Exerciser a un punto donde el rendimiento de NIC se reducía a menos de 10 Mbps, desde 170 Mbps. Después de poner en marcha Read Pacing, las prestaciones de la NIC retornaron a los 170 Mbps, mientras que el rendimiento de Catalyst Exerciser tampoco se degradó.

También hay que tener en cuenta que un switch PCIe genérico nunca se recupera de la pérdida de rendimiento en una NIC por el incremento de solicitudes de lectura desde Catalyst Exerciser.

Los sistemas no sólo requieren un elevado rendimiento, sino que también necesitan robustez y elevada disponibilidad. Los sistemas de almacenamiento y servidor basados en x86 CPU y NB no están equipados con características que puedan gestionar las aplicaciones más demandadas en un momento en que los vendedores siguen demandando caminos innovadores para optimizar el uso de componentes de sistema y, por lo tanto, su rendimiento total. La función Read Pacing de los switches PCIe permite que los proveedores de sistema desarrollen la disponibilidad y las prestaciones que superan esta demanda.

Artículo realizado por Akber Kazmi, Director de Marketing de Switches PCI Express, y Jack Regula, Jefe de Ingeniería de PLX Technology Inc., empresa representada en España por Anatronic, S.A.

27 October 2008 | Artí­culos | Noticia leída: 571 veces


www.c3comunicaciones.es

Otras noticias de estas mismas Categorías:

www.optral.com