Arm vs x86: set di istruzioni, architettura e tutte le differenze chiave spiegate

Android è in grado di funzionare su tre diversi tipi di architettura di processore: Arm, Intel e MIPS. La prima è l’architettura onnipresente oggi dopo che Intel ha abbandonato le sue CPU per cellulari, mentre i processori MIPS per i telefoni non si vedono da anni. Arm è l’architettura CPU utilizzata da tutti gli smartphone moderni in entrambi gli ecosistemi Android e Apple. I processori Arm si stanno facendo strada anche nel mercato dei PC tramite Windows on Arm e la CPU personalizzata M1 di Apple per i Mac. Con la guerra tra Arm e Intel CPU che sta per riscaldarsi alla grande, ecco tutto quello che c’è da sapere su Arm e x86.

L’architettura della CPU spiegata

La Central Processing Unit (CPU) è il “cervello” del tuo dispositivo, ma non è esattamente intelligente. Una CPU funziona solo quando le vengono date istruzioni molto specifiche – opportunamente chiamate set di istruzioni – che dicono al processore di spostare dati tra registri e memoria o di eseguire un calcolo usando una specifica unità di esecuzione (come la moltiplicazione o la sottrazione). Blocchi hardware unici della CPU richiedono istruzioni diverse. Queste tendono a scalare con CPU più complesse e potenti. Le istruzioni desiderate possono anche informare il design dell’hardware, come vedremo tra un momento.

Cos’è un SoC? Tutto quello che c’è da sapere sui chipset per smartphone

Le applicazioni che girano sul tuo telefono non sono scritte con le istruzioni della CPU; sarebbe una follia con le grandi applicazioni multipiattaforma di oggi che girano su una varietà di chip. Invece, le applicazioni scritte in vari linguaggi di programmazione di livello superiore (come Java o C++) sono compilate per specifici set di istruzioni in modo che girino correttamente sulle CPU Arm o x86. Queste istruzioni sono ulteriormente decodificate in microcodici all’interno della CPU, il che richiede spazio e potenza al silicio. Se si vuole la CPU a più bassa potenza, mantenere il set di istruzioni semplice è fondamentale. Tuttavia, prestazioni più elevate possono essere ottenute da hardware e istruzioni più complesse a spese della potenza. Questa è una differenza fondamentale tra l’approccio di Arm e quello di Intel alla progettazione delle CPU.

x86 mira tradizionalmente alle prestazioni di picco, L’efficienza energetica di Arm

Arm è basato su RISC (Reduced Instruction Set Computing) mentre Intel (x86) è CISC (Complex Instruction Set Computing). Le istruzioni della CPU Arm sono ragionevolmente atomiche, con una correlazione molto stretta tra il numero di istruzioni e i micro-operazioni. CISC, in confronto, offre molte più istruzioni, molte delle quali eseguono operazioni multiple (come la matematica ottimizzata e il movimento dei dati). Questo porta a migliori prestazioni, ma a un maggior consumo di energia nella decodifica di queste istruzioni complesse.

Questo legame tra le istruzioni e il design dell’hardware del processore è ciò che rende un’architettura CPU. In questo modo, le architetture di CPU possono essere progettate per scopi diversi, come l’estremo calcolo dei numeri, il basso consumo energetico o la minima area di silicio. Questa è una differenza chiave quando si guarda ad Arm contro x86 in termini di CPU, poiché il primo è basato su una potenza, un set di istruzioni e un hardware più bassi.

Le moderne architetture CPU a 64 bit

Oggi le architetture a 64 bit sono mainstream negli smartphone e nei PC, ma non è sempre stato così. I telefoni non hanno fatto il passaggio fino al 2012, circa un decennio dopo i PC. In poche parole, il calcolo a 64 bit sfrutta registri e indirizzi di memoria abbastanza grandi da utilizzare tipi di dati lunghi 64 bit (1s e 0s). Oltre all’hardware e alle istruzioni compatibili, è necessario anche un sistema operativo a 64 bit, come Android.

I veterani del settore possono ricordare il clamore quando Apple ha introdotto il suo primo processore a 64 bit prima dei suoi rivali Android. Il passaggio ai 64-bit non ha trasformato l’informatica quotidiana. Tuttavia, è importante per eseguire la matematica in modo efficiente quando si usano numeri in virgola mobile ad alta precisione. I registri a 64 bit migliorano anche la precisione del rendering 3D, la velocità di crittografia e semplificano l’indirizzamento di più di 4GB di RAM.

Oggi entrambe le architetture supportano i 64 bit, ma è più recente nel mobile

I PC sono passati ai 64 bit ben prima degli smartphone, ma non è stata Intel a coniare la moderna architettura x86-64 (nota anche come x64). Quel riconoscimento appartiene all’annuncio di AMD del 1999, che ha adattato l’architettura x86 esistente di Intel. L’architettura alternativa IA64 Itanium di Intel è stata abbandonata.

