Mecanismos de coherencia escalable para sistemas comerciales
Durante la última década, los sistemas basados en multiprocesadores en un solo chip (CMPs) se han convertido en el diseño predominante para prácticamente todos los microprocesadores independientemente del segmento del mercado al que estén destinados. Desde los dispositivos móviles como smartphones y tabletas hasta los servidores de los centros de proceso de datos que nos proporcionan una mirada de servicios en la nube, los procesadores multinúcleo se han vuelto omnipresentes. Esto ha sido posible gracias a la progresiva miniaturización de los transistores, que ha permitido que se puedan incluir en un solo chip cada vez más núcleos.
Como resultado, hoy en día los principales fabricantes de microprocesadores, tales como Intel o AMD, ofertan productos para el mercado de ordenadores portátiles y de escritorio que superan la veintena de núcleos, mientras que su gama de productos para servidores y centros de proceso de datos cuenta con chips cuyo número de núcleos se aproxima a la centena.
Núcleos de procesamiento eficientes en energía
Para alcanzar unos números tan extraordinarios, los fabricantes optan cada vez más por integrar núcleos de procesamiento en cuyo diseño se prima fundamentalmente la eficiencia energética, frente al enfoque más propio de décadas pasadas donde reducir el tiempo de ejecución de los programas secuenciales era el objetivo principal. Esta ingente cantidad de núcleos accede a una memoria compartida a través de una jerarquía de cachés integrada en el chip.
Gestión automática de coherencia
Con el propósito de ofrecer un interfaz de programación relativamente sencilla, resulta imprescindible gestionar automáticamente la coherencia entre estas cachés [3]. De esta forma, la comunicación entre los procesadores aparenta ser casi transparente al software. La gestión de la coherencia resulta clave para conseguir un buen rendimiento para los programas paralelos que se ejecutan en los CMPs actuales, y su importancia es cada vez mayor según va aumentando el número de núcleos de proceso.
Propuestas para mejorar la gestión de la coherencia
Por ello, a lo largo de los años han surgido muchas propuestas para mejorarla [4][16][17][18][19][20], reduciendo el sobrecoste en términos de área, tiempo y energía causado por el almacenamiento de la información de compartición y la comunicación entre los núcleos y las cachés generada por el protocolo de coherencia. Sin embargo, muchas de estas ideas no se suelen aplicar a los sistemas comerciales.
Objetivo de la tesis
En esta tesis se estudiarán técnicas avanzadas para mejorar la gestión de la coherencia, y especialmente se estudiará cómo incorporarlas a sistemas reales. Los detalles de los protocolos de coherencia utilizados por los diferentes fabricantes internamente en los CMPs no son siempre públicos. Sin embargo, existen algunos protocolos que sí se han publicado y se están utilizando en procesadores comerciales modernos. Entre ellos, cabe destacar el protocolo AMBA/CHI (usado en diseños que utilizan procesadores ARM, RISC-V y otros) y el protocolo TileLink (usado en diseños de RISC-V). Por tanto, en esta tesis se utilizarán CHI y TileLink como punto de partida a la hora de proponer nuevas técnicas, y se estudiará cómo modificarlos para implementarlas eficientemente.