Adaptive memory hierarchies for next generation tiled microarchitectures

Les ultimes decades el rendiment dels processadors i de les memories ha millorat a diferent ritme, limitant el rendiment dels processadors i creant el conegut memory gap. Sol·lucionar aquesta diferencia de rendiment es un camp d'investigacio d'actualitat i que requereix de noves sol·lucions. Una sol·lucio a aquest problema son les memories “cache”, que permeten reduir l'impacte d'unes latencies de memoria creixents i que conformen la jerarquia de memoria. La majoria de d'organitzacions de les “caches” estan dissenyades per a uniprocessadors o multiprcessadors tradicionals. Avui en dia, pero, el creixent nombre de transistors disponible per xip ha permes l'aparicio de xips multiprocessador (CMPs). Aquests xips tenen diferents propietats i limitacions i per tant requereixen de jerarquies de memoria especifiques per tal de gestionar eficientment els recursos disponibles. En aquesta tesi ens hem centrat en millorar el rendiment i la eficiencia energetica de la jerarquia de memoria per CMPs, des de les “caches” fins als controladors de memoria. A la primera part d'aquesta tesi, s'han estudiat organitzacions tradicionals per les “caches” com les privades o compartides i s'ha pogut constatar que, tot i que funcionen be per a algunes aplicacions, un sistema que s'ajustes dinamicament seria mes eficient. Tecniques com el Cooperative Caching (CC) combinen els avantatges de les dues tecniques pero requereixen un mecanisme centralitzat de coherencia que te un consum energetic molt elevat. Es per aixo que en aquesta tesi es proposa el Distributed Cooperative Caching (DCC), un mecanisme que proporciona coherencia en CMPs i aplica el concepte del cooperative caching de forma distribuida. Mitjancant l'us de directoris distribuits s'obte una sol·lucio mes escalable i que, a mes, disposa d'un mecanisme de marcatge mes flexible i eficient energeticament. A la segona part, es demostra que les aplicacions fan diferents usos de la “cache” i que si es realitza una distribucio de recursos eficient es poden aprofitar els que estan infrautilitzats. Es proposa l'Elastic Cooperative Caching (ElasticCC), una organitzacio capac de redistribuir la memoria “cache” dinamicament segons els requeriments de cada aplicacio. Una de les contribucions mes importants d'aquesta tecnica es que la reconfiguracio es decideix completament a traves del maquinari i que tots els mecanismes utilitzats es basen en estructures distribuides, permetent una millor escalabilitat. ElasticCC no nomes es capac de reparticionar les “caches” segons els requeriments de cada aplicacio, sino que, a mes a mes, es capac d'adaptar-se a les diferents fases d'execucio de cada una d'elles. La nostra avaluacio tambe demostra que la reconfiguracio dinamica de l'ElasticCC es tant eficient que gairebe proporciona la mateixa taxa de fallades que una configuracio amb el doble de memoria.Finalment, la tesi es centra en l'estudi del comportament de les memories DRAM i els seus controladors en els CMPs. Es demostra que, tot i que els controladors tradicionals funcionen eficientment per uniprocessadors, en CMPs els diferents patrons d'acces obliguen a repensar com estan dissenyats aquests sistemes. S'han presentat multiples sol·lucions per CMPs pero totes elles es veuen limitades per un compromis entre el rendiment global i l'equitat en l'assignacio de recursos. En aquesta tesi es proposen els Thread Row Buffers (TRBs), una zona d'emmagatenament extra a les memories DRAM que permetria guardar files de dades especifiques per a cada aplicacio. Aquest mecanisme permet proporcionar un acces equitatiu a la memoria sense perjudicar el seu rendiment global. En resum, en aquesta tesi es presenten noves organitzacions per la jerarquia de memoria dels CMPs centrades en la escalabilitat i adaptativitat als requeriments de les aplicacions. Els resultats presentats demostren que les tecniques proposades proporcionen un millor rendiment i eficiencia energetica que les millors tecniques existents fins a l'actualitat.