Técnicas para mejorar la eficiencia energética de los CMPs con coherencia de caché= Improving the energy-efficiency of cache-coherent multi-cores.

Resumen en castellano Objetivos Con el fin de los beneficios energeticos del escalado clasico de los transistores, la eficiencia energetica se convirtio en el principal objetivo de los disenos de microprocesador. Las mejoras de los transistores no pueden compensar al mismo ritmo que en el pasado los costes energeticos de mejorar el rendimiento con frecuencias mayores y microarquitecturas mas complejas. Ahora mas que nunca, los arquitectos de computadores deben proporcionar el crecimiento de rendimiento esperado a traves de disenos mas eficientes energeticamente. Hace algunos anos los multiprocesadores en un chip (CMPs), formados por nucleos relativamente simples, se adoptaron como una arquitectura con mayor eficiencia energetica, convirtiendose en la principal corriente de diseno. Sin embargo, los CMPs plantean dificultades particulares en su diseno. En esta tesis abordamos dos cuestiones con creciente importancia al escalar los CMPs: el consumo de energia de la red del chip (NoC) y la escalabilidad de la coherencia de cache, y proponemos mecanismos para mitigar su impacto en la eficiencia energetica. Al aumentar la cantidad de nucleos, la informacion de coherencia de cache llegaria a ocupar la mayor parte del area de almacenamiento del chip si no somos capaces de desarrollar esquemas de coherencia escalables y eficientes energeticamente. Ademas, las tendencias actuales indican que la NoC acabaria usando la mayor parte de la energia del chip si no se toman medidas para evitarlo. Metodologia Cada propuesta de esta tesis fue evaluada contra otras soluciones recientes, demostrando su eficacia, y puesta en contexto con el estado del arte. Para ello se utilizo un extenso conjunto de herramientas, incluyendo simuladores detallados como Simics, GEMS y GEM5 para modelar el rendimiento de los CMPs, simuladores de red como GARNET y simuladores de consumo energetico como McPAT, Orion o CACTI. Un diseno tiled-CMP, representativo de los multiprocesadores actuales en cualquier segmento de mercado, se uso como base sobre la que implementar nuestras propuestas. Resultados Para mejorar la escalabilidad de la coherencia de cache proponemos un nuevo esquema de coherencia basado en un chip dividido en areas enlazadas que reduce notablemente el tamano del almacenamiento usado por la informacion de comparticion. Tambien proponemos una organizacion de cache unificada que elimina la sobrecarga y complejidad de las estructuras de almacenamiento de directorio aprovechando los recursos compartidos de cache para almacenar alternativamente datos o informacion de directorio con granularidad de entrada de cache. Esta organizacion usa eficientemente los recursos de almacenamiento, asignando a informacion de directorio solo el (pequeno) numero de entradas necesarias de la memoria cache unificada. Demostramos que esta organizacion es escalable a grandes numeros de nucleos (e.g., 512 trivialmente y 1 millon con codigos compartidos elaborados). Para reducir el impacto del escalado de la NoC desarrollamos tecnicas para aumentar la proximidad entre datos y nucleos a nivel de la arquitectura y politicas para utilizar de manera eficiente la novedosa tecnologia de transmision fotonica en silicio de bajo consumo. Para aumentar la cercania de datos, proponemos un mecanismo que obtiene datos de un proveedor cercano en la zona en que se encuentra el nucleo que solicita los datos, a nivel de protocolo de coherencia de cache. A nivel de organizacion de cache proponemos una nueva organizacion cuyo objetivo es minimizar la distancia media para acceder al ultimo nivel de cache, reduciendo la energia necesaria para alimentar los nucleos con datos. Para permitir la explotacion de la fotonica en silicio abrimos el campo de las politicas dinamicas de gestion de NoCs hibridas fotonicas-electronicas, haciendo uso eficiente de las propiedades particulares de cada tecnologia con fina granularidad de mensaje, resultando en importantes beneficios en rendimiento, energia y latencia. Resumen en ingles Objectives With the end of the energy benefits of classical transistor scaling, energy-efficiency became the driving factor of microprocessor design. The energy costs of increasing operating frequencies and using more aggressive microarchitectures to improve performance can no longer be compensated by transistor technology advances at the same rate as in the past. Now more than ever, computer architects are left in charge of providing the expected growth of microprocessor performance by means of more energy-efficient designs, in order to make cost-effective use of the ever-increasing transistor density in chips within a limited power budget. Otherwise, microprocessor evolution would be doomed to hit the power wall. Some years back, chip multiprocessors (CMPs) containing relatively simple cores were deemed a suitable architecture in the search for energy-efficiency and went mainstream. However, CMPs pose particular challenges in their design. In this thesis we tackle two paramount issues with growing importance as we scale out CMPs, namely network-on-chip power consumption and cache coherence scalability, and we propose mechanisms to alleviate their impact on the energy-efficiency of CMPs. As the core count increases, cache coherence information may eventually account for most storage area on chip if we fail to provide scalable and energy-efficient coherence schemes. In addition, current trends indicate that networks-on-chip (NoCs) would end up taking up most of the chip energy budget unless measures are taken to prevent it. Methodology To carry out this research, a comprehensive set of tools was used, including detailed simulators such as Simics, GEMS and GEM5 to model the timing of CMPs, network simulators such as GARNET, as well as power simulators such as McPAT, Orion or CACTI. A tiled-CMP design, representative of current multiprocessors in every market segment, was used as a baseline with realistic features on which to implement our proposals. Every proposal was evaluated against state of the art counterparts to prove their effectiveness. Results To improve the scalability of cache coherence, we propose a new coherence scheme based on a chip divided in linked areas that noticeably reduces the size of the storage used to maintain sharing information. Then, we propose a unified cache organization that eliminates the overhead and complexity of directory storage structures by leveraging shared cache resources to alternately store data or directory information at a cache entry granularity. This organization makes efficient use of storage resources as just the required (small) number of entries are allocated for directory information in the unified cache. We show that this organization is scalable to very large core counts (e.g. 512 trivially and one million with elaborate sharing codes). To reduce the impact of network scaling, we develop techniques to increase the proximity of data to cores at the architecture level, and policies to efficiently use disruptive low-power transmission technologies such as silicon photonics. For increasing data proximity, in this thesis we propose a mechanism that retrieves data from a close provider in the area in which the core requesting the data is located, working at the cache coherence protocol level. At the cache organization level, we propose a new organization that aims at minimizing the average distance to access the last level cache, reducing the energy required to feed the cores with data. To enable the exploitation of photonics, we open the field of dynamic policies for arbitrating hybrid photonic-electronic NoCs, making energy-efficient use of the particular properties of both technologies at a fine message granularity, resulting in important benefits in throughput, energy and latency.