Processore multicore: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Errato il numero di core dello Xeon 7290
Nessun oggetto della modifica
Riga 1:
{{F|componenti per computer|marzo 2013}}
 
In [[elettronica]] il termine '''multi core''' viene utilizzato per indicare 2due o più [[coreCore (Hardwareinformatica)|core]], ovvero più nuclei "fisici" montati sullo stesso [[Package (elettronica)|package]].
 
Il termine ''multi- core'' è generico e, sebbene adatto a descrivere 2unità ocontenenti più core,di ladue contacore, può essere affiancataaffiancato anche conda altri termini specifici, molteche specificano il numero di loroessi, sono;quali:
 
* 1'''[[single Corecore]]''' (Singleun Core)unico core, es. '''Intel Atom Z650''')
* 2'''[[dual Corescore]]''' (Dual2 Core)core, es. '''Intel Core i3-7310U''')
* 3'''triple Corescore''' (Tri3 Core)core, es. '''AMD Athlon II X3 450''')
* 4'''quad Corescore''' (Quad4 Core)core, es. '''AMD Ryzen 5 1400''')
* 5'''penta Corescore''' (Penta5 Core)core, es. '''R-Car H1 (by Cortex A9)''')
* 6'''hexa Corescore''' (Hexa6 Core)core, es. '''AMD Ryzen 5 2600''')
* 7'''hepta Corescore''' (Hepta7 Core)core, es. '''R-Car M3 (by Cortex A53)''')
* 8'''octa Corescore''' (Octa8 Core)core, es. '''Intel Core i7-9800X''')
* 9'''nona Corescore''' (Nona9 Core)core, es. '''Myriad 1 MA1135''')
* 10'''deca Corescore''' (Deca10 Core)core, es. '''Intel Core i9-9900X''')
* 12'''dodeca Corescore''' (Dodeca12 Core)core, es. '''AMD Ryzen 9 3900X''')
* 14'''tetradeca Corescore''' (Tetradeca14 Core)core, es. '''Intel Xeon W-2175''')
* 16'''hexadeca Corescore''' (Hexadeca16 Core)core, es. '''AMD Ryzen 9 3950X''')
* 18'''octodeca Corescore''' (Octodeca18 Core)core, es. '''Intel Core i9-9980XE''')
* 20'''icosa Corescore''' (Icosa20 Core)core, es. '''Intel Xeon Gold 6230''')
* 22'''docosa Corescore''' (Docosa22 Core)core, es. '''Intel Xeon Gold 6238T''')
* 24'''tetracosa Corescore''' (Tetracosa24 Core)core, es. '''Intel Xeon W-3265''')
* 26'''hexacosa Corescore''' (Hexacosa26 Core)core, es. '''Intel Xeon Platinum 8270''')
* 28'''octacosa Corescore''' (Octacosa28 Core)core, es. '''Intel Xeon Platinum 8280''')
* 30'''triaconta Corescore''' (Triaconta30 Core)core, es. '''ThunderX2 CN9978''')
* '''dotriaconta core''' (32 core, es. AMD EPYC 7601)
* 40'''tetraconta Corescore''' (Tetraconta40 Core)core, es. '''Qualcomm Centriq 2434''')
* '''hexatetraconta core''' (46 core, es. Qualcomm Centriq 2452)
* 48'''octatetraconta Corescore''' (Octatetraconta48 Core)core, es. '''Intel Xeon Platinum 9242''')
* 56'''hexapentaconta Corescore''' (Hexapentaconta56 Core)core, es. '''Intel Xeon Platinum 9282''')
* '''tetrahexaconta core''' (64 core, es. Intel Xeon Phi 7230)
* '''doheptaconta core''' (72 core, es. Intel Xeon Phi 7290)
 
