Download Caché de último nivel parcialmente compartida
Document related concepts
no text concepts found
Transcript
Caché de último nivel parcialmente compartida basada en distancia Antonio García-Guirado 1 1 1 1 Ricardo Fernández-Pascual Alberto Ros José M. García Tiled-CMP de 64 núcleos L1 Controlador de memoria Controlador de memoria Controlador de memoria Núcleo Controlador de memoria Controlador de memoria Banco de L2 Controlador de memoria Controlador de memoria Estructura de una celda Controlador de memoria Es común queunaloscaché multiprocesadores en un chip (CMPs) utilicen de último nivel (LLC) parcialmente compartida ya que deestaacceso opcióny proporciona un equilibrio entre latencia aprovechamiento de la capacidad de almacenamiento. En este trabajo proponemos una nueva manera dequema-se pear direcciones de memoria a bancos de LLC basa en laa distancia entre los bancos y enfoques los núcleostradique acceden ellos. Al contrario que los cionales, nuestrolosmapeo noLLCcreaquegrupos departe núcleos que comparten bancos forman del grupo, sino que cada núcleo accede a un grupo distintorecorrida de bancos cercanos, reduciendo la distancia media en los accesos a la LLC. Los resultados para un CMP de 64 núcleos indican que nuestra propuesta mejora el tiempo ejecución ycon el usoun demapeo energía de lacional. red unAdemás, 13% enlosdecomparación tradicostes de implementar esta propuesta en hardware son insignicantes y sus benecios aumentan a la vez que el número de núcleos. Resumen Interfaz de red Fig. 1. Diagrama de un tiled-CMP de 64 núcleos con cuatro clusters de 16 núcleos. La líneas de puntos separan los 4 clusters de tiles que comparten sus bancos de LLC. En este trabajo describimos nuestra propuesta DAPSCO (Distance-Aware Partially Shared Cache I. Introducción L OS tiled-CMPs (CMPs basados en celdas) son actualmente la mejor manera de mantener viva la ley de Moore gracias a su baja complejidad de diseño comparada con la de otras alternativas y a la facilidad para incrementar el número de núcleos añadiendo más tiles (celdas). En un tiled-CMP, los bancos del último nivel de caché (LLC) físicamente están distribuidos uni- Organization) que consiste en usar un mapeo estático distinto para cada núcleo, de manera que cada núcleo acceda a los bancos de LLC que le rodean. El mapeo sigue siendo estático, con lo que los cambios necesarios en el hardware son simples e introducen una sobrecarga insignicante. DAPSCO reduce notablemente la latencia de acceso a la LLC y mejora el tiempo de ejecución (13 %) y el consumo de energía de la red (13 %). formemente por el chip, aunque lógicamente distintas organizaciones son posibles, desde una LLC totalmente privada hasta una totalmente compartida, para intentar reducir la latencia de la LLC o el número de costosos accesos a la memoria fuera del chip [1], respectivamente. Las organizaciones intermedias [2, 3, 4], en las que se crean clusters de núcleos que comparten sus bancos de LLC (ver Figura 1) proporcionan un buen equilibrio entre estas dos alternativas extremas. En un CMP con una LLC (parcialmente) compartida, la latencia y la energía necesarias para resolver las peticiones a la LLC representan un porcentaje importante del tiempo de ejecución y la energía consumida por el chip. Tanto la latencia como la energía dependen directamente de la distancia entre el núcleo que accede y el banco de LLC accedido. La organización tradicional de LLC no tiene en cuenta la distancia entre un núcleo y los bancos que accede. De hecho, existen grandes diferencias entre distintos núcleos del mismo cluster. En promedio, los núcleos en el centro del cluster ven los bancos más cerca que los núcleos en los bordes o esquinas, por lo que éstos últimos salen perjudicados. 1 Universidad de Murcia, e-mail: jmgarcia}@ditec.um.es. {toni, rfernandez, aros, II. Background Las arquitecturas objeto de nuestra propuesta son los tiled-CMPs como los de la Figura 1. Cada tile contiene un núcleo, cachés L1 privadas de datos e instrucciones, un banco de la LLC (L2) y una interfaz de red para comunicación con otros tiles. Clusters de núcleos comparten sus bancos de LLC. Usaremos el término grado de compartición para denotar el número de núcleos que acceden a cada banco de la LLC. Para la coherencia de caché se usa un protocolo MOESI. El mapeo de bloques de memoria a bancos de LLC se suele realizar usando algunos bits de la dirección (log2 gc bits, donde gc es el grado de compartición) como puede verse en la Figura 2. Se utiliza un directorio para mantener la coherencia de caché entre clusters. A. Coherencia de caché En una LLC parcialmente compartida son necesarios dos niveles de coherencia: un primer nivel para mantener la coherencia entre las cachés privadas de un cluster, y un segundo nivel para mantener la coherencia entre los bancos de caché de distintos clusters. Asumimos una caché de directorio distribuida por dirección en los bancos de LLC para el primer Direccion de memoria 3 2.5 2.5 Tag Selector de Banco 0 1 2 ... 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 Set index Selector de Banco Banco de LLC 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 15 Fig. 2. Block offset 000000 000001 000010 000011 001000 001001 001010 001011 010000 010001 010010 010011 011000 011001 011010 011011 3 3 2.5 2.5 3 2.5 2 2 2.5 2.5 2 2 2.5 2.5 2 2 2.5 2.5 2 2 2.5 3 2.5 2.5 3 3 2.5 2.5 3 3 2.5 2.5 3 3 2.5 2.5 3 2.5 2 2 2.5 2.5 2 2 2.5 2.5 2 2 2.5 2.5 2 2 2.5 3 2.5 2.5 3 3 2.5 2.5 3 Fig. 3. Distancia media en número de enlaces de cada núcleo a los bancos de LLC accedidos en un CMP con 64 núcleos y 4 clusters (grado de compartición de 16). Seleción de banco en uno de los clusters de una LLC parcialmente compartida con gc de 16. Los 16 núcleos de cada cluster comparten sus bancos de LLC. Los números en los tiles representan sus identicadores. de los fallos encuentran el dato en otro cluster o en memoria. Es por ello que la latencia media de los fallos de TABLA I L1 está determinada principalmente por la distancia Overhead de la información de compartición sobre la entre el núcleo y el banco de LLC del cluster en que capacidad de caché del chip. se encuentra el dato. Por tanto, el mapeo de bloques Núcleos a bancos de LLC es clave para mejorar el rendimien- Grado de compartición 1 2 4 8 16 32 64 44 % 22 % 11 % 6.3 % 4.2 % 4.2 % 5.6 % 128 89 % 45 % 23 % 12 % 7% 5.6 % 6.9 % 11 % 256 178 % 89 % 45 % 23 % 13 % 8.3 % 8.3 % 13 % 22 % 512 356 % 178 % 89 % 45 % 24 % 14 % 11 % 14 % 24 % 64 128 256 512 to del CMP, ya que determina la distancia de cada núcleo a los bancos de LLC que accede. Las cachés parcialmente compartidas no hacen na- 44 % da para reducir esta distancia. Los núcleos se agrupan en clusters dando lugar a accesos a la LLC con nivel de coherencia y una caché de directorio distribuida entre los controladores de memoria para el segundo nivel. Ocho controladores de memoria se reparten por los bordes del chip y las direcciones de memoria se distribuyen entre ellos. El directorio necesario para una LLC parcialmente compartida supone una sobrecarga menor que para una LLC privada o totalmente compartida, debido a que las entradas de directorio son más pequeñas. El primer nivel de coherencia necesita entradas con tantos bits como L1s acceden al banco de LLC (es decir, el grado de compartición), y el segundo nivel necesita tantos bits como clusters existen. Sin embargo, una LLC privada o totalmente compartida necesita entradas con tantos bits como núcleos hay en el chip, latencias largas. Como ejemplo, la Figura 3 muestra la distancia media en número de enlaces de cada núcleo a los bancos de LLC que accede. Conforme nos acercamos a los bordes del cluster la distancia media del núcleo a la LLC aumenta, y esta diferencia se hace mayor cuanto mayor es el grado de compartición. Este tipo de LLC parcialmente compartida tenía sentido cuando cada cluster de núcleos se encontraba en un chip distinto, ya que acceder a los bancos de LLC dentro del chip era mucho menos costoso. Sin embargo, en un escenario de many-core CMPs todos los núcleos se encuentran en el mismo chip, por lo que una organización parcialmente compartida como ésta no optimiza el acceso a los bancos de LLC. es decir, entradas de mayor tamaño. III. DAPSCO: Distance-Aware Partially La Tabla I muestra el overhead de los vectores de compartición para distintos números de Shared Cache Organization nú- cleos y grados de compartición, suponiendo siempre una caché de directorio poco densa con un sobreaprovisionamiento de 4× y bancos de LLC (L2) con un tamaño ocho veces superior al de un banco de L1. El menor overhead suele encontrarse en una organización con grado de compartición intermedio. B. Mapeo de bloques y distancia a la LLC Una organización de LLC con grado de compartición g está denida por dos elementos. El primero son las relaciones de acceso entre núcleos y bancos de LLC, accediendo cada núcleo a g bancos de LLC y siendo cada banco accedido a su vez por g núcleos. El segundo elemento es la asignación de una parte igual a 1/g del espacio de memoria a cada banco, de forma que varios bancos almacenan bloques de cada una de estas partes. Para que la organización funcione cada La LLC actúa como la última barrera para evi- núcleo debe ser capaz de acceder a todo el espacio tar costosos accesos a memoria principal. Para tener de memoria a través de los bancos de LLC a los que buen rendimiento la tasa de fallos de la LLC debe tiene acceso. ser muy baja, por lo que los fallos en L1 deben re- La idea principal de DAPSCO consiste en permitir solverse obteniendo el dato del banco de LLC desea- a cada núcleo acceder a un conjunto distinto de los do. Nuestros experimentos con benchmarks variados bancos de LLC, de modo que podamos hacer que muestran que, de media, más del 70 % de los fallos de cada núcleo acceda a bancos cercanos, como puede L1 se resuelven con un acceso a un banco de la LLC observarse en la Figura 4. Para conseguir esto, la dentro del cluster, más de un 10 % con una trans- función de mapeo que determina el banco de LLC ferencia caché a caché dentro del cluster, y el resto que almacena un bloque debe ser distinta en cada Grado de Comparticion 8 Grado de Comparticion 16 Tradicional DAPSCO Tradicional DAPSCO 0 1 2 3 0 1 2 3 5 2 1 0 7 3 6 4 0 1 2 3 0 1 2 3 6 1 9 14 11 3 4 8 4 5 6 7 4 6 7 7 4 3 6 2 0 1 4 5 6 7 4 5 6 7 15 2 7 12 10 0 5 13 1 2 3 0 1 2 3 6 0 5 9 10 11 8 9 10 11 4 15 6 2 7 4 5 6 7 4 5 6 7 3 1 2 9 14 12 1 0 1 2 3 0 1 2 3 4 7 6 111 000 000 111 000 111 5 0 111 000 000 111 000 111 5 4 5 6 7 4 5 6 7 2 0 0 1 2 3 0 1 2 3 6 1 4 5 6 7 4 5 6 7 5 3 111 000 000 111 000 111 000 111 000 111 000 111 Numero medio de enlaces a la LLC Media del chip 2 enlaces 2 enlaces 1.75 enlaces 2 3 11 00 00 11 00 11 0 1 5 6 7 4 9 10 11 8 4 1 3 7 2 8 7 0 4 6 5 12 13 14 15 12 13 14 15 3 5 2 1 0 0 1 5 1 4 6 7 3 4 7 2 3 0 2 4 8 4 0 6 7 5 1 11 00 00 11 000 111 000 111 000 111 000 111 111 000 000 111 1.25 enlaces Media del chip 1.37 enlaces 11 00 00 11 00 11 00 11 5 8 3 1 11 00 00 11 00 11 13 4 10 11 3 5 12 2 5 6 7 7 14 6 11 7 8 0 9 10 11 3 9 0 10 12 5 3 9 8 13 15 4 2 14 6 Numero medio de enlaces a la LLC 1.75 enlaces 13 2 12 13 14 15 12 13 14 15 Numero medio de enlaces a la LLC 0 11 10 11 00 00 11 Numero medio de enlaces a la LLC 3 enlaces 3 enlaces Media del chip 2.5 enlaces 1 15 11 00 00 11 00 11 00 11 Media del chip 2.81 enlaces 1.88 enlaces 2.14 enlaces Grado de Comparticion 32 Tradicional DAPSCO 0 1 2 7 24 6 10 28 18 2 8 9 10 11 12 13 14 15 11 7 12 21 23 20 19 16 17 18 19 20 21 22 23 0 13 31 24 25 26 27 28 29 30 31 5 14 25 15 26 16 0 1 2 7 16 27 8 9 10 11 12 13 14 15 30 17 16 17 18 19 20 21 22 23 19 20 11 00 00 11 000 111 000 111 000 111 000 111 3 3 4 4 5 5 6 111 000 000 111 000 111 6 24 25 26 27 28 29 30 31 Numero medio de enlaces a la LLC Media del chip Fig. 4. 5 enlaces 5 enlaces 3.88 enlaces 111 000 000 111 8 3 9 1 4 111 000 000 111 000 111 29 22 17 30 8 27 13 14 1 6 4 9 28 24 11 25 2 29 21 12 0 31 3 7 15 22 26 23 18 5 10 Numero medio de enlaces a la LLC 11 00 00 11 00 11 00 11 Media del chip 4.59 enlaces 3.44 enlaces 3.35 enlaces Bancos de LLC accedidos por los núcleos de una malla. Cada núcleo rayado accede a los bancos sombreados que le rodean. Los números en los tiles representan la porción del espacio de memoria servida por los bancos de LLC. Fíjese en que cada núcleo siempre tiene acceso a todas las porciones del espacio de memoria. DAPSCO reduce notablemente el número de enlaces medios recorridos para acceder a la LLC. núcleo. Además, todos los núcleos que acceden a un Operador A: dos bancos de LLC que almacenan mismo banco deben acceder a la misma porción del distintas porciones del espacio de memoria inter- espacio de memoria a través de él. cambian dichas porciones. Esto también implica DAPSCO no modica el protocolo de coherencia que los núcleos que accedían a uno de estos ban- ni aumenta la sobrecarga de la información nece- cos ahora deben acceder al otro para mantener saria para mantener la coherencia en comparación las restricción de que cada núcleo accede a todo con las organizaciones de caché parcialmente com- el espacio de memoria a través de la LLC. partidas tradicionales, como mostraremos en la Sec- Operador B: dos núcleos que acceden a dos ban- ción III-B. cos distintos de la LLC para la misma porción Encontrar el DAPSCO óptimo para un número de núcleos y un grado de compartición determinados es del espacio de memoria intercambian estos dos bancos. un problema NP-completo, por lo que en este tra- Es trivial demostrar que cualquier organización de bajo usamos algoritmos heurísticos para encontrar LLC resultante de la aplicación de estos operadores conguraciones óptimas o cercanas a la óptima. es válida, así como que cualquier organización válida puede obtenerse mediante la aplicación de una A. Explorando el espacio de búsqueda de DAPSCO secuencia adecuada de estos operadores. B. Detalles de implementación Para encontrar el mejor DAPSCO posible tanto para mallas como para toros hemos utilizado dos conocidos algoritmos de optimización global: ascen- Para implementar DAPSCO sólo son necesarios los siguientes cambios en el hardware ya existente: sión de colinas y temple simulado. La metodología 1. La función que cada núcleo utiliza para mapear explicada en esta sección es aplicable a cualquier direcciones de memoria a bancos de LLC debe topología. Estos algoritmos heurísticos comienzan representar el mapeo de DAPSCO en lugar del con la organización de LLC parcialmente compartida tradicional. tradicional en la que núcleos agrupados en clusters 2. La función que mapea los bits del primer nivel comparten sus bancos de LLC. Los algoritmos gen- de directorio a bancos de L1 debe concordar con eran y evalúan nuevas organizaciones que surgen de las relaciones de acceso de núcleos a bancos de la aplicación de los siguientes dos operadores: LLC de DAPSCO. TABLA II TABLA III Tamaño de los circuitos de mapeo de dirección a CMP simulado. banco en DAPSCO para grado de compartición de 8. Procesadores Núcleos Número de transistores Máximo no de transispor tile tores en el camino crítico 64 64 8 128 72 8 256 72 8 512 75 8 64 UltraSPARC-III+ 3 GHz. 2-vías, en orden. L1 Cache I&D Separadas. Tamaño: 64KB. Asociatividad: 4-vías. 64 bytes/bloque. Latencia: 1 ciclo. L2 Cache Tamaño: 1MB cada banco. 64MB total. Asociatividad: 8-vías. 64 bytes/bloque. Latencia: 2 (tag) + 3 (data) ciclos. RAM 4 GB DRAM. 8 controladores en los bordes del chip. Latencia: 150 ciclos + retardo on-chip. 3. La función que mapea los bits del segundo nivel Interconexión Malla bidimensional y toro 8x8. 16 bytes por enlace. de directorio a bancos de LLC debe concordar Latencia mesh: 2 ciclos/link. Toro: 4 ciclos/link. con las asignaciones de fracciones de espacio de memoria a bancos de LLC de DAPSCO. Estas funciones se implementan como circuitos combinacionales. Hemos generado el layout de todos estos circuitos tanto para la organización tradicional como para DAPSCO. En los casos (2) y (3) no existe diferencia en el número total de transistores ni en la longitud del camino crítico de estos circuitos entre la organización tradicional y DAPSCO. En el caso (1) la organización tradicional utiliza directamente algunos bits de la dirección de memoria para generar el identicador del banco de LLC a acceder, mientras que en DAPSCO es necesario el uso de un circuito que traduzca estos bits en el identicador. La Tabla II muestra el número de transistores necesarios para realizar esta traducción en DAPSCO en una malla con un grado de compartición igual a 8. El consumo energético y el área ocupada por estos transistores es insignicante. Además, el número de transistores necesarios escala bien con el número de núcleos y la longitud del camino crítico se mantiene constante. La latencia de estos circuitos puede además ocultarse si son accedidos en paralelo a los tags de L1. Como conclusión, las modicaciones en el hardware necesarias para implementar DAPSCO no crean ningún aumento de consumo, área o latencia. IV. Evaluación A. Efectividad de los DAPSCO hallados mejores conguraciones encontradas por los algoritmos, tanto para mallas como para toros. Se muestran tres valores distintos por topología: la organización tradicional, una cota inferior y el mejor DAPSCO encontrado. La cota inferior supone que cada núcleo accede a los bancos de LLC que tiene más cerca, lo cual normalmente no es posible en la práctica, ya que si esto fuera así, los bancos en las esquinas y bordes del chip serían accedidos por menos núcleos que los bancos en el centro, dando lugar a una conguración inválida. Incluimos esta cota para comprobar la efectividad de la búsqueda de DAPSCOs. Un hecho importante es que, al aumentar el grado de compartición, la distancia con la LLC aumenta y la mejora relativa obtenida con DAPSCO también aumenta. Por tanto, DAPSCO será más benecioso para el rendimiento y el consumo de energía cuanto mayor sea el grado de compartición ya que las latencias y consumos invariables (como los accesos a los arrays de tags y datos de las cachés) suponen una fracción menor del total y la comunicación con la LLC supone una fracción mayor. B. Metodología de simulación Para la evaluación hemos usado el simulador GEMS [5] para modelar un tiled-CMP cuyas características pueden verse en la Tabla III, los simu- Para realizar la búsqueda de DAPSCOs utilizamos ladores Garnet [6] y Orion [7] para modelar la red y un algoritmo de ascensión de colinas y otro de temple su consumo energético, y cargas tanto cientícas (lu, simulado, como explicamos en la Sección III-A. Estos lunc, tomcatv, volrend, watersp) como comerciales algoritmos se ejecutaron repetidamente para varias (apache y jbb). combinaciones de grado de compartición y número de núcleos, y seleccionamos la mejor solución encontrada para cada una de estas combinaciones. En total, los algoritmos se ejecutaron en un cluster de 268 núcleos (Intel Xeon a 2.33GHz en su mayoría) durante una semana. Los algoritmos se reiniciaban cada vez que la generación de dos millones de nuevas organizaciones consecutivas no mejoraba la mejor solución encontrada por la ejecución actual del algoritmo. Se implementaron algunas optimizaciones que mejoraron la eciencia de los algoritmos, tales como sólo aplicar operadores que redujeran la distancia media a la LLC de alguno de los núcleos afectados por el operador para dirigir la búsqueda. La Figura 5 muestra el número medio de enlaces entre los núcleos y la LLC proporcionado por las Hemos evaluado cuatro conguraciones distintas: 8Tradicional: organización de caché parcial- mente compartida tradicional con grado de compartición de 8. 8DAPSCO: DAPSCO con grado de compartición de 8. 16Tradicional: organización de caché parcialmente compartida tradicional con grado de compartición de 16. 16DAPSCO: DAPSCO con grado de compartición de 16. Hemos usado dos topologías de red distintas: malla y toro. Añadimos los sujos malla y toro a los nombres de las cuatro conguraciones anteriores para distinguir la topología utilizada. Numero Medio de Enlaces a la LLC 12 malla base malla mejor DAPSCO malla cota optimista toro base toro mejor DAPSCO toro cota optimista 10 8 6 4 2 0 64 6 6 1 1 1 1 2 2 2 2 2 2 5 5 5 5 5 5 5 6 1 /4 4/8 4/1 4/3 28/ 28/ 28/ 28/ 28/ 56/ 56/ 56/ 56/ 56/ 56/ 12/ 12/ 12/ 12/ 12/ 12/ 12/ 6 8 16 32 64 4 8 16 32 64 12 4 8 16 32 64 12 25 2 4 8 8 6 Numero de Nucleos/Grado de Comparticion Fig. 5. Número medio de enlaces de los núcleos a los bancos de LLC. El eje x representa el número de núcleos en el chip (de 64 a 512) y el grado de compartición (de 4 a 256). TABLA IV Distancia media a la LLC Mejora sobre tradicional (enlaces) 8TradicionalMalla 1.75 8DAPSCOMalla 1.37 16TradicionalMalla 2.5 16DAPSCOMalla 2.14 8TradicionalToro 1.75 8DAPSCOToro 1.25 16TradicionalToro 2.5 16DAPSCOToro 1.88 24 % 17 % 4p 33 % 8TradicionalMalla 8DAPSCOMalla 16TradicionalMalla 16DAPSCOMalla 3.0 2.0 1.0 0.0 Fig. 6. 4p c6 lun tom 4p tv6 ca p p 64 nd 64 sp ter wa Workload lre vo ac ap 4p 16TradicionalMalla 16DAPSCOMalla c6 lun 4p tv6 ca tom nd p 64 p 64 sp ter wa Workload lre vo e h ac ap jbb ge era Av Fig. 8. Tiempo de ejecución normalizado usando una malla. 4.0 4p 8TradicionalMalla 8DAPSCOMalla lu6 5.0 lu6 1.2 1.1 1.0 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0.0 40 % he jbb ge era Av Tiempo de ejecución Nº medio de enlaces atravesados Conguración Tiempo de ejecución Distancia media de los núcleos a los bancos de LLC. 1.3 1.2 1.1 1.0 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0.0 8TradicionalToro 8DAPSCOToro 4p lu6 4p c6 lun 16TradicionalToro 16DAPSCOToro Número medio de enlaces atravesados para acceder a 4p tv6 ca tom nd lre vo p 64 p 64 sp ter wa Workload e h ac ap jbb ge era Av Fig. 9. Tiempo de ejecución normalizado usando un toro. la LLC. Malla. El número medio de enlaces para llegar a la LLC en cada conguración se muestra en la Tabla IV. corresponde al toro y un grado de compartición de 8, con un 40 %. C. Resultados La reducción en enlaces atravesados se traduce en La mayor parte de los fallos de L1 se resuelven mejoras en el tiempo de ejecución y en el consumo obteniendo el dato de la LLC. Estos fallos se bene- de energía de la red. Las Figuras 8 y 9 muestran cian de la menor distancia a la LLC de DAPSCO. el tiempo de ejecución de las ocho conguraciones Las Figuras 6 y 7 muestran el número medio de en- evaluadas. Al usar una malla el rendimiento del sis- laces atravesados para resolver estos fallos usando tema mejora un 4 % y un 6 % con DAPSCOs para una malla o un toro. Estos resultados experimentales grados de compartición de 8 y 16, respectivamente. encajan con los valores medios de DAPSCO mostra- Con el toro estas mejoras suben hasta un 10 % y dos anteriormente en la Tabla IV. La máxima mejora un 13 %, respectivamente. A pesar de que la reducción en número de enlaces es menor con un grado de Nº medio de enlaces atravesados compartición de 16 que con uno de 8, la ganancia en 8TradicionalToro 8DAPSCOToro tiempo de ejecución de DAPSCO es mayor con el de 16TradicionalToro 16DAPSCOToro 16 ya que el porcentaje de latencia debido a atrav- 5.0 4.0 esar la red supone una fracción mayor del tiempo de 3.0 ejecución cuanto mayor es el grado de compartición. 2.0 Las Figuras 10 y 11 muestran el consumo de en- 1.0 ergía de la malla y del toro. De nuevo, gracias a la 0.0 Fig. 7. 4p lu6 4p c6 lun tom 4p tv6 ca p 64 nd lre vo p 64 sp ter wa Workload ac ap he jbb ge era Av Número medio de enlaces atravesados para acceder a la LLC. Toro. reducción en número de enlaces y routers atravesados para acceder a la LLC, la energía se reduce al usar DAPSCO un 4 % y un 6 % con la malla y un 10 % y un 13 % con el toro para grados de compartición de Consumo de energía de la red 1.3 1.2 1.1 1.0 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0.0 8TradicionalMalla 8DAPSCOMalla CA mejora un 3 % de media (hasta un 7 %) al activar 16TradicionalMalla 16DAPSCOMalla DAPSCO. VI. Conclusiones Hemos optimizado la organización de caché parcialmente compartida de los CMPs haciendo que calu6 4p c6 lun 4p 4p tv6 ca tom p 64 nd lre vo sp ter wa Workload p 64 ac ap he jbb ge era Av da núcleo acceda a bancos de LLC cercanos. Los costes en hardware de la nueva organización son in- Fig. 10. Consumo de energía normalizado de la malla. signicantes y las mejoras obtenidas en tiempo de ejecución y consumo de energía de la red en compara- Consumo de energía de la red ción con la organización tradicional son notables. 1.3 1.2 1.1 1.0 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0.0 8TradicionalToro 8DAPSCOToro 16TradicionalToro 16DAPSCOToro Hemos mostrado ejemplos que mejoran el rendimiento de un CMP de 64 núcleos en un 4 % y un 6 % al usar una malla y un 10 % y un 13 % al usar un toro con respecto a la organización tradicional. El consumo de energía de la red también se reduce de manera similar. También hemos mostrado como al lu6 4p p 64 c lun c tom 4p 6 atv l vo p 64 d ren sp ter p 64 wa Workload e ch a ap jbb ge ra ve A aumentar el número de núcleos y el grado de compartición los benecios son aún más considerables. Fig. 11. Consumo de energía normalizado del toro. 8 y 16, respectivamente. Estos resultados muestran la efectividad de DAPSCO. No obstante, el potencial de DAPSCO aumentará conforme aumente el número de núcleos y el grado de compartición ya que la reducción de enlaces atravesados en el acceso a la LLC tendrá mayor impacto en Agradecimientos Este trabajo ha sido nanciado por el MEC y la Comisión Europea FEDER mediante los proyectos Consolider Ingenio-2010 TIN2009-14475-C04-02. DAPSCO es ortogonal a otras propuestas que utilizan cachés parcialmente compartidas, como Reactive NUCA [8]. Reactive NUCA se basa en clasicar dinámicamente cada bloque en uno de varios tipos de bloque predeterminados (instrucciones, datos privados y datos compartidos), y en aplicar un grado de compartición distinto predeterminado a cada uno de estos tipos de bloque para mejorar el rendimiento. Hemos aplicado Reactive NUCA a un CMP de 64 núcleos con una malla, y mediante tests exhaustivos hemos determinado que los mejores grados de compartición son: cuatro para instrucciones, uno para y García-Guirado también es beneciario de una beca FPU del MEC (FPU AP2008-04387). Referencias el tiempo de ejecución y el consumo de la red. V. Ortogonalidad de DAPSCO CSD2006-00046 Antonio [1] Chun Liu, Anand Sivasubramaniam, and Mahmut Kandemir, Organizing the Last Line of Defense before Hitting Proceedings of the 10th International Symposium on High Performance Computer Architecture (HPCA), 2004, pp. 176185. the Memory Wall for CMPs, in [2] B. A. Nayfeh, K. Olukotun, and J. P. Singh, The Im- pact of Shared-Cache Clustering in Small-Scale Shared- Proceedings of the 2nd IEEE Symposium on High-Performance Computer Architecture (HPCA), 1996, pp. 7484. Memory Multiprocessors, in [3] Jaehyuk Huh, Changkyu Kim, Hazim Sha, Lixin Zhang, Doug Burger, and Stephen W. Keckler, A NUCA Subin Proceedings of the 19th annual international conference on Supercomputing (ICS), 2005, pp. 3140. strate for Flexible CMP Cache Sharing, [4] Mohammad Hammoud, Sangyeun Cho, and Rami Melhem, Dynamic Cache Clustering for Chip Multiproces- Proceedings of the 23rd International Conference on Supercomputing (ICS), 2009, pp. 5667. sors, in datos privados y ocho para datos compartidos. Poste- [5] Milo M. K. Martin, Daniel J. Sorin, Bradford M. Beck- riormente, hemos sustituido la organización de caché mann, Michael R. Marty, Min Xu, Alaa R. Alameldeen, parcialmente compartida de Reactive NUCA por DAPSCO. La Figura 12 muestra la comparativa de rendimiento entre Reactive NUCA y Reactive NUCA más DAPSCO. El rendimiento de Reactive NU- Kevin E. Moore, Mark D. Hill, and David A. Wood, Multifacet's general execution-driven multiprocessor simulator (GEMS) toolset, SIGARCH Comput. Archit. News, vol. 33, no. 4, pp. 9299, 2005. [6] Niket Agarwal, Tushar Krishna, Li-Shiuan Peh, and Niraj K. Jha, GARNET: A Detailed On-Chip Network in International Symposium on Performance Analysis of Systems and Software (ISPASS), 2009, pp. 3342. Model Inside a Full-System Simulator, 1.1 RNUCA DAPSCO-RNUCA [7] Andrew B. Kahng, Bin Li, Li-Shiuan Peh, and Kambiz 1.0 Samadi, ORION 2.0: a Fast and Accurate NoC Power and Tiempo de ejecución 0.9 Area Model for Early-Stage Design Space Exploration, in 0.8 0.6 Proceedings of the Conference on Design, Automation and Test in Europe (DATE), 2009, pp. 423428. 0.5 [8] Nikos Hardavellas, Michael Ferdman, Babak Falsa, and 0.7 0.4 Anastasia Ailamaki, 0.3 Reactive NUCA: Near-Optimal Block Placement and Replication in Distributed Caches, 0.2 Proceedings of the 36th Annual International Symposium on Computer architecture (ISCA), 2009, pp. 184 in 0.1 0.0 lu6 4p 64 c lun p p 4 tv6 ca tom 4p 6 nd lre vo p 64 sp ter wa he ac ap jbb ge era Av Workload Fig. 12. Rendimiento de Reactive NUCA sin y con DAPSCO. 195.