Ogni volta che pensiamo all’hardware per mobile, Arm è probabilmente la prima azienda che ci viene in mente, o dovrebbe esserlo. Mentre storicamente Intel è stata riconosciuta come leader nella produzione di chip, per anni Arm si è lentamente ritagliata una nicchia che alla fine ha raggiunto un punto di svolta, in cui i dispositivi informatici non dovevano più essere i più veloci, ma efficienti e portatili.

Questo è il motivo per cui Arm domina il mercato dei processori mobili con quasi tutte le principali versioni basate sulla sua architettura. Stiamo parlando di miliardi di chip utilizzati su telefoni, smart TV, sistemi biometrici, laptop e tablet. Ma perché altre architetture come x86 non sono riuscite a prendere piede? In questo articolo, forniremo una panoramica tecnica di cos’è Arm, da dove proviene e perché è diventato così onnipresente.

La prima cosa da notare è che Arm in realtà non produce processori. Invece, progettano architetture CPU e concedono in licenza quei progetti ad altre società come Qualcomm, Apple o Samsung che le incorporano nei loro processori. Poiché utilizzano tutti uno standard comune, il codice che viene eseguito su un processore Qualcomm Snapdragon verrà lanciato anche su un processore Samsung Exynos.

arm dominare il mercato mobile

Cos’è un ISA (Instruction Set Architecture)?

Ogni chip ha bisogno di un ISA per funzionare e questo è ciò che rappresenta Arm. Il primo passo per spiegare Arm è capire cos’è esattamente un ISA e cosa non lo è.

Non è un componente fisico come una cache o un core, ma piuttosto un ISA definisce come funzionano tutti gli aspetti di un processore. Ciò include il tipo di istruzioni che il chip può elaborare, come devono essere formattati i dati di input e output, come il processore interagisce con la RAM e altro ancora. Un altro modo per dirlo: un ISA è un insieme di specifiche mentre la CPU è la realizzazione o implementazione di quelle specifiche. È un modello per il funzionamento di tutte le parti di una CPU.

Gli ISA specificano la dimensione di ogni pezzo di dati, con i processori più moderni che utilizzano un modello a 64 bit. Sebbene tutti i processori eseguano le tre funzioni di base di lettura delle istruzioni, esecuzione di tali istruzioni e aggiornamento del loro stato in base ai risultati, diversi ISA possono ulteriormente suddividere questi passaggi.

Un ISA complesso come x86 divide in genere questo processo in diverse dozzine di operazioni più piccole per migliorare la portata del calcolo. Anche attività come la previsione dei rami per le istruzioni condizionali e il precaricamento di parti di dati future sono specificate da un ISA.

Oltre a definire la microarchitettura di un processore, un ISA specificherà una serie di istruzioni che può elaborare. Le istruzioni sono ciò che una CPU esegue in ogni ciclo e sono prodotte da un compilatore. Esistono molti tipi di istruzioni come lettura / scrittura dalla memoria, operazioni aritmetiche, operazioni di salto e altro ancora. Un esempio potrebbe essere “aggiungere il contenuto dell’indirizzo di memoria 1 al contenuto dell’indirizzo di memoria 2 e memorizzare il risultato nell’indirizzo di memoria 3.”

Ogni istruzione sarà tipicamente lunga 32 o 64 bit e avrà diversi campi. Il più importante è il codice operativo che informa il processore sulla specifica istruzione da trattare. Una volta che il processore sa quale tipo di istruzione sta eseguendo recupererà i dati rilevanti necessari per quell’operazione. La posizione e il tipo di dati verranno forniti in un’altra parte del codice operativo.

RISC contro CISC

Ora che abbiamo un’idea di base di cosa sia e cosa faccia un ISA, iniziamo a guardare cosa rende speciale Arm.

L’aspetto più significativo è che Arm è un’architettura RISC (Reduced Instruction Set Computing) mentre x86 è un’architettura CISC (Complex Instruction Set Computing). Questi sono due principali paradigmi di progettazione del processore ed entrambi hanno i loro punti di forza e di debolezza.

Con un’architettura RISC, ogni istruzione specifica direttamente un’azione che la CPU deve eseguire e sono relativamente semplici. D’altra parte, le istruzioni in un’architettura CISC sono più complesse e specificano un’idea più ampia per la CPU. Ciò significa che una CPU CISC tipicamente suddividerà ulteriormente ciascuna istruzione in una serie di micro-operazioni. Un’architettura CISC può codificare molti più dettagli in una singola istruzione che può migliorare notevolmente le prestazioni.

Ad esempio, un’architettura RISC potrebbe avere solo una o due istruzioni mentre un’architettura CISC potrebbe averne 20 a seconda del tipo di dati e di altri parametri per il calcolo.

