Dual core – come quando perché

23 marzo 201121 commenti

Molto spesso leggo post sul forum relativi ai dual core, i dubbi vantaggi e paure sui consumi raddoppiati. Sono qui per svelare arte e mestiere di questa tecnologia, partendo da cenni storici, passando per la comprensione di come una CPU riesce a gestire più applicazioni alla volta, fino ad arrivare a perché i dual core siano il futuro non solo delle prestazioni, ma anche di una migliore fruizione delle batterie dei nostri dispositivi.

Partiamo da cenni storici: i computer sono nati come enormi macchine in grado di eseguire un solo programma alla volta, e già allora era un miracolo che non si inceppassero (ad esempio a causa di scarafaggi fritti tra le bobine). Il loro processore era in grado di operare una sola operazione alla volta, quindi se il programma aveva un ciclo infinito, non aveva nessuna possibilità di interromperlo ed il solo modo per interrompere il processo era quello di spegnere il sistema manualmente. Tutto questo ad oggi avviene “under the hood” senza che l’utente debba compier azione grazie ai sistemi operativi, ma come fanno a girare assieme ai programmi? Specialmente con i processori ad un solo core, se riescono a gestire un solo comando alla volta – e fidatevi, questo è esattamente quel che accade – come mai riusciamo ad eseguire già due programmi alla volta?

Esistono più vie per conseguire questo risultato, hardware o software, una delle quali è l’hyper-threading della Intel, in grado di far eseguire più programmi non simultaneamente, ma in modo alternato. In ogni caso quel che sto per scrivere è alla base di qualsiasi tecnologia, incluso lo scheduling, questa volta gestito via software dal sistema operativo. Senza andare nei dettagli tecnici, questo tipo di tecnologie permette di dare ad ogni programma un determinato, piccolissimo periodo di tempo d’esecuzione (scandito da un certo numero di clock o da altri fattori che possono essere decisi al momento dello sviluppo dell’OS o parametrizzati nei software), se questo viene superato il programma viene congelato e rimesso in coda d’esecuzione. I processori, che viaggiano a velocità per il cervello umano fantastiche, riescono quindi a dare l’illusione che più programmi girino assieme.

Per caricare un programma all’interno di un processore bisogna caricare l’operazione e i relativi dati dalla RAM all’interno di memorie speciali all’interno della CPU, i registri, e prima di raggiungerli passano per la (o le, in caso di processori evoluti) cache. Una volta che il dato viene elaborato, il risultato viene depositato a sua volta in RAM o in altri registri e la prossima azione viene caricata all’interno della CPU, continuando il flusso del programma.

Ogni passaggio di dati genera calore, prodotto di scarto di un meccanismo altrimenti a consumo zero. Questo calore è dovuto al passaggio di corrente all’interno dei circuiti della RAM, del BUS (corridoio di comunicazione) e della CPU (registri, unità logica, cache…). Ora, se è vero, come lo è, che i programmi non vengono eseguiti uno dopo l’altro, ma continuano a contendersi il processore, il calore accumulato non è più soltanto quello generato dai singoli programmi, ma anche quello generato dal continuo spostare dei dati dai registri della CPU alla RAM e viceversa solo per mantenere lo stato del programma e non farlo avviare da capo ogni volta.

Ed è qui che entrano in gioco i processori multi-core. Gli ingegneri hanno pensato: perché non far eseguire due operazioni simultaneamente, piuttosto che farli alternare di continuo? Ovviamente lo scheduling e implementazioni hardware sono sempre e comunque alla base dei processori moderni, ma questi riescono a gestire il doppio (dual core), il quadruplo (quad core) o anche più operazioni al secondo, letteralmente dimezzando o più i tempi di esecuzione.

Così come nei computer, anche i processori di ultima generazione per tablet e smartphone utilizzano questa tecnologia, creata grazie al processo di miniaturizzazione dei circuiti, permettendo lo stesso numero di operazioni di una CPU di vecchia generazione al costo dimezzato di clock. Per fare un esempio pratico (e teorico) un ipotetico Nexus One dotato della stessa capacità di calcolo, ma dotato di un processore dual core, avrebbe una CPU che girerebbe a 500 Mhz, più lento di un HTC Magic, ma molto più performante sotto due punti di vista:

  • Un processore che gira a frequenze inferiori necessita di minore energia
  • Se si svolgono due lavori simultanei, si dimezzerà il calore dovuto alla tecnologia hyper-threading

Ecco svelato quindi l’arcano sui processori Dual Core. Ma non tutto ciò che luccica è oro, specialmente per Android 2.3 “Gingerbread” e precedenti. Vi starete chiedendo perché prima vi abbia detto dei miracoli del dual core per poi dire che non è una cosa buona. Il problema risiede alla capacità del sistema operativo di gestire questi dual core. È come mettere un motore di una ferrari con un cambio di una 500: anche se il primo è in grado di sviluppare 400 cavalli, il secondo non gli permetterà di ingranare la giusta marcia. Mi spiego meglio: se il sistema operativo ignora le facoltà del processore, questo continuerà a girare in modo tradizionale.

Bisogna quindi che il sistema operativo capisca e comprenda il suo motore per poterlo sfruttare e questo avverrà non prima della versione 2.4 “Gingerbread”, o già adesso con 3.0 Honeycomb. Inoltre anche i programmi dovranno essere scritti per sfruttare più operazioni in simultanea e ciò avverrà su due livelli: il primo prevede una compilazione per un sistema che sfrutta il multi-core (ossia compilare per Android 2.4) per rendere multi-core compatibile l’interfaccia grafica e le basi degli eventi, il secondo invece prevede una modifica sostanziale del codice del programma per sfruttare appieno questi processori (ossia sapere che si possono sfruttare tranquillamente fino a 4 flussi di lavoro indipendenti).

Quindi il consiglio finale è: non comprate telefonini dotati di processori dual-core, non ne valgono la pena fino a quando uscirà Android 2.4 (previsto tra 1-2 mesi), non spendete neanche una marea di soldi per i primi, se avete un cellulare ancora performante, le prime app “serie” e completamente ottimizzate per tali processori cominceranno a comparire sul market non prima di 4-6 mesi. L’unica eccezione sono i tablet nati con Honeycomb: le applicazioni per tablet, senza considerare ovviamente le google apps, infatti sono già sviluppate con il multi-core in testa e quindi l’acquisto di tale hardware, se si vuole affrontare un costo così grande, è giustificato.

Quindi, riassumendo, il processore multi-core permette innanzi a tutto di diminuire i costi energetici viaggiando a frequenze inferiori per le stesse prestazioni e, se sfruttati a dovere, un notevole decremento di calore (ossia energia di scarto e quindi sprecata).

Dual Core, the way it’s meant to be played!

Loading...