Dentro il nostro smartphone, ma anche nel televisore, in automobile, nel router Wi-Fi e in decine di altri dispositivi di uso quotidiano, c’è un processore con architettura Arm. Questa sigla sta per Acorn Risc Machine (diventata in seguito Advanced Risc Machine) e nasce commercialmente nel 1985, quando fu rilasciato il processore Arm2 per il personal computer Bbc Micro. Nel 1990 Acorn separa la società che sviluppa i microprocessori e la rende autonoma; dalla collaborazione con Apple nasce l’architettura Arm6, che troverà posto nel primo computer palmare della storia, l’Apple Newton del 1992. Da allora Arm Holdings ne ha fatta di strada: con gli oltre 100 miliardi di chip prodotti fino al 2017, l’architettura Arm è in assoluto la più diffusa al mondo.
di Pasquale Bruno
L’azienda progetta le architetture per i chip ma non li produce direttamente, bensì vende a terzi le licenze per farlo. Tra i partner troviamo aziende come Apple, Samsung, Texas Instruments, Qualcomm, Mediatek, Nvidia e decine di altre, collocate soprattutto in Cina.
Una volta ottenute tali licenze, il produttore arriva a realizzare un processore completo aggiungendo un sottosistema grafico (la Gpu), la logica di gestione delle varie periferiche esterne, il controller per la memoria e anche la memoria stessa, solitamente di tipo Lp-Ddr3 o Lp-Ddr4 a basso consumo (Low Power Ddr3/Ddr4). Quest’ultima viene spesso installata sulla sommità del processore stesso in configurazione PoP (Package on Package) per ridurre ulteriormente lo spazio occupato.
Ecco dunque che si arriva alla definizione di SoC, vale a dire System on a Chip, dove tutto è concentrato in un unico componente. All’interno del SoC possono essere implementati anche l’apparato cellulare 4G, la rete Wi-Fi e Bluetooth, nonché componenti aggiuntivi come un Dsp (Digital Signal Processor) per l’elaborazione diretta in hardware di dati digitali di vario tipo, tipicamente foto e video.
I core attualmente progettati da Arm appartengono alla serie Cortex e si distinguono in tre famiglie principali. Sono gli Arm Cortex-M, microcontrollori di utilizzo generale; i Cortex-R, per applicazioni real-time; infine i Cortex-A, application processor che sono l’oggetto di questo articolo e che possiamo trovare nei nostri smartphone. L’architettura Arm è di tipo Risc (Reduced Instruction Set Computing) e rispetto alla nota architettura Intel x86 ha un set di istruzioni ridotto, che però viene eseguito a velocità molto più elevata. Un processore Risc è composto da un numero inferiore di transistor, a vantaggio delle dimensioni complessive, dei consumi elettrici e della produzione di calore. Tutti punti chiave nei dispositivi più piccoli come uno smartphone. La maggior parte dei processori Arm Cortex-A recenti utilizza un’architettura denominata Arm v7 a 32 bit; nel 2011 è stata introdotta l’architettura Arm v8 a 64 bit, e su questa si basano tutti i SoC moderni ad altre prestazioni presenti negli smartphone. Prevedono in genere 4, 6, 8 o 10 core, spesso in configurazione big.Little. Questa è il nome della tecnologia di calcolo eterogeno di Arm nata nel 2011 per gestire al meglio le configurazioni multi core. Lo scopo è fornire il giusto livello di prestazioni in ogni momento, evitando consumi elevati e contenendo al massimo la produzione di calore. Un’implementazione big.Little tipica prevede otto core: quattro a basso consumo e quattro ad alte prestazioni. La maniera più semplice di gestione prevede due cluster di core: normalmente viene utilizzato il cluster a basso consumo, che viene spento in favore del cluster ad alte prestazioni solo quando necessario, utilizzando la cache L2 comune come canale di comunicazione.
Un secondo sistema più sofisticato, denominato In-Kernel Switching, prevede che a ogni core ad alte prestazioni ne sia associato uno a basso consumo. Ogni coppia agisce come un unico core virtuale; nel momento in cui crescono le necessità computazionali, vengono via via attivate le altre coppie a cui vengono migrati i processi. Da notare che all’interno di ogni coppia può essere attivo un solo core per volta; questo porta ad avere comunque un massimo di quattro core funzionanti contemporaneamente.
La terza e più evoluta modalità è denominata Global Task Switching, in cui tutti i core possono essere attivati o disattivati a piacimento e possono anche essere tutti operativi contemporaneamente. I task più avidi di risorse vengono spostati sui core più potenti, mentre quelli di base rimangono sui core a basso consumo; questi ultimi inoltre sono quelli attivi nei momenti di idle. Questa modalità viene gestita in toto dallo scheduler del sistema operativo e riduce al minimo i tempi di switching; permette anche di implementare i core in maniera non omogenea a seconda che si desideri un processore capace di maggiore potenza o di minore consumo.
Oggi la soluzione Arm più potente è il Cortex-A73, che prevede fino a 4 Cpu Arm v8 a 64 bit con frequenza di clock massima di 2,8 GHz. Oltre all’unità intera, ogni core ha la sua unità in virgola mobile Vfp (Vector Floating Point) versione 4, che conta 32 registri a 64 bit, e un’unità di elaborazione per le istruzioni multimediali aggiuntive Simd Neon (Single Instruction-Multiple Data) a 64 o 128 bit. Il set di istruzioni Neon nasce per l’accelerazione in hardware dell’elaborazione su segnali digitali, come può essere la decodifica Mp3 o l’ottimizzazione delle foto scattate. Troviamo infine le estensioni TrustZone dedicate all’esecuzione sicura del codice.
La cache L1 è di 64 + 32/64 Kbyte per istruzioni e dati, mentre la cache di secondo livello può arrivare fino a 8 Mbyte. Il Cortex-A73 è utilizzato nei SoC più potenti come il Kirin 960 di HiSilicon, il Mediatek Helio X30 a 10 core e anche, profondamente customizzato, nel Qualcomm Snapdragon 835 dove assume il nome di Kryo 280. Il CorteX-A73 è il primo ad avere la nuova formula di licenza “Built on Arm” che permette un’ampia personalizzazione da parte delle aziende partner, che possono così inserire il proprio lavoro di ricerca e sviluppo per aumentare le prestazioni, l’efficienza e migliorare i consumi di un progetto standard Arm.
Estratto dell’articolo pubblicato su PC Professionale di maggio 2017