EOS

CPU Design: Aggiungi una cache a tavola

C’era una volta questo tizio, Gordon Moore, che anni che furono predisse che la capacità di calcolo di un processore sarebbe raddoppiata ogni diciotto mesi circa. La previsione si è avverata e tutt’oggi continua ad avverarsi, ad un livello tale da aver trasformato la speranza in legge. Il problema è che la legge di Moore vale per i processori ma non per le memorie, dove inevitabilmente bisogna infilare i programmi da eseguire. E’ da un bel pezzo ormai che le prestazioni dei processori hanno superato quelle delle memorie, al punto che ormai sono queste a zavorrare l’elaborazione, e al punto che il progetto e la gestione della memoria è importante tanto quanto (se non di più) quella del processore stesso. Iniziamo con questo una serie di articoli con cui vi parleremo di come si possa fare in modo da mantenere tale la legge di Moore, anche se essa stessa ci mette i bastoni tra le ruote.

L’ARTE DI PREPARARSI LA CENA

Certe volte anche i nerd si ricordano di mangiare. Può sembrare strano, ma quando questo accade l’algoritmo che mandano in esecuzione è straordinariamente simile a quello di qualsiasi comune mortale. Nell’ipotesi che tale algoritmo sia quello non banale, ossia uno qualsiasi con complessità maggiore di “apri il microonde – infila il cibo – chiudi il microonde – premi start”, il primo passo consiste nel procurarsi la ricetta di ciò che si vuole preparare e caricarla, insieme agli ingredienti necessari, in una delle due principali aree di salvataggio di una cucina, ossia il frigorifero o la dispensa. A questo punto, per poter eseguire l’elaborazione, si tenta di spostare gli ingredienti necessari sul piano di lavoro principale, di solito il tavolo della cucina, e se il tavolo non fosse sufficientemente grande per accoglierli tutti, il nerd effettuerà degli swap tra gli ingredienti sul tavolo e quelli nella dispensa/frigorifero, sostituendo magari quelli utilizzati meno di recente con quelli di necessità più immediata.

Man mano che l’algoritmo viene eseguito, alcuni degli ingredienti usati più di frequente (tipo il sale o il pepe) verranno spostati più vicino ai fornelli, ad esempio in uno spazietto più o meno grande accanto al piano cottura, così da poterli utilizzare più velocemente. A seconda delle dimensioni di questo spazietto, potrebbe capitare che il nerd debba eseguire, più o meno frequentemente, ulteriori swap tra gli ingredienti qui sopra e quelli sul tavolo. Di pari passo, i fornelli possono elaborare gli ingredienti forniti. A cottura ultimata, tutti gli ingredienti rimasti e/o modificati verranno rimessi in frigo o nella dispensa.

Se tutto questo vi sembra familiare, potrebbe non essere semplicemente perché anche voi talvolta vi ricordate di mangiare, ma magari perché tutto questo ricorda la normale esecuzione di un programma. Prima di tutto ci si “procura” il programma e lo si carica sul disco; poi, quando lo si vuole mandare in esecuzione, lo si carica nella RAM. Se la RAM è abbastanza grande il programma risiederà tutto lì, altrimenti, durante la sua esecuzione, il sistema operativo ne scaricherà dei pezzi che non servono più, sostituendoli con altre parti di necessità più immediata. Ancora, man mano che l’esecuzione va avanti, parti del programma verranno spostate nella cache, un’area di memoria (come si dice di solito) più “vicina” al processore. La cache di solito è piccola, per cui gli swap tra la cache e la memoria centrale tendono ad essere più frequenti di quelli tra memoria centrale e disco.

Il motivo per cui un programma che si vuole eseguire salta (a pezzi, tra l’altro) da una memoria all’altra è lo stesso per cui appoggiamo gli ingredienti sul tavolo o accanto al fornello quando cuciniamo: è più efficiente. Se dovete cucinare una bistecca, è più comodo avere il sale a portata di mano, anziché doverlo andare a prendere direttamente nella dispensa. Se dobbiamo eseguire un programma, è comodo avere i dati da elaborare o le istruzioni stesse del programma “vicine” al processore, così da non doverle andare a prendere direttamente dal disco. [...]

ATTENZIONE: quello che hai appena letto è solo un estratto, l'Articolo Tecnico completo è composto da ben 3784 parole ed è riservato agli abbonati PRO. Con l'Abbonamento avrai anche accesso a tutti gli altri Articoli Tecnici MAKER e PRO inoltre potrai fare il download (PDF) dell'EOS-Book e di FIRMWARE del mese. ABBONATI ORA, è semplice e sicuro.

Abbonati alle riviste di elettronica

2 Commenti

  1. Andrea Garrapa Andrea Garrapa 20 dicembre 2018
  2. Maurizio Di Paolo Emilio Maurizio Di Paolo Emilio 21 dicembre 2018

Scrivi un commento

EOS