nVIDIA presenta ufficialmente Tegra 3: dettagli e caratteristiche

L’ASUS Transformer Prime è solo il primo dei dispositivi Android che avranno al loro interno un processore quad core – ed in questo caso sarà l’evoluzione del processore dual core nVIDIA Tegra 2 a fornire la potenza di calcolo necessaria al tablet. Precedentemente noto come “Progetto Kal-El”, il nuovo processore progettato e prodotto da nVIDIA si chiama ufficialmente Tegra 3.

Nel 2011 nVIDIA è riuscita ad imporsi nettamente sulla concorrenza con il suo processore Tegra 2, tanto da arrivare quasi ad un monopolio nei tablet e negli smartphone di fascia alta ed altissima: è per questo che il 2011 è stato denominato dalla testata specialistica SlashGear “l’anno di nVIDIA”.

Ma quali sono le novità contenute in questa nuova generazione di processori? Vediamolo insieme.

Un po’ di storia

Ciò che molti si chiedono è: perché utilizzare più processori in parallelo invece che uno solo molto potente? Nel 2001 l’azienda americana Intel, leader nella produzione di processori con circa il 90% di quota di mercato, lanciò la prima generazione di processori Pentium 4 e – quasi in contemporanea – vennero annunciati i processori Pentium 3 “Tualatin”, evoluzione dei Pentium 3. Intel, sotto pressione del reparto marketing e senza tenere conto dei limiti fisici del silicio, pensava di poter aumentare la frequenza di clock a dismisura senza incontrare particolari problemi: per questo motivo pensò di allungare a dismisura la pipeline, ovvero la serie di stadi interni al processore che servono per decodificare ed eseguire le istruzioni dei programmi presenti in memoria. Solitamente una pipeline lunga è meno prestante di una corta, ma una pipeline molto lunga (più di 30 stadi!) è completamente inefficiente se impiegata con frequenze di clock basse. I primi Pentium 4, chiamati “Willamette”, erano meno efficienti e meno prestanti a parità di velocità di clock con i Pentium 3 “Tualatin” rilasciati quasi in contemporanea. Intel tuttavia aveva speso molto nella ricerca per i Pentium 4 e quindi spinse molto sul marketing dei nuovi processori nonostante i noti problemi di inefficienza e di scarse prestazioni, puntando moltissimo sulla ignoranza delle persone comuni che, senza avere conoscenze sufficientemente approfondite, ritenevano (a torto) che una maggiore frequenza di clock portasse a prestazioni sicuramente migliori. Ciò non era ovviamente vero, poiché AMD produceva processori con una architettura migliore rispetto ad Intel che riuscivano ad esprimere prestazioni migliori rispetto ai processori dell’avversaria – ma la macchina del marketing ormai aveva segnato un’era di successo per Intel. La stessa azienda di Santa Clara aveva azzardatamente annunciato – principalmente per motivi di marketing – sviluppi per il futuro che avrebbero portato i processori a velocità di clock tra i 7 e i 10 GHz: purtroppo i limiti fisici del silicio (maggiore la velocità di clock, maggiore la corrente necessaria e maggiore il calore prodotto da dissipare) segnarono uno dei più grandi fallimenti nella storia di questa azienda, che commercializzò la versione più veloce del suo Pentium 4 fermandosi a “soli” 3,8GHz.
È a questo punto che entrò in scena AMD proponendo processori con una frequenza di clock minore rispetto al passato, ma con più unità di elaborazione (detta “core” in inglese). Il concetto era semplice: se non posso aumentare la potenza di un singolo motore, allora impiego più motori. Si aprì l’era dei processori multicore.

 

Quattro è meglio di due

L’aumento del numero di core all’interno dei processori porta a due considerazioni: la prima è che più core sono presenti e maggiore è la potenza di elaborazione disponibile; la seconda è che non sempre ad un incremento dei core corrisponde un incremento nelle prestazioni dei programmi.

