Apple Silicon: perché il nuovo chip M1 è così veloce?

Qualche semplice osservazione sulle motivazioni che rendono il nuovo SoC Apple M1 così convincente dal punto di vista delle performance.
Apple Silicon: perché il nuovo chip M1 è così veloce?

Con Apple Silicon si fa riferimento ai SoC (System-on-a-Chip) basati su architettura e design derivati da ARM che la Mela ha progettato, nel corso del tempo, per vari suoi dispositivi mobili e che di recente sono stati scelti anche per i nuovi Mac: Apple presenta il processore M1 basato su ARM: al debutto sui nuovi Mac Mini, MacBook Air e MacBook Pro.

Gli ingegneri Apple sarebbero già al lavoro per portare un SoC di derivazione ARM anche sui Mac più potenti: Apple starebbe preparando un processore M1X per i nuovi iMac e MacBook Pro da 24 e 16 pollici.
Diversamente rispetto ad altri SoC basati sul design ARM disponibili sul mercato gli Apple Silicon sono oggetti progettati da zero dai tecnici della Mela.

Il nuovo chip Apple M1 ha impressionato tutti e sorpreso positivamente per ciò che riguarda le prestazioni. Ci si è chiesti quale sia la “ricetta segreta” che ha per esempio consentito ad Apple di realizzare e immettere sul mercato un Mac Mini con SoC M1 che, a fronte di un costo pari a 700 dollari, si comporta meglio rispetto a un iMac dello scorso anno con 40 GB di RAM (costato 4.000 dollari).

Come primo passo è importante rammentare che il nuovo chip Apple M1 non è una CPU bensì un sistema composto da più chip integrati in un package di silicio di grandi dimensioni. La CPU è solamente uno dei chip integrati nel pacchetto.
Apple M1 ospita CPU, GPU, memoria, controller input/output e molte altre componenti: esattamente la definizione di SoC.

Anziché aggiungere più core general-purpose a livello di CPU, come stanno facendo Intel e AMD, Apple ha applicato un’altra strategia: la Mela ha scelto di integrare più chip specializzati che si occupano di gestire attività specifiche.
In questo modo questi chip riescono a svolgere le attività che sono chiamati a gestire in maniera significativamente più veloce e contenendo i consumi energetici rispetto al core di una CPU general-purpose.

L’idea non è affatto nuova: si pensi ad esempio alle GPU che per anni hanno permesso di eseguire operazioni specificamente legate alla grafica molto più velocemente rispetto a quanto avviene con le CPU. Così il chip Apple M1 è composto da un ampio ventaglio di chip specializzati.
Oltre a CPU e GPU il SoC di Apple integra ISP (Image processing unit) utilizzato per velocizzare i compiti svolti dalle applicazioni di elaborazione delle immagini, DSP (Digital signal processor) per elaborare funzioni matematiche pesanti come quelle usate nelle attività di compressione e decompressione dei file musicali, NPU (Neural processing unit) per accelerare le applicazioni basate sull’intelligenza artificiale (i.e riconoscimento vocale ed elaborazione delle immagini), video encoder/decoder (si occupa di sovrintendere la conversione di flussi video), Secure Enclave (funzionalità crittografiche per la sicurezza e l’autenticazione), memoria unificata (per consentire a tutti i componenti del SoC di scambiare rapidamente i dati condivisi).

Proprio quest’ultima, la Unified Memory Architecture di Apple, svolge un ruolo cruciale:

  • Non utilizza alcuna area speciale riservata soltanto per la CPU o per la GPU. La memoria allocata è disponibile per entrambe. Inoltre sia CPU che GPU possono utilizzare le stesse porzioni di memoria senza la necessità di spostare i dati.
  • Apple utilizza una memoria che serve grandi quantità di dati velocemente, sia alla CPU che alla GPU. La latenza è bassa mentre elevato è il throughput.
  • La potenza in Watt necessaria per il funzionamento della GPU è stata ridotta in modo tale da poter integrare nel SoC una sezione grafica relativamente potente senza causare surriscaldamento.

C’è anche un po’ il rovescio della medaglia: per poter sfruttare la memoria come ha fatto Apple (con un’ampia larghezza di banda e quantitativi di memoria importanti) è necessaria una completa integrazione. Ciò significa privare gli utenti della possibilità di aggiornare la memoria. Apple ha però cercato di ridurre al minimo questo problema rendendo la comunicazione con le unità SSD così veloce da essere paragonabile per prestazioni all’utilizzo della memoria “vecchio stile”.

