|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: Oct 2005
Messaggi: 241
|
meglio molta cache L2 o usare memoria ram ondie?
credo che ormai la tecnologia produttiva sia ora pronta ad integrare direttamnte on die una discreta quantità di memoria principale
facendo un ragionamento molto a "spanne" si può dire che anzichè integrare 4MB di cache di secondo livello (come nei pentium D) si potrebbe benissimo utilizzare 1 MB (512kBx2) e lo spazio su die risparmiato utilizzarlo per 3x5 MB di memoria principale da utilizzare come buffer verso la ram di sistema. questo perchè per realizzare un bit di cache servono 5 transistor mentre solo uno per una cella di ram quindi nello spazio di 3 MB di cache stanno 15 MB di ram già oggi si potrebbero avere circa 16 MB di ram velocissima (anche in sincrono con la freq di clock) e con latenze di accesso veramente ridotte: si può approssimare che gli amd grazie al memory controller integrato riducano di un fattore 2 la latenza essendo circa la metà la distanza tra memoria e cpu. Per quei 16 MB di memoria la latenza penso potrebbe ridursi di un fattore almeno 10 Si è visto che le prestazioni migliorino molto diminuendo la latenza verso la ram (nell'architettura AMD ma credo anche nel pentium M) quindi credo che l'effetto sia notevole mentre 2 MB di L2 cache non migliorano molto le performance anzi spesso 512kB o 256kB in alcune applicazioni sono anche meglio. oltretutto all'nterno di un chip non si hanno grossi problemi ad aumentare il parallelismo (vedi ring da 512 bit dell'ultima versione delle gpu ati) considerando che ci sono processori con memory controller integrato la cosa non avrebbe un costo così elevato e con il passaggio a 65nm il tutto si potrebbe raddoppiare: 4 CPU 4x512kB di cache di secondo livello 32MB di ram buffer direi l'ideale per il maggior bisogno di banda di un multicore... scusate se sono un po' offtopic ma volevo sapere il vostro parere sulle mie affermazioni secondo me è solo una questione di tempo: ricordo che sul P2 la cache era esterna... |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Feb 2005
Messaggi: 736
|
Si il tuo ragionamento fila potrebbe essere una soluzione buona!
__________________
Case Cooler Master Cavalier - Enermax Liberty 500W - Intel Core 2 Duo e6420 - 2X1GB Corsair XMS2 675MHz- Asus P5B-E - Asus Geforce 8500GT - WD Caviar 320GB-Mandriva 2007.1 Spring X86_64 |
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Jan 2001
Città: Treviso
Messaggi: 152
|
Ho letto il tuo commento alla news, ma avendo notato questa discussione ti rispondo qui
Ti sei chiesto perchè per la cache servono più transistor? Cerco di darti dei motivi per i quali l'integrazione della ram on die non dia i vantaggi sperati, la cache è una memoria di tipo statico non ha bisogno di refresh periodici per mantenere i dati, la memoria è di tipo dinamico, quindi ha bisogno di refresh, e quando c'è un refresh non si può accedere ai dati... Per sapere se un dato è in cache bisogna effettuare un controllo in parallelo dei tag per verificare se l'indirizzo di memoria di cui si ha bisogno è già in uno degli n blocchi (memoria cache associativa a n vie, mentre una memoria completamente associativa copia solamente una word del processore è non un blocco contiguo ma è anche più costosa, cmq i P4 e gli Athlon hanno cache associativa e n vie), qundi la realizzaione di ram con queste caratteristiche richiede più transistor. Aggiungere un buffer di ram (tra cache e memoria principale) aumenterebbe il tempo di accesso a un dato in memoria (in caso di cache miss), perchè si drovrebbe prendere il dato dalla ram principale e portarlo nel buffer, dal buffer portarlo nella L2 e poi dalla L2 al proc (nela L1), senza il buffer si sarebbe saltato un passagio. Il fatto più importante è che già con le cache attuali si hanno fattori di cache hit (dati che stanno già in cache) abbastanza elevati, tiene presente che un dato (meglio un indirizzo di memoria) prima di finire in cache deve comunque essere prima letto dalla ram e che l'aggiunta di un buffer complica il procedimento di aggiornamento dei dati in memoria principale (quando questi sono già stati elaborati ma non ancora riscritti in ram), questo è un problema ancora più sentito in un sistema con più processori (o core). Finisco dicendo che normalmente un buffer è a lettura/scrittura sequenziale (le politiche più semplici sono LIFO e FIFO), quello a cui pensi tu è usare della DRAM per realizzare una cache, ma qusto come detto prima non è conveniente per il discorso refresh e perchè non c'è bisogno di grandi dimensioni ma di velocità molto elevate per non far aspettare il processore (già adesso il cache hit è elevato). Spero di non aver scritto delle stupidate, ho seguito il corso di architettura degli elaboratori più di 2 anni fa... Poi se vuoi possiamo discutere del perchè ci sono processori con cache di 3 livello... Ciao |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 20:11.



















