Prestazioni cache e progetto

Il processore per molti è un pezzo silicio che fa andare il computer, ma all'interno nasconde tante cose. In questo primo articolo affrontiamo il tema della frequenza e delle cache.

Avatar di Tom's Hardware

a cura di Tom's Hardware

Prestazioni cache e progetto

Come con la cache L1, la maggior parte delle cache L2 ha un "hit ratio" intorno al 90%; perciò il sistema il 90% del tempo opera alla massima velocità (233 MHz in questo esempio) recuperando il dato dalla cache L1. Il 10% del tempo rallenta per recuperare il dato dalla cache L2. Di questo un altro dieci percento finisce "deviato" verso la cache L3, se disponibile.

Quindi combinando entrambe le cache, il nostro sistema opera alla massima velocità del processore il 90% del tempo (233 MHz in questo caso), alla velocità della motherboard il 9% (90% di 10%) del tempo (66 MHz in questo caso), e alla velocità della RAM circa l'1% (10% of 10%) del tempo (16 MHz in questo caso). Potete chiaramente vedere l'importanza sia della cache L1 che della L2; senza di loro il sistema si rivolge più spesso alla memoria principale, che è molto più lenta del processore.

Questo solleva altri punti interessanti. Se potessimo spendere denaro per raddoppiare le prestazioni della memoria principale (RAM) o della cache L2, quale migliorereste? Considerando che la memoria principale è usata direttamente solo per l'1% del tempo, agendo sulle sue prestazioni raddoppiereste la velocità del vostro sistema solo dell'1% del tempo! Non è sufficiente per giustificare quel tipo di spesa. D'altra parte se raddoppiate le prestazioni della cache L2, raddoppiereste le prestazioni il 9% del tempo, che è un miglioramento molto grande complessivamente. Miglioreremmo la cache L2 piuttosto che la RAM. È anche per questo che è stata inserita una cache L3 e aumentata la sua capienza, come recenti processori di Intel e AMD hanno fatto.

Chi progetta processori in Intel e AMD lo sa e ha pensato a diversi metodi per migliorare le prestazioni della cache L2. Nei sistemi Pentium (P5), la cache L2 solitamente si trovava sulla motherboard e doveva operare alla velocità della motherboard. Intel realizzò il primo importante miglioramento spostando la cache L2 dalla motherboard direttamente nel processore. I chip cache erano realizzati da Intel e montati accanto al die principale in un singolo "involucro". Questo progetto si dimostrò troppo costoso, quindi con il Pentium II Intel ha iniziato a usare chip cache di un fornitore terzo come Sony, Toshiba, NEC e Samsung. Dato che questi erano offerti come chip completi in package e non come singoli die, Intel li montava su una scheda accanto al processore. Questo è il motivo per cui il Pentium II è stato progettato come una cartuccia piuttosto che qualcosa che assomigliasse a un chip.

Un problema era la velocità dei chip cache di terze parti disponibili. Quelli più veloci sul mercato erano da 3 ns o superiori, il che significa 333 MHz o meno di velocità. Dato che il processore era spinto a velocità superiori, nei Pentium II e nei primi Pentium III Intel ha dovuto far funzionare la cache L2 a metà della velocità del processore perché era tutto ciò che la memoria cache disponibile poteva gestire. AMD ha seguito l'esempio con il processore Athlon, che ha dovuto ridurre la velocità della cache L2 anche di più in alcuni modelli di due quinti o un terzo rispetto alla frequenza principale della CPU per mantenere la velocità della cache sotto i chip commercialmente disponibili da 333 MHz.

Poi è avvenuto un passo avanti, apparso per la prima volta nei processori Celeron 300A e superiori. Questi avevano 128 KB di cache L2 ma senza usare alcun chip esterno. Invece, la cache L2 è stata integrata direttamente nel core del processore come la L1. Di conseguneza le cache L1 e L2 avrebbero lavorato alla frequenza del processore e, più importante ancora, avrebbero aumentato in futuro la loro velocità con all'aumentare della frequenza del processore. Con il più recente Pentium III, così come con i processori Xeon e Celeron, la cache L2 operava alla piena velocità del processore, il che significava che non c'erano attese o rallentamenti dopo un L1 cache miss. AMD ha aggiunto una cache on-die a piena velocità nei successivi chip Athlon e Duron. Usare una cache on-die migliorava di molto le prestazioni perché il 9% del tempo il sistema usava la L2.

Ora rimane a piena velocità anziché rallentare alla metà o meno della velocità del processore o, persino peggio, rallentare alla velocità della motherboard come nei progetti Socket 7. Un altro beneficio della cache L2 on-die è il costo, inferiore poiché sono coinvolte meno parti. La cache L3 on-die offre gli stessi benefici per quelle volte in cui la cache L1 e quella L2 non integrano il dato desiderato. E poiché la cache L3 è molto più ampia della cache L2 (6 MB nel AMD Phenom II e 12 MB nel Core i7 Extreme Edition), le probabilità che tutti e tre i livelli di cache che non contengano le informazioni desiderate sono ridotte all'osso.

Rispolveriamo l'esempio del ristorante usando un processore a 3.6 GHz. Il cliente ingurgita un boccone ogni mezzo secondo (3.6 GHz = ciclo di 0.28 ns). La cache L1 funziona alla stessa velocità, quindi possiamo mangiare tutto ciò che c'è sul tavolo alla stesa velocità (tavolo = cache L1). Il vero salto nelle velocità si ha quando si ordina qualcosa che non è già sul tavolo (cache L1 miss), nel cui caso il cameriere raggiunge il carrello (che ora è adiacente al tavolo) e nove volte su 10 è in grado di trovare il cibo giusto in circa un quarto di secondo (velocità L2 = 3.6 GHz o ciclo di 0.28 ns).

In questo sistema, sareste in grado di lavorare a 3.6 GHz per il 99% del tempo - hit ratio L1 e L2 combinati - e rallentare a velocità RAM - l'attesa per cui arriva il piatto dalla cucina - solo l'1% del tempo, come prima. Con una memoria più veloce che opera a 800 MHz (1.25 ns), dovrete aspettare solo 1.25 secondi per far sì che il cibo arrivi dalla cucina. Se solo le prestazioni del ristorante aumentassero allo stesso ritmo del processore!