viernes, 16 de diciembre de 2011

NOC (NETWOR ON CHIP)


Con el fin de aumentar la velocidad de computación, las técnicas actuales de fabricación permiten incluir múltiples nodos de procesamiento en un único chip. Aunque estos nodos no alcanzan la velocidad que proporciona un único y potente procesador de un nodo, varios de ellos mejoran las  prestaciones de forma global. Los chip multiprocesador (CMPs) son un excelente ejemplo de estos sistemas.
 
El éxito de los sistemas CMP no solo depende del número de nodos que incorporan sino también depende de otros recursos tales como el sistema de memoria (caches, memoria principal, protocolo de coherencia, etc.), y el sistema de comunicación. Debido al alto número de componentes a interconectar y para permitir una configuración eficiente entre los recursos, es necesaria una red de interconexión de altas prestaciones. Este es el caso de las redes en chip (Networks on chip, NoCs) capaces de reducir a valores aceptablemente bajos los tiempos de transmisión de la información.



Por otra parte, las aplicaciones actuales muestran bajo grado de escalabilidad. Como ejemplo, el estudio realizado revela el poco grado de escalabilidad obtenido por las aplicaciones PARSEC cuando se consideran todos los componentes involucrados en la  arquitectura de un CMP. Del estudio realizado se puede observar que estas aplicaciones no escalan bien a partir de 16 hilos. Por lo tanto, para aprovechar gran parte de los recursos que ofrecen los CMPs, se espera que varias aplicaciones se ejecuten de manera simultánea. Además, a medida que aumenta el número de nodos, se espera que el número de aplicaciones que se ejecutan de forma simultánea también aumente. Dichas aplicaciones pueden ser de diversa índole (visión por computador, procesamiento multimedia, animación, simulación, etc.) provocando que los patrones de trafico sean completamente impredecibles.

Actualmente el algoritmo en chips y en el sistema de diseño de chips no puede responder a las necesidades de billones en el área de los transistores. El diseño tomaría mucho tiempo y el mapeo de aplicaciones para dedicar la arquitectura sería imposible. La solución estaría en la plataforma base de diseño y en el diseño del sistema de la computadora, en el cual descansa el re-uso de los componentes, arquitecturas aplicaciones e implementaciones. El problema esencial es establecer una relación entre la generalidad y el desempeño. Generalmente se puede reutilizar el hardware, el sistema operativo y el desarrollo de prácticas mientras el desempeño (retardo, costo, poder, etc.) es alcanzado usando estructuras específicas de aplicaciones.

Se propone usar una plataforma NoC, la cual consiste de una metodología de arquitectura y diseño, la cual se puede escalar desde unas cuantas docenas hasta cientos o miles de recursos. Un recurso podría ser el núcleo del procesador, un núcleo DSP, un bloque FPGA, un bloque dedicado HW, un bloque combinado.



 
Figura 1. Plataforma NOC

Arquitectura  y niveles de trabajo de NOC

Varias arquitecturas se han propuesto en lo referente a NoC. Sin embargo todas las NoCs tienen 3 bloques de construcción fundamental llamadas: switches (también llamadas routers), interface de red (Network interfaces NIs también llamadas adaptadores de red).

La intención de la NoC es desarrollar un set de estos componentes y formar una topología y configurándolos en un buffer de profundidad. El backbone de una NoC consiste de switches, cuya función es en rutar los paquetes desde el emisor hasta el destino. Algunas NoC tienen una topología específica para la conexión como anillo, estrella, para simplificar el control lógico, mientras que otros permiten la conectividad arbitraria, contribuyendo más flexibilidad correspondiente a la aplicación de destino. NoCs puede basarse en el circuito o la conmutación de paquetes o una mezcla de ambas; el primero está dirigido a proporcionar y garantizar QoS (calidad de servicio), mientras que las otras para optimizar la eficiencia para el promedio de las demás causas.

Cuando la conmutación de paquetes que se elija, los interruptores proporcionar recursos de almacenamiento en búfer para reducir la congestión y mejorar el rendimiento. También se encargan de controlar el flujo de problemas, y resolver los conflictos entre paquetes cuando coinciden en solicitar el acceso a los enlaces físico.

Dos de los protocolos de control más habituales implican flujo de switch a switch de comunicación y retransmisión basada (es decir, los paquetes se envían con optimismo, pero una copia de ellos también se almacena por el remitente, y si el receptor está ocupado,
un cable de retroalimentación para solicitar la retransmisión es elevado) o basada en el crédito (es decir, el receptor constantemente informa al remitente sobre su capacidad para aceptar los datos, y los datos sólo se envían cuando son sin duda los recursos disponibles). De extremo a extremo el control de flujo esquemas, en donde las instituciones nacionales periféricos directamente el flujo de intercambio control de la información entre sí, son rara vez se utiliza más debido a sus requisitos búfer, el más común escenario de uso consiste en poner en práctica los CoN que la conmutación de circuitos.

