Nei recenti annunci dei grandi produttori di processori, il termine “chiplet” è stato introdotto per caratterizzare una strategia di design necessaria per dominare la complessità della progettazione e introdurre funzioni sempre più complesse nei chip. L’obiettivo è accelerare algoritmi sempre più complessi implementandoli direttamente in hardware e, di conseguenza, accelerare le prestazioni del software.
Sapphire Rapids: come la nuova architettura cambierà i server “general purpose”
Per capire questa tendenza è importante osservare come sono cambiati i rapporti di forza all’interno di un computer negli ultimi dieci anni, in particolare grazie al contributo essenziale delle memorie a stato solido che hanno costretto una revisione quasi totale di un’architettura che ha dominato per decenni il design dei computer.
I numeri della legge di Moore
La legge di Moore è una nota legge empirica, formulata dal co-fondatore di Intel Gordon Moore nel 1965, che osservò come il numero di transistor nei microchip raddoppiasse ogni anno e ne postulò la durata di almeno una decade. Oltre cinque decadi dopo, l’osservazione empirica ha continuato a essere compatibile con la predizione: ha dato luogo a quella crescita esponenziale nei microprocessori che ha consentito di realizzare i sistemi a cui tutti oggi siamo abituati e che ha portato in tasca un computer milioni di volte più complesso di quello usato dalla NASA per portare l’uomo sulla luna.
La rivoluzione dei dischi a stato solido
Lo sviluppo delle tecnologie di memorizzazione a stato solido si è sviluppata in oltre quarant’anni di storia, ma solo negli ultimi dieci i dischi a stato solido hanno dimostrato di poter rimpiazzare le loro controparti meccaniche, rivoluzionando i nostri sistemi.
Queste nuove memorie di massa hanno messo in discussione uno degli assiomi che hanno governato il design di computer e sistemi di calcolo per lungo tempo: l’accesso al disco è ordini di grandezza più lento dell’elettronica di un computer.
Tanto per vedere le cose dalla giusta prospettiva: un disco SSD per un server oggi è capace di leggere a 7GB/s e scrivere a 4GB/s contro i circa 250MB/s di un disco meccanico. Anche la velocità di accesso ai dati è di circa 100 microsecondi nel primo caso e tra 10 e 20 millisecondi nel secondo.
Il nuovo collo di bottiglia: la comunicazione
Un sistema di calcolo ha in genere necessità di leggere dati da elaborare e, al termine dell’elaborazione, scriverne i risultati, in modo che siano persistenti. La sua velocità è quindi legata alla rapidità con cui i dati sono disponibili (latenza) e alla velocità di trasferimento che caratterizza la massima capacità di elaborazione.
In questa catena di elaborazione, se un componente è lento tutto il sistema va al suo passo, non importa quanto sia efficiente un altro componente. Un incremento di 16x nella capacità di trasferire dati e di 100x nella rapidità di accesso al dato ha alterato in modo radicale il componente di memorizzazione persistente costringendo una completa revisione dei rapporti di “forza” all’interno dei sistemi: il disco non è più il collo di bottiglia del sistema e si corre il rischio che produca più dati di quanti gli altri componenti possano elaborare.
La rete è infatti tornata ad essere il collo di bottiglia di un sistema: due dischi SSD possono saturare un collegamento a 100Gbps, collegamento non comune sui server che si limitano ad avere collegamenti a 25Gbps.
Anche la memoria RAM sente la pressione della maggiore richiesta di capacità di trasferimento: le attuali DDR4 2933 consentono un trasferimento massimo teorico di poco inferiore a 100GB/s. La capacità di accedere dati, che è oggi possibile grazie all’accelerazione di tutte le componenti, sta spingendo i produttori a decuplicare tale banda: sia nVidia che Intel hanno recentemente annunciato la banda di comunicazione verso la memoria di 1TB/s.
Immettere i dati più rapidamente nel processore
L’accelerazione di tutta la catena di comunicazione va a cambiare un parametro essenziale del delicato equilibrio tra computazione e comunicazione di un sistema di calcolo. Se infatti la computazione dura un tempo paragonabile alla comunicazione c’è il rischio che i nostri processori passino molto tempo ad attendere i dati che processeranno troppo in fretta, riportando i preziosi core in attesa di nuovi dati. Si tratta di un fenomeno noto nelle applicazioni del calcolo scientifico, ma che finora non aveva investito i computer in generale grazie proprio alla lentezza degli harddisk meccanici.
La nuova velocità cambia però le carte in tavola rendendo più difficile la sovrapposizione di calcolo e comunicazione (mentre il processore elabora si trasferiscono i dati necessari all’elaborazione successiva) e riducendo l’efficienza della componente CPU.
Una soluzione per contrastare questo fenomeno è quella di aumentare le linee dati PCI che arrivano direttamente nel processore: una strada seguita da AMD con l’introduzione dei processori Epyc, che supportavano fino a 128 linee di comunicazione PCIe direttamente dentro il processore. Ma si tratta di una strada che ha limitazioni dovute alla natura della comunicazione tra la CPU e i componenti esterni ad essa.
Un’alternativa è quella di cercare di tenere quanti più dati possibile all’interno del processore: la comunicazione all’interno dello stesso chip è infatti molto più efficiente, poiché avviene in modo sincrono. È come quando ci si sposta all’interno di uno stesso edificio con gli ascensori, piuttosto che doversi spostare tra edifici differenti con un’automobile.
Questo approccio è stato seguito da Intel nella realizzazione del processore Xeon Phi Knights Landing nel 2016 per assicurare che i 72 core (raggruppati a coppie in 36 “tile”) del processore ricevessero abbastanza dati da speciali moduli di memoria chiamata MCDRAM (16GB accessibili con una banda di 400GB/s).
Un’altra via per aumentare l’efficienza ed evitare che il processore rimanga in attesa di dati per poter elaborare consiste nel dotarlo di funzioni più complesse. La capacità di integrare sempre più transistor in un singolo chip consente l’integrazione di sempre più funzioni, e così come quando furono introdotti i “core” nei processori (ovvero più processori nello stesso chip) ora si cominciano ad integrare i processori di oggi, capaci di svolgere funzioni complesse che vengono chiamati “chiplet”.
Le funzioni complesse nei chiplet
Un chiplet è a tutti gli effetti un processore, potenzialmente con più core al suo interno, che viene stampato sullo stesso strato con altri chiplet, consentendo una comunicazione più efficiente. I chiplet divengono quindi non solo uno strumento per organizzare funzioni complesse all’interno di un singolo chip, ma anche per differenziarne le funzioni. In questo modo si possono “configurare” processori in modo che i transistor non svolgano funzioni identiche ma si specializzino per funzioni specifiche.
Non si tratta di un’idea nuova: IBM, Sony e Toshiba hanno introdotto il processore Cell/BE, usato nella Playstation 3, dotato di core computazionali con capacità differenti: un core potente affiancato da core più “leggeri” a cui delegare compiti meno complessi. Ma con i chiplet di nuova generazione assistiamo all’integrazione di funzioni complesse come supporto a crittografia, intelligenza artificiale o con funzioni specifiche per la comunicazione piuttosto che per il calcolo.
L’arrivo dei processori Intel basati sull’architettura Sapphire Rapids inaugura questa nuova era introducendo numerose configurazioni grazie all’impiego di tipologie differenti di quattro chiplet presenti nel processore.
Il mercato dei chiplet
Un chiplet è un design di una porzione di un processore con funzioni ben definite e, in un certo senso, autonome. Non è quindi sorprendente la creazione, a marzo di quest’anno, del consorzio Universal Chiplet Interconnect Express (UCIe), che annovera tra i fondatori Intel, AMD, ARM, e Samsung, per la definizione di standard che consentano l’integrazione di chiplet prodotti da differenti produttori all’interno dello stesso chip.
L’esistenza di questi standard può potenzialmente ridefinire l’idea stessa di processore: potremo assistere a processori con chiplet basati su istruzioni x86 e istruzioni ARM, o combinare funzioni specifiche e funzioni generiche per ottimizzare una particolare computazione.
L’attenzione sul tema è altissima: vedremo se si tratta solo di una moda passeggera oppure di un nuovo passo nella realizzazione di processori sempre più complessi.
Sicuramente questi nuovi arrivati mettono in discussione l’idea di CPU general purpose a cui ci siamo abituati, rendendo sempre più difficile confrontare processori e funzioni e di conseguenza, potenzialmente, riducendo la competizione tra vendor che potrebbero usare la differenziazione di funzioni come strumento di competizione. L’arrivo di Sapphire Rapids ci consentirà di osservare l’effetto di questa differenziazione nei bandi di gara per server basati sul processore con 4 chiplet.
Resta il fatto che l’introduzione delle tecnologie di memorizzazione a stato solido continua a rivoluzionare il panorama alla ricerca di comunicazioni sempre più efficienti.