• No results found

CONCLUSION

BIBILOGRAPHY

La alternativa al offloading es mejorar la habilidad inherente a la arquitectura del servidor para procesar paquetes TCP/IP eficientemente y a velocidades muy altas. Esta alternativa se conoce como Onloading.

El Onloading propone al procesador del sistema como el principal recurso para el manejo de tr´afico de red y no sugiere grandes cambios en el hardware o en las aplicaciones. Los procesadores de prop´osito general, con sus econom´ıas de escala, tienen la ventaja de ser flexibles, extensibles y escalables. Su programabi- lidad y la disponibilidad de un amplio conjunto de herramientas de programaci´on hace posible agregar nuevas caracter´ısticas, protocolos y aplicaciones, permitien- do que el software de red se adapte f´acilmente a est´andars cambiantes, nuevas optimizaciones y modificaciones en el dise˜no.

A continuaci´on se explica una implementaci´on del concepto de Onloading que puede tomarse como la referencia m´as importante: Intel I/O Acceleration Technology [14, 15].

Intel I/O Acceleration Technology

Este proyecto implica cinco vectores principales de investigaci´on que ya pro- dujeron resultados positivos en reducir el requerimiento de procesamiento para redes de alto rendimiento. Con respecto al overhead del sistema operativo, Intel est´a evaluando la posibilidad de dedicar CPUs exclusivamente al procesamien- to de red y buscando la forma de optimizar la pila TCP/IP. Para superar el problema de memoria, se desarroll´o una pila de referencia especial para el pro- cesamiento TCP/IP conocida como Memory-Aware Reference Stack (MARS). El desarrollo de MARS introduce mecanismos innovadores para traer los datos

7.3. Propuestas m´as recientes 84 m´as cerca de la CPU antes que sean accedidos o para superponer computaci´on ´

util al tiempo de latencia del acceso a memoria. Adem´as de los algoritmos de prefetchingya disponibles en las CPUs actuales, MARS aprovecha otras t´ecnicas de reducci´on de latencia de memoria, como se estudia m´as adelante.

Procesamiento de la pila de protocolos

El proyectoEmbedded Transport Acceleration (ETA) en Intel Labs ha desarro- llado una arquitectura prototipo en la cual todo el procesamiento de paquetes de red se hace en uno o mas procesadores dedicados. La arquitectura expone una interfaz de comunicaci´on directamente a los procesos de usuario3

, reduciendo las copias de datos y evitando las capas del sistema operativo para la mayor´ıa de las operaciones de E/S.

Optimizaci´on de la pila de protocolos

Intel ha estado trabajando en optimizar el camino de procesamiento que suelen seguir los paquetes a trav´es de la pila de protocolos. Se est´an re-implementando algunas funciones para adaptarlas a las nuevas posibilidades que ofrecen los procesadores modernos en arquitecturas paralelas, y se est´an redise˜nando las estructuras para que logren mayor eficiencia de memoria cache, todo esto utili- zando t´ecnicas modernas de codificaci´on y compiladores de ´ultima generaci´on. El resultado ser´a, seg´un Intel, una pila optimizada que reduce significativamente la cantidad de ciclos de CPUs necesarios para procesar un paquete.

Threads Livianos

Para tolerar los eventos de mucha latencia como accesos a memoria y copias de datos, MARS utiliza threads de granularidad muy fina (strands, seg´un termi- nolog´ıa de Intel) que se ejecutan en el contexto de un ´unico thread del sistema operativo. Los strands pueden procesar paquetes independientes (pertenecientes a conexiones diferentes) o realizar operaciones de bookkeeping.

Cuando un strand incurre en un evento de gran latencia, como un fallo de cache, se cambia a otro strand para superponer la latencia de memoria con com- putaci´on ´util. Para que esto sea efectivo, el overhead del switching de strands debe ser extremadamente peque˜no (una fracci´on del tiempo de acceso a memo- ria).

Es decir, en lugar de proveer m´ultiples contextos de hardware (CPUs virtua- les para el sistema operativo), como la tecnolog´ıa Hyper-Threading, un ´unico contexto de hardware contiene a la pila de red con m´ultiples threads controlados

3

Similar a Virtual Interface Architecture (http://www.intel.com/intelpress/chapter- via.pdf)

7.3. Propuestas m´as recientes 85 por software. En t´erminos de implementaci´on, la detecci´on del acceso a memo- ria (un fallo de cache u operaci´on de copia) y el switching a otro thread puede ser impl´ıcito (requiriendo soporte de hardware) o expl´ıcito (implementado en software).

Acceso directo a la cache

DCA (Direct cache access) promueve el modelo Push4

para las transferencias de datos entre la NIC y la CPU. Las plataformas convencionales colocan los descriptores, headers y datos de red entrantes en memoria antes de notificar a la CPU que los datos han arribado. Como resultado, cuando la CPU accede a estos datos, sufre de fallos de cache y las latencias asociadas a las lecturas de memoria.

DCA ayuda a reducir los ciclos perdidos por latencia de acceso a memoria y reducir el uso del ancho de banda a memoria haciendo que los datos se coloquen directamente en la cache de la CPU. Los accesos a memoria se logran reducir hasta un 40 % [14, 15].

Copias Asincr´onicas en Memoria

Esto se logra con un componente de hardware que permite que las copias su- cedan asincr´onicamente con respecto a la CPU. Una vez que la operaci´on de copia es planificada en este dispositivo la CPU puede utilizar otro strand para procesar otro paquete. Las consideraciones de eficiencia para la implementaci´on de un dispositivo de copias incluyen los costos para iniciar y notificar la termi- naci´on de una copia. Por lo tanto, se buscan mecanismos de bajo overhead para realizar estas funciones, como por ejemplo integrar el hardware de copias en los procesadores.

I/OAT de intel delega las copias de datos a un componente DMA, un dispo- sitivo dedicado a hacer copias en memoria. Mientras que el componente DMA realiza la copia de datos de una ubicaci´on de memoria a otra, la CPU esta libre para proceder con el procesamiento del pr´oximo paquete u otra tarea pendiente. El componente DMA se implementa como un dispositivo PCI, incluido en el chipset, y tiene m´ultiples canales DMA independientes con acceso directo a la memoria principal. Cuando se completa una copia puede generar opcionalmente una interrupci´on. El soporte en el kernel Linux implementa una interfaz gen´eri- ca de copias asincr´onicas en memoria que podr´ıa ser usada por otras partes del kernel, adem´as del subsistema de red.

Usando este mecanismo, el procesamiento de paquetes por la CPU y la copia de datos por el componente DMA se realizan en paralelo. Sin embargo, para que exista un buffer de usuario disponible para que comience la copia asincr´onica

4

7.4. Arquitectura de los servicios y la E/S asincr´onica 86

Related documents