Google ha deciso: Android supporterà l’architettura RISC-V in alternativa a quella ARM e, in futuro, RISC-V diventerà la piattaforma di riferimento. I rappresentanti dell’azienda che gestisce lo sviluppo del sistema operativo per smartphone hanno partecipato infatti all’ultima edizione del RISC-V Summit, che si è svolto negli Usa la scorsa settimana, e hanno annunciato di voler supportare la piattaforma con determinazione.
Lars Bergstrom, direttore progettazione di Android, ha detto infatti che RISC-V è considerata una “piattaforma di primo livello” nello sviluppo di Android, il che la mette sullo stesso piano di Arm. Si tratta di un grande cambiamento rispetto a soli sei mesi fa. Bergstrom afferma che per ottenere versioni di Android ottimizzate per RISC-V ci vorrà “molto lavoro” e ha delineato una tabella di marcia che richiederà “alcuni anni” per essere realizzata, ma in realtà hanno iniziato a circolare le prime patch ufficiali per RISC-V già a settembre.
RISC-V
I vantaggi dei SOC (System on Chip) RISC-V rispetto a quelli basati su ARM dipendono dalle specifiche esigenze del progetto, ovviamente. Tuttavia, alcuni vantaggi comuni dei SOC RISC-V sono ad esempio di tipo legale. Ovverosia le licenze “open”: il RISC-V, a differenza di ARM, è un’architettura aperta, il che significa che non è necessario pagare alcuna royalty o licenza per utilizzarlo. Questo vuol dire che può essere fortemente customizzato (cosa che invece con ARM è molto limitata). Infatti, poiché il RISC-V è aperto, è possibile modificarlo e adattarlo alle proprie esigenze specifiche. C’è inoltre un grande supporto a livello di comunità di sviluppatori che lavora attivamente su RISC-V, il che significa che ci sono molti strumenti e risorse disponibili per chi utilizza questa architettura.
Dal punto di vista strettamente tecnico, poi c’è il discorso della performance: i SOC RISC-V possono offrire una buona performance in termini di consumo di energia e velocità di elaborazione rispetto a quelli ARM. Inoltre, i SOC RISC-V possono essere utilizzati in una varietà di applicazioni, dai dispositivi Internet of Things (IoT) alle workstation di alto livello, cosa che permetterebbe a Google di sviluppare un’unica piattaforma capace di scalare dagli smartphone ai desktop.
Tuttavia, se è vero che i SOC RISC-V hanno dei vantaggi notevoli, è importante notare che anche ARM ha svariati vantaggi, come ad esempio un’ampia gamma di opzioni di processore disponibili e un’ampia base di utenti esistenti. Quindi, la scelta tra RISC-V e ARM in realtà non è legata solo a delle specifiche esigenze di progetto quanto piuttosto dalle preferenze dell’azienda o dell’individuo che sviluppa il sistema.
Cosa sta facendo Google
Cercare di capire cosa vuol fare il team di Android del SOC RISC-V non è tuttavia facilissimo. L’ultima volta che qualche esponente del team ha parlato pubblicamente è stato sei mesi fa, quando parlando con la stampa durante l’evento Google I/O a proposito di RISC-V è stato detto solo che l’azienda sta guardando le opzioni, “ma sarebbe un grande cambiamento per noi” se effettivamente si decidesse di passare a RISC-V. Esistono alcuni progetti esterni di porting di RISC-V e vari passaggi per rendere Android compatibile con RISC-V sono stati inseriti nell’Android Open Source Project (AOSP), ma poiché chiunque può inviare codice all’AOSP, è stato difficile finora capire quanto sia ufficiale la trasformazione e lo stato di Android di RISC-V.
Qualche luce viene dall’evento a cui ha partecipato il manager di Google. In una delle diapositive Bergstrom riportava l’elenco di cose da fare per il porting su RISC-V, che comprendeva una tonnellata di importanti componenti Android. A differenza del supporto mai perfezionato di Android per x86, Bergstrom ha promesso un vero e proprio salto di qualità con RISC-V, dicendo: “Dobbiamo fare tutto il lavoro necessario per passare da un prototipo e da qualcosa che funziona a qualcosa che sia davvero interessante, che metta in mostra i migliori processori della categoria di cui [il presidente di RISC-V International Krste Asanović] parlava nel precedente intervento”.
RISC-V piace anche ad Apple
Google non è la sola a lavorare su RISC-V. Anzi, da un certo punto di vista, si potrebbe interpretare la sua mossa come una specie di risposta ai segnali che arrivano da Cupertino. Già da tempo, infatti, Apple ha fatto capire che vorrebbe aprire in prospettiva la sua piattaforma centrata su ARM alle tecnologie RISC-V ISA.
In particolare, Apple starebbe lavorando per aggiungere un tocco di RISC-V ai suoi futuri chip progettati in casa. La transizione dovrebbe riguardare alcuni core specializzati che non hanno un ruolo visibile dall’utente, ma che si fanno carico di molte funzionalità essenziali in uno smartphone, dalla fotocamera alla gestione della batteria e altro ancora.
Secondo le informazioni il lavoro di conversione da ARM a RISC-V è in corso presso Apple per quanto riguarda i core ausiliari. Non si conoscono ancora i dettagli più minuti di Apple A16 Bionic per sapere se il lavoro in questione è già iniziato, ma la transizione di Apple è certa, così come quella di tutta l’industria del settore che segue questa tendenza, perché permette alle aziende di ridurre i costi, di migliorare l’autonomia, sia di offrire migliorie in termini di ottimizzazioni, con vantaggi che Cupertino non si fa sfuggire.
Il Risiko dei processori
Dal punto di vista della produzione dei SOC in particolare e dei processori in generale cambiare architettura non è poi così traumatico. I grandi produttori che attualmente gestiscono la quasi totalità della produzione mondiale, come TSMC, Samsung e Qualcomm, devono fare relativamente poco. Anche progettualmente non è una vera rivoluzione. Invece, il più è ovviamente dal punto di vista software. “Portare” un sistema operativo da una architettura a un’altra, soprattutto in ambiente SOC per smartphone e tablet dove l’emulazione non è una scelta ottimale nel medio-lungo periodo, richiede un forte investimento non solo dalla piattaforma (il sistema operativo) ma anche da tutti i produttori di software, che devono convertire il proprio codice da una architettura all’altra. Le migrazioni di Apple e invece la stanzialità di Microsoft con la coppia MS-DOS/Windows sono un indice di questo tipo di problematica.
In particolare, portare il sistema operativo Android dall’architettura ARM a quella RISC-V sarà una sfida per diversi motivi pratici. Innanzitutto la compatibilità delle librerie: Android è stato originariamente sviluppato per l’architettura ARM, quindi alcune librerie potrebbero non essere compatibili con RISC-V. È necessario poi adattare il kernel, che è stato ottimizzato per l’architettura ARM, quindi in buona parte dovrà essere riscritto per funzionare correttamente su RISC-V. Dal punto di vista hardware (E non solo applicativo) c’è il problema del supporto delle terze parti: molti dispositivi Android utilizzano componenti di terze parti, come moduli di comunicazione wireless o sensori, che potrebbero non essere disponibili per RISC-V.
Questo apre in realtà a un problema più ampio: lo sviluppo di driver: sarà necessario sviluppare nuovi driver per supportare i componenti hardware su RISC-V e poi portare avanti da capo una serie di test e validazioni per verificare in modo accurato che il sistema operativo Android su RISC-V funzioni correttamente e che sia stabile. Questo non è per niente semplice perché, a differenza di ARM, sulla cui piattaforma Android è nato e quindi si è sviluppato aumentando progressivamente di complessità, adesso RISC-V dovrà riuscire a gestire un sistema operativo molto complesso e ricco di funzionalità. Senza contare che ci potrebbero essere altre sfide specifiche legate all’implementazione di Android su RISC-V, a seconda dell’ambiente hardware e software specifico in cui verrà utilizzato dai singoli produttori degli smartphone e degli altri apparecchi.
E quest’ultimo è il vero problema di Android che Google si è sempre trovata a dover affrontare: la mancanza di controllo sull’hardware sottostante il sistema operativo. È lo stesso problema di Microsoft con Windows nel settore dei PC: dover astrarre dall’architettura hardware sottostante che è gestita da una serie di standard sufficientemente ampi da garantire non tanto l’innovazione quanto la competizione tra i diversi produttori. Chi realizza una linea di smartphone Android vuole che l’apparecchio che verrà venduto ai clienti finali sia da un lato totalmente compatibile con tutto il software e le soluzioni di terze parti, e dall’altro però anche unico e “migliore” (se possibile) rispetto a quello degli altri.