Se si vogliono descrivere 100 o più core, inveceanziché di "''multi core'Multi-Core'''" uno dei termini che viene comunemente usato è "'''Many''many Corescores'''''", tuttavia vi sono nomi specifici anche per unità con 128 corescore (Octacosahectaoctacosahecta Corecore), 256 corescore (Hexapentacontadictahexapentacontadicta Corecore), 512 corescore (Dodecapentadodecapenta Corecore), 1000 corescore (Kilokilo Corecore), 1024 corescore (Tetracosakiliatetracosakilia Corecore) e 2048 corescore (Octatetracontadiliaoctatetracontadilia Corecore).
* 2 Cores (Dual Core) es. '''Intel Core i3-7310U'''
* 3 Cores (Tri Core) es. '''AMD Athlon II X3 450'''
* 4 Cores (Quad Core) es. '''AMD Ryzen 5 1400'''
* 5 Cores (Penta Core) es. '''R-Car H1 (by Cortex A9)'''
* 6 Cores (Hexa Core) es. '''AMD Ryzen 5 2600'''
* 7 Cores (Hepta Core) es. '''R-Car M3 (by Cortex A53)'''
* 8 Cores (Octa Core) es. '''Intel Core i7-9800X'''
* 9 Cores (Nona Core) es. '''Myriad 1 MA1135'''
* 10 Cores (Deca Core) es. '''Intel Core i9-9900X'''
* 12 Cores (Dodeca Core) es. '''AMD Ryzen 9 3900X'''
* 14 Cores (Tetradeca Core) es. '''Intel Xeon W-2175'''
* 16 Cores (Hexadeca Core) es. '''AMD Ryzen 9 3950X'''
* 18 Cores (Octodeca Core) es. '''Intel Core i9-9980XE'''
* 20 Cores (Icosa Core) es. '''Intel Xeon Gold 6230'''
* 22 Cores (Docosa Core) es. '''Intel Xeon Gold 6238T'''
* 24 Cores (Tetracosa Core) es. '''Intel Xeon W-3265'''
* 26 Cores (Hexacosa Core) es. '''Intel Xeon Platinum 8270'''
* 28 Cores (Octacosa Core) es. '''Intel Xeon Platinum 8280'''
* 30 Cores (Triaconta Core) es. '''ThunderX2 CN9978'''
* 32 Cores (Dotriaconta Core) es. '''AMD EPYC 7601'''
* 40 Cores (Tetraconta Core) es. '''Qualcomm Centriq 2434'''
* 46 Cores (Hexatetraconta Core) es. '''Qualcomm Centriq 2452'''
* 48 Cores (Octatetraconta Core) es. '''Intel Xeon Platinum 9242'''
* 56 Cores (Hexapentaconta Core) es. '''Intel Xeon Platinum 9282'''
* 64 Cores (Tetrahexaconta Core) es. '''Intel Xeon Phi 7230'''
* 72 Cores (Doheptaconta Core) es. '''Intel Xeon Phi 7290'''
 
Ci sono casi in cui ci possono essere prodotti con un numero dispari di core, come il tricoretriple core di AMD (Athlon II X3 435). Questo tipo di architettura, rispetto alla [[single core]], consente di aumentare la potenza di calcolo di una CPU senza aumentare la [[Clock|frequenza di clock]] di lavoro, a tutto vantaggio del [[calore]] dissipato (che diminuisce rispetto nel caso di più processori separati) così come l'energia assorbita.
Se si vogliono descrivere 100 o più core, invece di "'''Multi-Core'''" uno dei termini che viene comunemente usato è "'''Many Cores'''", tuttavia vi sono nomi specifici anche per 128 cores (Octacosahecta Core), 256 cores (Hexapentacontadicta Core), 512 cores (Dodecapenta Core), 1000 cores (Kilo Core), 1024 cores (Tetracosakilia Core) e 2048 cores (Octatetracontadilia Core).
 
Ci sono casi in cui ci possono essere prodotti con un numero dispari di core, come il tricore di AMD (Athlon II X3 435) Questo tipo di architettura rispetto alla [[single core]] consente di aumentare la potenza di calcolo di una CPU senza aumentare la [[frequenza di clock]] di lavoro, a tutto vantaggio del [[calore]] dissipato (che diminuisce rispetto nel caso di più processori separati) così come l'energia assorbita.
 
