NVIDIA Kal-El: cinque core al prezzo di quattro

NVIDIA Kal-El: cinque core al prezzo di quattro

Migliorare le prestazioni ma ridurre i consumi: un binomio difficile da tenere assieme. E così, quello che un tempo era solo un produttore di GPU, sfodera una soluzione originale (e interessante)
Migliorare le prestazioni ma ridurre i consumi: un binomio difficile da tenere assieme. E così, quello che un tempo era solo un produttore di GPU, sfodera una soluzione originale (e interessante)

Lo scorso mese di Febbraio NVIDIA ha annunciato lo sviluppo del progetto Kal-El per la realizzazione di nuovi processori mobile. Con Kal-El l’azienda californiana intende proporre la sua prima famiglia di CPU quad-core per sistemi smartphone e tablet perseguendo la convinzione che le CPU multi-core possano fornire notevoli vantaggi anche in questo settore.

A differenza del lungo e variegato percorso che è stato necessario seguire con i tradizionali computer, quando i primi processori dual-core, e poi quelli quad-core, hanno incontrato ambienti software per nulla ottimizzati, oggi tutte le applicazioni ed i sistemi operativi mobile sono sviluppati prendendo in seria considerazione il fattore multitasking.

NVIDIA promette che le CPU quad-core di prossima generazione saranno in grado non solo di offrire una migliore esperienza dove già oggi Tegra 2 (e altre piattaforme simili) sono in grado di eccellere, ma apriranno le porte a nuove opportunità per i device mobili fra cui:

  • Editing di video in alta qualità
  • Processing di immagini
  • Transcodifica di flussi audio-video
  • Simulazioni della fisica in tempo reale
  • Supporto per numerose applicazioni di produttività
  • Riconoscimento facciale
  • Applicazioni e giochi 3D stereoscopici
  • Scansioni antivirus
  • Compressione di file

Partendo da queste considerazione appare evidente come una CPU single-core non solo funzionerebbe a frequenze più elevate e tensioni superiori rispetto ad una multi-core ma richiederebbe anche più tempo per completare determinati task. Il carico di lavoro, con processori multi-core, può essere distribuito su più core permettendo ad ognuno di essi di mantenere basse frequenze, tensioni ridotte e perciò consumi contenuti. Tipici esempi di software capaci di trarre enormi benefici da una CPU multi-core sono i browser multi-threaded come Google Chrome e Mozilla Firefox che attivano un processo separato per ogni tab.


Un browser è in grado di distribuire i compiti su più core

Le prestazioni offerte da una CPU quad-core sono così superiori rispetto a quelle di un modello dual-core in quasi tutti i casi o perlomeno in tutti quei casi in cui è possibile avere un forte parallelismo dei thread in esecuzione o il sistema si trova a dover gestire più applicazioni contemporaneamente: con i moderni dispositivi mobile questo è uno scenario tutto sommato tipico. Il sistema esegue sempre un certo numero di operazioni in background come scaricare la posta, aggiornare le applicazioni o lo stato dei social network, gestire wallpaper live. Nel frattempo l’utente potrebbe decidere di guardare un video o giocare ad un videogame.


Tipica situazione di uno stand-by attivo

I tradizionali processori multi-core hanno però un problema insito nella loro stessa natura (in realtà nella natura di tutti i chip elettronici). Per poter realizzare un chip che sia in grado di offrire prestazioni molto elevate è necessario usare transistor capaci di tempi di switching altrettanto contenuti e perciò non ottimizzati per contenere i consumi quando lavorano a “bassi regimi”.

Gli assorbimenti di un chip al silicio sono dati dalla somma di due fattori: potenza di dispersione (legata alle correnti di leakage) e potenza dinamica. La prima è principalmente dipendente dalla tecnologia di processo mentre sulla seconda influiscono tensione e frequenza operativa secondo una relazione quadratica (la potenza dinamica è proporzionale al quadrato della tensione moltiplicato per la frequenza). Questo significa che quando un chip sta operando alla massima frequenza, il suo consumo è dettato quasi esclusivamente dalla potenza dinamica; al contrario quando è in idle la porzione maggiore dei consumi è quella dovuta alle correnti di dispersione.

In base a quanto detto in precedenza, se un chip è ottimizzato per funzionare ad elevate frequenze di funzionamento presenterà anche elevate correnti di dispersione. Se invece lo si ottimizza per ridurre tali correnti, difficilmente lo si riuscirà a spingere troppo in alto con le frequenze.


CPU ottimizzate per i consumi oppure per raggiungere frequenze elevate

NVIDIA propone una soluzione a questa problematica. Il nuovo processore Kal-El implementa una tecnologia indicata come vSMP o Variable Symmetric Multiprocessing che include la presenza di un quinto core oltre ai quattro principali. Il Companion core è realizzato utilizzando un processo produttivo di tipo “low power” ed è in grado di funzionare a frequenze relativamente basse con consumi ridotti. Lo scopo è quello di usarlo per gestire la modalità di standby attivo, per il playback di musica o anche di video lasciandolo del tutto trasparente al sistema operativo.


