Pagine

Non passa giorno, sui forum come sugli stessi portali specializzati, che non si legga di qualche discussione o qualche articolo relativo al confronto x86 versus ARM, su quale delle due ISA sia la migliore, sul quando ARM prenderà il sopravvento anche nel mercato PC su x86, sul quando Apple si deciderà a scaricare Intel o sul perché l'una sia da preferire all'altra.

In questo articolo non andremo a discutere nulla di tutto questo, in quanto ci limiteremo a mettere a confronto alcuni SoC ARM con un processore entry-level di Intel che ha avuto molto successo nella realizzazione di PC da ufficio, il Celeron 847. Questa CPU l'abbiamo ritrovata nello Shuttle DS47, da noi recensito un paio di anni fa, e ci ha colpito sia per i bassi consumi sia per le prestazioni tutto sommato decenti per un utilizzo SoHo (Small Office – Home Office).

Nell'arco di questi due anni, però, molte cose sono cambiate ed anche aziende da sempre legate al mercato x86, come la già citata Shuttle, stanno cambiando con discrezione i propri piani, attraverso la commercializzazione di prodotti basati su SoC ARM (qui un esempio).

Ci è così venuta la curiosità di confrontare il piccolo Celeron 847 con alcuni SoC ARM attualmente sul mercato, attraverso benchmark che vedono protagonisti i core x86 e ARM, ma non la GPU. Questi SoC sono disponibili grazie all'acquisto di alcune schede di ridotte dimensioni dedicate, almeno per il momento, più che altro agli appassionati di programmazione, ma non per questo ne è vietato l'uso per la realizzazione di PC di fascia bassissima. Avremo così l'occasione di scoprire quanto ARM può attualmente offrire, e soprattutto quanto è migliorata negli ultimi anni. Le sorprese, ne siamo sicuri, non mancheranno.


L'Odroid U3 è una scheda All-In-One prodotta dalla sud-coreana HardKernel, presentata nel dicembre del 2013 come concorrente ad elevate prestazioni del Raspberry Pi. Come dimensioni, infatti, è pari a quest'ultimo, ma è equipaggiata con il molto più prestante SoC Samsung Exynos 4412. Lo smaltimento del calore del SoC è garantito da un voluminoso - in relazioni alle dimensioni della scheda – dissipatore in alluminio, su cui è possibile installare una ventola opzionale da 40mm. Troviamo, on board, ben 2 GB di LPDDR2, in grado di garantire un utilizzo dell'Odroid U3 anche come sistema per uso generalista, ad esempio con Libre Office o GIMP. La distribuzione ufficiale utilizzata da HardKernel è Ubuntu e questo permette la fruizione di quasi tutto il parco software GNU/Linux.

Oltre alla ventola opzionale per il dissipatore, sullo store di HardKernel possiamo trovare ulteriori accessori per rendere l'Odroid U3 un vero e proprio PC. Ad esempio, possiamo acquistare il modulo eMMC, fino a 64GB, per installare il Sistema Operativo su una veloce memoria on board e non su MicroSD. Ancora, è disponibile un modulo UPS compatto per continuare a lavorare con l'Odroid U3 anche nel caso dovesse saltare la corrente.

Riguardo il SO da installare, sul sito ufficiale sarà possibile scaricare le immagini per installare Ubuntu (14.04) e Android (ultima versione disponilbile, 4.4.4 Alpha).

SoC Samsung Exynos 4412
Memoria 2GB LPDDR2 880 MHz
GPU ARM Mali-400 MP4 440 MHz
Video Encoding 1080p H.264 @ 30 fps
Uscite Video Micro HDMI
Uscite Audio 3.5" Jack Audio - HDMI
LAN 10/100 Ethernet
USB 3 x USB 2.0
USB Device ADB/Mass storage(Micro USB)
Porte IO GPIO, UART, I2C, SPI
Storage MicroSD, Modulo eMMC
Power Alimentatore 5v/2A
Sistemi Operativi Linux : Xubuntu 13.10 or latest version, Android : u-boot 2010.12, Kernel 3.0.x, Android 4.x
Dimensioni 83 x 48 mm
Peso 48 Gr. (Dissipatore incluso)
Prezzo 69.95 Euro

Link al sito ufficialeLink allo store europeo