== Descrizione ==
=== Dal Dualdual Corecore al Multimulti Corecore ===
Nel corso del [[2005]] arrivarono i primi chip dual core per mercato desktop, sempre grazie a Intel che presentò i primi [[Pentium D]] [[Smithfield (informatica)|Smithfield]]; in quel periodo si era giunti ada 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 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 [[calcolo parallelo|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 utilizzo [[multi-thread]] 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 i [[software]] 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]]''.
Line 47 ⟶ 46:
Diversi analisti software infatti, prevedevano già allora che se il software pensato per un utilizzo parallelo in ambito dual core fosse stato realizzato in maniera oculata, tenendo conto non del funzionamento su un sistema dual core, ma su un sistema a più core, esso non avrebbe richiesto poi grosse modifiche per essere utilizzato su un dual core o su un quad core. Secondo altri invece, gli sforzi necessari per realizzare software multi processore che avrebbe funzionato in maniera ottimale saturando tutti i core e non occupandoli in modo disomogeneo sarebbero stati esagerati in relazione con i reali vantaggi, soprattutto di impatto di costi. Su una materia tanto nuova in ambito desktop, ai tempi non si poteva fare altro che attendere maggiori dettagli, ma il tempo ha poi portato gli sviluppatori ad acquisire sempre maggiore esperienza e dimestichezza con la programmazione parallela e molti dei timori dei primi giorni risultano ormai superati.
 
=== Primi processori Multimulti core ===
I primi esemplari di CPU multi core vennero presentati da [[IBM]] con il suo [[PowerPC]] nel [[2003]], ma solo nel 2005 si hanno prodotti per il mercato consumer, con [[Intel]] alla fine del [[2005]], mediante i processori [[Pentium D]] basati su core [[Smithfield (informatica)|Smithfield]], mentre la rivale [[Advanced Micro Devices|AMD]] lanciò i nuovi [[Athlon 64 X2]] nel 2005.
 
Line 64 ⟶ 63:
Ogni [[sistema operativo]] gestisce in modo differente le potenzialità dei processori multicore, in alcuni casi queste gestioni variano anche a seconda della versione del sistema operativo (Windows XP, Windows XP SP2 professional, ecc), tuttavia pur implementando il supporto a varie tecnologie hardware e soluzioni software non è detto che si possa assistere a reali vantaggi, in quanto i programmi non sempre supportano queste architetture hardware in modo efficiente, limitando i vantaggi all'utilizzo di più programmi contemporaneamente, per questo bisognerebbe riscrivere il kernel per poter sfruttare le potenzialità multicore a pieno.<ref>[http://www.tomshw.it/cont/news/windows-poco-efficiente-con-le-cpu-multi-core/24514/1.html?pag_commenti=1 Windows poco efficiente con le CPU multi-core]</ref><ref>[http://tesi.cab.unipd.it/26364/1/Tesi_Lorenzo_Baesso_578440.pdf Sistemi multiprocessore e multicore]</ref>
 
Le prime implementazioni nei sistemi Microsoft si ha con la versione SP2 professional di Windows XP, con un supporto limitato all'architettura hardware SMP ([[Symmetric multiprocessing]] o [[Symmetric multiprocessor]]) dove i Corecore o processori accedono ad uno spazio di memoria condiviso, mentre dal punto di vista software viene usata la funzionalità processor affinity che identifica i Corecore come Core0 e Core1, consentendo all'utente di decidere su quale di essi avviare ed eseguire l'applicazione, successivamente l'approccio venne rivisto prima con Windows Vista poi con Windows 7, quest'ultimo supporta soluzioni hardware NUMA ([[Non-Uniform Memory Access]])<ref>[http://www.storiainformatica.it/windows/44-sistemi-operativi/windows/22-windows-e-le-cpu-multi-core Windows e le CPU Multi-Core]</ref>.
 
Nei sistemi Apple [[macOS]] con la versione 10,6 c'è l'introduzione del [[Grand Central Dispatch]] per implementare il [[parallelismo a livello di thread]], migliorando il supporto ai multicore.
Line 80 ⟶ 79:
== Voci correlate ==
* [[Calcolo parallelo]]
* [[Single Corecore]]
* [[Dual Corecore]]
* [[Scalabilità]]
* [[Sindrome di von Neumann]]