La prima considerazione è facilmente spiegata: se utilizzo due motori uguali sulla macchina avrò indubbiamente più potenza a disposizione rispetto ad usarne uno, e se ne utilizzo 4 avrò molta più potenza rispetto a quando ne utilizzo 2. Tuttavia, come recita un noto spot pubblicitario, “la potenza è nulla senza controllo”.

Il controllo, in questo caso, è rappresentato dalla scrittura del codice: i programmatori, per usufruire appieno della potenza delle CPU multicore, devono scrivere il proprio codice “parallelizzandolo” ovvero pensandolo per essere eseguito su più unità di elaborazione che eseguono contemporaneamente parti diverse del programma. In questo modo è possibile distribuire il carico tra i core, mentre ciò non è possibile se il codice è stato scritto per utilizzare un solo processore per volta.

Anche se il codice non è stato parallelizzato, tuttavia, la possibilità di sfruttare i core si concretizza nel multitasking: è molto più semplice tenere aperte 4 applicazioni quando ciascuna ha un processore a sua disposizione, piuttosto che tenere aperte 4 applicazioni che devono utilizzare un singolo processore e “spartirselo” tra di loro. Se quindi “ciù is megl che uan”, citando ancora una volta un noto spot pubblicitario, allora è vero anche che “quatr is megl che ciù”!

 

I concetti sono volutamente semplificati, poiché non è questa la sede di una discussione approfondita riguardo la progettazione dei processori e delle applicazioni software.

 

L’architettura di Tegra 3: principi generali

Come il predecessore Tegra 2, Kal-El fa utilizzo dell’architettura ARM Cortex-A9 utilizzando 4 core con frequenze di clock che variano tra 1GHz e 1,5GHz. Le prestazioni del singolo core non differiscono dunque sostanzialmente da quanto Tegra 2 era in grado di esprimere, tuttavia la presenza di due core aggiuntivi aumenta notevolmente le prestazioni in applicazioni che sfruttano tutti i core. Sorprendente è che il rapporto prestazioni per watt è decisamente maggiore rispetto alla generazione precedente e ai processori single core, nonostante l’aumento di unità di processazione all’interno: questo perchè la distribuzione del carico tra le varie componenti utilizzate parzialmente permette di portare a termine il lavoro più in fretta e con meno consumi rispetto all’utilizzo intensivo e la concentrazione del carico su una sola componente utilizzata pienamente. La possibilità di “spegnere” i core nel momento in cui non ci sia bisogno di potenza di elaborazione od “accenderli” quando vengono eseguite applicazioni che richiedono maggiore potenza incrementa il risparmio energetico. Ciò significa che la batteria durerà di più e sarà gestita più efficacemente rispetto ai processori dell’attuale generazione.

 

L’architettura di Tegra 3: il “companion core”

La grande innovazione presentata da nVIDIA con l’ultima generazione di processori mobile consiste nell’adozione, accanto ai quattro core tradizionali, di un quinto core con frequenza di clock minore, chiamato “companion core”. Questo quinto core è prodotto utilizzando un particolare processo produttivo che riduce i consumi, ed è stato inserito appositamente per entrare in funzione quando c’è necessità di poca potenza elaborativa e grandi capacità di risparmio energetico. Lo scenario di utilizzo di un simile processore è facilmente immaginabile: mentre quattro core molto potenti consumano molto anche quando sono in idle, un solo core depotenziato consuma molto poco quando è inattivo. Moltissimo tempo dei nostri dispositivi è passato in standby, senza un utilizzo apprezzabile della CPU ma con consumi ugualmente elevati a causa dei processi in esecuzione: nVIDIA chiama questo stato “standby attivo”, poiché anche se il dispositivo è in standby continua a utilizzare le risorse.