La prima scheda di Marsboard che andremo a descrivere è quella basata sul SoC A20 di Allwinner. Questo SoC è uno dei più economici presenti sul mercato, accreditato di un costo unitario di appena 4 dollari al pezzo per lotti da 1.000 unità. Si tratta, quindi, di un SoC dedicato ad equipaggiare tablet molto economici, e questo ne permette l'utilizzo evitando l'installazione di un dissipatore passivo. La Marsboard è una scheda modulare, composta da un PCB di base su cui sono installate le porte di espansione e da un secondo PCB, detto MicroSOM (Micro System on a Module), da installare sul primo grazie a due connessioni a pettine. Si tratta di una soluzione già vista sulla HummingBoard di SolidRun, anche se meno raffinata (La soluzione di SolidRun è più compatta e meglio disegnata).

Questo espediente permette a Marboard di commercializzare sistemi differenti (o con SoC A10 o con SoC A20) mantenendo il medesimo PCB di base, risparmiando così nella produzione. Ugualmente, questa soluzione permetterà a Marsboard di commercializzare una nuova versione più potente dotata un SoC della famiglia A3x, senza ridisegnare tutta la scheda ma solo la MicroSOM. Numerosissime le porte di espansione on board, come è possibile osservare anche dalla tabella. Va segnalata, inoltre, la presenza di quattro piedini in plastica antiscivolo sotto il PCB “madre”, un utile accorgimento per evitare spiacevoli incidenti e per sopperire alla mancanza di un case ad hoc adatto alla scheda.

SoC Allwinner A20
Memoria 1GB DDR3
GPU ARM Mali-400 MP2 400 MHz
Video Encoding 1080p H.264 @ 30 fps
Uscite Video HDMI, CVBS, VGA, LCD-LVDS, LCD-RGB
Uscite Audio 3.5" Jack Audio - HDMI
LAN 10/100 Ethernet
USB 4 x USB 2.0
USB Device 1 x USB 2.0 OTG
Porte IO UART, Camera, LCD, IR
Storage 8GB NAND Flash, MicroSD
Power Alimentatore 5v/2A
Sistemi Operativi Android - GNU/Linux
Dimensioni 115 x 90 mm
Peso 80 Gr.
Prezzo 58 Dollari

Link al sito ufficiale

Link allo store online


La seconda scheda Marsboard è equipaggiata con il più potente SoC RK3066, accreditato di un costo unitario di circa 6$. Anche in questo caso si tratta di un SoC di fascia bassa, come d'altra parte conferma la stessa RockChip.

La costruzione della scheda ricalca quella della Marsboard A20, in quanto vede la presenza di un PCB madre e di una MicroSOM, su cui vengono posizionati i 4 chip DDR3 e il singolo chip NAND Flash. Anche in questo caso il TDP del SoC è talmente basso da non richiedere la presenza di un dissipatore. Rispetto alla sorella gemella, la Marsboard RK3066 vede la scomparsa dell'uscita video VGA, in quanto non supportata dal SoC. Sempre presenti, invece, gli utili supporti antiscivolo in plastica sotto il PCB principale.

SoC RockChip RK3066
Memoria 1GB DDR3
GPU ARM Mali-400 MP4 250 MHz
Video Encoding 1080p H.264 @ 30 fps
Uscite Video HDMI, CVBS, VGA, LCD-LVDS, LCD-RGB
Uscite Audio 3.5" Jack Audio - 3.5" Jack MIC - HDMI
LAN 10/100 Ethernet
USB 4 x USB 2.0
USB Device 1 x USB 2.0 OTG
Porte IO UART, Camera, LCD, IR
Storage 8GB NAND Flash, MicroSD
Power Alimentatore 5v/2A
Sistemi Operativi Android - GNU/Linux
Dimensioni 115 x 90 mm
Peso 90 Gr.
Prezzo 58 Dollari

Link al sito ufficialeLink allo store online


La realizzazione di un SoC ARM segue regole decisamente diverse, almeno per il momento, rispetto alla realizzazione di un SoC o di una CPU x86 di Intel. Queste regole sono imposte non tanto dall'ISA in sé, quanto dagli ambiti di utilizzo cui sono destinati questi prodotti, decisamente agli antipodi.

