ARM-vs-X86-Key-differences-explained

X86 E ARM: quali sono le differenze?

Spesso si sente dire: “le applicazioni per pc non possono funzionare sugli smartphone/tablet ” oppure: “android è per i Tablet, windows  è un sistema per computer” ecc ecc. Informandosi meglio si comprende che i “problemi” di compatibilità tra, ad esempio, android e windows sono dovuti soprattutto dal’architettura del processore stesso: ARM o X86/X64.

Cosa significa? Oggi cercherò di dare una spiegazione abbastanza semplice. Iniziamo dal definire il termine architettura. In elettronica è essenzialmente la struttura funzionale base del “core” sulla quale vengono sviluppati i vari modelli di processori. Nel corso degli anni sono state sviluppate diverse architetture, ma quelle che sono attualmente usate pressochè ovunque sono appunto  l’X86 (introdotta diversi decenni fa da Intel) e RISC da cui sono derivati gli ARM (Advanced RISC processor), decisamente più “giovani”.

Partiamo con l’analisi dell’architettura X86 ( la cui evoluzione attuale è X64), ovvero su cui sono basati tutti i processori Intel/AMD. Prima di tutto occorre dire che una grande differenziazione riguarda il set di istruzioni ( per istruzioni intendo la sequenza di bit che arriva alla mia unità di controllo, che a sua volta affianco la alu nel mio processore. I Bit contengono ciò che la cpu deve fare in termini di calcoli, conversioni matematiche, gestione di periferiche…).

I processori X86 sono chip CISC (Complex Istruction Set Computer) ovvero possono eseguire istruzioni più dinamiche, eterogenee e mirate. Questa caratteristica ha permesso lo sviluppo di macchine sempre più potenti e performanti negli ultimi 20 anni, in grado di svolgere diversi compiti, dai più banali a grosse elaborazioni.

Cosa comportano tutte queste caratteristiche? Consumi elevati (e conseguente dissipazione di calore), costi di produzione elevati e difficoltà nella miniaturizzazione dei core. Tutti questi “problemi” non sono troppo rilevanti se si pensa a grosse macchine come i PC desktop, server e i “vecchi” notebook ma diventano molto limitanti nel mondo mobile, in quanto impediscono lo sviluppo di dispositivi leggeri, prestanti e con un’autonomia accettabile! Intel dal canto suo è riuscita a sviluppare CPU x86 sempre più efficienti (core M e Atom esempio) ma che ancora non riescono a competere con  i processori ARM, che ormai sono montati nella stragrande maggioranza dei dispositivi mobili (Smartphone, Tablet ma non solo!). Infatti questi ultimi chip costano decisamente meno e sono comunque più efficienti dal punto di vista energetico (il TDP di un core M5 ad esempio è minimo 3.5W, mentre in full load raggiunge i 7W, valori decisamente superiori alla media dei processori ARM).

ARMvsx86

 

Parliamo quindi ora dell’architettura ARM. Come detto prima sono dei RISC( Reduced Istruction Computer), ovvero permettono di eseguire con grande efficienza un set limitato di istruzioni (in modo tale da mantenere solo quelle più frequenti e necessarie). Questo si traduce in bassissimi consumi e dissipazione di calore, maggiori possibilità di miniaturizzazione, ovviamente costi di produzione notevolmente ridotti e possibilità di progettare cpu con elevato numero di core! Non solo, infatti la società che ha brevettato l’architettura ARM ha reso immediatamente disponibili i propri brevetti e ciò ha permesso a migliaia di aziende di sfruttare e di buttarsi nello sviluppo di CPU “custom”, cosi da creare prodotti con grande integrazione hardware/software. Un esempio sono i processori “A” montati nei dispositivi Apple, basati anch’essi su ARM e progettati appositamente per funzionare al meglio con IOS. Attualmente è quindi possibile creare dispositivi con prestazioni ormai comparabili ai moderni computer, consumando e spendendo meno della metà! Un’altra importantissima caratteristica è l’estrema flessibilità dell’architettura, che consente di creare CPU potentissime e allo stesso tempo microcontrollori adatti alla gestione di piccoli piccoli dispositivi. Un esempio? Il 99% dei quadricotteri è gestito da un processore ARM che costa pochi centesimi, basato sulla medesima architettura del nuovo Exynos/Snapdragon del Galaxy S8!

 

Quindi, è facile dedurre come la compatibilità fra applicazioni sviluppate per cpu CISC e quelle per processori RISC sia molto difficile da ottenere, dati i differenti set di istruzioni sfruttati dalle stesse. Negli ultimi anni però, Microsoft ha sempre più mostrato interesse nello sviluppo di app universali, in grado di girare su qualsiasi sistema; non solo, attualmente è risaputo che è in sviluppo una nuova versione di windows 10 in grado di funzionare sullo Snapdragon 835 (lo stesso processore ARM montato sui Galaxy S8 non europei), e in rete è presente un video che mostra il sistema funzionante, senza troppi bug e rallentamenti. L’obbiettivo è senza dubbio riuscire a creare dei dispositivi sufficientemente piccoli(Smartphone) ma in grado di funzionare al 100% come dei computer, garantendo quelle caratteristiche tipiche dei dispositivi mobile descritte precedentemente.

Infine ci si può domandare che fine faranno i processori X86 in futuro? Beh attualmente in diversi ambiti la potenza bruta di una CPU Intel è ancora indispensabile (esempio nei data center) ma credo che si andrà sempre più verso una più completa diffusione e perfezionamento della tecnologia ARM, che andrà a sostituire i vecchi processori anche in quelle situazioni in cui è richiesta grande potenza di calcolo. Sono inoltre sicuro che sia Intel che AMD si stiano già preparando a ciò, anche se è impossibile negare che entrambe le aziende si siano trovate abbastanza spiazzate in questi ultimi anni!

Commenti