Quattro core più Companion core

La combinazione di un particolare processo produttivo e di ottimizzazioni a livello architetturale in un singolo SoC (System-on-a-Chip) permette di ottenere il risultato sperato: bassi consumi in ogni condizione di carico .


La curva dei consumi è ottimizzata per ogni condizione di carico

A differenza del Companion core, i quattro core principali devono operare a frequenze molto elevate per poter offrire prestazioni altrettanto interessanti ma soprattutto essere efficienti: essi sono realizzati con un processo produttivo che valorizza le virtù di switching dei transistor e permette di scalare in frequenza richiedendo una tensione di alimentazione relativamente contenuta. In questo modo si riduce la potenza dinamica.


Kal-El è sempre più parsimonioso nei consumi rispetto all’attuale architettura Tegra 2

Comunque sia, tutti i core hanno lo stesso di tipo di architettura ARM Cortex A9 e possono essere attivati o disattivati grazie ad una puntuale circuiteria di power gating. La tecnologia vSMP di Kal-El prevede un complesso sistema hardware e software che gestisce in maniera intelligente la distribuzione del carico di lavoro fra i core principali ed il Companion core basando le proprie scelte sulle richieste del sistema operativo e delle applicazioni. Secondo le osservazioni del produttore il Companion core deve operare ad un massimo di 500MHz, valore oltre il quale il sistema prevede il passaggio ai core principali.

 
Soglie delle frequenze di funzionamento

Per ottenere la massima efficienza da questa CPU, NVIDIA è stata costretta a rendere trasparente il meccanismo del Companion core al sistema operativo. Android 3.x, ad esempio, integra il supporto per CPU multi-core considerandoli core omogenei, capaci di offrire tutti lo stesso livello di prestazioni. Assegna perciò compiti in base a tale assunto. Kal-El invece può essere definita come una CPU con core eterogenei ma mascherati al sistema operativo che continua a pensare di avere a che fare con una CPU quad-core tradizionale.

La logica utilizzata da NVIDIA permette di tenere costantemente sotto controllo il carico di lavoro e decide non solo se usare il Companion core o i quattro core principali ma anche come ripartire i compiti fra questi ultimi.


Gestione dei core

Il meccanismo di switching fra Companion core e core principali merita di essere approfondito. NVIDIA ha dovuto risolvere alcuni problemi legati al “passaggio di consegne” per evitare penalizzazioni sulle prestazioni e mantenere la coerenza dei dati. Una prima scelta è stata effettuata circa l’organizzazione delle cache. La cache L2 è condivisa da Companion core e core principali: visto che le due entità non funzionano mai assieme (se è attivo il Companion core i core principali sono spenti e viceversa) non vi è mai alcun problema di sincronizzazione delle cache e tutto il ciclo resta trasparente a livello superiore. La cache L2 è programmata per restituire i dati nello stesso tempo, sia per il Companion core che per i core principali (essenzialmente i core principali attenderanno più cicli di clock mentre il Companion core ne attenderà un numero inferiore). Questo porta a chiedersi se, senza il Companion core, la cache L2 sarebbe potuta essere più veloce ed efficiente per i core principali.

Oltre alle cache NVIDIA ha lavorato sul “timing”. Per evitare inefficienze nello scheduling da parte del sistema operativo, come detto in precedenza, è necessario che i diversi core offrano lo stesso livello di performance. Quando la tecnologia vSMP prevede di effettuare il passaggio dal Companion core ai core principali, la logica integrata nella CPU fa si che la transizione sia la più morbida possibile. Anche se non indicato espressamente da NVIDIA, possiamo supporre che lo switch avvenga solo dopo aver portato i core principali alla stessa frequenza di funzionamento attuale del Companion core (circa 500MHz). Il momento dello switch è altresì molto delicato: quando il carico di lavoro rimane attorno al valore di soglia potrebbero verificarsi continui passaggi dall’una struttura all’altra con una conseguente riduzione delle prestazioni (NVIDIA calcola che il tempo di switching si aggira attorno ai 2ms, equivalenti ad una frequenza di appena 500Hz). Uno speciale algoritmo con isteresi programmabile pone rimedio a questa situazione.

Nel complesso NVIDIA prevede di riuscire a garantire, attraverso Kal-El, sia prestazioni più elevate che consumi ridotti. Durante test interni il produttore ha verificato che mantenendo inalterato il livello di prestazioni, Kal-El mostra assorbimenti da due a tre volte inferiori rispetto ad architetture concorrenti come quelle OMAP4 o QC8660. D’altro canto, Kal-El è in grado di offrire prestazioni decisamente superiori, anche fino al doppio, nel momento in cui si fissano i consumi su valori comparabili.

A cura di Dino Fratelli

Link copiato negli appunti

Ti potrebbe interessare

Pubblicato il
21 set 2011
Link copiato negli appunti