Il ruolo dei dispositivi SBC basati su ARM rispetto a quelli basati su X86 e le tendenze del mercato nel 2023
Secondo GPT4, nel 2021 il mercato globale dei processori basati su ARM è stato valutato a circa $17,7 miliardi, con i dispositivi IoT che rappresentano una parte significativa del mercato.
I dispositivi basati su Intel e altri x86 dominano ancora il mercato, ma la dimensione del mercato corrispondente era (ovviamente) molto più grande nel 2021.
Ricorda che in origine, mainframe (come l'IBM System/360) rappresentavano una grossa fetta del mercato. Attualmente, le dimensioni del mercato x86 superano quelle del mercato mainframe, ma un tempo era il contrario!
L'x86 si è affermato grazie alla combinazione unica di IBM che ha scelto questa particolare architettura per il suo PC IBM e al dominio del mercato che Microsoft DOS (MS-DOS) e successivamente Microsoft Windows sono stati in grado di costruire.
Storicamente, Windows è stato adattato ad altre CPU. Microsoft ha ripetutamente cercato di offrire versioni che funzionassero anche sull'architettura ARM, ma che (in passato) non supportassero le applicazioni legacy x86. Non sorprende che i clienti si aspettino determinate cose da Windows, come la possibilità di eseguire Microsoft Word sui computer corrispondenti.
Oggi siamo nell'era del single board computing. L'SBC più popolare del pianeta è il Raspberry Pi, che non esegue (realmente) Microsoft Windows, almeno nella versione compatibile x86.
Anche Microsoft ci ha provato e ha creato una versione di Windows chiamata Microsoft Windows IoT.
Esistono computer a scheda singola che eseguono Microsoft Windows, essendo dispositivi basati su x86 (ad esempio LattePanda), ma non ha molta importanza. Ecco perché Raspberry Pi, che è basato su ARM, è l'SBC più popolare!
Esploriamo alcune ragioni di questo fenomeno
Vantaggi/svantaggi di ARM vs. x86
Storicamente, x86 è stato spinto in modo aggressivo da Intel, il cui modello di business è (o dovremmo dire era?) basato su leadership tecnologica.
In cambio, Intel potrebbe richiedere prezzo premiumalmeno sui prodotti di fascia alta.
Vantaggi x86
- alte prestazioni (anche se questo aspetto sta iniziando a sgretolarsi)
- piena compatibilità con Microsoft Windows
AMD, la seconda classificata (che ha avuto la sua grande fortuna come seconda fonte per i prodotti basati su x86 perché i militari avevano bisogno di una seconda fonte, se la memoria non mi inganna!
Alla fine, i livelli di prestazioni raggiunti dalla piattaforma x86 erano significativamente superiori a quelli richiesti da molte applicazioni.
L'hardware specializzato si è fatto carico delle funzioni di elaborazione che erano inefficienti da eseguire sul processore.
Ad esempio, se consideriamo l'acceleratore hardware Coral AI (che distribuiamo), questo funzionerà in modo più veloce, più efficiente dal punto di vista energetico e con un BOM totale inferiore in collaborazione con un Raspberry Pi, rispetto a un sistema ad alta potenza basato su x86 che sarebbe in grado di eseguire lo stesso modello di visione della rete neurale sulla sua CPU.
ARM è un ecosistema molto più frammentato, ma con ARM come licenziatario dell'architettura che garantisce una certa interoperabilità.
ARM non produce chip (per il mercato di massa). Al contrario, concede in licenza i propri progetti ad aziende come Broadcom (che ha progettato il SoC del Raspberry Pi) o Rockchip, che viene utilizzato ad esempio nel RockPi o nelle SBC Tinkerboard.
Un maggior numero di licenziatari significa una maggiore concorrenza (rispetto al fatto che Intel tiene praticamente in "ostaggio" il mercato se vuole ottenere prestazioni e marchio leader).
Una nota a margine: molti di questi produttori di chip non sono nomi famosi, non così affermati come Intel, in ogni caso. Voglio dire, a quale consumatore finale interessa davvero sapere se nei suoi router c'è un chip Broadcom o uno della concorrenza? All'epoca era una mossa di marketing davvero intelligente da parte di Intel (Intel inside) - ma sto divagando.
ARM, in poche parole, offre i seguenti vantaggi:
- costo inferiore componenti
- utilizzo molto efficiente dell'energia
- può essere raffreddato passivamente in molte applicazioni (non è necessaria la ventola) - è possibile realizzare progetti silenziosi!
- le aziende possono mescolare e abbinare altre IP nei loro SoC (ad esempio Rockchip utilizza le GPU Mali, anch'esse di ARM, e Broadcom utilizza la GPU VideoCore, progettata internamente) come meglio credono - per quanto ne so non esistono licenze x86 che permettano di farlo, quindi in pratica si ottiene ciò che viene offerto da Intel, ARM, ecc. - in pratica non c'è una licenza per l'IP, bisogna acquistare i chip veri e propri.
- di conseguenza, queste aziende possono davvero indirizzare il loro hardware per applicazioni specifiche (e ottenere prestazioni migliori a un costo inferiore!).
Ad esempio, sugli SBC sono spesso presenti codec video specifici, realizzati come circuiti hardware che consentono di decodificare i codec video più diffusi (per riprodurre i video dei gatti di YouTube).
ARM ha fatto progressi al punto che alcuni dei progetti basati su di essa sono integrati in prodotti a velocità superiore rispetto alle loro controparti Intel/x86. Apple, ad esempio, lo ha dimostrato con l'architettura M2. Questa architettura si adatta perfettamente al design aziendale di Apple, che si concentra su una stretta integrazione tra il software e l'hardware sottostante.
Questo, tra l'altro, è il motivo per cui Apple è riuscita a passare ad ARM: controllando il sistema operativo, l'hardware e il design del SoC, si è assicurata che le applicazioni legacy potessero essere eseguite sul nuovo hardware a velocità accettabili!
Microsoft non è in grado di farlo, in quanto ha una struttura aziendale diversa. Dipende da molte aziende, ad esempio ASUS, per la creazione di PC. Permette a questi produttori di PC di competere tra di loro, guidando così il volume del mercato, mentre garantisce l'interoperabilità su questa piattaforma PC con il proprio software. Per passare ad ARM, dovrebbero orchestrare una pletora di questi produttori e costruire un livello di interoperabilità per fornire supporto al software legacy. Poiché non conoscono la CPU su cui finiranno per lavorare, non possono promettere al mercato che il vecchio software funzionerà a velocità accettabili. (OK, questa è una semplificazione eccessiva, ma dovrebbero coinvolgere i produttori in una nuova strategia di passaggio ad ARM, ecc.)
Mercato di destinazione degli SBC rispetto ai PC desktop/server
I computer a scheda singola sono spesso utilizzati in applicazioni industriali (come dispositivi hardware incorporati), o da appassionati e tinker, e anche in ambito educativo.
I computer basati su Microsoft Windows (e, per estensione, la piattaforma x86 che è strettamente legata a questo sistema operativo!) sono utilizzati negli uffici e sono stati utilizzati come computer domestici. Le persone sono creature abitudinarie, si abituano a un sistema operativo. Ad esempio, non prenderei in considerazione l'utilizzo di Linux come sistema desktop principale (inoltre, c'è semplicemente troppa scelta!), dato che utilizzo Windows e mi affido ad alcune applicazioni che conosco e utilizzo da anni (ad esempio, la suite Adobe).
Sul mio smartphone, invece, ho un sistema basato su Android. Lo smartphone è stato un riavvio completo degli ecosistemi e la CPU ARM ha potuto sfruttare il suo grande vantaggio di essere molto efficiente dal punto di vista energetico. Inizialmente le persone erano disposte ad accettare prestazioni inferiori in un telefono cellulare. Oggi, alcuni di questi smartphone sono più potenti dei computer desktop. Il vantaggio del software Windows non aveva importanza, perché questi smartphone avevano comunque bisogno di applicazioni completamente nuove. Ad esempio, nessuno ha progettato un computer dotato di GPS. O con interfacce multitouch: i PC Windows utilizzavano un classico sistema di clic e punti del mouse ed erano per lo più fissi.
Riesci a capire dove voglio arrivare?
L'architettura PC/x86 di Windows ha una certa nicchia (anche se molto grande), in cui esiste nella mente dei clienti. Questo è per applicazioni desktop (l'altro grande concorrente è Apple con i MacBook, ad esempio, e sempre più spesso con i Chromebook). Viene utilizzato nel lavoro d'ufficio, ad esempio per elaborare gli ordini di Raspberry Pis da parte nostra.
È ancora rilevante anche nei server di fascia alta, anche se i progetti basati su ARM hanno iniziato a essere utilizzati anche in questo campo, grazie all'efficienza energetica e al costo, In definitiva, ARM si adatta meglio anche ai data center.
In altri campi, altri fattori contano.
I progetti embedded, ad esempio i bancomat, sono stati storicamente realizzati anche con Windows: forse avete notato gli schermi blu dei bancomat o le installazioni di segnaletica digitale in giro per la città.
Non è necessario utilizzare Windows su questi dispositivi. Linux è spesso una scelta migliore e più facile da gestire, oltre che più efficiente dal punto di vista dei costi. Le installazioni di Linux non prevedono costi di licenza. Linux è noto per essere un sistema operativo più sicuro. Linux, infine, non vincola l'utente alla piattaforma x86 come fa Windows.
Su questi dispositivi specializzati le applicazioni desktop, come Word, Excel, ecc. non hanno alcuna importanza. Spesso vengono distribuiti con applicazioni specializzate per la visualizzazione di video, l'interazione con il cliente o l'indicazione del livello in cui ci si trova (in un ascensore).
(nota a margine: per mostrare a quale livello ci si trova nell'ascensore, persino Linux è eccessivo. Un semplice microcontrollore andrà benissimo! Osservate quest'area per i dispositivi ancora più semplici che non eseguono più un sistema operativo vero e proprio).
Nei dispositivi embedded - e questo è un settore enorme in cui vengono venduti gli SBC - il costo conta. Molto. L'efficienza energetica è importante. I progetti x86 necessitano di un raffreddamento migliore (a causa della peggiore efficienza energetica), il che spesso significa che è necessario aggiungere una ventola, ad esempio ...
I framework software per la costruzione delle applicazioni sono cambiati in modo significativo, molte applicazioni oggi possono essere facilmente create sia per x86 che per ARM, ad esempio utilizzando il framework Qt o le tecnologie web.
Una nuova generazione di ingegneri è cresciuta sviluppando in node.js e JavaScript e non si preoccupa troppo dell'architettura hardware sottostante.
costo: Il bundling di Windows
costo: ARM vs. x86, frammentazione del mercato, concorrenza, diverso modello di licenza
RISC V