Potenza di calcolo e riduzione dei consumi, potremmo riassumere il futuro della telefonia mobile utilizzando semplicemente questi due fattori.
Gli approcci appaiono quanto mai diversi a seconda dei produttori ma, attualmente, la soluzione più interessante sembra essere quella adottata da Samsung con la famiglia Exynos Octa, e più precisamente con i SoC 5410 (Samsung Galaxy s4) e 5420 (Samsung Galaxy Note 3).
Entrambi i modelli sfruttano infatti la tecnologia ARM big.LITTLE. Nel prosieguo dell’articolo cercheremo di capirne il funzionamento sui dispositivi attuali e analizzeremo le prospettive di utilizzo per il futuro.
Ci tengo a precisare che non mi soffermerò sui dettagli più strettamente tecnici in quanto il mio scopo è quello di far comprendere il funzionamento del sistema anche ai meno esperti.
Caratteristiche generali
L’architettura big.LITTLE si basa sull’associazione di due differenti tipi di processori all’interno del medesimo SoC. Allo stato attuale dei fatti, con il termine big si indicano le CPU ARM Cortex A-15, mentre con il termine LITTLE si indicano le CPU Cortex A-7.
Le differenze tra le diverse tecnologie sono le seguenti:
- ARM Cortex A-15: garantisce prestazioni elevate quando il sistema necessita di grande potenza di calcolo e, ovviamente, richiede parecchia energia;
- ARM Cortex A-7: i processori A-7, viceversa, vengono utilizzati per le operazioni meno complesse in modo da contenere i consumi della batteria.
Come avrete capito, la combinazione di core differenti mira a fornire il giusto mix tra prestazioni e autonomia tramite un sistema che asseconda le richieste provenienti dagli applicativi o dall’OS stesso in maniera flessibile.
Bene, dopo aver parlato del funzionamento in generale direi di spendere qualche parola in merito ai requisiti hardware.
Requisiti hardware
Il requisito fondamentale del big.LITTLE è che entrambi i tipi di processore abbiano un’identica architettura. Sia i Cortex A-15 che i Cortex A-7 implementano l’architettura ARMv7A in modo da poter gestire lo stesso tipo di istruzioni.
Inoltre, entrambi i processori possono contenere da 1 a 4 core (nel caso dei processori Exynos, ad esempio, si hanno 4 core A-7 e 4 core A-15).
Passiamo ora alla parte fondamentale, ovvero alle 3 differenti modalità di implementazione: Cluster migration, CPU migration ed HMP.
Cluster migration
Si tratta della forma di implementazione più semplice e sfortunatamente anche meno efficace. In pratica i core A-7 e i core A-15 vengono divisi in due cluster (raggruppamenti) differenti.
In base al carico di lavoro richiesto il sistema attiva o tutti i core A-7 o tutti i core A-15. I due cluster non possono lavorare simultaneamente e, soprattutto, l’utilizzo di tutti i core contemporaneamente non si rivela affatto efficiente per quanto riguarda i consumi energetici.
Il cluster migration viene utilizzato sull’Exynos 5410 che ritroviamo a bordo di alcune versioni del Samsung Galaxy s4.
CPU migration (anche detta In Kernel Switcher)
La CPU migration basa il proprio funzionamento su un approccio più sofisticato. Ogni core A-7 viene infatti accoppiato con un A-15, e il sistema riconosce tale coppia come un singolo core “virtuale”. In un sistema multi-core, ogni coppia verrà dunque considerata come se fosse un singolo core.
Come avrete già capito, il kernel (attraverso il driver cpufreq) sposterà il carico di lavoro sull’A7 o sull’A15 in base alla potenza richiesta.
Ovviamente, poiché i core vengono accoppiati non sarà possibile utilizzarli tutti in contemporanea. Ad esempio, in un sistema composto da 4 A-7 e 4 A-15 si potranno utilizzare al massimo 4 core per volta.
Un’immagine chiarirà perfettamente quanto detto:
Il punto di forza della CPU migration è la sua facilità di implementazione.
HMP (anche detta Global Task Scheduling)
L’HMP (Heterogeneous Multi Process) rappresenta la soluzione più efficace e sofisticata possibile. Essa consente di utilizzare tutti i core contemporaneamente. Su un sistema composto da 4+4 sarà dunque possibile usufruire di tutti e 8 i core allo stesso tempo.
Direttamente dal sito di Linaro veniamo a conoscenza dei vantaggi apportati dall’HMP rispetto alle altre forme di implementazione:
- migrazione più efficace tra i core che consente un minore overhead del kernel e, di conseguenza, un incremento del risparmio energetico;
- switch più veloce e performante;
- supporto per i SoC non simmetrici (che siano formati, ad esempio, da 2 core A-15 e 4 core A-7);
- la suddetta possibilità di utilizzare tutti i core simultaneamente, in modo da poter affrontare anche le situazioni in cui viene richiesta tantissima potenza di calcolo.
Di seguito trovate un’immagine esemplificativa:
Grazie all’HMP è inoltre possibile ‘spegnere‘ i core che non vengono utilizzati per poi riattivarli non appena il sistema ne abbia bisogno.
Nei casi in cui tutti e 8 i core siano attivi i compiti più complessi vengono elaborati grazie ai Cortex A-15 mentre gli A-7 gestiscono le restanti operazioni.
Per avere un quadro riassuntivo potete consultare la seguente tabella:
Scenari futuri
Le stesse tecnologie che abbiamo visto implementate sulle architetture A-7 e A-15 in futuro verranno utilizzate anche con i processori a 64-bit di tipo Cortex A-53 e A-57.
E’ facile prevedere che l’HMP conquisterà lentamente la scena in quanto, come abbiamo appurato, garantisce prestazioni più elevate. Samsung stessa ne ha promesso l’utilizzo sulle future versioni dei SoC Exynos.
Se desiderate approfondire la questione vi consiglio di consultare le risorse che trovate sul sito di Linaro e anche la documentazione fornita da ARM.