CPU fino al 30% più veloci con la cache dinamica Jenga

Al MIT hanno creato Jenga, un sistema di gerarchia della cache che si adatta in base alle necessità del programma in funzione. Notevoli i miglioramenti prestazionali e nel consumo energetico.

Avatar di Manolo De Agostini

a cura di Manolo De Agostini

All'interno dei processori trova spazio della memoria locale di piccole dimensioni detta "cache". Il suo compito è ospitare i dati a cui si accede con più frequenza, impedendo la costante comunicazione tra il processore e la memoria di sistema (RAM), un'operazione che richiede più tempo ed energia.

cpu

I processori moderni hanno in genere tre livelli di cache (L1, L2, L3), ognuno dei quali ha una capacità fissa. In genere la dimensione della cache è il risultato di un compromesso fatto in fase di progettazione: la memoria locale deve rispondere al meglio a un'ampia schiera di compiti differenti, ossia i programmi usati dall'utente, che possono andare dai videogiochi ai software professionali.

Ne consegue perciò che la gerarchia della cache non è sempre ideale. Al Computer Science and Artificial Intelligence Laboratory del MIT un gruppo di ricercatori ha progettato un "sistema che rialloca al volo l'accesso alla cache, per creare nuove gerarchie adatte alle necessità dei singoli programmi".

I ricercatori hanno testato il sistema simulando un chip con 36 core e hanno riscontrato un aumento delle prestazioni dal 20 al 30 percento, con una contemporanea riduzione del consumo energetico dal 30 all'85 percento rispetto a chip con cache di dimensioni fisse.

"Quello che si vuole fare è prendere le risorse fisiche di memoria distribuite e costruire gerarchie specifiche per i programmi al fine di massimizzarne le prestazioni", ha affermato Daniel Sanchez, assistente professore del Department of Electrical Engineering and Computer Science (EECS) del MIT, il gruppo che ha messo a punto il nuovo sistema.

MIT Custom Hierarchies
Un sistema Jenga a 36-tile che gestisce quattro applicazioni. Jenga dà a ogni applicazione una gerarchia personalizzata della cache virtuale.

"Questo dipende da molti aspetti del programma. Qual è la dimensione dei dati a cui accede? Trae beneficio da una gerarchia di cache progressivamente più grandi, o faremmo meglio ad avere un singolo livello molto grande? Quanto spesso si accede al dato? Qual è l'entità del calo prestazionale se inserissimo il dato nella memoria principale? Ci sono tutti questi compromessi da valutare".

Il sistema messo a punto dai ricercatori del MIT si chiama Jenga, ed è stato presentato la scorsa settimana all'International Symposium on Computer Architecture. A differenza dei sistemi di gestione della cache attuali, Jenga è in grado di distinguere tra le diverse posizioni fisiche dei banchi di memoria che formano la cache condivisa. Per ogni core all'interno del chip, Jenga sa quanto occorrerebbe recuperare l'informazione da qualsiasi banco di memoria sul chip, ossia conosce con esattezza un valore fondamentale, la latenza.

Jenga è un'evoluzione di un sistema precedente, chiamato Jigsaw, anch'esso capace di allocare la cache al volo, ma non di costruire delle gerarchie tra i diversi livelli di cache, rendendo il problema dell'allocazione molto più complesso. La soluzione ideata al MIT è così avanzata che prevede anche una tecnologia che si occupa di allocare i dati nel miglior modo possibile in quei processori con cache DRAM separata ma sullo stesso package, come alcuni chip Intel dotati di cache L4 (eDRAM).

cache l4 intel edram

Se più core cercano di recuperare un dato dalla stessa cache DRAM, possono emergere colli di bottiglia che introducono maggiore latenza. Perciò dopo che Jenga ha fatto un insieme di assegnazioni, i core non scaricano tutti i loro dati nel banco di memoria più vicino. Jenga, invece, divide i dati un po' alla volta, poi stima l'impatto su bandwidth e latenza. Perciò, Jenga è in grado di gestire le priorità che ogni core dà ai banchi di memoria allocati.

"Negli anni si è fatto molto lavoro sul modo giusto di progettare una gerarchia della cache", ha affermato David Wood, professore di informatica presso l'Università del Wisconsin a Madison. "Ci sono stati schemi che hanno cercato di attuare una sorta di creazione dinamica della gerarchia. Jenga è diverso, in quanto usa veramente il software per cercare di capire qual è il carico di lavoro e quindi allocare in modo ottimale le risorse tra i processi concorrenti. E questo, credo, è decisamente più potente di quanto fatto finora. Ecco perché penso che sia davvero interessante".


Tom's Consiglia

In attesa di un processore ancora più veloce, il Core i5-7600K è tra le CPU più vendute su Amazon.