Server ARM: architettura CPU mobile per datacenter?
Pubblicato: 2022-03-11Sto diventando vecchio. Ai miei tempi, se volevi prestazioni della CPU di prim'ordine, dovevi scegliere un chip x86 di fascia alta o, se avevi tasche più profonde, potevi ottenere qualcosa di esotico, come un sistema PowerPC. La dipendenza del settore dai processori x86 sembrava aumentare, non diminuire.
Dieci anni fa, Apple si è unita al club x86 e questo ha spinto molti osservatori a concludere che l'era dei processori non x86 nel mercato di massa era finita. Solo pochi anni dopo, hanno dovuto mangiare le loro parole e, ancora una volta, Apple ha avuto qualcosa a che fare con questo. I server ARM stanno arrivando e potrebbero rivitalizzare l'industria dei server.
Ripensare il design del processore
Quando il paradigma è cambiato e gli utenti mainstream hanno abbracciato smartphone e tablet, è diventato subito evidente che i chip x86 di Intel, AMD e VIA semplicemente non erano all'altezza del compito. Sebbene x86 fosse il set di istruzioni più prolifico del pianeta, non era una buona scelta per i dispositivi mobili per una serie di motivi. In effetti, il set di istruzioni di Intel non è ancora una scelta popolare per i processori mobili, anche se questo sta iniziando a cambiare grazie al vantaggio tecnologico della fonderia di Intel. In ogni caso, quando si tratta di questo segmento di mercato, x86 non è efficiente come altre architetture di CPU là fuori, in particolare i processori basati sui set di istruzioni ARMv7 a 32 bit e ARMv8 a 64 bit di ARM.
Negli ultimi dieci anni, e soprattutto negli ultimi cinque anni, i processori ARM hanno dominato il panorama degli smartphone e dei tablet e avevano molto da offrire. Offrivano molte prestazioni per watt, erano economici da progettare, produrre e distribuire. I grandi fornitori potrebbero acquistare gli elementi costitutivi necessari e progettare i propri processori basati su ARMv7 o ARMv8, aggiungendo altri componenti in base alle proprie esigenze (modem ad alta velocità e diverse GPU per citarne un paio).
Ciò ha portato alcuni progettisti di chip ad adottare un approccio leggermente diverso e a progettare i propri core CPU personalizzati. Qualcomm e Apple hanno aperto la strada, entrambe le società sono diventate grandi attori nel mercato mobile dei System-on-Chip (SoC) e il loro sviluppo di sofisticati core personalizzati ha giocato un ruolo determinante nel loro successo. Tuttavia, i core ARM personalizzati erano ancora utilizzati nei processori di fascia alta, mentre tutti gli altri segmenti di mercato erano coperti da core CPU ARM Cortex standard, come Cortex-A8, A9, A7 e A15 a 32 bit, seguiti da 64 bit design come Cortex-A53, A57 e il nuovo core A72, che sta per iniziare la spedizione.
L'altro prerequisito per il successo di ARM era il fallimento di Microsoft.
Windows funzionava solo con processori x86, quindi se Microsoft dovesse prendere piede nei dispositivi mobili, farebbe pendere la bilancia a favore di Intel. Tuttavia, alla fine dell'ultimo decennio, è diventato evidente che Redmond aveva lasciato cadere la palla e aveva ceduto questo mercato redditizio a Google e Apple. A proposito di palle, il CEO di Microsoft di lunga data Steve Ballmer ha lasciato l'azienda un paio di anni fa, ammettendo che lui e il suo team non sono riusciti a riconoscere il potenziale di smartphone e tablet. Comunque non è più un problema di Ballmer: ha altri palloni per la testa in questo momento, palloni da basket per l'esattezza.
Tuttavia, il mobile non è il primo o l'unico segmento di mercato ad assistere a un fallimento Microsoft di proporzioni epiche. L'altro è il mercato dei server. A prima vista, smartphone e data center non hanno molto in comune, ma dal punto di vista tecnologico e aziendale hanno alcune sovrapposizioni.
Che tu stia progettando uno smartphone o un server, devi enfatizzare aspetti simili della tua piattaforma hardware, come efficienza energetica, buone prestazioni termiche, prestazioni per dollaro e così via. Ancora più importante, non hai davvero bisogno di un processore basato su x86 per smartphone e molti tipi di server. Grazie ai fallimenti di Microsoft, questi segmenti di mercato non sono dominati da alcun tipo di Windows. Si basano invece su sistemi operativi basati su UNIX : Android, iOS e varie distribuzioni Linux.
Microsoft ha anche tentato di sfruttare il potenziale dei processori ARM, quindi ha provato a sviluppare una versione di Windows che potesse essere eseguita su hardware ARM, il che mi porta convenientemente al prossimo fallimento Microsoft: Windows RT. Microsoft alla fine ha staccato la spina su Windows RT, o "Windows on ARM", come era originariamente chiamato. Gli ultimi tablet Surface di Microsoft utilizzano processori x64 e Windows 10 standard. La linea di smartphone Lumia di Microsoft (nata Nokia Lumia) utilizza ancora processori ARM della casa di Qualcomm, ma Windows Phone è quasi morto come piattaforma per smartphone tradizionale.
I server non devono costare un braccio e una gamba
In questo momento, abbiamo un paio di miliardi di smartphone e tablet in circolazione e la stragrande maggioranza si basa su processori ARM. Tuttavia, i chip ARM non si stanno facendo strada in altri segmenti di mercato. Esistono solo una manciata di piattaforme di elaborazione ad alto volume basate su ARM che non rientrano nella categoria smartphone e tablet. I Google Chromebook sono probabilmente l'esempio più noto. Tuttavia, i chip ARM vengono utilizzati in moltissimi altri dispositivi: router, set-top box e smart TV, smartwatch, alcuni dispositivi di gioco, sistemi di infotainment automobilistico e così via.
E i server ARM?
Qui è dove diventa difficile. Sento parlare di server ARM dal 2010, ma i progressi sono stati lenti e limitati. La quota di mercato di ARM nel segmento dei server rimane trascurabile e l'ecosistema rimane dominato dalle parti x86 Xeon e Opteron rispettivamente di Intel e AMD. Dal momento che AMD è in un mondo di guai sul fronte della CPU, Intel è riuscita ad estendere la sua quota di mercato negli ultimi anni.
Ma perché i server ARM sembravano una buona idea per cominciare?
I soldi. Potrei provare a elencare tutti i punti geek che rendono ARM una valida alternativa a x86 nel mercato dei server, ma alla fine si tratta principalmente di soldi, quindi cercherò di spiegarlo in poche righe.
- Prezzo/prestazioni
- I carichi di lavoro dei data center si evolvono e cambiano
- Capacità di reperire processori da vari fornitori
- Utilizzo di chip progettati su misura per varie nicchie
- I chip ARM sono più adatti ad alcune applicazioni infrastrutturali
- È un buon modo per attenersi a Intel ed erodere la sua posizione di mercato (Intel è sul punto di diventare un monopolio nello spazio server)
Non abbiamo bisogno di un processore Xeon enorme e costoso per tutto. Inoltre, l'utilizzo di processori x86 obsoleti per gestire carichi di lavoro poco impegnativi non è una buona opzione a causa del loro consumo energetico. Ricorda, stiamo parlando di server, non del tuo MacBook o PC desktop. I server funzionano 24 ore su 24, quindi ogni guadagno di efficienza, compresi quelli relativamente piccoli, tende ad essere importante. Non si tratta solo di ottenere una bolletta elettrica più grande; i data center devono essere raffreddati e mantenuti, quindi i processori con una classificazione Thermal Design Power (TDP) inferiore sono molto più preziosi per gli utenti aziendali che per gli individui.
Perché utilizzare i server ARM?
Quindi, per quale tipo di applicazione aziendale sono adatti i processori ARM?
Ebbene, ARM prevede di ottenere la stragrande maggioranza dei progetti vincenti per le applicazioni dell'infrastruttura di rete. Grazie alla loro flessibilità, dimensioni ridotte, efficienza e prezzo contenuto, i processori ARM sono un'ottima scelta per l'infrastruttura. È possibile utilizzare processori ARM in router, soluzioni di archiviazione ad alte prestazioni e determinati tipi di server.
Tuttavia, ARM prevede che la maggior parte della crescita aziendale in questo decennio proverrà dai server poiché gli altri suoi segmenti sono già maturi e detiene una buona quota di mercato in essi. Anche i carichi di lavoro dei server stanno cambiando e questa tendenza è legata alla crescita dei servizi cloud. Di conseguenza, i server devono affrontare un numero crescente di attività più piccole.
Molte organizzazioni preferiscono mantenere aperte le loro opzioni, quindi acquistano hardware da più fornitori. Questa è una buona notizia per i processori per server ARM perché potrebbero essere commercializzati da diverse aziende. Inoltre, le politiche di licenza di ARM e l'approccio modulare alla progettazione dei processori possono essere utilizzati per progettare processori personalizzati per applicazioni specifiche. Questo è, ovviamente, qualcosa che non è un'opzione per le piccole aziende, ma cosa potrebbe succedere se grandi attori come Amazon, Facebook o Google iniziassero a chiedere processori server su misura, progettati per eccellere in una particolare applicazione?
Per quanto riguarda "l'attaccamento a Intel", dovrei notare che non intendo dire a Intel alcun danno e non voglio vederlo fallire o essere espulso da vari segmenti di mercato, ma allo stesso tempo sono preoccupato che Il dominio di Intel potrebbe finire per soffocare la crescita e l'innovazione. Una maggiore concorrenza dovrebbe tradursi in prezzi più bassi per gli utenti finali, e questo è lo scopo dei server ARM.
Multithreading: quanti core della CPU sono sufficienti?
Solo un decennio fa, i processori x86 multicore erano riservati a computer e server ad alte prestazioni, ma ora puoi ottenere chip x86 quad-core in tablet da $ 100.
Agli albori dell'elaborazione multicore, avevi ancora bisogno di grandi core della CPU per ottenere livelli di prestazioni adeguati. Molti software non sono stati in grado di sfruttare questi nuovi processori e i loro core extra, quindi buone prestazioni single-thread erano vitali. Le cose sono sicuramente cambiate; al giorno d'oggi abbiamo smartphone octa-core, tablet e telefoni Intel quad-core e processori server x86 a 16 core.
C'è una buona ragione per questo. Costruire un processore multi-core ha perfettamente senso dal punto di vista tecnologico e finanziario. È molto più facile distribuire il carico su pochi core CPU più piccoli ed efficienti piuttosto che sviluppare un unico, enorme core in grado di funzionare alle alte frequenze. L'approccio multicore garantisce un'efficienza e una resa in chip superiori.
ARM ha il potenziale per portare la mania principale al livello successivo. I core della CPU ARM tendono ad essere più piccoli dei cosiddetti "big core" di Intel utilizzati nelle parti di server e desktop (gli Atom "small core" di Intel sono riservati ai dispositivi mobili, sebbene siano disponibili anche parti di server basate su Atom). Tuttavia, questo non significa che vedremo presto processori ARM a 128 o 256 core, anche se in teoria sono possibili. Dipende da come il nuovo raccolto di processori per server ARMv8 gestisce i carichi multithread. Ci sono alcuni segnali incoraggianti ed è probabile che i server ARM siano una buona scelta per una gamma di carichi di lavoro che potrebbero trarre vantaggio dai loro processori multicore.
Il primo processore per server di Qualcomm ha 24 core CPU ARMv8 e il produttore di chip ha chiarito che i modelli futuri sfoggeranno ancora più core. Ricordi AMD e i suoi problemi di mercato dei server? Bene, l'azienda ha presentato il suo processore Opteron A1100 basato su ARM atteso da tempo solo un paio di settimane fa. Qualcomm ha fatto l'annuncio ad ottobre, quindi entrambi questi prodotti saranno disponibili nei prossimi mesi.
Ovviamente, Intel non parteciperà a questa festa ARM, ma Qualcomm e AMD non sono gli unici chip che funzionano su chip aziendali basati su ARM. Anche produttori di chip come Broadcom, Calxeda, Cavium Networks e Huawei HiSilicon hanno lavorato su prodotti server basati su ARM. Nvidia e Samsung, due pesi massimi nel settore dei SoC e delle GPU, hanno anche sperimentato parti di server ARM fino a un paio di anni fa, quando hanno deciso di interrompere lo sviluppo. Anche Texas Instruments, Xilinx e Marvell stanno esplorando parti di server ARM.