Arm ha introdotto la sua architettura ARMv8 a 64 bit nel 2011. Piuttosto che estendere il suo set di istruzioni a 32 bit, Arm offre un’implementazione pulita a 64 bit. Per realizzare questo, l’architettura ARMv8 usa due stati di esecuzione, AArch32 e AArch64. Come i nomi implicano, uno è per l’esecuzione di codice a 32-bit e uno per 64-bit. La bellezza del design ARM è che il processore può passare senza problemi da una modalità all’altra durante la sua normale esecuzione. Questo significa che il decoder per le istruzioni a 64-bit è un nuovo design che non ha bisogno di mantenere la compatibilità con l’era a 32-bit, ma il processore nel suo complesso rimane compatibile all’indietro.

Leggi tutto: Arm Cortex-X1 porta la battaglia alle potenti CPU di Apple

L’Heterogeneous Compute di Arm ha vinto sul mobile

Le differenze architettoniche discusse sopra spiegano in parte gli attuali successi e problemi dei due colossi dei chip. L’approccio a basso consumo di Arm è perfettamente adatto ai requisiti TDP (Thermal Design Power) di 3,5W del mobile, ma le prestazioni scalano fino ad eguagliare anche i chip per laptop di Intel. Nel frattempo, il tipico Core i7 con TDP di 100W di Intel vince alla grande nei server e nei desktop ad alte prestazioni, ma storicamente fatica a scendere sotto i 5W. Vedi la dubbia linea Atom.

Naturalmente, non dobbiamo dimenticare il ruolo che i processi di produzione del silicio hanno giocato nel migliorare enormemente l’efficienza energetica negli ultimi dieci anni. In generale, i transistor delle CPU più piccoli consumano meno energia. Intel è rimasta bloccata nel tentativo di superare il suo processo interno a 14nm del 2014. In quel periodo, i chipset per smartphone sono passati da 20nm a 14, 10 e ora 7nm, con 5nm previsti per il 2021. Questo è stato ottenuto semplicemente facendo leva sulla concorrenza tra le fonderie Samsung e TSMC.

Tuttavia, una caratteristica unica dell’architettura di Arm è stata particolarmente determinante nel mantenere basso il TDP per le applicazioni mobili – il calcolo eterogeneo. L’idea è abbastanza semplice, costruire un’architettura che permetta a diverse parti della CPU (in termini di prestazioni e potenza) di lavorare insieme per una migliore efficienza.

La capacità di Arm di condividere i carichi di lavoro tra core CPU ad alte e basseprestazioni dei core della CPU è un vantaggio per l’efficienza energetica

Il primo tentativo diArm con questa idea è stato big.LITTLE nel 2011 con il grande Cortex-A15 e il piccolo core Cortex-A7. L’idea di usare core di CPU più grandi fuori dall’ordine per applicazioni esigenti e progetti di CPU efficienti dal punto di vista energetico per attività in background è qualcosa che gli utenti di smartphone danno per scontato oggi, ma ci sono voluti alcuni tentativi per appianare la formula. Arm ha costruito su questa idea con DynamIQ e l’architettura ARMAv8.2 nel 2017, permettendo a diverse CPU di sedersi nello stesso cluster, condividendo le risorse di memoria per un’elaborazione molto più efficiente. DynamIQ permette anche il design 2+6 CPU che è sempre più comune nei chip di fascia media.

Related: Processori single-core e multi-core: Quali sono meglio per gli smartphone?

I chip Atom rivali di Intel, senza calcolo eterogeneo, non potevano eguagliare l’equilibrio di prestazioni ed efficienza di Arm. Ci è voluto fino al 2020 perché i progetti Foveros, Embedded Multi-die Interconnect Bridge (EMIB) e Hybrid Technolgy di Intel producessero un design di chip concorrente – il Lakefield da 10nm. Lakefield combina un singolo, performante core Sunny Cove con quattro core Tremont ad alta efficienza energetica, insieme a caratteristiche grafiche e di connettività. Tuttavia, anche questo pacchetto è indirizzato ai computer portatili connessi con un TDP di 7W, che è ancora troppo alto per gli smartphone.

Intel Lakefield con tecnologia ibrida usa principi di progettazione simili al big di Arm.LITTLE

Oggi, Arm vs x86 è sempre più combattuto nel segmento di mercato dei laptop con TDP sub-10W, dove Intel scala verso il basso e Arm scala verso l’alto con sempre maggior successo. La notizia di Apple che passerà ai propri chip Arm personalizzati per Mac è un esempio lampante della crescente portata prestazionale dell’architettura Arm, grazie in parte al computing eterogeneo insieme alle ottimizzazioni personalizzate fatte da Apple.

Core e set di istruzioni Arm personalizzati

