Le cache dei processori L1, L2 e L3 sono tutte fatte di SRAM? Se vero, perché L1 è più veloce di L2 e L2 è più veloce di L3? Non ho capito questa parte quando ho letto di loro.
Le cache dei processori L1, L2 e L3 sono tutte fatte di SRAM? Se vero, perché L1 è più veloce di L2 e L2 è più veloce di L3? Non ho capito questa parte quando ho letto di loro.
Risposte:
In generale sono tutti implementati con SRAM.
(I chip IBM POWER e zArchitecture utilizzano la memoria DRAM per L3. Questo è chiamato DRAM incorporata perché è implementato nello stesso tipo di tecnologia di processo della logica, consentendo la logica veloce da integrare nello stesso chip della DRAM. Per POWER4 l'off- chip L3 usato eDRAM; POWER7 ha L3 sullo stesso chip dei core di elaborazione.)
Sebbene utilizzino SRAM, non usano tutti lo stesso design SRAM. Le SRAM per L2 e L3 sono ottimizzate per dimensioni (per aumentare la capacità data la dimensione limitata del chip producibile o ridurre il costo di una determinata capacità) mentre SRAM per L1 ha maggiori probabilità di essere ottimizzata per la velocità.
Ancora più importante, il tempo di accesso è correlato alla dimensione fisica della memoria. Con un layout bidimensionale ci si può aspettare che la latenza di accesso fisico sia approssimativamente proporzionale alla radice quadrata della capacità. (L'architettura della cache non uniforme lo sfrutta per fornire un sottoinsieme di cache a bassa latenza. Le sezioni L3 dei recenti processori Intel hanno un effetto simile; un hit nella sezione locale ha una latenza significativamente più bassa.) Questo effetto può rendere più veloce una cache DRAM di una cache SRAM ad alta capacità perché la DRAM è fisicamente più piccola.
Un altro fattore è che la maggior parte delle cache L2 e L3 utilizzano l'accesso seriale di tag e dati, mentre la maggior parte delle cache L1 accede a tag e dati in parallelo. Si tratta di un'ottimizzazione della potenza (le percentuali di perdita di L2 sono superiori alle percentuali di perdita di L1, quindi è più probabile che si sprechi un lavoro di accesso ai dati; l'accesso ai dati L2 richiede generalmente più energia in relazione alla capacità-- e le cache L2 di solito hanno una associatività più elevata il che significa che più voci di dati dovrebbero essere lette in modo speculativo). Ovviamente, dover attendere la corrispondenza del tag prima di accedere ai dati aumenterà il tempo necessario per recuperare i dati. (L'accesso a L2 in genere inizia anche solo dopo la conferma di un errore L1, quindi la latenza del rilevamento di errori L1 viene aggiunta alla latenza di accesso totale di L2.)
Inoltre, la cache L2 è fisicamente più distante dal motore di esecuzione. Posizionare la cache di dati L1 vicino al motore di esecuzione (in modo che il caso comune dell'hit L1 sia veloce) significa generalmente che L2 deve essere posizionato più lontano.