Caratteristica essenziale dei SoC ARM è la modularità unitamente alla varietà degli IP vendor, qualità che permettono al produttore di turno di utilizzare quanto realmente gli è utile, evitando di sprecare silicio ed abbassando di conseguenza il costo del chip prodotto (più chip vengono prodotti per wafer, minore sarà il costo unitario dei chip stessi). Non deve sorprendere, quindi, se ARM offre una dozzina di core diversi (ARM11, A5, A7, A8, A9, A12, A15, A17, A53, A57), e se a questi possono essere accoppiate diverse GPU (di Vivante, di Imagination Technologies, di ARM, di nVidia, Broadcom, di Qualcomm, e via di questo passo) e diversi componenti opzionali (SIMD NEON, coprocessori matematici VFP, ecc). Il singolo produttore può scegliere che CPU e GPU inserire ed in quali quantità, a seconda del target di riferimento (low, medium ed high performance), per poi aggiungere quanto serve alla creazione di un SoC più o meno completo dal punto di vista delle feature dedicate al mercato Mobile: GPS, Radio FM, Bluetooth, sistema di riconoscimento video, DPS, e via di questo passo. Al produttore del SoC importa relativamente poco la retro-compatibilità, in quanto questi SoC sono dedicati a terminali (Smartphone e Tablet) su cui gireranno versioni compilate ad hoc di Android, o sistemi chiusi (Windows Phone e iOS), sistemi operativi, va detto, molto recenti. Quello che realmente è importante per il produttore di turno, è inserire almeno le funzionalità minime per rendere il terminale compatibile con le applicazioni più utilizzate (Whatsapp, Skype, Chrome, ecc), nulla di più.

I SoC e le CPU x86 seguono, da decenni, una diversa filosofia. Fin dal 80286 la priorità di Intel è stata quella di realizzare CPU compatibili al 100% con le CPU delle generazioni passate, così da aiutare sia gli sviluppatori sia le aziende. L'80286 doveva essere compatibile con gli 8086/8088, il Pentium doveva essere compatibile con le CPU a 16 Bit (dal 80286 in poi), e le recenti CPU Core devono essere compatibili con le CPU posteriori al Pentium. Questo è il punto di forza di Intel, ma questo è anche il suo più grande difetto, in quanto buona parte del silicio delle recenti CPU è occupato da istruzioni o SIMD che sono lì non tanto perché veramente necessarie, quanto perché permettono la piena retro-compatibilità con software scritti anche 20 anni fa (cosa che interessa moltissimo le aziende più grandi, pigre ad aggiornare i propri software, ma poco o nulla gli utenti casalinghi, attirati dai software più recenti). Prendiamo quale esempio l'introduzione delle istruzioni SSE con i Pentium III:

Da: "Pentium III = Pentium II+SSE", di Keith Diefendorff, Microprocessor Report, 8/3/99

Tale filosofia di sviluppo ha reso le CPU x86 dei veri e propri elefanti in confronto ai più piccoli ed agili SoC ARM, privi di questa necessità, e questo si traduce in consumi maggiori e spese di produzione di ben altre proporzioni. Per fare un esempio, due core Cortex-A9 prodotti a 40nm (TSMC) occupano 6,7 mm2, mentre un singolo core Sandy Bridge occupa circa 18,4 mm2 @32nm. Nel medesimo spazio, quindi, sarebbe possibile inserire 4 core Cortex-A9. Non offrendo l'ISA x86 in licenza, lo sviluppo delle soluzioni CPU e SoC ricadono sulle sole spalle della stessa Intel, la quale deve produrre chip adatti tanto al mercato consumer quanto a quello enterprise (i SoC Atom utilizzano lo stesso Die per tutti questi mercati, ma vengono disabilitate porzioni del medesimo Die a seconda del mercato di riferimento).

Non deve sorprendere, quindi, se osservando la tabella qui in basso noterete una certa disparità nei consumi a favore dei SoC ARM. Disparità che ha ancora più dell'incredibile se osserviamo la quantità di feature integrate nei SoC ARM, del tutto assenti nella CPU Intel. Questo perché, come già detto, i SoC Atom devono essere utilizzati in settori molto differenti, e spesso Intel preferisce aggiungere alcune funzioni necessarie tramite chip esterni (questo accade soprattutto per quanto riguarda il mercato Mobile). La situazione, in questo ambito, dovrebbe cambiare verso la fine del 2015, quando verranno presentati i primi SoC frutto della collaborazione tra Intel e le cinesi RockChip e Spreadtrum.

