View Full Version : Dubbio tra 2 ram
Fabioamd87
10-04-2008, 10:46
Ora il mio pc ha un solo giga corsarir ddr 800mhz
Avrei da acquistare almeno 2 moduli e credo che quello che ho adesso lo tolgo.
sono indeciso tra
OCZ DDR2 6400 Platinum XTC 2GB Kit 49€
latenza: CL4-4-4-16
e
CORSAIR 6400 DDR2 XMS2 Twinx 51€
latenza: 5-5-5-12-2T
a occhio sembra sia piu veloce la combinazione OCZ però l'ultimo numerino va a vantaggio di CORSAIR
qualcuno saprebbe spiegarmi cosa singnificano?
Ciao.
Il Cas latency e' uno dei parametri fondamentali per le memorie. Per spiegarlo a fondo occorre sapere come le memorie sono fatte dentro.
Per semplificare, immagina solo di avere una grossa matrice, formata da righe e colonne.
Ogni indirizzo di RAM corrisponde ad una cella della matrice.
Tale indirizzo viene spaccato in 2 parti. Ovviamante sarebbe bene trattare numeri binari o esadecimali, ma non sapendo io quanto tu possa conoscere della matematica delle basi, usiamo pure il sistema decimale.
L'indirizzo 125752 viene p.es. spaccato in 2 parti
125 e 752.
125 sara' la riga a cui vuoi accedere, mentre 752 la colonna.
Per motivi fisici e tecnologici, la RAM non avra' fisicamente modo di accettare i 6 numeri insieme. Avra' tanti pin quanti servono per farne passare solo 3 per volta.
Prima fai passare il valore della riga, dopo un po' fai passare il valore della colonna, poi aspetti un po' e ti ritroverai il contenuto della cella negli appositi piedini della RAM.
Le tempistiche, i 4 valori, sono proprio legati a questi significati:
TRp - Quanto tempo devo attendere dalla fine del ciclo precedente prima di inziare il ciclo nuovo
TRCD - Quanto tempo devo tenere fermo il segnale di riga, ovvero l'indirizzo della riga che contiene il cassetto che mi interessa (occorre lasciare un po' di tempo alla RAM, affinche' legga quello che ho scritto sull'address bus)
CAS - Quanto tempo devo tenere fermo il segnale di colonna, che serve alla RAM per andare a trovare il cassetto che mi serve, nella riga prima selezionata. Equivale anche a quanto tempo devo aspettare, dopo aver settato l'indirizzo di colonna, prima di troverarmi il dato che volevo leggere sul Databus.
Durante i tempi precedenti il contenuto del databus e' flottante, impredicibile e inaffidabile. Ma dopo il tempo di CAS sono sicuro che la ram stara' scrivendo sul databus proprio il valore del cassetto che mi interessava, pronto per essere da me (microprocessore o periferica) letto e usato come piu' ritengo opportuno.
OK?
Bene, guarda caso le tempistiche delle RAM sono identificabili da 3 numeri fondamentali. Io p.es. ho delle 5-5-5.
Questi numeri non sono altro che i tempi sopra descritti, nell'ordine
CAS - TRCD -TRp
Il quarto valore invece e' il TRAS, il cui concetto e' molto simile al tempo totale di ciclo.
E' infatti tipicamente uguale alla somma degli altri 3.
Talvolta e' un po' piu' alto. In quei casi e' perche' la RAM ha bisogno di un po' di pausa aggiuntiva tra un ciclo di lettura e l'altro, tipicamente per i rinfreschi delle celle (le ram si scaricano anche quando sono accese)
Talvolta e' invece piu' basso, nelle RAM che hanno alcune caratteristiche di "Precharge", come la possibilita' di sottomettere il segnale di riga del ciclo successivo prima che venga terminato il ciclo corrente, perche' verra' bufferizzato "Da qualche parte" nella banco di RAM stessa (ma non ovviamente nel singolo chip, per chi ha capito la storia dei pin di indirizzo di cui sopra)
Riprendo il CAS latency, ovvero quanto "Fai passare prima di trovarti il contenuto della cella...". E' infatti il tempo (in cicli di clock della memoria) che aspetterai da quando hai dato l'indirizzo di colonna a quando potrai leggere l'output finale. Column Address Strobe.
Nella notazione a piu' numeri che identificano le prestazioni delle RAM, e' il primo.
E' il piu' importante perche' esistono cicli particolari chiamati BURST, durante i quali la memoria restituira' i valori di celle contigue appartenenti alla stessa riga, e il memory controller dovra' solo cambiare l'indirizzo di colonna, attendendo quindi solo il tempo di CAS.
Sono cicli molto performanti, e tutt'altro che rari in presenza di richeste come quelle dei DMA o delle Cache dei microprocessori.
Ovviamente da cio' capisci che piu' questo numero e' basso, piu' significa che la RAM restituisce velocemente il dato, e quindi che la latenza della memoria e' piu' bassa.
Ciau.
Fabioamd87
10-04-2008, 13:50
Innanzitutto grazie della spiegazione. Finirà sicuramente nei segnalibri di Firefox.
quindi ad un aprima occhiata sembrerebbe migliore il modello OCZ ma, se come dici l'ultimo valore rappresenta il tempo totale, e spesso equivale alla somma, questa somma è alterata di molto (per via dei refresh delle celle).
mentre nel caso corsair le cifre son piu alte ma la somma è nettamente inferiore, significa che utilizza una qualche tecnologia burst per immagazzinare indirizzi successivi mentre opera come dicevi?
quindi direi che la OCZ non è prevista di questa tecnologia mentre la corsair si?
ma alla fine una cosa non mi è chiara, il tempo totale per ottenre un dato è 4+4+4 ? cioè prima compie un operazione da 4ms (son ms?) poi un altra e un altra ancora? e nel caso ci siano anche da sommare i tempi di refrash?
ultimo dubbio, piu tempo si attende tra un ciclo e l'altro piu c'è sicurezza che il dato non venga alterato?
quindi in teoria la corsair ha tempi singolo molto alti (sicurezza) ma tempi totali bassi (velocità)
è giusto questo ragionamento?
Innanzitutto grazie della spiegazione. Finirà sicuramente nei segnalibri di Firefox.
quindi ad un aprima occhiata sembrerebbe migliore il modello OCZ ma, se come dici l'ultimo valore rappresenta il tempo totale, e spesso equivale alla somma, questa somma è alterata di molto (per via dei refresh delle celle).
mentre nel caso corsair le cifre son piu alte ma la somma è nettamente inferiore, significa che utilizza una qualche tecnologia burst per immagazzinare indirizzi successivi mentre opera come dicevi?
L'indirizzo successivo. Solo uno.
Quando una RAM ha un tempo di ciclo (il quarto valore) piu' basso, allora sara' piu' performante durante gli accessi casuali sparsi (direi in presenza di tanti processi diversi, ma non solo e non necessariamente)
Quando una RAM ha un tempo di CAS piu' basso, allora sara' piu' performante durante i BURST (in presenza di accessi contigui, es: DMA con schede grafiche o grosse moli di dato "uniforme" da trattare, come le immagini)
ma alla fine una cosa non mi è chiara, il tempo totale per ottenre un dato è 4+4+4 ? cioè prima compie un operazione da 4ms (son ms?) poi un altra e un altra ancora? e nel caso ci siano anche da sommare i tempi di refrash?
Innanzitutto non sono millisecondi, ma numero di cicli alla frequenza del BUS della RAM.
Le DDR2-800 p.es. hanno una frequenza di bus da 400MHz.
4 sulle tempistiche significa
4/400MHz = 4/400.000.000 = 10 ns (nanosecondi)
Esatto comunque, si sommano. Ma per sapere il tempo di ciclo si legge il quarto valore.
ultimo dubbio, piu tempo si attende tra un ciclo e l'altro piu c'è sicurezza che il dato non venga alterato?
quindi in teoria la corsair ha tempi singolo molto alti (sicurezza) ma tempi totali bassi (velocità)
è giusto questo ragionamento?
No, non e' giusto.
Se si attende il tempo giusto c'e' la certezza che il dato non sia alterato. Non e' necessario attendere di piu'.
Qualora fosse invece si attendesse troppo poco, a parte un minimo di gioco che puo' essere talvolta rosicato durante gli overclock, i dati sarebbero "Sempre" errati o inaffidabili, e il sistema diventerebbe instabile in men che non si dica, e crasherebbe praticamente immediatamente.
Fabioamd87
10-04-2008, 14:13
capito perfettamente.
ora devo solo capire se faccio uso di dati salvati in celle di colonna differente o uguale.
Un po influisce anche il tipo di scheduler del sistema operativo no?
capito perfettamente.
ora devo solo capire se faccio uso di dati salvati in celle di colonna differente o uguale.
Un po influisce anche il tipo di scheduler del sistema operativo no?
Celle della stessa "riga", o differente.
Lo scheduler poveretto prescinde, lui non ha molta voce in capitolo, non sa come sono organizzate le RAM internamente.
Si tende di piu' ad ottimizzare gli allineamenti della cache dei processori, che e' nota a priori, piuttosto che l'accesso alla stessa riga di RAM, che invece e' ignota.
Direi che influsice di piu' proprio il tipo di dati trattato.
Una singola applicazione (gioco?) fa piu' uso di BURST di un server con programmi multi-processo.
Ma non e' comunque detto.
comunque si tratta di cercare proprio il pelo nell'uovo, essendo che gli accessi alla RAM sono mascehrati dalla cache, che ha un hit-ratio del 85% (letto 86% qualche mese fa).
Quando si cerca di ottimizzare la RAM si ottimizzano solo i restanti 15% delle istruzioni che fanno uso di memoria. Neppure tutte le istruzioni macchina fanno uso di memoria.
Mi speigo, se riesci ad ottenere un miglioramento del 10% sull'uso della memoria, il tuo sistema migliorera' le istruzioni che hanno a che fare con la memoria solo del 10% * 15% = 1.5%
E come detto neppure tutte fanno uso di memoria.
Pelucchi sparuti direi.
Meglio comprare un paio di GB in piu' (e usarli), perche' invece quando entra in gioco il file di scambio le prestazioni sono 1000 volte piu' lente.
Fabioamd87
10-04-2008, 19:30
mah con il mio uso desktop non credo di arrivare a saturare molta ram
solo che adesso non uso il dual channel avendo un solo giga e mi pare davvero un peccato, credo che cmq usando il dual channel con 2 memorie di cui sopra raggiungerei cmq velocità maggiori di adesso.
io son piu a favore poca ram ma veloce, l'importante è ridurne l'uso dalle applicazioni usandole con criterio.
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.