Processador Multinucli

Interior d'un microprocessador de quatre nuclis.

Un processador multinucli és aquell que combina dos o més unitats de processament independents, anomenades cores o nuclis. Cadascuna d'aquestes unitats llegeix i executa instruccions CPU ordinàries —com ara add, move o branch—, amb l'avantatge que el processador multinucli permet executar-ne diverses alhora, en nuclis separats, augmentant així la velocitat dels programes que fan ús del multithreading o d'altres tècniques de computació en paral·lel.

Els fabricants solen integrar els nuclis en un únic dau de circuit integrat, conegut com a xip multiprocessador, o bé en múltiples daus d'un mateix encapsulat. Actualment, en la majoria d'equips personals, s'usen microprocessadors multinucli.

Un processador multinucli implementa el multiprocessament en un sol paquet físic. Els nuclis poden tenir més o menys grau d'acoblament; per exemple, poden compartir o no compartir la memòria cau, i poden implementar mètodes de comunicació entre nuclis o de memòria compartida.

Els busos, els anells, les malles i els commutadors de barres creuades són algunes de les tipologies de xarxa usades per a la interconnexió de nuclis.

Els sistemes multinucli homogenis estan formats per nuclis idèntics entre ells, mentre que els heterogenis estan formats per nuclis no idèntics —per exemple, big.LITTLE té nuclis heterogenis que comparteixen el mateix repertori d'instruccions, mentre que els AMD Fusion no el comparteixen—. Igual que els processadors d'un sol nucli, els processadors multinucli poden implementar arquitectures de tipus vectorial, superescalar, VLIW o multithreading. Els processadors multinucli tenen aplicacions molt diverses: s'usen en equips d'ús general, en sistemes incrustats, en GPUs, o com a processadors de xarxa o de senyals digitals.

La millora en el rendiment fruit de la utilització d'un processador multinucli depèn en gran manera dels algoritmes de software utilitzats, així com de la implementació que se'n fa. Com descriu la llei d'Ambdahl, els guanys estan limitats per la fracció del software que es pot executar simultàniament en paral·lel en diferents nuclis del processador. En el millor dels casos, els problemes perfectament paral·lels poden experimentar millores en el rendiment amb factors propers al nombre de nuclis, o fins i tot més si podem separar el problema en suficients parts com perquè càpiga a la caché de cada nucli, evitant així l'ús de la memòria ordinària, molt més lenta. Tanmateix, en la majoria de casos, l'acceleració no és tan alta tret que els programadors inverteixin un volum de temps prohibitiu a reformular tot el problema.

A dia d'avui, la paral·lelització de programari és un important tema d'investigació en procés.