Un NI se necesita para conectarse a cada núcleo del CoN. NI convertir las solicitudes de transacción /respuestas en paquetes y viceversa. Paquetes se divide en una secuencia de flujo unidades de control (FLITS) antes de la transmisión, para disminuir los requisitos físicos de alambre paralelismo. NIs se asocian a NoCs en el sistema a los maestros y los esclavos del sistema. Muchos NoC actuales soluciones de enrutamiento de aprovechar la fuente estática, lo que significa que NI dedicada tablas de consulta (LUT) especificar el camino que los paquetes siguen en la red para llegar a su destino final. Este tipo de enrutamiento reduce al mínimo la complejidad de la lógica de enrutamiento en el NoC.
Como alternativa, ruta se puede realizar dentro de la misma topología, normalmente en una forma de adaptación, sin embargo, el rendimiento tiene ventajas, con el fin de la entrega. En general, dos diferentes señales de reloj se puede conectar a NI: el primero impulsa la NI front-end, el lado al que el núcleo externo está conectado, y el segundo impulsa la NI back-end, el lado interno de NoC. Estos relojes pueden, en general, ser independientes. Esta disposición permite que el NoC se ejecute a una diferente (y potencialmente rápido) del reloj de los núcleos unidos, que es crucial para mantener las transacciones de baja latencia.

Fig. 2 Tubos de arquitectura de NOC a.Switch b.NI c.Enlace serial de tubos

Protocolos que interactuan con el medio físico y lógico


Dos de los protocolos de control más habituales implican flujo de switch a switch de comunicación y retransmisión basada (es decir, los paquetes se envían con optimismo, pero una copia de ellos también se almacena por el remitente, si el receptor está ocupado, un cable de retroalimentación para solicitar la retransmisión es elevado) o basada en el crédito (es decir, el receptor constantemente informa al remitente sobre su capacidad para aceptar los datos, y los datos sólo se envían cuando son sin duda los recursos disponibles).

De extremo a extremo el control de flujo esquemas, donde periférica NI directamente el flujo de intercambio control de la información entre sí, son rara vez se utiliza más debido a sus requisitos búfer, el más común escenario de uso consiste en poner en práctica los CoN que los circuitos switches.
Un NI es necesario para conectar cada núcleo a la NoC. NI convertir las solicitudes de transacción /respuestas en paquetes y viceversa. Paquetes se divide en una secuencia de flujo unidades de control (FLITS) antes de la transmisión, para disminuir los requisitos físicos de alambre paralelismo.



 
Fig. 3 Diagrama de flujo de diseño




Ejemplos basados en NOC

Enlaces NoC puede reducir la complejidad del diseño de cables para la velocidad predecible, energía, ruido, fiabilidad, etc, gracias a su estructura regular y bien controlada. Desde un punto de vista de diseño del sistema, con el advenimiento de los sistemas de procesador multi-core, una red es una opción de arquitectura natural. Un CoN puede proporcionar la separación entre la computación y la comunicación, la modularidad y la reutilización de apoyo a IP a través de interfaces estándar, manejar los problemas de sincronización, servir como una plataforma para la prueba del sistema, y, por tanto, aumentar la productividad de ingeniería. 

Por ejemplo, en un entorno de telecomunicaciones, NoC se encargan de vigilar a los apagones, las alarmas de la línea de comunicación (tales como errores de bit, errores de trama, los errores de codificación de línea, y los circuitos de abajo) y otros problemas de rendimiento que pueden afectar a la red.

Para especificar las aplicaciones de flujo de datos de manera eficiente es uno de los mayores retos de la Red-on-Chip (NoC) de simulación y exploración. BTS (comportamiento a nivel de simulación de tráfico) se propuso para especificar el nivel de comportamiento de las aplicaciones de manera más eficiente que los convencionales de transmisión de mensajes modelo de programación hace. Para aliviar la complejidad de la programación paralela, BTS tiene las tareas de cálculo implementados como módulos secuenciales con los datos compartidos entre ellos. También se propuso la parametrización de BTS para producir mensajes pseudo-señalando a los datos compartidos, y para cumplir con la programación condicionada por los datos.

La arquitectura SoCBUS, una malla en el chip de la red, es un ejemplo de una conmutación de circuitos de red que utiliza un esquema paquetes de circuitos conectados para asignar intervalos de tiempo o espacio en los enlaces switch entre los terminales de la red.


Conclusiones

El mecanismo de virtualización permite aislar el tráfico generado por cada aplicación para reducir la sobrecarga de comunicación debida a interferencias entre mensajes pertenecientes a diferentes aplicaciones. En un sistema real, las aplicaciones entran y salen del sistema continuamente. En este caso, la red debe ser capaz de asignar recursos de red a diferentes particiones de forma dinámica. Por esta razón, en este trabajo se describe un mecanismo de reconfiguración para ofrecer soporte de virtualización bajo escenarios realistas donde los recursos del sistema son asignados de forma dinámica. Además, la latencia y carga media de la red siguen la misma tendencia que el tiempo de ejecución. Este hecho se debe a la eliminación de las interferencias de tráfico entre mensajes pertenecientes a diferentes aplicaciones puesto que en ambos casos el resto del CMP (principalmente nodos y cache) se ha particionado de la misma forma.

Se recomienda, desarrollo arquitectónico y soporte de las herramientas ya que con las implementaciones que hasta la actualidad se han realizado se llega a un consenso de que hay una necesidad a nivel de sistema de la integración de los bloques en diferentes frecuencias de operación.
CoN pueden abarcar dominios de reloj síncronas y asíncronas o usar la lógica unclocked asíncrona. NoC se aplica la teoría de redes y métodos de comunicación on-chip y trae mejoras notables en bus convencional y las interconexiones travesaño. NoC mejora la escalabilidad de SoC, y la eficiencia energética de SoC complejos en comparación con otros diseños. Se han realizado investigaciones sobre la gestión integrada guías de onda ópticas y dispositivos que conforman una red óptica-on-Chip (ONoC).