Come è possibile vedere dal grafico sopra riportato, la capacità di consumare meno a bassi livelli di utilizzo del companion core (indicato in verde) è decisamente maggiore di quella offerta dai restanti quattro (indicati in rosso), attivati solo quando i processi attivi richiedono maggiore capacità computazionale. In inglese si parla di “leakage power” (traducibile con “energia di scarto”), ovvero di spreco di energia risultante dalle interazioni fisiche all’interno dei circuiti CMOS (per approfondire: http://www.eetimes.com/electronics-news/4215605/Leakage-power—it-s-worse-than-you-think), e nVIDIA è riuscita ad ottimizzare la produzione del companion core in modo da avere un minore leakage power che garantisce consumi minori in standby e una maggiore durata della batteria.

Il companion core è trasparente al sistema operativo, e ciò significa che il sistema operativo non vede la differenza tra i quattro core principali e quello secondario: non c’è dunque necessità di adattare il software al nuovo hardware per sfruttare le nuove tecnologie offerte.

Un video pubblicato da nVIDIA rende meglio l’idea di come il companion core viene impiegato.

 

L’architettura di Tegra 3: prestazioni

Rispetto alla attuale generazione di processori dual core, Tegra 3 si pone ad un livello decisamente superiore con prestazioni che arrivano a volte fino al 100% in più. Rispetto ai processori Texas Instruments OMAP4430 e Qualcomm Snapdragon MSM8660, capaci di prestazioni notevoli, nel benchmark CoreMark (che mette i processori sotto sforzo intenso con varie operazioni multimediali) Tegra 3 riesce ad esprimere prestazioni anche doppie, con l’OMAP4430 al secondo posto.

Curiosamente il SoC di Apple, l’A5, ottiene un punteggio leggermente inferiore alle altre proposte dual core e si posiziona ultimo tra le soluzioni prese in considerazione. Un’altra interessante prova svolta da nVIDIA è un confronto dei risultati del benchmark Linpack tra un processore Kal-El dual core ed un processore Kal-El quad core.

Come è possibile vedere, la proposta quad core distanzia di molto la proposta a soli due core evidenziando ancora una volta la superiorità di quest’ultima tipologia di processore. Sempre proseguendo sulla linea del confronto tra i propri prodotti, nVIDIA mette a confronto le prestazioni ottenute nei giochi da Tegra 2 e da Tegra 3. È lecito aspettarsi, ancora una volta, un dominio della nuova proposta sulla vecchia.

 

Dominio che è ancora più marcato di quanto visto precedentemente, dato che in Glowball Tegra 3 ottiene quasi 3 volte i fotogrammi di Tegra 2.

Già in occasione della presentazione preliminare del progetto Kal-El nVIDIA aveva mostrato le capacità del processore attraverso il gioco dimostrativo Glowball che fa ampio utilizzo delle luci e delle superfici riflettenti, tipicamente tra gli aspetti più complessi ed esigenti in termini di prestazioni da realizzare. Altro aspetto peculiare del gioco è sia la realizzazione dell’ambiente sia il calcolo della fisica in tempo reale, che aumentano enormemente i requisiti hardware necessari per far funzionare il gioco correttamente e fluidamente.

nVIDIA ha pubblicato anche un secondo video inedito circa il gioco Glowball: la pallina luminosa si muove questa volta sul fondale marino, illuminando la flora e la fauna che si muovono non solo seguendo la direzione della corrente ma anche in caso la pallina li vada ad urtare secondo un modello fisico abbastanza realistico.

Oltre che tramite benchmark, è possibile verificare le prestazioni di Tegra 3 anche attraverso la navigazione web, forse l’attività più comune compiuta con smartphone e tablet. Applicazioni come Flash sono molto più veloci rispetto alle piattaforme concorrenti, così come l’editing di foto e video – e ovviamente anche i giochi hanno prestazioni migliori.

 

L’architettura di Tegra 3: il variable Symmetric MultiProcessing (vSMP) ed i consumi

La tecnologia SMP consiste nella capacità di far operare simmetricamente i quattro processori e farli accedere alle stesse risorse (cache, memoria, memoria di massa) tramite una sola istanza di un sistema operativo. NVIDIA ha sviluppato e brevettato la tecnologia vSMP: con funzioni del tutto simili alla tecnologia SMP, vSMP aggiunge tuttavia la gestione del companion core e la gestione dei quattro core principali. Come già precedentemente anticipato in “principi generali”, nVIDIA ha progettato Tegra 3 appositamente per consentire il massimo risparmio energetico: attraverso l’utilizzo di una linea di voltaggio per ogni core è possibile spegnere i core non utilizzati, contrariamente ad altri processori dove esiste una sola linea di voltaggio comune a tutti i core, i quali dunque utilizzano grandi quantità di energia se uno solo dei core è attivo e gli altri in idle a causa del fatto che tutti i core ricevono lo stesso voltaggio. nVIDIA ha implementato circuiti e logiche avanzati tali da separare completamente ogni core dagli altri e da permettere lo spegnimento totale di uno o più core in tempi tali da non interferire con le operazioni del sistema operativo e delle applicazioni: si parla di 2 millisecondi per attivare i core e stabilizzare il voltaggio, un tempo decisamente impossibile da essere notato per gli esseri umani.

Questa capacità di disattivare o riattivare i core all’occorrenza porta ad un forte risparmio energetico, che va dal 28% in idle al 62% durante la riproduzione di filmati in HD. La minore richiesta energetica rispetto a Tegra 2 per svolgere gli stessi compiti porta anche ad una ulteriore considerazione: se a consumi minori ottengo le stesse prestazioni, a consumi uguali otterrò prestazioni maggiori. Questo è confermato da un ulteriore test svolto da nVIDIA, nel quale viene dimostrato che Tegra 3 è in grado di operare con le stesse prestazioni a 2-3 volte meno energia assorbita rispetto alla concorrenza dual core.


Ciò che ci si aspetta è che, per ottenere le massime prestazioni, Tegra 3 assorba molta più energia di quanta ne assorbano i processori dual core: in realtà, nVIDIA è riuscita ad ottenere prestazioni quasi doppie consumando meno. I grafici qui sotto riportati mostrano che Tegra 3, a piena potenza, consuma meno dei processori OMAP4430 e MSM8660, che ottengono circa 5500 punti nel benchmark, pur esprimendo prestazioni vicine agli 11000 punti.

 

Software: i giochi

Sin dall’annuncio si parla molto di Tegra 3 come piattaforma in grado di garantire ottime prestazioni nei giochi. Ciò è ancora più vero quando si pensa che giochi come Shadowgun e Riptide GP sono stati ottimizzati per la piattaforma e sono disponibili video di anteprima: confrontando i video a quanto ottenuto con Tegra 2 gli effetti grafici sono più ricchi, sono presenti più dettagli e più effetti fisici.

In Riptide GP sono presenti le gocce degli schizzi d’acqua, un maggiore realismo nella reazione dell’acqua ai corpi fisici ed altri dettagli. In Shadowgun gli oggetti subiscono danni, sono presenti effetti grafici più complessi e le texture sono molto più dettagliate.

 

Maggiori informazioni

Chi volesse maggiori informazioni può trovarle presso il sito nVIDIA (http://www.nvidia.com/object/IO_90715.html) oppure presso il blog ufficiale (http://blogs.nvidia.com/2011/09/quad-core-kal-el%E2%80%99s-stealth-fifth-core-lets-it-save-on-energy/).

Fonti:

http://www.slashgear.com/nvidia-tegra-2-quad-core-mobile-processor-revealed-and-detailed-09194118/

http://www.slashgear.com/nvidia-expands-on-project-kal-el-adds-a-fifth-core-20181043/

http://www.slashgear.com/nvidia-details-variable-smp-the-brain-of-quad-core-mobile-computing-20181062/

Commenti

Ti invitiamo ad usare toni consoni e di rimanere in tema all'argomento trattato, in caso contrario, il sistema automatico potrebbe oscurare il tuo messaggio e potrebbero trascorrere fino a 48h per la verifica ed un'eventuale autorizzazione.
TuttoAndroid si riserva comunque il diritto di allontanare le persone non adatte a tenere un comportamento corretto e rispettoso verso gli altri.

  • Pingback: [MWC 2012] Texas Instruments offre nuovi dettagli su OMAP5 - Tutto Android()

  • Pingback: Asus Transformer Prime()

  • Pingback: ASUS annuncia ufficialmente Transformer Prime con caratteristiche e prezzo - Tutto Android()

  • Ospite

    Vogliamo batterie potenti e soprattuto ke duri tantissimo!

  • Porca vacca, Ricca’, quest’articolone in quanto tempo l’hai scritto? Credevo di essere solo io quello malato di logorrea XD
    Molto informativo, bene. Vorrei aggiungere un paio di cose.
    Per riprendere il discorso del Pentium 4 e dell’architettura NetBurst che vi stava dietro, la vera assurdità fu il Willamette ed i primi Northwood (quelli sotto i 2.4 GHz) che non avevano il supporto all’Hyperthreading. Con HT, invece, NetBurst era una valida architettura.

    Ricordo un benchmark di Anandtech dove si confrontavano un Athlon 64 FX-51 (single core a 2.6 GHz) con un P4 Northwood a 2.8 GHz con HT attivo. Mentre quest’ultimo prendeva la paga sui singoli compiti, in situazioni di multitasking molto pesante era invece la proposta AMD ad arracare terribilmente, del tipo che per concludere il compito ci poteva mettere roba tipo 10 minuti contro 30 secondi.
    Questo perché il multitasking era tutto a carico del sistema operativo che in parole povere risultava “ingolfato” dalla gestione, mentre con due unità di esecuzione (e neppure fisiche, ma logiche) il kernel trovava sempre modo di operare.

    La vera pecca dell’architettura NetBurst era il fatto che consumava tanto, tantissimo. Ma la strada del multi-core nel mondo PC era già segnata, e NetBurst in sostanza finì col P4 Prescott e derivati.

    Ma, in base all’esempio di sopra, non ho mai avuto dubbi che il multi-core anche nei cellulari avrebbe avuto un ottimo impatto prestazionale. Questo perché, oltretutto, i processori ARM sono piuttosto poco potenti rispetto alle controparti PC, e si fa relativamente in fretta a satutarne la potenza operativa, rendendo tutto il sistema poco reattivo.

    Android ha un kernel Linux che può sfruttare senza alcun problema un qualsiasi numero di unità di esecuzione. Su questo non ci sono problemi. Quel che si può migliorare ancora è la concezione delle applicazioni e delle stesse componenti del sistema operativo, che devono essere parallelizzate in modo da poter essere eseguite su più core.
    Parallelizzare, lasciatevelo dire, è una vera palla perché sembra un processo quasi innaturale per il programmatore, che intende la sua applicazione tendenzialmente in maniera procedurale. Il multi-threading, diciamo, è un’implementazione che separa dal flusso logico dei compiti che si immaginavano invece in maniera procedurale.
    In più, non sempre è possibile e non sempre ha senso farlo.

    • Riccardo Robecchi

      Ci ho messo circa 8 ore, tra una cosa e l’altra… Un lavoraccio terribile.
      Concordo in parte sulle prestazioni dei P4: i Northwood erano buoni, ma i Prescott facevano schifo. La pipeline, se non erro, era di TRENTAQUATTRO stadi! Circa 3 volte la pipeline di un Core i7 del giorno d’oggi… Prestazionalmente, i migliori erano proprio i Northwood, ma consumavano come un convoglio ferroviario e producevano più calore di un vulcano! Era proprio sbagliata l’architettura alla base. L’unica cosa positiva è stata la nascita dell’Hyper Threading, che ha dato i suoi frutti anche sulla serie Core e sugli Atom.
      Il futuro è multicore, ma questo si è capito da più di 5 anni.
      Riguardo la parallelizzazione posso solo immaginare: non sono e non voglio diventare un programmatore, ma immagino che sia molto complesso parallelizzare un processo quando noi umani, per nostra stessa conformazione, pensiamo proceduralmente/sequenzialmente…

      • Esatto, uno dei maggiori motivi è proprio quello: il nostro cervello pensa come singola unità.
        Poi c’è anche un bel pezzo di teoria informatica dietro a cosa si può e non si può parallelizzare.
        Una AI non si può parallelizzare, se non con piccoli task indipendenti. Il rendering di una scena, invece, generalmente ne beneficia molto.

        • Riccardo

          Ho imparato di più in questo posto che negli ultimi anni!! Complimenti!! =) Per il resto si, tanta potenza sarà anche in’utile all’atto pratico.. Ma si chiama progresso, oltre che speculazione forse, e che piaccia o no deve andare avanti!!

  • Reydinanto2005

    Il mil tegra 2 su iconia x navigare andare fb guardare qualche film va più che bene…tanto per i giochi ho xbox360 al massimo gioco ad angry bird…4 core su tablet e ancora più su smartphone sono una trovata di marketing come fa fatto intell a suo tempo.

  • Ci tengo a fare alcune precisaziono. Prima di tutto lo sfruttamento dei 4 core è affidato al kernel in primo luogo, e anche al sistema operativo. Gli sviluppatori di app non devono fare praticamente nulla in questo senso.
    Comunque il Tegra 3 sembra ottimo, speriamo solo che non venga malsupportato come il Tegra 2. Il Tegra 2 ha un gran potenziale, ma Nvidia si è sprecata ben poco per l’ottimizzazione.

    • Riccardo Robecchi

      Che io sappia sono proprio gli sviluppatori di applicazioni che devono specificare se utilizzare più processori, tant’è che sui desktop moltissime applicazioni sono ancora single-threaded e sfruttano un solo core, annullando de facto il vantaggio di avere processori multicore. Chiaramente è il kernel che deve mettere a disposizione del software ad alto livello l’hardware, ma sono gli sviluppatori a dover specificare se fare utilizzo di più processori o meno – tant’è che si parla moltissimo del problema della parallelizzazione del codice, che è uno degli aspetti più complicati al giorno d’oggi. Se così non fosse, mi domando dove sarebbero i problemi nell’adozione immediata su larga scala di processori come Intel Knight’s Ferry oppure gli Sparc T4: centinaia di core logici che possono esibire una potenza più che discreta…

      • Un sacco di core, sì, ma ognuno di questi ha una potenza molto inferiore ad un singolo core x86 di una CPU Intel o AMD. Spesso si tratta pure di architetture out-of-order.

        Mi ricordo, nel “lontano” 2006 e dell’uscita sul mercato del fantomatico processore Cell di IBM (quello montato sulle PS3, per intenderci) che l’avremmo visto ovunque, con la sua unità centrale PPE e 8 SPE.
        In realtà, è stato praticamente un fallimento, perché gli sviluppatori avevano ancora tanta inerzia nel modo di programmare single-threaded, e anche la PS3 ha avuto i suoi grossi problemi ad arrivare ad essere sfruttata a dovere, e ancora oggi poche software house ci riescono.

    • Anche i programmatori devono fare la loro parte. Non è che il kernel si accorge che un’applicazione si può dividere in thread e la distribuisce così su più unità di esecuzione… Dovrebbe essere una roba di una complessità assurda!
      Gli sviluppatori devono invece definire ciò che può essere eseguito in un thread a parte.

      In Java, in particolare, esiste la classe Thread per assolvere proprio a questo compito.

      Quello che può fare il kernel è, se si hanno più applicazioni in esecuzione, di smistare il loro impegno sui vari core a disposizione. Ma se un’applicazione è single-threaded, girerà sempre e comunque su un solo core.

      • Vabbe’ è ovvio che i programmatori debbano utilizzare più di un thread, è quasi impossibile fare un’applicazione senza utilizzare Thread, o, in Android, gli AsyncTask. Ma quella è programmazione basica, che si fa anche con i CPU single core. Intendevo che gli sviluppatori non devono fare qualcosa di strano per sfruttare bene i multi-core.

Top