Una Implementación Eficiente de Algoritmos de Encaminamiento

Anuncio
277
Castellón, Septiembre 2008
Una Implementación Eficiente de Algoritmos
de Encaminamiento Distribuido para Redes
dentro del Chip
Samuel Rodrigo, José Flich y José Duato1
Resumen— El diseño de redes dentro del chip para
procesadores con varios núcleos introduce nuevas limitaciones como el área, consumo de energı́a y latencias bajı́simas. Aunque el uso de topologı́as regulares (como las mallas bidimensionales) está extendido, varias causas como errores de fabricación, problemas de fiabilidad o la necesidad de particionamiento
(virtualización, dominios de coherencia) y aislamiento
del tráfico, pueden inducir topologı́as irregulares. En
estas situaciones se necesita un encaminamiento eficiente. Aunque el uso de tablas de encaminamiento
es flexible, esta solución incrementa drásticamente el
consumo de energı́a, el área y la latencia.
En este artı́culo proponemos el LBDR (Logic-Based
Distributed Routing) como un método de encaminamiento para el cual no hace falta el uso de tablas de
encaminamiento. LBDR permite aplicar la mayorı́a
de algoritmos de encaminamiento usando para ello
una lógica mı́nima en topologı́as irregulares (y regulares, por supuesto). Los resultados de las evaluaciones muestran que con LBDR los algoritmos de
encaminamiento consiguen el mismo rendimiento que
cuando se usan tablas de encaminamiento con un coste
menor en area, consumo de energı́a y latencias.
Palabras clave— Redes dentro del chip, Encaminamiento distribuido, Lógica, Chips multinúcleo.
I. Introducción
L
AS arquitecturas de procesadores con varios
núcleos comienzan a ser de uso generalizado para
el diseño de procesadores en varios mercados. Al
encontrarse con limitaciones de rendimiento en soluciones de un sólo núcleo, la industria está cambiando
al paradigma de diseño de varios núcleos integrados
en un mismo chip. Aunque el número de núcleos
en los diseños actuales es bastante pequeño (de 2 a
8 núcleos por chip) se prevee una tendencia al alza.
Un ejemplo es el chip Teraflop de Intel, anunciado
recientemente, que contiene hasta 80 núcleos [1].
Tal cantidad de núcleos en la arquitectura requiere
una red de interconexión de alto rendimiento para
ofrecer una comunicación eficiente entre todos los
núcleos y sus respectivos dispositivos de memoria.
Las implementaciones actuales están basadas en estructuras de anillo o bus (por ejemplo, el procesador
Cell [2]). Sin embargo, estas topologı́as resultan ineficaces al convertirse en cuellos de botella del sistema mientras la cantidad de núcleos siga incrementando. Para arquitecturas con un gran número de
núcleos homogéneos, una topologı́a de malla bidimensional (ver Figura 1.a) es adecuada debido a su
1 Grupo de Arquitecturas Paralelas, Dpto. de Informática
de Sistemas y Computadores, Universidad Politécnica
de Valencia, e-mail:
[email protected], {jflich,
jduato}@disca.upv.es.
distribución directa en la superficie plana del chip.
Éste es el caso del chip Teraflop de Intel.
Se ha investigado mucho en redes fuera del chip
y la mayor parte de los mecanismos, técnicas y
métodos se pueden aplicar a redes dentro del chip.
Sin embargo existen restricciones fı́sicas que no se
tenı́an en cuenta en el dominio de las redes fuera
del chip. En particular, cuando se afronta el diseño
de una red dentro del chip hay que tener en cuenta
los requerimientos de área, consumo y latencia. Por
ejemplo, el rendimiento de la red se mide normalmente en términos de latencia del paquete y productividad de la red. Dentro del contexto de las redes
dentro del chip, se requiere unos valores de latencia lo más bajos posibles ası́ que cada etapa se ha
de optimizar con mucho cuidado. Para ello, se suele
usar encaminamiento basado en lógica (por ejemplo,
Dimension-Order-Routing, DOR) como la solución
preferida para encaminar paquetes con un retraso
mı́nimo. En general, la soluciones basadas en mallas
bidimensionales y este tipo de encaminamiento ofrecen buenos resultados en latencia, consumo y área
requerida.
Pero nos enfrentamos también a un tema que
adquiere mayor importancia en redes dentro del chip
y arquitecturas multiprocesador, la tolerancia a fallos. Debido a la gran escala de integración, pueden
aparecer varios problemas relacionados con la fiabilidad en la comunicación. Problemas como el ruido
proveniente de la fuente de alimentación o interferencia de señales son sólo algunos de los inconvenientes
a superar. Además hay que tener en cuenta los defectos de fabricación, como por ejemplo, núcleos, cableado o conmutadores no operativos. En todos estos casos, aun a pesar de tener componentes no funcionales dentro del chip (de forma temporal o permanente), el resto todavı́a sigue siendo funcional.
Además a diferencia de las redes fuera del chip, no es
posible reemplazar la parte afectada. Desde el punto
de vista de la red, nos enfrentamos a una topologı́a
irregular en vez de la regular original y la capa de encaminamiento debe tener esto en cuenta. Podemos
ver ejemplos de estas topologı́as en las Figuras 1.b y
1.c.
Las arquitecturas multiprocesador ofrecen a su vez
nuevos caminos a explorar. Para poder aprovechar la
gran cantidad de núcleos dentro del chip y dado que
las aplicaciones no suelen aprovechar el paralelismo,
la solución pasa por la virtualización del chip. En un
sistema virtualizado los recursos se reparten entre las
Actas de las XIX Jornadas de Paralelismo, pp. 277-282, 2008. ISBN: 978-84-8021-676-0
278
XIX Jornadas de Paralelismo
Fig. 1. Ejemplo de topologı́as regulares (a) e irregulares (b-d).
diferentes máquinas virtuales. Aunque el concepto
de virtualización no es precisamente nuevo, su aplicación en redes dentro del chip y multiprocesadores
se convierte en un reto. La red debe garantizar el
aislamiento del tráfico entre regiones lo que conlleva
a la aparición de subregiones con topologı́a irregular
dentro de la malla original. Como ejemplo podemos
ver la Figura 1.d donde 3 regiones diferentes conviven
en una misma malla.
El encaminamiento puede implementarse de dos
formas diferentes: encaminamiento fuente y distribuido. En el encaminamiento fuente, el nodo
emisor calcula el camino a seguir y lo guarda en
la cabecera del paquete. Como la cabecera se debe
transmitir por la red, consume ancho de banda. El
chip Teraflop de Intel usa este tipo de encaminamiento. En el encaminamiento distribuido, sin embargo, cada conmutador decide el próximo salto que
debe realizar el paquete mientras viaja por la red.
La cabecera del paquete, en este caso, sólo contiene
el nodo destino.
El encaminamiento distribuido se puede implementar de diversas formas. En topologı́as regulares
se usa un encaminamiento basado en circuiterı́a con
lógica combinacional, que calcula el puerto de salida
en función de los nodos fuente y destino y el estado
de los puertos de salida. La implementación es muy
eficiente en términos de área y latencia, pero el algoritmo es totalmente dependiente de la topologı́a y
la estrategia de encaminamiento usadas. Para tratar
con topologı́as irregulares existe una solución propuesta, las tablas de encaminamiento implementadas
en los conmutadores. La función de cada tabla es
guardar para cada nodo destino un puerto de salida relacionado. Esta técnica puede ser extendida
para encaminamiento adaptativo, donde se guardan
varias salidas en cada entrada de la tabla. La ventaja del encaminamiento basado en tablas es que
puede ser implementado en cualquier topologı́a con
cualquier algoritmo de encaminamiento, incluidos algoritmos orientados a tolerancia a fallos. Sin embargo, la mayor desventaja es que esta solución está
implementada en memorias, no siendo posible escalar
en términos de latencia, consumo de energı́a y área,
siendo impracticables para las redes dentro del chip.
Es posible reducir el tamaño de la tabla de encaminamiento en algunos entornos, como por ejemplo, el caso de sistemas embebidos o de aplicaciones
especı́ficas, donde el patrón de comunicación y el
tráfico se pueden predecir de antemano. No obstante, esto no es posible aplicarlo en procesadores
de propósito general.
En este artı́culo, proponemos un mecanismo simple que permite la implementación de algoritmos de
encaminamiento distribuido en topologı́as irregulares
sin necesidad de utilizar tablas de encaminamiento
en los conmutadores o nodos fuente. Este mecanismo, que llamamos LBDR, consiste en el uso de 3
bits por puerto de salida y una lógica implementada
a base de varias puertas lógicas en cada conmutador.
El resto del artı́culo se organiza de esta forma. La
siguiente sección, II, nos describe el entorno del sistema donde se puede aplicar el mecanismo. Seguidamente, en la sección III, se describe el mecanismo a
fondo. Luego, en la sección IV, se presentan los resultados de las evaluaciones que han sido realizadas
y por último se concluye el artı́culo con un apartado
de conclusiones, en la sección V.
II. Entorno
El mecanismo LBDR se puede aplicar en redes que
utilizen cualquier mecanismo de conmutación wormhole o virtual-cut through. Además no hay necesidad
de canales virtuales, aunque son perfectamente aplicables en aquellas situaciones que lo necesiten.
No obstante, y para simplificar, nos vamos a centrar en una red que asume conmutación wormhole
sin canales virtuales. Los mensajes (o paquetes en
conmutación virtual cut-through) se encaminan en
base a las coordenadas X e Y del destino final incluidos en la cabecera del mensaje (Xdst y Ydst ), y cada
conmutador, a su vez, conoce sus propias coordenadas X e Y (guardadas en los registros Xcurr y Ycurr
en cada conmutador).
El mecanismo LBDR se puede aplicar a una combinación de topologı́as y algoritmos de encaminamiento con las siguientes caracterı́sticas que detallamos a continuación.
Como ya se avanzó en la introducción, la topologı́a
tı́pica donde se aplica la red es una malla bidimensional, originalmente una topologı́a regular, pero que
puede derivar en topologı́as irregulares debido a ciertas causas. Todas estas topologı́as comparten una
misma propiedad: todos los nodos (asumiendo que
hay un nodo por cada conmutador) se pueden comunicar con el resto de nodos a través de una ruta
279
Castellón, Septiembre 2008
Fig. 2. Algoritmos de encaminamiento representados en malla 2D y topologı́a irregular.
mı́nima definida en la topologı́a original de malla (ver
Figura 1.a). El mecanismo LBDR se puede aplicar
en todas las topologı́as que cumplan esta propiedad.
En el caso de que exista una ruta no mı́nima entre
cualquier par de nodos, el mecanismo no es aplicable.
Un algoritmo de encaminamiento determinista (o
parcialmente adaptativo) sin dependencias cı́clicas
entre sus enlaces o buffers intermedios se puede representar como un conjunto de restricciones de encaminamiento. Como ejemplo, en la Figura 2 podemos
ver las restricciones de encaminamiento definidas
para los algoritmos de encaminamiento XY y U D
(up*/down*) [4] en una topologı́a de malla bidimensional y una topologı́a irregular con forma de p. Cada
flecha indica una restricción y básicamente, prohibe
el uso de dos canales consecutivos a cualquier paquete de forma que las rutas empleadas por cada par
de nodos nunca pasarán por una restricción de encaminamiento. Para su simplicidad, los puertos se
etiquetan como N (Norte), E (Este), W (Oeste) y
S (Sur). Ası́, por ejemplo, en el primer conmutador
situado en la esquina izquierda superior de la Figura
2.a hay una restricción SE, es decir, se prohibe usar
el canal del puerto E si el paquete viene del puerto
S.
Como también se puede apreciar en la Figura 2.b,
el algoritmo de encaminamiento XY sólo es aplicable
en una topologı́a regular, ya que hay algunos pares
de nodos que no se pueden comunicar. Algoritmos
de encaminamiento, que en cambio, son independientes de la topologı́a aplicada como U D, son perfectamente aplicables.
Llegados a este punto hay que aclarar, que si bien
el mecanismo LBDR se puede aplicar con cualquier
algoritmo de encaminamiento que se pueda representar con las restricciones formadas a partir de dos
canales consecutivos, todas estas restricciones deben
contener un canal de cada uno de estos dos conjuntos: {N,S} y {E,W}. Por ejemplo, no está permitido
el uso de una restricción EW . En otras palabras,
las restricciones de encaminamiento sólo impiden algunos cambios de dirección. La razón es que permitir
el uso de restricciones como W E, EW , N S, SN , SS
o N N fuerzan la necesidad de una ruta no mı́nima.
En cambio, si nos fijamos en los algoritmos de encaminamiento representados en la Figura 2, todos
cumplen esta condición.
Otros algoritmos de encaminamiento como SRh
[3], SRv [3], FX [5] o Turn Model [6] también
cumplen estas condiciones, ası́ que son perfectamente
aplicables.
III. Descripción del LBDR
Las Figuras 3.a y 3.b nos muestran los detalles del
LBDR. Se utilizan 3 bits por cada puerto de salida en
el conmutador, haciendo un total de 12 bits. El valor
de estos bits depende de la topologı́a y el algoritmo
de encaminamiento implementado.
Los bits se agrupan en dos conjuntos: bits de encaminamiento y bits de conectividad. Los bits de
encaminamiento determinan las opciones de encaminamiento que pueden tomarse, mientras que los bits
de conectividad indican como se conecta un conmutador a sus vecinos.
Si nos centramos en los bits de encaminamiento,
por ejemplo, para el puerto de salida E, tenemos los
bits Ren y Res . Estos bits indican si los paquetes que
se encaminen por el puerto de salida E, luego pueden
encaminarse, respectivamente, bien por el puerto de
salida N o S en el próximo conmutador. De esta
forma, para el puero de salida N etiquetaremos los
bits como Rne y Rnw , para el puerto de salida W
tenemos Rwn y Rws , y para el puerto de salida S,
los bits Rse y Rsw .
En cuanto a los bits de conectividad, cada puerto
de salida tiene un sólo bit, definido como Cx , que
indica si existe conectividad en el conmutador por el
puerto x. Se etiquetan como Cn , Ce , Cw y Cs .
La lógica de encaminamiento del LBDR se divide
en 2 partes (mirar Figura 3). La primera parte calcula la posición relativa al destino del paquete. Para
ello, se compara Xcurr y Ycurr , que indican las coordenadas actuales, con Xdst y Ydst , que indican las
coordenadas del nodo destino. A la salida de esta
lógica se obtiene como mucho dos señales activas (por
ejemplo, si el paquete va destinado al cuadrante N W
entonces las salidas N ′ and W ′ se activan). Cabe
observar que se excluye de la lógica los paquetes destinados al puerto local del conmutador.
Una vez se han calculado las señales N ′ , E ′ , W ′ y
′
S entra en juego la segunda parte de la lógica. Consiste en cuatro unidades lógicas, una por cada puerto
de salida, compuestas cada una por dos inversores,
cuatro puertas AND y una puerta OR. Como to-
280
XIX Jornadas de Paralelismo
Fig. 3. El mecanismo LBDR.
das son similares, vamos a centrarnos en describir la
lógica para el puerto de salida N .
El puerto de salida N se puede considerar como
opción de encaminamiento si una de las tres condiciones siguientes se cumple (adicionalmente, el bit
de conectividad Cn se consulta para filtrar el puerto
N ):
•
•
•
El destino del paquete está en la misma columna
(N ′ × E ′ × W ′ ).
El destino del paquete está en el cuadrante N E
y el paquete se podrı́a encaminar por el puerto
E en el próximo conmutador accesible por el
puerto N (N ′ × E ′ × Rne ).
El destino del paquete está en el cuadrante N W
y el paquete se podrı́a encaminar por el puerto
W en el próximo conmutador accesible por el
puerto N (N ′ × W ′ × Rnw ).
Se puede observar, por ejemplo, que a la salida las
señales N y E pueden estar activas al mismo tiempo.
Dado este caso, es tarea del conmutador y su unidad
de control decidir que opción escoger, dependiendo
de la adaptividad permitida o si el algoritmo de encaminamiento es determinista.
El mecanismo LBDR consigue los mismos resultados de rendimiento con la mayorı́a de algoritmos de
encaminamiento, como por ejemplo, XY y U D. Sin
embargo, hay situaciones con algoritmos de encaminamiento más avanzados (como SR) donde se han
detectado ineficiencias. Podemos ver un ejemplo en
la Figura 3.c. Pongamos como caso, que un paquete
se envı́a desde el nodo 1 al nodo 8. El conmutador
en el nodo 1 decide descartar el puerto de salida S
porque el bit Rsw no está activo (hay una restricción
N W en el próximo conmutador si se encamina por
el puerto S). Sin embargo, en este caso, la ruta 1-59-8 es válida, pero estamos reduciendo la adaptatividad. Aunque el mecanismo LBDR funciona correctamente se produce una pérdida de prestaciones que
puede ser inaceptable. Para ello, en la siguiente subsección, proponemos una extensión del mecanismo
para poder solucionar este problema. Sin embargo,
hay que tener en cuenta, que usando un algoritmo
de encaminamiento como U D, este problema desaparece.
También es importante incidir que sólo los bits que
se refieren a restricciones de encaminamiento existentes se ponen a cero y el resto a uno, incluso para
aquellos conmutadores que no existen realmente en
la topologı́a. El bit de conectividad, en estos casos,
sirve de filtro, como se ha dicho anteriormente, para
no incurrir en rutas no válidas.
El mecanismo es libre de bloqueos si y sólo si el algoritmo de encaminamiento representado lo es. Si el
paquete no atraviesa ninguna restricción de encaminamiento no se formarán ciclos. Los bits de encaminamiento Rxy aseguran que no se atraviesa ninguna
restricción. La conectividad, a su vez, está garantizada ya que que el mecanismo LBDR usa cualquier
ruta mı́nima que el algoritmo de encaminamiento
permita.
A. LBDRe, el mecanismo extendido
En la extensión a nuestro mecanismo, denominada LBDRe, se mantienen los mismos bits tanto
de conectividad como de encaminamiento anteriores.
Sin embargo, se añaden 4 nuevos bits por puerto de
salida. Los 2 primeros bits se etiquetan como R2xy
e indican si el paquete puede encaminarse por la dirección y dos conmutadores más alla del actual si se
encamina por la dirección x. Por ejemplo, el bit R2ne
nos indica si podemos hacer un cambio de dirección
al E en el conmutador localizado a dos saltos más allá
en la dirección N . Estos bits tienen un significado
parecido a los que se usan en LBDR, sólo que gracias a estos se permite una visibilidad de dos saltos
al conmutador actual. Sin embargo, al contrario que
los bits anteriores, no deben estar activos si se refieren a un conmutador inexistente. Los siguientes
bits se etiquetan como RRxy e indican si existe una
restricción de encaminamiento entre los canales x y
y en el conmutador actual. Estos bits se necesitan
para evitar la formación de ciclos, como se detalla en
un ejemplo más adelante.
Adicionalmente, el conmutador necesita cinco
señales internas etiquetadas como ipN , ipE, ipW ,
ipS y ipL para indicar el puerto de entrada por donde
el paquete ha sido encaminado.
La primera parte de la lógica ha aumentado un
poco comparada con la del mecanismo. En particular, basándose en las coordenadas X e Y del conmutador actual y el destino del paquete se calculan
las direcciones relativas N ′ , E ′ , W ′ y S ′ . Además,
se calculan 4 señales adicionales: N 2, E2, W 2 y S2.
Estas señales se activan si el destino del paquete está
a dos saltos más allá de la dirección correspondiente
281
Castellón, Septiembre 2008
Fig. 4. Análisis comparativos de área, consumo de energı́a y latencia.
(si se activa N 2 debemos hacer dos saltos en la dirección N para acercarnos a nuestro destino). Esta
parte también es responsable de invalidar los posibles puertos de salida que tengan una restricción de
encaminamiento. Aquı́ es donde entran en juego los
bits RRxy . La lógica requiere 2 inversores, 3 puertas
AND y una puerta OR por cada puerto de salida.
Las señales a la salida se etiquetan como N ′′ , E ′′ ,
W ′′ y S ′′ .
La segunda parte evalúa las opciones de encaminamiento tanto en el próximo conmutador como 2
saltos más allá. Como ejemplo, para el caso del
puerto de salida N , será una opción válida si se
cumple alguna de las siguientes condiciones:
•
•
•
•
•
El destino del paquete está en la misma columna
(N ′ × E ′ × W ′ ).
El destino del paquete está en el cuadrante N E
y el paquete se podrı́a encaminar por el puerto
E en el próximo conmutador accesible por el
puerto N (N ′ × E ′ × Rne ).
El destino del paquete está en el cuadrante N W
y el paquete se podrı́a encaminar por el puerto
W en el próximo conmutador accesible por el
puerto N (N ′ × W ′ × Rnw ).
El destino del paquete está en el cuadrante N E
y el paquete se podrı́a encaminar por el puerto
E en el conmutador 2 saltos más allá, accesible
por el puerto N (N 2 × E ′ × R2ne ).
El destino del paquete está en el cuadrante N W
y el paquete se podrı́a encaminar por el puerto
W en el conmutador 2 saltos más allá, accesible
por el puerto N (N 2 × W ′ × R2nw ).
Finalmente, el bit de conectividad Cn y el filtro
de restricción de encaminamiento (N ′′ ) se usan para
filtrar este puerto. Para el resto de puertos, el funcionamiento es similar.
Gracias a esta extensión se resuelve el problema
de ineficiencia encontrado en el mecanismo LBDR.
Si nos fijamos en la Figura 3.c, ahora existen dos
posibles rutas desde el nodo 1 al nodo 8. En el conmutador del nodo 1, ahora, el puerto de salida S es
una opción válida ya que el bit R2sw está activo por
lo tanto la señal S2 se activará. También se aprecia
que el conmutador del nodo 5 tendrá el bit RRnw
activo, impidiendo que se pueda tomar el puerto de
salida W que podrı́a llevar a un bloqueo.
IV. Resultados y Evaluaciones
A. Rendimiento
Nuestro primer objetivo es comprobar si con el
mecanismo los algoritmos de encaminamiento se
comportan con el mismo rendimiento que usando
tablas de encaminamiento.
Para ello hemos usado el simulador Noxim [7]. En
todas las simulaciones se asume conmutación wormhole, con buffers de 4 flits y paquetes de 32 flits. Cada
flit tiene un tamaño de un byte. Se han evaluado los
algoritmos de encaminamiento XY , U D, y SRh en
un malla bidimensional 8 × 8 mesh y con diferentes
topologı́as irregulares. Se ha utilizado tráfico uniforme.
Fig. 6. Rendimiento de varios algoritmos de encaminamiento
en una malla.
En la Figuras 6 y 7 podemos ver el rendimiento
obtenido para algunos de los casos analizados. Se
puede extraer conclusiones para todos los casos evaluados. Se puede ver que tanto para el algoritmo
XY (en la malla completa) como para U D y SRh
(en la malla regular y topologı́as irregulares) se consigue un rendimiento que iguala al obtenido con la
implementación tradicional con tablas de encaminamiento. Cabe destacar el caso del algoritmo SRh con
282
XIX Jornadas de Paralelismo
Fig. 5. Análisis comparativos de área, consumo de energı́a y latencia.
V. Conclusiones
Fig. 7. Rendimiento de varios algoritmos de encaminamiento
en topologı́a irregular.
LBDR, pero con la extensión se consigue igualar las
prestaciones.
B. Área, Consumo de Energı́a y Latencia
El segundo objetivo de nuestra evaluación es
analizar el impacto en el área, consumo de energı́a
y la latencia del mecanismo comparado con el uso
de tablas de encaminamiento. Para la evaluación los
módulos se han diseñado y sintetizado usando Synopsys Design Compiler en una librerı́a de tecnologı́a de
90nm de TSMC [8]. Se ha considerado una malla de
8 × 8. Podemos ver los análisis comparativos en las
Figuras 4 y 5.
Como era de esperar, LBDR, ofrece un ahorro en
términos de área, consumo de energı́a y latencia comparado con tablas de encaminamiento (RT). De hecho, LBDR consume un total del 5% del área original consumida por las tablas de encaminamiento y
consume aproxidamente 20 veces menos energı́a. En
términos de latencia, los factores no son tan grandes,
pero a media que aumenta el número de nodos el
ahorro puede ser importante.
En el impacto sobre el conmutador se puede observar que en términos de área y consumo de energı́a
el mecanismo representa un tanto por cien bastante
pequeño respecto del total.
En este artı́culo se ha presentado el mecanismo
LBDR como un sustituto eficiente para la implementación de la mayorı́a de algoritmos de encaminamiento distribuido en topologı́as irregulares (y regulares) sin tener que usar tablas de encaminamiento
en redes dentro del chip.
Además se ha analizado el mecanismo con más bits
de visibilidad adicionales, no obteniendo una ganancia aparente con cualquier algoritmo. Aunque la extensión, LBDRe, saca el potencial al máximo de los
algoritmos en topologı́as irregulares, se aconseja usar
el mecanismo, LBDR, debido a su mayor simplicidad.
Con el algoritmo de encaminamiento adecuado (XY
y/o U D) las pérdidas en rendimiento no existen.
Agradecimientos
El presente trabajo ha sido financiado mediante el
proyecto CONSOLIDER-INGENIO 2010 con registro CSD2006-00046, el proyecto CICYT con registro TIN2006-15516-C04-01 y por la Junta de Comunidades de Castilla-La Mancha con registro PCC080078.
Agradecimientos también a Maurizio Palesi por su
ayuda prestada en las evaluaciones.
Referencias
[1] Y. Hoskote, S. Vangal, A. Singh, N. Borkar y S. Borkar, A
5-GHz Mesh Interconnect for a Teraflops Processor, IEEE
Micro Magazine, Sept-Oct. 2007, pp. 51-61.
[2] J.A. Kahle, M.N. Day, H.P. Hofstee, C.R. Johns,
T.R. Maeurer y D. Shippy, Introduction to the Cell multiprocessor, IBM Journal of Research and Development,
Volumen 49, Números 4/5, 2005.
[3] J. Flich, A. Mejı́a, P. López y J. Duato, Region-Based
Routing: An Efficient Routing Mechanism to Tackle Unreliable Hardware in Networks on Chip, First International Symposium on Networks on Chip (ISNOC), 2007.
[4] D. Gelernter, A DAG-based algorithm for prevention
of store-and-forward deadlock in packet networks, IEEE
Transactions on Computers, 30(10):709-715, Oct. 1981.
[5] J.C. Sancho, A. Robles y J. Duato, A Flexible Routing Schemes for Networks of Workstations, Third International Symposium on High Performance Computing
(ISHPC), 2000.
[6] C. Glass y L. Ni, The Turn Model for Adaptive Routing, International Conference on Computer Architecture
(ISCA), 1992.
[7] Noxim:
Simulador de Redes dentro del chip,
http://noxim.sourceforge.net.
[8] Librerı́a 90nm de TSMC, http://www.tsmc.com.
Descargar