Alcune di queste aziende hanno lavorato anche su core ARM personalizzati, ma l'unico core ARM personalizzato a 64 bit non Apple disponibile oggi è Denver di Nvidia, che ha ottenuto solo una manciata di vittorie di progettazione.
Cosa sono i core personalizzati ARM?
So che la maggior parte delle persone non può preoccuparsi di tenere traccia di tutte le nicchie del settore, incluso lo spazio CPU, quindi penso che ora sarebbe un buon momento per spiegare cosa rende diversi i core ARM e quali sono effettivamente i core personalizzati. Non analizzerò i processori e spiegherò la differenza tra i set di istruzioni x86 e ARM, ma delineerò le differenze dal punto di vista aziendale.
Vedi, ARM non è diverso solo perché utilizza un set di istruzioni diverso, anche se ciò renderebbe una spiegazione rapida e geniale, secondo me la differenza più grande tra Intel, AMD e ARM non è l'architettura, è il modello di business . Inoltre, le architetture cambiano, nuovi design di CPU vengono svelati regolarmente, ma l'approccio di ARM al marketing e alla licenza della sua tecnologia non è cambiato da anni.
Qui c'è un semplice esempio.
Un processore Intel è sviluppato da Intel, utilizzando i set di istruzioni Intel. È prodotto in una fonderia Intel, confezionato e spedito con il marchio "Intel Inside" . Può sembrare semplice, ma non dimentichiamo i miliardi che sono stati destinati alla ricerca e sviluppo nel corso dei decenni, o il fatto che Intel si affida alle proprie fabbriche per la produzione (e se sei alla ricerca di una fonderia a 14 nm, assicurati di avere un po' di cambia su di te, perché un chip fab costa quanto una portaerei nucleare).
E i prodotti ARM? Bene, ARM non è un produttore di chip , è un progettista di chip o un'azienda di chip "fabless" , quindi non si occupa di produzione e non vende chip di marca propria. ARM vende qualcosa di molto più interessante: la proprietà intellettuale . Ciò significa che i clienti ARM possono scegliere uno qualsiasi dei diversi piani di licenza e iniziare a creare i propri progetti. La maggior parte di loro sceglie i progetti interni di ARM (CPU della serie Cortex, GPU della serie Mali), quindi paga una tariffa di licenza per ogni core CPU/GPU che produce.
Tuttavia, un client non deve concedere in licenza queste CPU pronte all'uso; può invece concedere in licenza il set di architetture e sviluppare un core personalizzato basato su un set di istruzioni ARM . Questo è ciò che fa Apple. Utilizza il set di istruzioni ARMv8 per creare core CPU a 64 bit grandi e potenti per i suoi dispositivi iOS. La CPU Denver di Nvidia è simile sotto questo aspetto, così come i core personalizzati di Qualcomm (serie Krait a 32 bit e serie Kryo a 64 bit).
Progettare un core CPU personalizzato non è facile. Non è che troverai designer di chip senza lavoro e che si offrono di progettare un processore personalizzato su Craigslist, quindi questo approccio è solitamente riservato ai grandi giocatori che hanno le risorse tecniche, finanziarie e umane necessarie per farlo. Pertanto, la maggior parte delle aziende utilizza invece core ARM Cortex standard (il core Cortex-A57 a 64 bit può essere impiegato in un ambiente server ed è utilizzato dalla maggior parte dei processori per server ARM di prossima generazione).
È importante notare che virtualmente i chip basati su ARM sono progettati su misura, ma i core della CPU utilizzati nella maggior parte dei casi non lo sono .
La stragrande maggioranza dei processori ARM si basa su modelli di CPU ARM standard (CPU Cortex) piuttosto che su core CPU personalizzati. Ciò significa che i produttori di chip possono scegliere qualsiasi tra un certo numero di core CPU ARM, GPU di terze parti e altri componenti e personalizzare un processore per soddisfare le loro esigenze senza dover sviluppare un core CPU personalizzato. È un modo economico per rendere l'architettura più flessibile e ha più a che fare con le politiche di licenza di ARM che con l'ingegneria.
È anche importante notare che questi prossimi server ARM, basati sull'ultima architettura ARM a 64 bit della CPU, non hanno molto in comune con i server ARM sperimentali degli anni passati. Ad esempio, uno dei nostri colleghi ha giocato con i server ARM Scaleway, ma sono basati su processori ARMv7 e presentano una serie di limitazioni hardware (ad esempio, Scaleway utilizzava controller I/O condivisi e la mancanza di supporto a 64 bit ne ha creato un altro serie di sfide). La nuova generazione di server basati su ARM non soffrirà di questi problemi iniziali; sono molto più vicini all'hardware Intel in termini di funzionalità e standard.
Pro e contro del server ARM
Il problema con i server ARM è che tendono ad essere utilizzati per piccole nicchie e non sono adatti per piccoli sviluppatori che possono vivere con qualsiasi server. Sebbene alcune grandi aziende li trovino interessanti, i server ARM attualmente disponibili non sono adatti per la maggior parte dei singoli sviluppatori.
Tuttavia, le prossime soluzioni server sono diverse e dovrebbero fare appello a più nicchie. Questo è ciò che potrebbe renderli attraenti per una base di utenti molto più ampia:
- Costi hardware ridotti, efficienza potenzialmente superiore (prestazioni per dollaro, prestazioni per Watt).
- Aumento della compatibilità e disponibilità delle porte più diffuse.
- Supporto per tecnologie all'avanguardia e nuovi standard di settore.
- Capacità di eccellere in determinati tipi di carichi di lavoro (carichi semplici ma multithread).
- Potenziale per una maggiore concorrenza e diversità di prodotti rispetto allo spazio x86.
Devo sottolineare che, in questa fase, alcuni di questi punti sono teorici poiché l'hardware non è ancora uscito. Tuttavia, sebbene non possa affermare categoricamente di sapere cosa accadrà nei prossimi trimestri, sono fiducioso che la nuova generazione di server ARM offrirà questi (e altri) vantaggi. Perché sono così sicuro? Bene, se non avessero il potenziale per fare la differenza, ARM, Qualcomm, AMD e altre aziende non perderebbero tempo e non brucerebbero soldi per il loro sviluppo.
Quindi, che dire degli svantaggi del server ARM? Ce ne sono parecchi e alcuni sono grandi. Fortunatamente, l'industria sta lavorando duramente per affrontarli.
- Supporto software incostante
- Disponibilità, potenziali problemi di distribuzione
- Problemi di ROI
- Piccolo ecosistema
- Le vecchie abitudini sono dure a morire
I problemi relativi al software saranno, probabilmente, la principale preoccupazione immediata. Mentre molti servizi popolari verranno eseguiti su server ARM, il supporto software sarà un problema . Non è sufficiente portare semplicemente roba su nuovo hardware; dobbiamo assicurarci che tutto funzioni correttamente in modo che non ci siano colpi o guasti alle prestazioni. In altre parole, il software portato deve essere maturo. Nessuno svilupperà e distribuirà un servizio basato su basi buggy.
Con tutti i soldi da guadagnare nel mercato dei server, ci si aspetterebbe di vedere rapidi progressi, ma non è sempre così. Adottare un nuovo hardware e modificare tutto il software su cui gira non è mai facile e il ritmo dipende dall'adozione del mercato. La dimensione dell'ecosistema di server ARM è (molto) limitata e dubito che un paio di nuovi processori farebbero molta differenza nel breve periodo. Sebbene aziende influenti come ARM e Qualcomm abbiano un interesse acquisito nel vedere un aumento della domanda di server ARM, non c'è molto che possano fare per il software. Non hanno quasi alcuna influenza sugli sviluppatori di software, quindi non possono costringerli ad aggiungere il supporto ARM ai prodotti esistenti.
Per farla breve: dai un'occhiata al tuo stack e prova a capire se tutto funzionerà correttamente sull'hardware ARM. Dato un tempo sufficiente, gli sviluppatori inizieranno ad aggiungere il supporto per l'hardware ARM, ma questo non sarà un processo veloce. Dovranno modificare i framework e le applicazioni per tenere conto di una nuova architettura e, sospetto, molti di loro non si preoccuperanno finché non ci saranno abbastanza server ARM là fuori (che potrebbero richiedere anni). Il supporto per il software legacy è un altro problema evidente.
Questo ci porta al punto successivo: disponibilità del mercato e potenziali problemi di distribuzione. Non ci sono molti server ARM là fuori, quindi la scelta è limitata, così come la disponibilità. Un anno o due dopo, potremmo vedere una serie di pacchetti di hosting basati su ARM in offerta, ma non ne vedremo troppi. Peggio ancora, ci sono buone probabilità che questi server siano concentrati in alcune parti del mondo, rendendoli meno attraenti per alcuni sviluppatori. Ci sono molte incognite relative alla distribuzione, quindi è ancora troppo presto per dire come andranno le cose.
L'adozione lenta potrebbe creare un'altra serie di sfide. Questi non sono limitati ai server ARM; si applicano alla maggior parte della tecnologia aziendale. Molte organizzazioni sono destinate a esplorare la possibilità di utilizzare i server ARM, ma ciò non significa necessariamente che li utilizzeranno effettivamente. Al fine di garantire uno sviluppo sufficiente e la domanda dei consumatori, l'adozione del mercato deve crescere costantemente. Altrimenti, le persone avverse al rischio probabilmente staranno alla larga, adottando l'approccio attendista. L'altro potenziale problema è economico: se gli sviluppatori non sono sicuri che l'ecosistema stia crescendo abbastanza velocemente, potrebbero concludere che il potenziale ritorno semplicemente non vale lo sforzo.
E queste vecchie abitudini? Bene, dal momento che lo spazio del server non si evolve rapidamente, le persone tendono ad attenersi a piattaforme collaudate, in particolare l'hardware x86. Il motto è semplice: se non è rotto, non aggiustarlo . I veterani del settore potrebbero vedere i server ARM come un'opportunità e scommettere su di essi. Ci vorrebbe una buona dose di coraggio e fiducia per legare parte di un progetto complesso a quella che molte persone percepiscono ancora come una piattaforma hardware non testata o immatura. Temo che molte persone non saranno disposte a fare il grande passo, almeno non così presto.
Futuro brillante e un pizzico di clamore
Ho trascorso la parte migliore della mia vita da adulto coprendo silicio all'avanguardia e la mia opinione personale sui server ARM è che hanno molto potenziale, ma non sono per tutti . Potrebbero svolgere un ruolo fondamentale nell'Internet di domani fornendo elementi costitutivi economici per l'infrastruttura e gestendo carichi di lavoro di nicchia dei server.
Tuttavia, allo stesso tempo, non posso sfuggire alla sensazione che i server ARM tendano ad essere sovrastimati. Nonostante questo, non li vedo come una moda passeggera. Penso che siano qui per restare, ma i fornitori devono ritagliarsi alcune nicchie specifiche che possono davvero trarre vantaggio dalla nuova architettura.
In altre parole, non vedremo molti semplici server di web hosting LAMP basati su ARM, ma potremmo vederne molti in nicchie più esotiche (e alcune orribilmente noiose). I processori ARM potrebbero adattarsi perfettamente a carichi specifici, in particolare quelli che possono sfruttare un gran numero di piccoli core fisici della CPU, cose che non sono legate alla CPU. Potrebbe non sembrare molto, ma in realtà copre molti potenziali usi: registrazione dei dati, grandi volumi di query semplici, determinati tipi di database, vari servizi di archiviazione e così via.
Potrei continuare, elencando vari casi d'uso, pro e contro dei server ARM e potenziali problemi, ma alla fine della giornata, sospetto che l'adozione del server ARM dipenda dal buon vecchio denaro. Tecnologia a parte, i server ARM avranno senso solo se la componente economica verrà verificata. In altre parole, dovranno offrire molto di più rispetto ai processori x86 se vogliono giustificare la loro esistenza.
Poiché questo è più o meno lo scopo principale dell'introduzione di questa nuova architettura nell'industria dei server, mi aspetto prezzi interessanti, ma ci vorranno alcuni mesi prima che lo sapremo con certezza.
