Qual è la differenza tra processori ARM e x86?
I processori ARM (come indica il nome) sono stati progettati principalmente con l'idea di risparmiare energia. Consumano una quantità inferiore di energia che li rende più popolari negli smartphone e altri dispositivi mobili, dove la durata della batteria è molto importante. I processori x86 sono stati progettati originariamente per essere utilizzati su desktop, laptop e server. La differenza di prestazioni tra le CPU ARM e x86 può essere vista nei benchmark come Geekbench o Geekbench 3.
I processori ARM sono tipicamente a 32 bit e i processori x86 a 64 bit. Questo non vuol dire che non si possa comprare un processore ARM a 64 bit, ma il contrario è più raro. Infatti, probabilmente non accadrà mai perché un'architettura più grande permette set di istruzioni più complessi, una maggiore velocità di esecuzione, ecc.
La differenza principale tra questi due è l'architettura del set di istruzioni (ISA), che fondamentalmente descrive cosa il processore può fare e come lo fa. Una spiegazione molto semplificata dell'ISA sarebbe questa: X86 usa registri interi per memorizzare i numeri, mentre ARM usa la memoria per memorizzarli. Per esempio, se un valore intero memorizzato nel registro ha il suo bit di segno attivato, allora il processore assumerà che quel numero sia negativo a meno che non sia specificato diversamente. Se quel numero è memorizzato in memoria, il processore non può assumere nulla sul suo segno a meno che non glielo si dica esplicitamente.
Un'altra differenza tra ARM e X86 è l'indirizzamento della memoria. Questo significa semplicemente che i processori x86 sono in grado di indirizzare più di 4 GB di RAM mentre ARM è limitato a circa 1-3 GB a seconda della specifica architettura di set di istruzioni che usano. Intel ha rilasciato processori dual-core e anche quad-core, ma poiché x86 non può indirizzare più di 4 GB di RAM, questi chip hanno ancora problemi ad accedere a tutta la memoria contemporaneamente (il che è particolarmente problematico quando si usa Windows). Inoltre, su un sistema a 64 bit, ogni programma verrà eseguito in uno spazio di indirizzamento separato, quindi avere abbastanza spazio per più programmi diventa un problema. Tuttavia, l'introduzione di Windows 8 dovrebbe aiutare a risolvere questi problemi, dato che ha versioni a 64 bit e può indirizzare più di 4GB di RAM.
Un'altra differenza tra ARM e x86 è il modo in cui le istruzioni vengono eseguite. Su un processore x86, le istruzioni sono prima decodificate in micro-operazioni che rendono le cose più veloci, ma questo processo richiede tempo (chiamato latenza). In altre parole, c'è un ritardo prima che un comando sia effettivamente eseguito su un sistema x86, a differenza di un processore ARM dove le istruzioni sono direttamente tradotte in codice macchina senza alcun tipo di fase di decodifica. Questo significa anche che ci sarà una certa latenza in generale quando si tratta di codice nuovo o non ottimizzato; tuttavia, questo problema non riguarda tutti i programmi allo stesso modo.
Articoli simili
- Perché i processori ARM sono più efficienti dal punto di vista energetico (prestazioni/watt) dei processori x86?
- Qual è l'effettiva differenza tra le architetture x86, ARM e MIPS?
- Qual è la differenza tra Intel x86 vs ARM Memory Management?
- C'è qualche differenza tra il sistema operativo Android che gira su un processore basato su ARM e uno basato su x86?