SoC/CPU Allwinner A20 RockChip RK3066 Samsung Exynos 4412 Intel Celeron 847
Core Cortex-A7 Rev 4 Cortex-A9 Rev 0 Cortex-A9 Sandy Bridge
Arch ARMv7 ARMv7 ARMv7 Sandy Bridge
Numero Core 2 2 4 2
Frequenza 1 GHz 1,6 GHz 1,7 GHz 1,1 GHz
Cache L1 32KB/32KB 32KB/32KB 32KB/32KB 32KB/32KB
Cache L2 256KB 512KB 1024KB 246KB/256KB
Cache L3 - - - 2048KB
SIMD NEON NEON NEON MMX, SSE, SSE2, SSE3, SSSE3, SSE4, SSE4.1, SSE4.2
FPU VFPv4-D32 VFPv3 VFPv3 Integrata
VPU CedarX RK3X Samsung Integrata
CTRL RAM LPDDR2/DDR3/ DDR3L LPDDR/LPDDR2/ DDR3/DDR3L LPDDR/LPDDR2/ DDR3/DDR3L DDR3
GPU ARM Mali400 MP2 ARM Mali400 MP4 ARM Mali400 MP4 HD2000 (6 EU)
Frequenza 400 MHz 250 MHz 440 MHz 350/800 MHz
Librerie OpenGL ES 2.0/1.1 OpenGL ES 2.0/1.1 OpenGL ES 2.0/1.1 DirectX 10.1, OpenGL 3.0/3.1
Video Decoding Mpeg1/2, Mpeg4, SP/ASP, GMC, H.263, H.264, VP6/8, AVS jizun, Jpeg/Mjpg Mpeg1/2, Mpeg4, SP/ASP, GMC, H.263, H.264, H.265, VP6/8/9, AVS jizun, Jpeg/Mjpg Mpeg1/2, Mpeg4, SP/ASP, GMC, H.263, H.264, P6/8/9, AVS jizun, Jpeg/Mjpg H.264, VC-1,MPEG-2
Video Encoding H.264 1080p @ 30fps, H.264 720p @ 60fps H.264 1080p @ 30fps, H.264 720p @ 60fps H.264 1080p @ 30fps, H.264 720p @ 60fps -
Risoluzione Max 2160p 2160p 2160p 2560x1600
Camera Parallel 8-bit I/F YUV sensor, 24-bit parallel YUV 444 I/F, Supports 5M CMOS sensor, Supports dual sensors Parallel 8-bit I/F YUV sensor, 24-bit parallel YUV 422 I/F, Supports 5M CMOS sensor, Supports dual sensors Dual camera input, Image signal processing, Dynamic range correction, Face detection -
Audio Hi-Fi 100dB audio codec, Dual analog mic amplifiers Hi-Fi audio codec, Dual analog mic amplifiers AC97 audio codec, Dual analog mic amplifiers -
TDP 1,6 Watt 2,26 Watt 2-4 Watt 17 Watt
Nodo 40nm BULK 40nm BULK 32nm BULK 32nm BULK

Piattaforma MarsBoard A20 MarsBoard RK3066 Odroid-U3 Shuttle DS47
Memoria RAM 1GB DDR3 1GB DDR3 2GB LPDDR2 2x2GB DDR3-1333
Hard Disk 8GB eMMc 8GB eMMC SD SanDisk Class10 16GB 30MB/s SSD 120GB Mushkin mSata
Sistema Operativo Debian Wheezy 7.8 Debian Wheezy 7.8 Ubuntu 14.04 Fedora 21
Kernel 3.0.36+ 3.0.36+ 3.16 3.18.6
Software Phoronix-Test-Suite, SysBench, GTKPerf
Periferiche USB Wi-Fi Adapter TP-Link WN821N-V3, Logitech BT Adapter

Le prove sono state eseguite con scrupolo e attenzione, ed abbiamo seguito questo modus operandi:

  • Installiamo il sistema operativo di fresco, ed i driver forniti dal produttore, se necessari;
  • Ripetiamo ogni test per tre volte e se il valore di qualcuno di essi mostra una varianza troppo elevata, lo stesso viene di nuovo ripetuto (dopo avere rilevato la specifica causa che ha inficiato il risultato);
  • Alla fine di ogni sessione di prova riavviamo il sistema;
  • Controlliamo i risultati dei test per indagare su eventuali valori anomali.

GTKperf è un benchmark molto semplice, spesso sottovalutato, che però si occupa di testare una caratteristica essenziale di un sistema PC classico: quanto il sistema sia reattivo durante l'utilizzo tradizionale. Velocità di apertura e chiusura delle finestre, passaggio da un programma ad un altro, navigazione tra i menù e via di questo passo. Un sistema reattivo e veloce rende l'esperienza d'uso molto più piacevole e meno frustrante all'utente. Come si può notare dal grafico, l'Exynos 4412 si dimostra decisamente migliore rispetto agli altri due SoC ARM, e migliore dell'AMD C-60 testato (con Kernel 3.11)in questo articolo.

