Informatica per tutti Blog

Information Technology Blog

Dual Core e Multi Core

Il termine Dual core viene utilizzato in elettronica per indicare una CPU composta da 2 core, ovvero da 2 nuclei di processori “fisici” montati sullo stesso package.

Il “Core” è il “nucleo elaborativo” di un microprocessore. Questo infatti è costituito in realtà da 2 componenti principali: il core appunto, e il package che lo contiene. In alcune tipologie, è visibile la posizione del core, costituito da un piccolo rettangolo nero leggermente sporgente al centro del package, contiene tutti i transistor (centinaia di milioni), che ne determinano il funzionamento e la capacità di elaborazione.

Nel corso del 2005 sia AMD che Intel sono giunte ad un punto in cui non è praticamente più possibile innalzare le frequenze operative dei propri processori, e hanno deciso di puntare tutto sulle architetture dual core ovvero due core montati sullo stesso package. In questo modo, sfruttando il parallelismo, ci si trova in una situazione simile a quella che si avrebbe con un sistema biprocessore.

Arrivarono i primi chip dual core per mercato desktop, grazie a Intel che presentò i primi Pentium D Smithfield; in quel periodo si era giunti ad un livello tecnologico di sviluppo hardware che non consentiva più di aumentare la potenza di elaborazione incrementando semplicemente la frequenza di clock. Fino a quel momento il continuo aumento delle prestazioni era stato basato soprattutto sull’aumento della frequenza operativa grazie alle innovazioni offerte dai processi produttivi sempre più miniaturizzati. Si giunse però a un punto tale per cui aumentare ulteriormente le frequenze delle CPU single core, malgrado le dimensioni minime dei transistor, comportava ormai consumi troppo elevati in relazione al modesto aumento di prestazioni (a quei tempi un processore single core top di gamma superava abbondantemente i 100 W di consumo massimo) e questo ovviamente aveva serie ripercussioni anche sul gravoso problema del raffreddamento dei circuiti.

La soluzione che sembrò più ovvia ai progettisti di microprocessori fu quella di puntare tutto sul parallelismo in modo da poter aumentare il numero di operazioni eseguibili in un unico ciclo di clock. Questo nuovo approccio comunque non era del tutto indolore e comportava anche alcuni svantaggi, in quanto i programmi dovevano essere ottimizzati per un utilizzomulti-thread ovvero parallelizzati anch’essi (ciascun programma eseguito in più parti) per poter sfruttare appieno le caratteristiche di questi processori, in caso contrario essi avrebbero impegnato solo uno dei core, lasciando l’altro pressoché inutilizzato. Paradossalmente, era anche possibile che un programma applicativo non pensato per un’esecuzione di tipo parallelo, risultasse di più lenta esecuzione su un processore multi core rispetto a uno single core, e infatti al momento del lancio dei primi esemplari, erano veramente pochi isoftware già pronti per queste nuove architetture. Tale incapacità di raggiungere i livelli di prestazione teorici dei sistemi a parallelismo massiccio è nota come sindrome di Von Neumann.

Nel 2007 invece, hanno debuttato le prime architetture multi core, tipicamente 4. E nel 2010 i core da 4 sono passati ad 8 (fino ad oggi che esistono 12 core con la tecnologia i7 anche se sono solo virtuali). Il 14 novembre 2011 l’AMD presenta il primo processore a 16 Core, che fornisce l’84% delle performance in più ai sistemi.

Ad oggi, sebbene le architetture multi-core siano molto performanti, resta il problema della comunicazione con le periferiche; quest’ultime, infatti, restano molto più lente della CPU e sono utilizzabili solamente da un processo alla volta; questo fatto crea quindi un “collo di bottiglia” che incide di molto sulla velocità effettiva di un computer nell’eseguire un’operazione.

Questo tipo di architettura consente di aumentare la potenza di calcolo di una CPU senza aumentare la frequenza di lavoro, a tutto vantaggio del calore dissipato (che diminuisce rispetto al caso di più processori separati) così come l’energia assorbita.