CISCRISC
Invia la complessità all’hardwareInvia la complessità al software
Molti tipi e formati diversi per le istruzioniLe istruzioni seguono un formato simile
Pochi registri interniMolti registri interni
Decodifica complessa per suddividere le parti delle istruzioniCompilatore complesso per scrivere codice con istruzioni granulari
Forme complesse di interazione della memoriaPoche forme di interazione con la memoria
Le istruzioni richiedono un numero diverso di cicli per essere completateTutte le istruzioni finiscono in un ciclo
Difficile dividere e parallelizzare il lavoroLavoro facile da parallelizzare

Un altro esempio per semplificare il concetto e paragonarlo con la costruzione di una casa. Con un sistema RISC, abbiamo solo un martello e una sega, mentre con un sistema CISC troviamo dozzine di diversi tipi di martelli, seghe, trapani e altro ancora. Un costruttore che utilizza un sistema simile a CISC sarebbe in grado di svolgere più lavoro poiché i suoi strumenti sono più specializzati e potenti. Il costruttore RISC sarebbe ancora in grado di portare a termine il lavoro, ma ci vorrebbe più tempo poiché i suoi strumenti sono molto più semplici e meno potenti.

Ora probabilmente dtarete pensando “perché qualcuno dovrebbe mai usare un sistema RISC se un sistema CISC è molto più potente?” Tuttavia, le prestazioni non sono l’unica cosa da considerare. Il nostro costruttore CISC deve assumere un gruppo di lavoratori extra perché ogni strumento richiede un set di abilità specializzate. Ciò significa che il cantiere è molto più complesso e richiede una grande quantità di pianificazione e organizzazione. È anche molto più costoso gestire tutti questi strumenti poiché ognuno può funzionare con un diverso tipo di materiale. Il nostro amico RISC non deve preoccuparsi di questo poiché i suoi strumenti di base possono funzionare con qualsiasi cosa.

L’idea di partenza e il prodotto finito saranno gli stessi, ma il lavoro nel mezzo sarà diverso.

Abbiamo bisogno di meno potenza!

Torniamo di nuovo ad Arm. Se abbiamo collegato i punti, possiamo probabilmente indovinare cosa rende Arm così attraente per i progettisti di sistemi mobili. La chiave qui è l’efficienza.

In uno scenario integrato o mobile, l’efficienza energetica è molto più importante delle prestazioni. Spesso il progettista sposerà un piccolo calo delle prestazioni se significa risparmiare energia. Fino a quando la tecnologia delle batterie non migliorerà, il calore e il consumo energetico rimarranno i principali fattori limitanti durante la progettazione di un prodotto mobile. Ecco perché non vediamo processori di grandi dimensioni nei nostri smartphone. Il nostro telefono diventerebbe troppo caldo per tenerlo in mano e la batteria durerebbe solo pochi minuti. Mentre una CPU x86 desktop di fascia alta può assorbire 200 Watt sotto carico, un processore mobile può raggiungere il massimo di 2 o 3 Watt.

Si potrebbe certamente realizzare una CPU x86 a bassa potenza, ma il paradigma CISC è più adatto per chip più potenti. Ecco perché non vediamo spesso chip Arm nei PC desktop o chip x86 nei telefoni; semplicemente non sono progettati per questo. Perché Arm è in grado di raggiungere un’efficienza energetica così buona? Tutto risale al suo design RISC e alla complessità dell’architettura. Poiché non è necessario essere in grado di elaborare tutti i tipi di istruzioni, anche l’architettura interna può essere molto più semplice. C’è anche meno sovraccarico nella gestione di un processore RISC.

Tutto ciò si traduce direttamente in risparmio energetico. Un design più semplice significa che più transistor possono contribuire direttamente alle prestazioni piuttosto che essere utilizzati per gestire altre parti dell’architettura. Un chip Arm non può elaborare tanti tipi di istruzioni o altrettanto velocemente rispetto a un chip x86, ma compensa in termini di efficienza.

Architettura Big.LITTLE

Architettura Big.LITTLE

Un’altra caratteristica chiave che Arm ha portato sul tavolo è l’architettura di elaborazione eterogenea big.LITTLE. Questo tipo di progettazione presenta due processori complementari sullo stesso chip.

Uno sarà un core a bassissima potenza mentre l’altro è un core molto più potente. Il chip analizzerà l’utilizzo del sistema per determinare quale core attivare. In alcuni scenari, il compilatore può dire al chip di richiamare il core più potente se sa che è in arrivo un’attività ad alta intensità di calcolo.

