Casa > Exposició > Contingut

Conceptes microarquitectònics Multiprocessió i multithreading

Mar 09, 2019

Els arquitectes informàtics han estat afectats per la creixent discrepància en les freqüències de funcionament de la CPU i els temps d’accés a la DRAM. Cap de les tècniques que explotaven el paral·lelisme a nivell d’instruccions (ILP) dins d’un programa podrien compensar les parades llargues que s’han produït quan es van haver d’obtenir dades de la memòria principal. A més, els grans comptes de transistors i les altes freqüències de funcionament necessàries per a les tècniques ILP més avançades van requerir nivells de dissipació de potència que ja no podien refredar-se a bon preu. Per aquestes raons, les noves generacions d’ordinadors han començat a explotar nivells més alts de paral·lelisme que existeixen fora d’un únic programa o fil de programa.


Aquesta tendència de vegades es coneix com a computació de rendiment. Aquesta idea es va originar al mercat de mainframe, on el processament de transaccions en línia no només feia èmfasi en la velocitat d’execució d’una transacció, sinó també en la capacitat de fer front a un nombre enorme de transaccions. Amb aplicacions basades en transaccions, com l’encaminament de xarxes i el lloc web, que s’està incrementant notablement durant la darrera dècada, la indústria de la informàtica ha reforçat els problemes de capacitat i rendiment.


Una tècnica de com s'aconsegueix aquest paral·lelisme és mitjançant sistemes de multiprocessament, sistemes informàtics amb múltiples CPU. Un cop reservats per a mainframes de gamma alta i supercomputadors, els servidors multiprocessadors a petita escala s'han convertit en un lloc comú per al mercat de petites empreses. Per a grans corporacions, els multiprocessadors a gran escala (16-256) són comuns. Fins i tot els ordinadors personals amb múltiples CPU han aparegut des dels anys noranta.


Amb més reduccions de mida de transistors disponibles amb avenços en tecnologia de semiconductors, han aparegut CPUs multi-nucli on s'implementen múltiples CPUs sobre el mateix xip de silici. Inicialment utilitzat en xips dirigits a mercats incrustats, on les CPU més petites i simples permetien que múltiples instàncies es quedessin en una sola peça de silici. El 2005, la tecnologia de semiconductors va permetre fabricar en volum les CPU dual d’escriptori d'alta gamma CMP. Alguns dissenys, com ara UltraSPARC T1 de Sun Microsystems, han tornat a dissenys més senzills (escalars i en ordre) per tal d’adaptar a més processadors d’una sola peça de silici.


Una altra tècnica que s'ha anat popularitzant recentment és el multihilo. Al multihilo, quan el processador ha d’obtenir dades de la memòria lenta del sistema, en lloc d’allunyar-se de les dades, el processador canvia a un altre programa o programa que està a punt per executar-se. Tot i que això no accelera un determinat programa / fil, augmenta el rendiment global del sistema reduint el temps que la CPU està inactiva.


Conceptualment, el multihilo és equivalent a un canvi de context en el nivell del sistema operatiu. La diferència és que una CPU multicapa pot fer un canvi de fil en un cicle de la CPU en lloc dels centenars o milers de cicles de CPU que requereix normalment un interruptor de context. Això s'aconsegueix replicant el maquinari de l'estat (com el fitxer de registre i el comptador de programes) per a cada fil actiu.


Una millora addicional és el multihilo simultani. Aquesta tècnica permet que les CPU superescalares executin instruccions de diferents programes / fils simultàniament en el mateix cicle.