Un’altra importante distinzione tra Arm e Intel è che quest’ultima controlla tutto il suo processo dall’inizio alla fine e vende direttamente i suoi chip. Arm vende semplicemente delle licenze. Intel mantiene la sua architettura, il design della CPU e persino la produzione interamente in-house. Arm, in confronto, offre una varietà di prodotti a partner come Apple, Samsung e Qualcomm. Questi spaziano da progetti di core CPU off the shelf come il Cortex-A78, progetti costruiti in partnership attraverso il suo programma Arm CXC, e licenze di architetture personalizzate che permettono ad aziende come Apple e Samsung di costruire core CPU personalizzati e anche di fare aggiustamenti al set di istruzioni.

Leggi di più: I primi computer basati su Arm di Apple includono i nuovi MacBook e il Mac Mini

Costruire CPU personalizzate è un processo costoso e complesso, ma fatto correttamente può chiaramente portare a risultati potenti. Le CPU di Apple mostrano come l’hardware e le istruzioni su misura spingano le prestazioni di Arm molto più vicine a quelle del mainstream x86 e anche oltre. Anche se i core Mongoose di Samsung sono stati più controversi.

Apple intende sostituire gradualmente le CPU Intel nei suoi prodotti Mac con il proprio silicio basato su Arm. L’Apple M1 è il primo chip in questo sforzo, che alimenta gli ultimi MacBook Air, Pro, e il Mac Mini. L’M1 vanta alcuni miglioramenti impressionanti nelle prestazioni, suggerendo che i core Arm ad alte prestazioni sono in grado di sfidare gli x86 in scenari di calcolo più esigenti. Ricordate però che i confronti di Apple sono per CPU di classe laptop, piuttosto che per desktop.

Al momento della scrittura, il supercomputer più potente del mondo, Fugaku, gira su Arm

L’architettura di Intel rimane davanti in termini di prestazioni grezze nello spazio hardware consumer. Ma Arm è ora molto competitiva nei segmenti di prodotto in cui le alte prestazioni e l’efficienza energetica rimangono fondamentali, il che include il mercato dei server. Al momento in cui scriviamo, il supercomputer più potente del mondo sta girando su core di CPU Arm per la prima volta in assoluto. Il suo SoC A64FX è stato progettato da Fujitsu ed è il primo ad utilizzare l’architettura Armv8-A SVE.

Compatibilità software

Come abbiamo detto prima, le applicazioni e il software devono essere compilati per l’architettura della CPU su cui girano. Il matrimonio storico tra CPU ed ecosistemi (come Android su Arm e Windows su x86) ha fatto sì che la compatibilità non sia mai stata davvero una preoccupazione, poiché le applicazioni non avevano bisogno di essere eseguite su più piattaforme e architetture. Tuttavia, la crescita delle app multipiattaforma e dei sistemi operativi che girano su più architetture di CPU stanno cambiando questo panorama.

I Mac basati su Arm di Apple, Chrome OS di Google e Windows on Arm di Microsoft sono tutti esempi moderni in cui il software deve girare sia su architetture Arm che Intel. Compilare il software nativo per entrambe è un’opzione per le nuove applicazioni e per gli sviluppatori disposti a investire nella ricompilazione. Per colmare le lacune, queste piattaforme si affidano anche all’emulazione del codice. In altre parole, tradurre il codice compilato per un’architettura CPU per funzionare su un’altra. Questo è meno efficiente e degrada le prestazioni rispetto alle app native, ma una buona emulazione è attualmente possibile per garantire che le app funzionino.

Dopo anni di sviluppo, l’emulazione di Windows su Arm è in uno stato abbastanza buono per la maggior parte delle applicazioni. Anche le applicazioni Android girano decentemente sui Chromebook Intel per la maggior parte. Apple ha il proprio strumento di traduzione chiamato Rosetta 2 per supportare anche le applicazioni legacy Mac. Ma, tutti e tre soffrono di penalità di prestazioni rispetto alle applicazioni compilate nativamente.

Arm vs x86: L’ultima parola

Nell’ultimo decennio di rivalità tra Arm e x86, Arm ha vinto come scelta per dispositivi a bassa potenza come gli smartphone. L’architettura sta ora facendo passi avanti anche nei computer portatili e in altri dispositivi dove è richiesta una maggiore efficienza energetica. Nonostante la sconfitta sui telefoni, anche gli sforzi di Intel a basso consumo sono migliorati nel corso degli anni, con Lakefield che ora condivide molto di più in comune con i tradizionali processori Arm che si trovano nei telefoni.

Detto questo, Arm e x86 rimangono distintamente diversi da un punto di vista ingegneristico e continuano ad avere punti di forza e debolezze individuali. Tuttavia, i casi d’uso dei consumatori tra i due si stanno confondendo con gli ecosistemi che supportano sempre più entrambe le architetture. Eppure, mentre c’è un crossover nel confronto Arm vs x86, è Arm che è certo di rimanere l’architettura di scelta per l’industria degli smartphone per il prossimo futuro. L’architettura sta mostrando grandi promesse anche per il calcolo e l’efficienza di classe laptop.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *