Per anni i computer a scheda singola (SBC, Single Board Computer) sono stati strettamente combinati con le schede madri. Svolgevano funzioni simili ed entrambi puntavano a offrire velocità, grafica e memoria migliori. Con l'arrivo degli SBC amatoriali, ad esempio Raspberry Pi 3, che eseguono le operazioni di base a un livello accettabile e comportano un investimento finanziario nettamente inferiore, nei computer a scheda singola si è creata una spaccatura. Alcuni, come Pi e BeagleBone, mirano alla massima diffusione a un prezzo ragionevole. Altri, quali NVIDIA Jetson e Intel Joule 570x, stanno ancora migliorando le capacità degli SBC.
Fondamenti dell'architettura
RISC o CISC? È sempre la solita questione. Gli utenti tendono a scegliere l'una o l'altra in base alla propria esperienza con i computer desktop e i cellulari o in seguito ad altre interazioni di alto livello con dispositivi basati su queste architetture. Ma il mercato SBC ha fornito una visione più approfondita delle differenze e dei vantaggi.
La CPU (Central Processing Unit) di un dispositivo, RISC o CISC, utilizza un codice speciale, ovvero "istruzioni", per controllare l'hardware circostante. Queste istruzioni formano un codice di assemblaggio, che rappresenta uno dei livelli finali di astrazione del codice binario effettivo ed è estremamente granulare, ma in qualche modo leggibile.
Figura 1. Codice di assemblaggio A64, come quello in esecuzione su Raspberry Pi
RISC è l'acronimo di Reduced Instruction Set Computing, mentre CISC è l'acronimo di Complex Instruction Set Computing. Le istruzioni RISC, come quelle riportate sopra, sono abbastanza semplici da potere essere eseguite in un singolo ciclo di clock. Tra queste figurano istruzioni di base come ADD, SUB (sottrazione), MOV (spostamento) e BIC (cancellazione dei bit, bit per bit). Il codice RISC è più lungo perché ogni operazione deve essere eseguita in più passi semplici, ma è una rappresentazione molto accurata di come il processore interpreta il codice. Il codice CISC consente di svolgere operazioni più complesse, ad esempio IMUL (moltiplicazione con firma) e MOVS (spostamento dei dati da stringa a stringa), che non possono essere completate in un singolo ciclo di clock e che richiederebbero diverse righe di codice nell'assemblaggio RISC.
Esistono interi libri in cui le due architetture vengono esaminate nei dettagli. Ai fini di questo articolo è importante sottolineare che i programmi CISC sono più corti e quindi richiedono meno RAM, mentre i programmi RISC prevedono velocità di clock superiori perché le istruzioni più complesse limitano la velocità di clock massima di una CPU. I primi computer venivano costruiti quasi interamente con CISC, ma man mano che la RAM è diminuita di prezzo, RISC è diventata l'architettura più comune. Tradizionalmente ARM ha utilizzato RISC per il potenziale risparmio energetico. Ciò significa che i core ARM sono efficienti e comunemente diffusi nei progetti incorporati o mobili. Intel è il marchio più importante che continua a utilizzare CISC e sfrutta le istruzioni complesse a proprio vantaggio nei computer e nei server di fascia alta che non devono risparmiare la batteria o preoccuparsi troppo del calore.
Implicazioni per i computer a scheda singola
Quando si tratta di acquistare un computer a scheda singola, non è solo una questione di preferenze. I processori incorporati (quasi sempre RISC) dominano lo spazio SBC amatoriale per efficienza e velocità. Dragonboard410c si basa sul processore Snapdragon410c di Qualcomm, presente in molti cellulari.
Schede come questa offrono le migliori prestazioni possibili del core per garantire uno sviluppo e una sperimentazione ottimali. Queste schede possono eseguire Android come un telefono, ma utilizzano uno schermo HDMI da 1080p, nonché una tastiera o un mouse USB come un computer desktop tradizionale. In questo modo non è necessario che uno sviluppatore passi da un ambiente virtuale all'altro. Purtroppo queste schede non riducono necessariamente gli svantaggi di un processore incorporato. I processori mobili come Snapdragon 410 utilizzano GPIO a 1,8 V, che può essere difficile da integrare con i sensori o altro hardware. Gli sviluppatori possono inoltre riscontrare limiti intrinseci di memoria o velocità del core se provano a usarlo come un vero computer desktop.
Una scheda come Intel Joule 570x, tuttavia, è stata ridimensionata e non migliorata. Intel è ancora un marchio importante nei settori delle schede madri e dell'elaborazione dalle prestazioni elevate. L'obiettivo è trasformare un intero core CISC in modo da utilizzarlo su un SBC. I processori come Intel Pentium possono consumare oltre 20 watt sotto carichi elevati, il che richiede una gestione termica più complessa di quella prevista per un computer a scheda singola.
In questo modo il processore Atom presente sui nuovi SBC Joule è il risultato degli sforzi compiuti per concentrare la massima potenza di elaborazione possibile in un core adatto ad applicazioni con un consumo energetico inferiore. La famiglia Atom utilizza l'architettura x86, che tecnicamente è un'architettura CISC che in qualche modo si ispira a RISC ma che in realtà è più un ibrido che un'architettura CISC pura. Sicuramente è in grado di gestire istruzioni complesse, ma ricorre a un'operazione secondaria per regolare queste istruzioni in modo da ridurre l'impatto di lunghe istruzioni sulla velocità di elaborazione.
Provare a realizzare lo stesso progetto con un core migliorato e uno ridimensionato può essere estremamente complesso. Se sono necessari una potenza di elaborazione minima e un fattore di forma ridotto, Raspberry Pi rappresenta un ottimo punto di partenza e probabilmente le schede più costose sarebbero eccessive. I progetti come server farm, media center o addirittura attrezzatura da gioco possono essere molto difficili da realizzare su schede basate su processori incorporate perché non offrono la velocità e le prestazioni necessarie. Esiste il rischio di dovere usare programmi con cui non si ha dimestichezza a causa dei vincoli del sistema operativo. Le schede basate su CISC tendono a funzionare molto più come un vero computer desktop in termini di prestazioni e disponibilità dei programmi comuni, perché x86-64 viene utilizzato nella maggior parte dei computer commerciali. La scelta della scheda adatta all'applicazione è ciò che fa la differenza tra la creazione di un sistema potente con prestazioni elevatissime e la riproduzione di StarCraft nell'ambito di una configurazione che prevede lo stesso processore del cellulare.
Se desideri saperne di più e scoprire le ultime novità, abbonati alla newsletter.