Se il dispositivo è inattivo o sta solo eseguendo un calcolo di base, il core a bassa potenza (LITTLE) si accenderà e il core più potente (BIG) si spegnerà. Arm ha dichiarato che questo può offrire un risparmio energetico fino al 75%. Sebbene una CPU desktop tradizionale abbassi certamente il suo consumo energetico durante i periodi di carico più leggero, ci sono alcune parti che non si spengono mai. Poiché Arm ha la capacità di disattivare completamente un core, supera chiaramente la concorrenza.

Il design del processore comporta sempre una serie di compromessi in ogni fase del processo. Arm è andato all-in sull’architettura RISC e ha dato i suoi frutti. Nel 2010 avevano una quota di mercato del 95% sui processori per telefoni cellulari. Questo dato è leggermente diminuito poiché altre società hanno cercato di entrare nel mercato, ma non c’è ancora nessuno che si avvicini.

Licenza e utilizzo diffuso

L’approccio al business delle licenze di Arm è un altro motivo del loro dominio sul mercato. La costruzione fisica dei chip è estremamente difficile e costosa, quindi Arm non la svolge. Ciò consente alle loro offerte di essere più flessibili e personalizzabili.

A seconda del caso d’uso, un licenziatario può scegliere le funzionalità che desidera e quindi fare in modo che Arm selezioni il miglior tipo di chip per loro. I clienti possono anche progettare i propri chip proprietari e implementare solo alcuni dei set di istruzioni Arm. L’ elenco delle aziende tecnologiche che utilizzano l’architettura Arm è gigantesca, ma per citarne alcuni: Apple, Nvidia, Samsung, AMD, Broadcom, Fujitsu, Amazon, Huawei e Qualcomm utilizzano tutti la tecnologia Arm in una certa misura.

arm Licenza e utilizzo diffuso

Apple ha anche portato macOS su Arm e la loro prima generazione di dispositivi alimentati da Core M1 mostra segni positivi sui laptop. Quando le applicazioni vengono compilate in modo nativo in Arm, questi Mac mostrano non solo efficienza ma anche prestazioni.

Anche nel data center, per anni, la promessa di Arm è stata principalmente sul risparmio energetico, un fattore critico quando si parla di migliaia e migliaia di server. Tuttavia, recentemente hanno visto una maggiore adozione su installazioni di elaborazione su larga scala che mirano a offrire miglioramenti sia di potenza che di prestazioni rispetto alle soluzioni esistenti Intel e AMD.

Tutto questo in un unico chip?

Oltre alla propria unità aziendale ISA central, Arm si è espansa in modo aggressivo nel System on a chip (SoC). Il mercato del mobile computing si è spostato verso un approccio di progettazione più integrato poiché i requisiti di spazio e alimentazione sono diventati più severi. Una CPU e un SoC hanno molte somiglianze, ma i SoC sono la prossima generazione di computer.

Un sistema su chip fa esattamente quello che sembra. Combina molti componenti distinti su un chip per aumentare l’efficienza. Immaginate di ridurre un’intera scheda madre desktop in un singolo chip, questo è ciò che è un SoC. Di solito ha una CPU, un processore grafico, memoria, controller periferici, gestione dell’alimentazione, rete e alcuni acceleratori.

Prima che questo progetto venisse adottato, i sistemi avrebbero avuto bisogno di un singolo chip per ciascuna di queste funzioni. La comunicazione tra i chip può essere da 10 a 100 volte più lenta e utilizzare da 10 a 100 volte più energia rispetto a una connessione interna sullo stesso die. Questo è il motivo per cui il mercato della telefonia mobile ha abbracciato questo concetto così fortemente.

I sistemi su chip non sono adatti per ogni tipo di sistema. Attualmente non abbiamo visto desktop o laptop tradizionali con SoC perché c’è un limite alla quantità di cose che puoi inserire in un singolo chip. Adattare le funzionalità di un’intera GPU, una quantità adeguata di RAM e tutte le interconnessioni richieste su un singolo chip non è qualcosa che i produttori di chip sono stati in grado di fare, fino a poco tempo fa. L’M1 di Apple è visto come il primo design tradizionale di quel cambio di paradigma. Proprio come il paradigma RISC, i SoC sono stati ottimi per i progetti a basso consumo ma non tanto per quelli con prestazioni più elevate.

A questo punto, abbiamo capito perché Arm è diventato così dominante nel mobile computing. Il loro modello RISC ISA consente di concedere in licenza i progetti ai produttori di chip. Con il modello RISC, stanno massimizzando l’efficienza energetica rispetto alle prestazioni. Ma c’è ancora molto altro in arrivo e l’influenza di Arm si estende a quasi tutte le persone sul pianeta.