Design of Clustered Superscalar Microarchitectures

L'objectiu d'aquesta tesi es proposar noves tecniques per al disseny de microarquitectures cluster superescalars eficients. Les microarquitectures cluster particionen el disseny de diversos components critics del hardware com a mitja per mantenir-ne el paral·lelisme i millorar-ne l'escalabilitat. El nucli d'un processador cluster, format per blocs de baixa complexitat o clusters, pot executar cadenes d'instruccions dependents sense pagar el sobrecost d'una llarga emissio, curtcircuits, o lectura de registres, encara que si dues instruccions dependents s'executen en clusters diferents, es paga la penalitzacio d'una comunicacio. Per altra banda, les estructures distribuides impliquen generalment menors requisits de potencia dinamica, i simplifiquen la gestio de l'energia per mitja de tecniques com la desactivacio selectiva del rellotge o l'energia, o com la reduccio a escala de la tensio. El primer objecte d'aquesta recerca es l'assignacio d'instruccions a clusters, ja que aquesta juga un paper clau en el rendiment, amb l'objectiu de mantenir equilibrada la carrega i reduir la penalitzacio de les comunicacions critiques. Es proposen dos diferents enfocs: primer, una familia de nous esquemes que identifiquen dinamicament certs grups d'instruccions dependents anomenats "slices", i fan l'assignacio de clusters slice per slice. Es diferencien d'altres enfocs previs, ja sigui perque son dinamics i/o be perque inclouen nous mecanismes explicits de mesura i gestio de l'equilibri de carrega. Segon, una familia de nous esquemes que assignen clusters instruccio per instruccio, basats en les assignacions previes dels productors dels registres fonts, en la ubicacio dels registres fisics, i en la carrega de treball. La segona contribucio proposa la prediccio de valors com a mitja per mitigar les penalitzacions dels retards dels connectors i, en particular, per amagar les comunicacions entre clusters. Es demostra que el benefici obtingut amb l'eliminacio de dependencies creix amb el nombre de clusters i la latencia de les comunicacions i, doncs, es major que per a una arquitectura centralitzada. Es proposa un nou esquema d'assignacio de clusters que aprofita la menor densitat del graf de dependencies per tal de millorar l'equilibri de carrega. El tercer aspecte considerat es la xarxa d'interconnexio entre clusters, ja que determina la latencia de les comunicacions, amb l'objectiu de trobar el millor compromis entre cost i rendiment. Es proposen diverses xarxes punt-a-punt, tant sincrones com parcialment asincrones, que assoleixen un IPC proxim al d'un model ideal amb ample de banda il·limitat, tot i tenir molt baixa complexitat. Llur impacte sobre els curtcircuits, cues d'emissio o bancs de registres es molt menor que el d'altres enfocs. Es proposen tambe possibles implementacions dels enrutadors, que il·lustren llur factibilitat amb solucions hardware molt simples i de baixa latencia. Es proposa un nou esquema d'assignacio de clusters conscient de la topologia, que redueix la latencia de les comunicacions. L'ultima contribucio proposa tecniques per distribuir els components principals de les etapes inicials del processador, amb l'objectiu de reduir-ne la complexitat i evitar-ne la replicacio. Es proposen tecniques eficaces per a la particio del predictor de salts i la logica de distribucio d'instruccions, a fi de minimitzar la penalitzacio pels retards dels connectors causada per les dependencies recursives en dos llacos critics del hardware: la generacio de l'adreca de busqueda d'instruccions i la logica d'assignacio d'instruccions, respectivament. En el primer cas, es converteixen els retards dels connectors intra-estructurals d'un predictor centralitzat en retards de comunicacio entre clusters, els quals se segmenten sense problemes. En el segon cas, el particionat de la logica d'assignacio d'instruccions basada en dependencies implica paral·lelitzar aquesta tasca, la qual es inherentment sequencial.