Se Apple ha ottenuto un successo di questa portata in termini di performance perché Intel e AMD non stanno facendo lo stesso?
La spiegazione è piuttosto semplice: mentre Apple tiene interamente le briglie scegliendo i componenti hardware e sviluppando direttamente il software (iOS e macOS) che va in esecuzione sui suoi dispositivi, Intel e AMD devono fare in modo che i loro processori funzionino con qualunque configurazione.
Potrebbero certamente realizzare anche dei SoC ma sulla base di quali requisiti ed esigenze crearli? AMD sembra si sia organizzata in tal senso ma il progetto si dice non sia ancora maturo: AMD lavora a un SoC alternativo all’Apple M1: CPU, GPU e DRAM integrate in un unico pacchetto.

Anche i core Firestorm general-purpose sono molto veloci

Il successo del SoC Apple M1 non è però interamente riconducibile alla struttura eterogenea scelta dagli ingegneri della Mela. Gli stessi core Firestorm di tipo general-purpose integrati in M1 sono davvero molto veloci rispetto alla concorrenza, soprattutto se si considera che operano a una frequenza di clock di 3,2 GHz.

Gli obiettivi consistono nell’elaborare più istruzioni in sequenza in maniera più veloce e un ampio volume di istruzioni in parallelo.

Se aumentare le frequenze di clock è oggi molto più complesso che in passato, la “partita” tra Intel e AMD si è giocata tanto sull’utilizzo di un numero di core (e di thread) sempre maggiore.

Nel 2021 Apple presenterà chip con CPU a 32 core e GPU a 128 core: per dare un’idea l’attuale chip M1 integra “solamente” 4 core ad alte prestazioni da 4W ciascuno e 8 core grafici per un SoC che nel complesso non supera i 20W. Si pensi al vantaggio competitivo che la Mela potrebbe guadagnare già dal prossimo anno con un chip basato su 32 core sulla CPU e 128 core grafici…

La cosiddetta esecuzione fuori ordine (Out-of-Order execution) è un modo per eseguire più istruzioni in parallelo senza esporre tale capacità come thread multipli. Gli sviluppatori non devono codificare il loro software in modo specifico per trarne vantaggio. Visto dal punto di vista dello sviluppatore ogni core sembrerà funzionare più velocemente.
Apple ha puntato moltissimo sull’ottimizzazione dell’esecuzione fuori ordine da parte dei core Firestorm e i risultati sono tangibili se confrontati con ciò che riescono a fare i processori di Intel e AMD.

La velocità nell’eseguire le elaborazioni dipende da quanto rapidamente è possibile riempire il Reorder buffer (ROB) del processore con le micro-ops che devono essere eseguite. Più velocemente il ROB viene completato maggiori sono le possibilità che possano essere eseguite più istruzioni in parallelo migliorando così le performance.
Le istruzioni in codice macchina vengono spezzate in micro-ops da quello che viene chiamato instruction decoder. Usando più instruction decoder si possono “tagliare” più istruzioni in parallelo e quindi riempire il ROB più velocemente.

I più grandi core dei microprocessori Intel e AMD dispongono di quattro decoder: ciò significa che possono decodificare quattro istruzioni in parallelo producendo micro-ops. Apple invece utilizza nel suo chip M1 ben otto decoder con un ROB che è qualcosa come tre volte più grande rispetto alle soluzioni di Intel e AMD: in questo modo il SoC della Mela può elaborare in un certo istante un numero di istruzioni tre volte superiore rispetto alla concorrenza. Nessun altro produttore di chip mainstream ha mai utilizzato così tanti decoder nelle sue CPU.

Perché Intel e AMD non possono fare lo stesso? Per una serie di motivazioni tecniche che sono un retaggio della scelta originale dell’architettura CISC per la piattaforma x86. I chip ARM sono di derivazione RISC anche se il confine dei due paradigmi è oggi molto più “sfumato” che in passato: vedere Differenza tra processori ARM e x86 e x86, le origini dell’architettura: perché è feudo di Intel e AMD.

Game over? Assolutamente no. Per fortuna, per Intel e AMD, Apple non vende i suoi SoC sul mercato e li utilizza esclusivamente per i suoi prodotti. Certo, la competizione tra le aziende aumenterà soprattutto sul versante server e data center con gli ingressi di realtà come Ampere e Amazon oltre ad altri nomi meno noti.
Ma a questo punto la mossa di AMD che starebbe valutando la realizzazione di processori basati su ARM arriva con un timing perfetto. La sfida sarà verificare se e come l’azienda si proporrà sul mercato con un catalogo di SoC derivati dal design ARM.

Ti consigliamo anche

Link copiato negli appunti