ARM ha presentato una nuova e interessante soluzione per migliorare l'efficienza energetica dei futuri smartphone senza comprometterne la potenza elaborativa. Ecco il processore ARM Cortex A7 e l'architettura Big.LITTLE, vediamo di cosa si tratta.
Qualche tempo fa vi avevamo spiegato come Nvidia intendeva risolvere il problema di unire l'enorme capacità di calcolo del futuro SoC quad core Tegra 3 a caratteristiche di risparmio energetico. La soluzione consisteva nell'aggiungere un quinto core a basso consumo, che avrebbe funzionato come processore singolo, lasciando il campo al più potente quad core solo quando ce ne fosse stato realmente bisogno.
Oggi ARM, altro produttore storico nell'ambito delle CPU con architettura RISC, diffusissime tra gli smartphone e i tablet di ultima generazione, ha presentato la sua proposta in quest'ottica. Si chiama architettura Big.LITTLE e si basa anch'essa sull'accostamento di un nuovo processore a bassissimo consumo, ARM Cortex A7, ai nuovi quad core che stanno per esordire sul mercato. La domanda di base infatti è sempre la stessa, come aumentare le performance di uno smartphone o di un tablet, di un qualsiasi device ultramobile, senza comprometterne l'autonomia, tratto fondamentale in dispositivi del genere?
Passare a microarchitetture sempre più efficienti e a processi produttivi sempre più miniaturizzati sono ovviamente due strade, ma entrambe difficilmente percorribili all'infinito, essendo soggette a limiti fisici ormai molto vicini. L'altra soluzione è quella di passare ad architetture cosiddette eterogenee, concetto che abbiamo già incontrato in passato, analizzando i progetti futuri di AMD per l'evoluzione della sua famiglia Fusion. Si tratta di mettere assieme diversi core, che differiscono per caratteristiche, alcuni sono performanti ma consumano molto, altri energeticamente parchi ma poco potenti, e switchare dagli uni agli altri a seconda delle esigenze e dei carichi di lavoro. Come visto questa è la strada che seguirà anche Nvidia ed ora si aggiunge anche ARM, con la propria soluzione.
A differenza di Nvidia che però può contare su differenti versioni dello stesso core, ARM ha dovuto crearne uno nuovo ad hoc e così, se l'attuale Cortex A9 ha segnato il passaggio ad un'architettura out-of-order, che sappiamo essere più efficiente, il nuovo ARM Cortex A7 segna il ritorno a un'architettura in-order, in grado di processare appena due istruzioni per ciclo di clock. Potrebbe sembrare un passo indietro e un ritorno al precedente processore Cortex A8, ma in realtà quest'ultimo aveva un'architettura ormai datata, mentre il nuovo A7 potrà contare su prestazioni globalmente superiori al predecessore, sebbene sia molto parco nei consumi.
Fondamentalmente Cortex A7 è dotato di pipeline a 8 stadi (Cortex A8 ne aveva 13) e solo parzialmente è in grado di processare due istruzioni per volta. Ad esempio non è in grado di farlo per quanto riguarda le istruzioni NEON o quelle a virgola mobile, cosa che invece l'A8 poteva fare. La FPU (Floating Point Unit) però al contrario è completamente organizzata in pipeline e più compatta. Limitare la quantità di istanze processabili per le istruzioni più complesse è una scelta precisa, volta a contenere la grandezza del die, diminuendo così la complessità interna del core e, di conseguenza, anche l’assorbimento energetico. Grazie anche al sistema litografico a 28 nm infatti Cortex A7 occuperà un terzo o al massimo metà dell'area occupata dal vecchio Cortex A8, mentre il futuro Cortex A15 sarà molto più grande.
Inoltre, nonostante le limitazioni di cui sopra, ARM crede che il Cortex A7 avrà prestazioni per clock globalmente migliori dell'A8, questo soprattutto grazie proprio al fatto di avere pipeline con meno stadi, che diminuiscono quindi le possibilità di errore e anche all'implementazione di un'unità branch prediction più evoluta. Inoltre il Cortex A7 integra migliori algoritmi di prefetch e una cache L2 a bassissima latenza (soltanto 10 cicli). Infine Cortex A7 è totalmente compatibile col futuro e molto più potente Cortex A15: tutto il codice che potrà girare su quest'ultimo potrà infatti essere gestito anche dal Cortex A7, solo più lentamente, ma entrambi condividono le nuove istruzioni per la virtualizzazione, il supporto per gli integer divide e per l'indirizzamento della memoria a 40 bit.
Ma come sarà impiegato questo nuovo core Cortex A7? L'approccio è del tutto simile a quello che abbiamo descritto per il Tegra 3 di Nvidia. Anche ARM infatti è convinta che la gestione dei processi in background, che si svolgono mentre lo smartphone o il tablet sono in stand-by, non richieda l'enorme potenza di calcolo di un processore come il Cortex A15 e che se anche questo funzionasse per brevissimi periodi di tempo consumerebbe comunque troppe risorse rispetto alla reale potenza richiesta per questi task.
Dunque il nuovo Cortex A7 è stato sviluppato per essere utilizzato anche da solo, ad esempio in dispositivi entry level, ma i produttori avranno la libertà di integrarlo assieme al Cortex A15 in un'architettura chiamata appunto Big.LITTLE. Big.LITTLE inoltre è completamente trasparente al sistema operativo, in modo da evitare la necessità di riscritture dello stesso da parte dello sviluppatore. Esso vedrà infatti sempre e solo il numero di core di tipo Cortex A15 e sarà quindi unicamente il firmware di gestione dei consumi a decidere come smistare il lavoro, a seconda del workflow e delle richieste dell'OS.
Se infatti questi chiederà uno stato ad alte performance il firmware abiliterà i core A15, altrimenti li spegnerà tornando all'A7. La coerenza dei dati nella cache sarà garantita dalla connessione CCI-400. Ogni dato invalidato da un core o da un gruppo di core sarà quindi copiato anche nella cache dell'altro core o dell'altro gruppo di core. ARM inoltre afferma di poter effettuare lo switch tra i core in 20 microsecondi, la stessa dichiarata anche da Nvidia per Kal-El.
ARM prevede inoltre di commercializzare una versione a 40 nm del Cortex A7 per essere impiegato come singolo processore in dispositivi economici destinati ai Paesi emergenti. Ovviamente i prezzi per lotti di mille unità dell'ARM Cortex A7, sia in versione da 40 nm che da 28 nm, non sono ancora stati divulgati, visto che il primo non arriverà sul mercato prima della fine del 2012 e il secondo durante il 2013.
Via: AnandTech