I miglioramenti apportati negli ultimi anni sulla memoria RAM non hanno introdotto cambiamenti rivoluzionari. Certo, si parta dell’ultima incarnazione delle RAM, le memorie DDR5 (SK Hynix presenta i primi moduli DRAM DDR5 al mondo: 4,8 Gbps e oltre) o della tecnologia 3D XPoint che è stata partorita da Intel e Micron diventando anche uno strumento per la memorizzazione non-volatile dei dati ad alte prestazioni (Intel vende la sua divisione che si occupa di memorie flash NAND e di unità SSD a SK Hynix).
In ogni caso le tecnologie connesse con il funzionamento della memoria RAM raggiungeranno prima o poi dei limiti in termini di performance che difficilmente saranno valicabili perché i nuovi colli di bottiglia che si manifesteranno risulteranno sempre più complessi da gestire.
Ogni volta che viene presentata una nuova generazione di memoria, che si parli di DDR, GDDR o LPDDR, viene ulteriormente miniaturizzato il processo litografico, usata una tensione inferiore per raggiungere la stessa velocità di clock della generazione precedente, aumentate le frequenze facendo crescere la larghezza di banda della memoria, accresciuta la densità per aumentare la capacità.
Questo processo si è sviluppato continuamente e in maniera “vorticosa” lungo le varie generazioni. Ultimamente, però, i progressi in termini di frequenze di clock rispetto al processo produttivo precedente è più contenuto parlando di memorie RAM.
Il divario fra RAM e processore in termini prestazionali si fa quindi sempre più ampio crescendo anno dopo anno.
L’idea è quindi quella di guardare sempre più al concetto di smart RAM o IRAM integrando un processore dedicato all’interno dei chip della RAM.
Non si tratterebbe ovviamente di una CPU completa: servirebbe ad accelerare alcune operazioni che vengono eseguite in un locazione fisica molto vicina alla RAM stessa.
In questo modo si potrà consumare molta meno energia a causa della minore lunghezza dei percorsi di comunicazione e, ovviamente, puntare a performance migliori.
Si supponga di voler copiare il contenuto di un banco di memoria su un altro. Con le attuali configurazioni la copia dei dati viene fatta dal processore utilizzando la RAM.
A causa della “distanza” tra CPU e RAM, il processore svolgerà tale compito in maniera più lenta rispetto a un’eventuale comunicazione diretta “in-RAM“.
Quando una CPU comunica con la RAM quello che fa è indicare l’indirizzo della memoria dove si trova il dato a cui vuole accedere, sia che si tratti di lettura che di scrittura.
Per svolgere quest’attività RAM e processore si poggiano sull’utilizzo di PIN specifici per comunicare reciprocamente.
Una smart RAM consentirà l’utilizzo di una serie di PIN aggiuntivi che servono per scegliere quale istruzione del processore sarà gestita nella RAM insieme con i dati corrispondenti. Il numero di istruzioni supportate sarà il quadrato dei PIN assegnati per istruzione: ad esempio se vengono assegnati 8 PIN il numero di istruzioni sarà 256.
Con le smart RAM la CPU non dovrà più attendere risposta da parte della RAM quando ad esempio un’istruzione accede ai dati in memoria ma sarà in grado di continuare le elaborazioni.
In ambito multimediale la smart RAM consentiranno di realizzare decoder di molteplici formati che agiscono direttamente in memoria; per la crittografia dei dati si potrà fare in modo che i dati vengano codificati e decodificati ad alte prestazioni in RAM; per cercare e modificare le informazioni in un database ad alta velocità e molto altro ancora.
Quando l’utilizzo delle smart RAM si rivelerà indispensabile? Nel momento in cui la differenza prestazionale tra RAM e processori influirà negativamente sull’evoluzione delle performance di questi ultimi.