SysBench è stato utilizzato in questo caso per un test di pura forza bruta single thread, così da stressare al massimo le unità FPU. Come è possibile osservare dal grafico, la FPU pura del Celeron è su tutt'altro livello.

Altro benchmark di indubbia utilità è quello relativo a 7Zip, il quale fa ampio uso dei calcoli Integer. In questo caso l'Exynos 4412, forte di ben quattro core con clock a 1,7 GHz, riesce a primeggiare sulla soluzione Intel.

Anche nel test di conversione Lame MP3, completamente multi-threaded, viene fatto largo uso dell'unità Integer. I core Cortex-A9 ed A7, grazie all'integrazione di due ALU, non sfigurano di fronte al Celeron 857.

Il benchmark open source x264 sfrutta il popolare codec video h.264 per testare la velocità di codifica della CPU. L'elevata quantità di memoria RAM, unitamente al raddoppio dei core Cortex-A9, ha permesso all'Exynos 4412 di doppiare abbondantemente il RockChip RK3066 e di incollarsi al Celeron 847. In questo frangente la SIMD NEON si è comportata egregiamente, in quanto supporta via hardware il codec h.264, oltre a molteplici altri (link). Questo dimostra come l'aggiunta di istruzioni ad hoc possa cambiare notevolmente lo scenario che abbiamo visto nel benchmark SysBench, il quale sfrutta l'unità Floating Point nuda e cruda.


Come abbiamo affermato nell'incipit dell'articolo, questa non voleva essere una recensione approfondita di alcune schede basate su SoC ARM, o degli stessi SoC utilizzati, quanto un confronto tra ARM e x86 nell'utilizzo generale. Nei forum e nei portali specializzati da tempo si legge che ARM non può ora, e non potrà ancora per molto tempo, sostituire l'ISA x86 nei PC, sia perché mancano i software sia perché manca la potenza computazionale pura, ma è veramente così che stanno le cose?

Analizzati i risultati dei benchmark, tutti realizzati sotto GNU/Linux, con software compilati per le rispettive architetture, ora possiamo cercare di fare un po' di chiarezza.

Prima di tutto va detto che i SoC ARM sono basati sulle architetture di base di ARM, quindi non custom, e questo gioca a loro sfavore in un confronto con l'affinata architettura Sandy Bridge di Intel, ricca di SIMD adatte a diversi scopi. Non per questo, comunque, ARM ne esce con le ossa rotte, soprattutto se confrontiamo i consumi dei SoC con il Celeron 847 di Intel, e se pensiamo che i Cortex-A7 e Cortex-A9 sono stati presentati nel lontano 2009 (il Celeron 847 è del 2012).

Passando ai risultati, il passaggio dal Cortex-A7 a Cortex-A9 ha portato a notevoli miglioramenti prestazionali, ed il Samsung Exynos 4412, caratterizzato dalla presenza di 4 core ad elevata frequenza, in certe occasioni riesce a giocarsela quasi alla pari con la CPU x86 soprattutto nei calcoli Integer.

Il problema principale dei SoC ARM, al momento, è determinato dalla scarsa presenza di SIMD adatte a compiti particolari, in quanto il set di istruzioni NEON risulta sotto dimensionata per i compiti più gravosi. Proprio in questo ambito potranno venire in aiuto le architetture custom di AMD, di Qualcomm, di Apple e di altre case, in quanto potranno sopperire a tale mancanza con l'introduzione di set di istruzioni proprietari, adatti a questi carichi di lavoro.

Il recente annuncio di Microsoft di voler realizzare Windows 10 sia per x86 sia per ARM dovrebbe portare un po' di luce in questo senso, perché significa che il gap prestazionale tra le due ISA potrebbe venire livellato nell'arco di pochi anni. Lo abbiamo visto con questi test, ARM non è poi così distante da Intel, ed anche dal punto di vista dell'utilizzo, durante la fruizione del Celeron 847 con Fedora 21 e dell'Exynos 4412 con Ubuntu 14.04, non ho notato troppe differenze (contrariamente a quanto accaduto con il Raspberry Pi) utilizzando un programma alla volta. Differente lo scenario quando si utilizzano due o più programmi contemporaneamente. Qu l'eleganza delle architetture x86 (Branch Prediction, Scheduler, Cache, ecc) è attualmente irraggiungibile.

Personalmente non vedo l'ora di mettere le mani su qualche scheda dotata almeno di SoC quad o octa core Cortex-A57 o superiore. Considerato il salto accorso tra Cortex-A7 a Cortex-A9, in questo caso il boost prestazionale dovrebbe essere terrificante.