I chip ARM sono più veloci di Intel?
La risposta diretta a questa domanda non esiste. Tuttavia, se selezioniamo un processore Intel Xeon e un processore ARM 64bit che esegue il server Linux, mi aspetterei un'esecuzione più veloce di un'applicazione Linux complessa sul server basato su Intel... ma poi possiamo fare un confronto del consumo energetico, dove ARM vincerà. Questo risponde al motivo per cui così tante aziende sono interessate a costruire server basati su ARM - i rapporti tra velocità di calcolo e consumo energetico o la velocità di elaborazione del flusso di dati e il consumo energetico sono molto più bassi in questi giorni negli ARM. Questo è uno dei motivi per cui ARM sta ancora vincendo con Intel sul mercato degli smartphone, mentre Intel ha investito molto nel puntare agli smartphone e ora all'IoT.
C'è un altro fattore di questo argomento se stiamo parlando di chi è più veloce. ARM è sicuramente più veloce nell'esecuzione delle istruzioni - i loro set di istruzioni (sia Thumb che ARM classico sono RISC) sono diversi e quindi il pipelining differisce molto. Le istruzioni CISC di Intel per 64 bit sono molto complesse in termini di operazioni interne che avvengono nel codice della CPU e possono essere pipelineate in modo non lineare, il che significa che la coda delle istruzioni non è sequenziale. In ARM la coda delle istruzioni è sequenziale, quindi le istruzioni vanno all'esecuzione solo nella sequenza in cui appaiono nel codice. Ciò che è tipico per tutte le architetture ARM. Il set di istruzioni Thumb a 16 bit aiuta molto in questo caso, poiché permette a 2 istruzioni di essere trasportate da una singola parola a 32 bit.
Il pipelining sequenziale lascia tutta l'ottimizzazione al compilatore al costo di un codice binario un po' più grande (di nuovo, grazie a Thumb questo può essere ridotto). I processori Intel hanno una logica MOLTO ENORME che ottimizza il codice durante l'esecuzione cercando di prevedere il modo più ottimale di operazioni fuori sequenza che porta ad ottenere il risultato più velocemente. Quindi abbiamo due approcci totalmente opposti: Le istruzioni complesse di Intel ottimizzate in fase di esecuzione e le semplici istruzioni di ARM ottimizzate in fase di compilazione.
Ora, il trucco è che negli ultimi 15-20 anni i compilatori hanno migliorato enormemente il loro processo di ottimizzazione grazie agli sforzi di molti ragazzi in gamba che lavorano su GCC, CLANG o anche per ARM stessa. Ciò significa che oggi, per molte applicazioni è possibile scrivere software che supererebbe l'ARM in termini di efficienza (economica ed energetica). Intel è stata vincente in molte aree per secoli perché ha mantenuto la compatibilità binaria all'indietro con il famoso x86 per secoli permettendo ancora alle persone di eseguire programmi compilati anni fa per funzionare sui moderni processori Intel. Questo non è vero per ARM dove nella maggior parte dei casi è necessario ricompilare il codice per l'architettura di destinazione (e ce n'è un sacco sul mercato usato allo stesso tempo). Sugli smartphone è nascosto ai nostri occhi perché ogni produttore che usa Android fornisce il proprio kernel Linux che gira dietro compilato per il core ARM che usano nel loro prodotto (alcuni possono anche usarne due diversi per lo stesso modello a seconda del mercato in cui vendono il prodotto).
E ultimo ma non meno importante. Intel progetta, produce e vende i propri prodotti. Non ci sono altre aziende che producono i progetti di Intel (AMD non conta perché segue il modello di business e progetta solo chip compatibili). ARM è solo ricercatore e progettista. Non producono i propri progetti o li vendono come prodotti da soli. Forniscono solo proprietà intellettuale e strumenti per aiutare lo sviluppo di nuovo software per i core ARM.
Articoli simili
- I telefoni più veloci saranno mai veloci come i PC più veloci?
- Preoccupa Intel che Microsoft faccia una mossa per Windows per supportare i chip ARM?
- Perché i chip bionici di Apple sono più veloci degli Snapdragon di Qualcomm?
- Perché è necessaria una licenza di ARM per progettare una CPU ARM? Come sono protetti i set di istruzioni?