Processore multicore: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
Non serve, c'è già "Vedi anche" |
fix |
||
Riga 7:
== Storia ==
Fino al 2005 quasi tutti i [[microprocessori]] (dall'[[Intel 8086]], fino agli [[Athlon 64]] e [[Pentium 4]]) sono sempre stati ''single core'' e i miglioramenti nelle prestazioni sono passati attraverso aumenti della [[clock|frequenza di funzionamento]], maggiori dimensioni della [[CPU cache|cache]], funzionalità aggiuntive, e miglioramenti dell'efficienza della [[microarchitettura]], grazie anche al continuo progresso dei processi produttivi che ha consentito di ridurre progressivamente l'energia necessaria al funzionamento e offrire le condizioni necessarie per l'aumento della frequenza.
Line 13 ⟶ 12:
=== Il raggiungimento dei limiti tecnologici ===
Con il progredire dei processi produttivi (fino ad arrivare a quello a [[90 nm]]) e il raggiungimento di frequenze di funzionamento sempre più elevate e vicini ai limiti fisici della tecnologia a [[semiconduttore]], i due principali produttori di chip, [[Intel]] e [[Advanced Micro Devices|AMD]] decisero di migrare gradualmente<ref>Tra le ultime CPU prodotte per PC a ''single core'' c'è l'Intel Celeron 807 e il Celeron B730, entrambi hanno debuttato nel mercato ad agosto 2012.</ref> all'architettura ''dual core'' (a due ''core''). In pratica, non potendo aumentare più la frequenza massima si cerca di migliorare il [[calcolo parallelo|parallelismo]], mettendo a disposizione del [[sistema operativo]] una configurazione molto simile a quella dei tradizionali sistemi [[multiprocessore]].
Difatti si giunse a un punto tale per cui aumentare ulteriormente le frequenze delle CPU, malgrado le dimensioni minime dei [[transistor]], comportava ormai consumi troppo elevati in relazione al modesto aumento di prestazioni<ref>a quei tempi un processore single core top di gamma superava abbondantemente i 100 W di consumo massimo</ref> 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 [[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]] ovvero parallelizzati anch'essi
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 più generico processore multi 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.
=== Le prime CPU multicore ===
I primi esemplari di CPU multi core vennero presentati da [[IBM]] con l'introduzione linea [[POWER4]] nel 2001. Tuttavia fu solo nel 2005 che l'interesse del mercato mondiale verso la tecnologia multi core divennne rilevante: in quell'anno i due maggiori produttori di CPU al mondo, [[Intel]] e [[Advanced Micro Devices|AMD]], misero in commercio i primi esemplari di una nuova generazione di microprocessori per il mercato consumer, basati sui rispettivi prodotti esistenti ma contenenti due core.
Si trattava delle famiglie di processori [[Pentium D]] dalla parte di Intel, e di [[Opteron]] e [[Athlon 64 X2]] dalla parte di AMD.
Line 34 ⟶ 31:
== Tipologie di architetture multicore ==
{{
Esistono differenti approcci attraverso i quali si possono realizzare chip multi core, ciascuno con precise peculiarità.
Line 41 ⟶ 38:
== Utilizzo da parte dei sistemi operativi ==
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),
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 core o processori accedono ad uno spazio di memoria condiviso, mentre dal punto di vista software viene usata la funzionalità processor affinity che identifica i core 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>.
Line 54 ⟶ 51:
Lo sfruttamento da parte delle applicazioni e situazioni operative varia molto a seconda degli stessi e a seconda del sistema operativo utilizzato<ref>[https://www.phoronix.com/scan.php?page=article&item=multi_os_scaling&num=1 Multi-Core, Multi-OS Scaling Performance]</ref>
== Note ==
<references />
|