|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Jun 2005
Messaggi: 4057
|
Relazione tra frequenza ram e FSB del processore
Per spremere al massimo una ram DDR2-800 ci vuole un processore con FSB di 800 MHz o non c'è relazione tra le 2 cose?
Un processore Intel Core 2 Duo con FSB 1333 MHz sarà sprecato con questo tipo di ram? E una DDR2-1066 è sprecata con un processore con FSB 800 MHz? Vedo che gli Athlon X2 hanno ben volentieri 2000 MHz di FSB! ![]() Ma non mi pare di vedere in commercio moduli "DDR2-2000" (...o come si chiamerebbero). Questi processori sono sprecati con delle DDR2-800 o DDR2-1066?
__________________
>>>>> Benchmark di velocità in lettura di tutte le periferiche di memorizzazione <<<<<
OCCHIO A VISTA E A WINDOWS 7! - HANNO DECISO DI NON FIDARSI DI TE! GUARDA IL VIDEO Uno dei difetti dell'open source è la troppa libertà, e, ad oggi, il decentramento delle energie. El pueblo unido jamás será vencido! |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Apr 2007
Messaggi: 1791
|
le cpu amd funzionano in un modo completamente diverso e anche molto astruso.
Le cpu intel funzionano in modo molto semplice invece: se l fsb nominale è 800,per via della tecnologia "quad pumped",nella realtà l fsb sarà 200 per le ram,invece,se la frequenza nominale è 800,per via della tecnologia dual channel,nella realtà la frequenza reale sarà 400. per farti un esempio concreto,i vecchi core2 della serie e6x00 hanno bus a 1066,quindi fsb a 266,quindi lavorano in sincrono con le ram ddr2 533 gli intel e6x50 invece sono 1333,quindi lavorano in sincrono con le ram 667. Avere le ram in sincrono è obbligatorio per non avere un decadimento delle prestazioni,ma ciò non vieta che la ram possa essere piu alta. In questo caso avrai un moltiplicatore e non un divisore e va bene lostesso. Da niubbo a niubbo spero che ci siamo capiti xD |
![]() |
![]() |
![]() |
#3 | ||||
Senior Member
Iscritto dal: Jun 2005
Messaggi: 4057
|
Quote:
Quote:
Non ho comunque capito perché la DDR2 raddoppia la velocità rispetto alla DDR, e se questo raddoppiamento è dovuto al dual channel (che comunque è presente anche nelle DDR1, quindi tenderei ad escluderlo). Quote:
![]() Quote:
![]()
__________________
>>>>> Benchmark di velocità in lettura di tutte le periferiche di memorizzazione <<<<<
OCCHIO A VISTA E A WINDOWS 7! - HANNO DECISO DI NON FIDARSI DI TE! GUARDA IL VIDEO Uno dei difetti dell'open source è la troppa libertà, e, ad oggi, il decentramento delle energie. El pueblo unido jamás será vencido! |
||||
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Jun 2005
Messaggi: 4057
|
up
__________________
>>>>> Benchmark di velocità in lettura di tutte le periferiche di memorizzazione <<<<<
OCCHIO A VISTA E A WINDOWS 7! - HANNO DECISO DI NON FIDARSI DI TE! GUARDA IL VIDEO Uno dei difetti dell'open source è la troppa libertà, e, ad oggi, il decentramento delle energie. El pueblo unido jamás será vencido! |
![]() |
![]() |
![]() |
#5 | |||
Senior Member
Iscritto dal: May 2004
Città: Londra (Torino)
Messaggi: 3692
|
Quote:
Se poi tieni conto che esiste anche la tecnologia dual channel per le RAM, allora e' sufficiente una DDR-400 oppure DDR2-400 in dual channel, per saturare un FSB da 800MT/s Quote:
Quote:
Se sono montate in dual channel non ci sono problemi fino a 1600MT/s
__________________
Se pensi che il tuo codice sia troppo complesso da capire senza commenti, e' segno che molto probabilmente il tuo codice e' semplicemente mal scritto. E se pensi di avere bisogno di un nuovo commento, significa che ti manca almeno un test. |
|||
![]() |
![]() |
![]() |
#6 | |||
Senior Member
Iscritto dal: Jun 2005
Messaggi: 4057
|
Quote:
Quote:
Comunque, in relazione a quanto hai detto prima, la risposta alla mia domanda dovrebbe essere sì (e se messa in dual channel anche parecchio!).
__________________
>>>>> Benchmark di velocità in lettura di tutte le periferiche di memorizzazione <<<<<
OCCHIO A VISTA E A WINDOWS 7! - HANNO DECISO DI NON FIDARSI DI TE! GUARDA IL VIDEO Uno dei difetti dell'open source è la troppa libertà, e, ad oggi, il decentramento delle energie. El pueblo unido jamás será vencido! |
|||
![]() |
![]() |
![]() |
#7 | ||
Senior Member
Iscritto dal: May 2004
Città: Londra (Torino)
Messaggi: 3692
|
Quote:
E' scorretto usare MHz in questi casi, perche' p.es. i Megahertz di una DDR2-800 sono solo 400MHz, ma sono 800MT/s Essendo il Databus delle RAM 64bit=8Byte, ne consegue che hai un trasferimento di 800*8=6400MB/s Anche per i processori, p.es io ho un E6600, la cui frequenza di bus e' 266MHz. L'FSB Trasferisce 4 volte per ciascun colpo di clock, quindi formalmente e' a 1066MT/s (e non Megahertz, che restano 266) Quote:
E' sottosfruttata e anche di parecchio. In dual channel praticamente dorme. Ma mentre questo caso non da' problemi di performance complessivi, il caso opposto si'. La RAM e' il produttore, la CPU e' il consumatore. Fintantoche' produco piu' in fretta di quanto consumo, va bene, al limite produrro' necessariamente di meno. Il contrario invece e' il collo di bottiglia.
__________________
Se pensi che il tuo codice sia troppo complesso da capire senza commenti, e' segno che molto probabilmente il tuo codice e' semplicemente mal scritto. E se pensi di avere bisogno di un nuovo commento, significa che ti manca almeno un test. |
||
![]() |
![]() |
![]() |
#8 | |||
Senior Member
Iscritto dal: Jun 2005
Messaggi: 4057
|
Quote:
Quote:
![]() ![]() A proposito, non capisco questo passo preso da Wikipedia: Poiché i dati sono trasferiti 8 byte per volta (il bus è sempre a 64 bit) una RAM DDR dà una velocità di trasferimento VT di: VT = BM · 2 · 8 dove BM è la velocità di clock del bus di memoria, 2 è il numero di invii per ciclo di clock, 8 è il numero di byte trasferiti ad ogni invio. Quindi con una frequenza di clock di 100MHz, una DDR SDRAM dà una velocità massima di trasferimento di quasi 1526 MB/s. http://it.wikipedia.org/wiki/DDR_SDRAM Perché sono quasi 1526 e non 1600 MB? Eppure ricordo che una volta l'avevo letta proprio questa pagina e l'avevo capita! ![]() Quote:
![]()
__________________
>>>>> Benchmark di velocità in lettura di tutte le periferiche di memorizzazione <<<<<
OCCHIO A VISTA E A WINDOWS 7! - HANNO DECISO DI NON FIDARSI DI TE! GUARDA IL VIDEO Uno dei difetti dell'open source è la troppa libertà, e, ad oggi, il decentramento delle energie. El pueblo unido jamás será vencido! Ultima modifica di havanalocobandicoot : 27-02-2008 alle 20:49. |
|||
![]() |
![]() |
![]() |
#9 | |||
Senior Member
Iscritto dal: May 2004
Città: Londra (Torino)
Messaggi: 3692
|
Quote:
Un modulo di DDR2 e' caratterizzato da 3 valori: - Frequenza del singolo chip di memoria. P.es Nelle DDR2-800 e' 200MHz - Frequenza del bus, ovvero frequenza con cui il memory controller dovra' dialogare con il modulo. P.es. nelle DDR2-800 e' 400MHz. Nelle DDR2 tale frequenza e' il doppio della frequenza di ciascun chip, mentre nelle DDR tale frequenza e' esattamente uguale alla frequenza di ciascun chip (Wikipedia si riferisce a questo?) - Velocita' di trasferimento. Nella DDR2-800 e' 800MT/s. Le DDR2 (e anche le DDR) Trasferiscono i dati sia sul fronte di salita che su quello di discesa di ciascun colpo di clock. Quindi una frequenza di 400MHz corrisponde a 800MT/s (di qui il nome DDR2-800). Quote:
64 fili, ovvero 64 possibili valori 0 o 1 su ciascun filo. tali fili vengono raggruppati logicamente in insiemi di 8bit = 1 byte. Vengono quindi trasferiti 64bit/8bit=8byte per volta. Se prendi quindi 800MT/s del chip DDR2-800 e lo moltiplichi per 8byte ottieni 6400MB/s. Le DDR2-800 sono infatti conosciute anche come PC2-6400 Quote:
poi, a seconda che venga considerato 1KB=1024byte, oppure 1KB=1000byte, allora questo valore scritto in GB puo' cambiare, ma il valore corretto e' quello lungo qui sopra. La dicitura corretta vorrebbe 1KB=1000byte, 1GB=1000MByte Corretta perche' il prefisso K significherebbe 1000 dappertutto, e solo in informatica e neanche dappertutto significherebbe 1024. Neanche dappertutto perche' appunto i 100MHz di cui sopra sono effettivamente 100*1000*1000=100.000.000 colpi di clock al secondo, e non 100*1024*1024=104.857.600 colpi di clock al secondo... Resta pero' erroneamente (personalmente io preferisco cosi') che per noi il GB e' 1024MB Pertanto La dicitura corretta per il trasferimento delle DDR-200 sarebbe quindi 1.600.000.000 / (1024*1024) = 1525.878 MB/s, valore che wikipedia dice, oppure 1.6GiB/s = 1600MiB/s La dicitura GiB, leggasi GibiByte al secondo, sarebbe Miliardi di Byte al secondo, mentre MiB/s sarebbe MibiByte al secondo, ovvero Milioni di Byte al secondo. E il problema analogo a quando vai a comprare gli hard disk, ovvero alla discrepanza nella capacita' tra il valore dichiarato e quanto invece in realta' puoi effettivamente usare.
__________________
Se pensi che il tuo codice sia troppo complesso da capire senza commenti, e' segno che molto probabilmente il tuo codice e' semplicemente mal scritto. E se pensi di avere bisogno di un nuovo commento, significa che ti manca almeno un test. Ultima modifica di gugoXX : 27-02-2008 alle 21:31. |
|||
![]() |
![]() |
![]() |
#10 | |||||
Senior Member
Iscritto dal: Jun 2005
Messaggi: 4057
|
Quote:
http://it.wikipedia.org/wiki/DDR2 a circà metà pagina. Quote:
Il memory controller sta sulla scheda madre? E' un chip? Come mai se il chip è ad una determinata velocità, riesce a dialogare al doppio? Quote:
Quote:
![]() Tu non ci credi se ti dico che prima quel valore era 1562 (derivato probabilmente da un calcolo errato 1.600.000.000 / 1024 / 1000 ), e che sono stato io a correggerlo non so quanto tempo fa! ![]() Quote:
E poi, perché mai 1 kB viene considerato 1024 byte e non 1000? Sarebbe tanto strano se Windows mi chiamasse kilobyte i mille byte? Che senso ha calcolare i byte in sistema binario e non in decimale? Lui calcola in binario? Ok... ma almeno che mi desse i risultati nella mia lingua cioè il decimale... Lo so, mi sfuggirà qualcosa.
__________________
>>>>> Benchmark di velocità in lettura di tutte le periferiche di memorizzazione <<<<<
OCCHIO A VISTA E A WINDOWS 7! - HANNO DECISO DI NON FIDARSI DI TE! GUARDA IL VIDEO Uno dei difetti dell'open source è la troppa libertà, e, ad oggi, il decentramento delle energie. El pueblo unido jamás será vencido! Ultima modifica di havanalocobandicoot : 27-02-2008 alle 22:34. |
|||||
![]() |
![]() |
![]() |
#11 | |||
Senior Member
Iscritto dal: May 2004
Città: Londra (Torino)
Messaggi: 3692
|
Quote:
Ogni colpo di clock il segnale del clock passa da 0 a X volt (questo X dipende dal modulo di memoria, e puo' essere fissato anche sul BIOS), e poi passa di nuovo da X Volt a 0. Classicamente il trasferimento coincideve con il passaggio del clock da 0 a X, ovvero sul fronte di salita del clock. Quando il clock saliva, allora voleva dire che il memory controller poteva "campionare", ovver leggere i singoli bit dei 64bit del databus, perche' in quel momento era sicuro di leggere dati stabili e quinidi valori corretti. Sulle DDR invece i valori vengono letti sia sul fronte di salita che su quello di discesa. Per questo i MT/s sono esattamente il doppio dei MHz del bus della memoria. Quote:
Quote:
I primi chip di RAM infatti contenevano esattamente 1024byte. Si andava quindi a comprare "Un Kilo di Byte", come al mercato.
__________________
Se pensi che il tuo codice sia troppo complesso da capire senza commenti, e' segno che molto probabilmente il tuo codice e' semplicemente mal scritto. E se pensi di avere bisogno di un nuovo commento, significa che ti manca almeno un test. |
|||
![]() |
![]() |
![]() |
#12 | |||
Senior Member
Iscritto dal: Jun 2005
Messaggi: 4057
|
Quote:
Un modulo di DDR2 e' caratterizzato da 3 valori: - Frequenza del singolo chip di memoria. P.es Nelle DDR2-800 e' 200MHz - Frequenza del bus, ovvero frequenza con cui il memory controller dovra' dialogare con il modulo. P.es. nelle DDR2-800 e' 400MHz. Nelle DDR2 tale frequenza e' il doppio della frequenza di ciascun chip, mentre nelle DDR tale frequenza e' esattamente uguale alla frequenza di ciascun chip (Wikipedia si riferisce a questo?) e mi chiedevo come fa una DDR2 a dialogare al doppio di una DDR. Quote:
Quote:
![]()
__________________
>>>>> Benchmark di velocità in lettura di tutte le periferiche di memorizzazione <<<<<
OCCHIO A VISTA E A WINDOWS 7! - HANNO DECISO DI NON FIDARSI DI TE! GUARDA IL VIDEO Uno dei difetti dell'open source è la troppa libertà, e, ad oggi, il decentramento delle energie. El pueblo unido jamás será vencido! Ultima modifica di havanalocobandicoot : 28-02-2008 alle 15:12. |
|||
![]() |
![]() |
![]() |
#13 | ||
Senior Member
Iscritto dal: May 2004
Città: Londra (Torino)
Messaggi: 3692
|
Quote:
Quote:
Cosa e' una RAM? In pratica inizia ad immaginarti una RAM come una fila lunghissima di cassetti. Puoi mettere delle cose dentro ciascun cassetto, oppure puoi andarle e prendere. Ovviamente non sono cassetti, ma sono celle di memoria, e le cose non sono nient'altro che numeri. Puoi andare a scrivere un numero in una cella di memoria, oppure puoi andare a leggerlo. Come fai a dire alla RAM su quale cassetto vuoi andare ad operare? Ciascun cassetto e' etichettato con un suo numero particolare. Avrai il cassetto numero 1, il numero 2, il numero 3, e cosi via. Non si sbaglia piu' di tanto se si dice che in una RAM da 1GB c'e' un miliardo di cassetti (molti meno, ma l'ordine di grandezza per il nostro discorso poco cambia). Ciascun cassetto con la sua etichetta e il suo numero dentro contenuto. Dirai quindi alla RAM: Dammi il contenuto del cassetto 141.546. E lei ti dira' il numero contenuto. Dammi il contenuto del cassetto 563412. E lei ti dira' il contenuto. Scrivi nel cassetto 166332 il valore 18. E lei mettera' il valore 18 in quel cassetto, pronto per essere letto successivamente, fermo e fisso fino a quando non lo sovrascriverai oppure fino a quando non spegnerai il computer. Che cos'e' questo numero, es:166332? Non e' nient'altro che l'indirizzo di quella cella di memoria. Ora, come vedi in questo dialogo tra me e la ram ci sono 2 numeri. Uno e' questo indirizzo (166332), l'altro e' il numero contenuto (18). Ebbene, nel dialogo con la RAM se voglio leggere il contenuto di tale cella dovro' dire in qualche modo questo indirizzo. Ebbene, l'indirizzo lo andro' a mettere sui piedini della RAM che si chiamano Address Bus, il contenuto lo andro' a leggere sui piedini che si chiamano DataBus. E' chiaro fin qui? Poi, ciascun piedino puo' assumere solo valori 0 o 1. Pertanto se il mio addressbus avesse un solo piedino, potrei indirizzare solo 2 celle Il cassetto numero 0 oppure il cassetto numero 1 Se avessi 2 pin, potrei indirizzare 4 celle: 00 - cassetto numero 0 01 - cassetto numero 1 10 - cassetto numero 2 11 - cassetto numero 3 Basta approfondire un minimo il concetto matematico di "base", e soprattutto la base2, per vedere che ogni volta che aggiungo un PIN a questo addressbus aumenta esponenzialmente, con base appunto 2. Se avessi 10 piedini di addressbus, potrei indirizzare fino a 2^10 = 1024 cassetti diversi. Un Kilobyte. e' chiaro fin qui? Bene. In realta' come hai capito ci sono 2 modalita' di lavoro. O scrivo dentro la RAM, oppure leggo dalla RAM. Una cosa sola per volta. Quando leggo dovro' indicare l'indirizzo del cassetto che mi interessa, e dopo un pochino di tempo che la ram lo va a cercare, mi trovero' il numero contenuto in questo cassetto sul Databus se invece voglio leggere, dovro' mettere sia l'indirizzo del cassetto sull'address bus, sia il dato che voglio scriverci dentro sul databus, dovro' dire alla memoria che voglio scrivere e lei si occupera' di cercare il cassetto e sostituire il vecchio valore con quello appena dato. e' chiaro fin qui? Bene, perche' c'e' di piu'. In realta' le memorie non sono delle file di cassetti, ma sono delle matrici, come quelle della battaglia navale. Ogni cassetto ha in realta' un indirizzo di riga, e un indirizzo di colonna. Come le celle della battaglia navale appunto: Vorrei il contenuto del cassetto H-8, oppure quello del cassetto I-9 E questo per ragioni tecnologiche, perche' e' costoso portare tanti pin di indirizzo fuori dai chip di RAM. Cosa si e' pensato? Semplicemente di spaccare ciascun indirizzo in 2. Prima dovro' dire alla RAM qual e' la riga che mi interessa, poi sempre sugli stessi piedini dovro' dire qual e' la colonna che mi interessa. Poi aspettero' un po' e sul Databus magicamente mi comparira' il dato che stavo cercando. E' chiaro fin qui? Come avrai capito ci sono 3 tempi quindi TRp - 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) TRCD - 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 CAS (oppure CL) - Dopo quanto tempo mi trovero' il dato che volevo leggere sul Databus. Durante questi cicli 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 E' piu' chiaro? No, perche' c'e' ancora altro... No eh ![]()
__________________
Se pensi che il tuo codice sia troppo complesso da capire senza commenti, e' segno che molto probabilmente il tuo codice e' semplicemente mal scritto. E se pensi di avere bisogno di un nuovo commento, significa che ti manca almeno un test. Ultima modifica di gugoXX : 28-02-2008 alle 16:01. Motivo: Invertito TRCD e TRp |
||
![]() |
![]() |
![]() |
#14 | |||||
Senior Member
Iscritto dal: Jun 2005
Messaggi: 4057
|
E invece sì. Spiegato così è fantastico! Ti voglio come professore di analisi!
![]() ![]() Ma si trovano libri scritti in questo modo? Qualcosa tipo "Figlio mio che hai 10 anni, il computer funziona così". ![]() Mi è tutto abbastanza chiaro, tranne qualcosa. Quote:
Mi verrebbe da chiedere perché proprio 184 e 240... In che modo li assume? Tipo se passa corrente è 1, viceversa è zero? E se quando passa corrente passa il dato, quando non passa corrente come fa la ram a capire che sto inviando il dato 0? Quote:
Quote:
Quote:
Quote:
![]() No, davvero, ti ringrazio molto per la tua immensa pazienza. ![]()
__________________
>>>>> Benchmark di velocità in lettura di tutte le periferiche di memorizzazione <<<<<
OCCHIO A VISTA E A WINDOWS 7! - HANNO DECISO DI NON FIDARSI DI TE! GUARDA IL VIDEO Uno dei difetti dell'open source è la troppa libertà, e, ad oggi, il decentramento delle energie. El pueblo unido jamás será vencido! |
|||||
![]() |
![]() |
![]() |
#15 | |||||
Senior Member
Iscritto dal: May 2004
Città: Londra (Torino)
Messaggi: 3692
|
Quote:
Quote:
Il fatto che quello che hai scritto abbia o meno un significato, e che quindi la RAM debba o meno fare qualcosa, dipende da altri piedini (se ce ne sono 184 o 240, a qualcosa serviranno...) Es: immagina altri 2 piedini di modalita' 00 - La RAM non deve fare nulla 01 - La RAM deve operare in scrittura 10 - La RAM deve operare in lettura 11 - La RAM non deve fare nulla Non e' cosi' proprio cosi', ma e' vicino alla realta' giusto per farti capire. Immagina una RAM con 256 celle. Per poter indirizzare 256 celle ho bisogno di 8 pin. Immagina che ciascuna cella possa contenere un numero da 0 a 15. Ho bisogno di 4 pin. Supponi quindi che i piedini siano questi: 2 di modalita, 8 di indirizzo e 4 di dato abbiamo detto modalita' - AddressBus - Databus MM - AAAAAAAA - DDDD Quando voglio leggere cosa c'e' all'indirizzo 17, che in binario si scrive 00010001, allora dovro' pilotare i voltaggi come segue: 10 - 00010001 - XXXX (Dove X sta per non importa, qualunque cosa sia, che sia 0 o 1 la RAM non lo usera'. Per intenderci, non potra' non esserci qualcosa che sia 0 oppure 1, ma alla RAM non interessera') e dopo un po' (CAS) la RAM mi risponderebbe sui piedini che sono XXXX del Databus, scrivendo il contenuto della cella 17. Se invece volessi scrivere il numero 6, sempre sull'indirizzo 17, poiche' 6 si scrive 0110 in binario, dovro' pilotare la RAM cosi': 10 - 00010001 - 0110 Se invece non devo fare nulla, bastera' che piloti la RAM cosi': 00 - XXXXXXXX - XXXX oppure 11 - XXXXXXXX - XXXX Nel nostro esempio sarebbe lo stesso. Quote:
MM - A - DDDD Per leggere il contenuto della cella 0, dovro' mandare 10 - 0 - XXXX e poi aspettare un CAS di tempo e leggere il databus. Per scrivere 6 nella cella 1, dovro' mandare 01 - 1 - 0101 Quote:
Occhio pero' a non confondere, qui stiamo parlando a bassissimo livello, stiamo parlando dei CHIP di memoria, non dei moduli. Il discorso dei moduli e' piu' complesso. Comunque si', per 1GB di memoria servirebbero 30 piedini. In realta' nelle DDR2 (e nelle DDR e DDR3) per 1GB ne servirebbero solo 27, perche' gli ultimi 3 sono considerati implicitamente sempre a 0. Potro' infatti leggere e scrivere a botte di 8byte. E' come se invece che avere 1miliardo di celle, ciascuna delle quali potesse contenere un numero da 0 a 255, ovvero 8 bit=1BYTE, per un totale di 1GB, io avessi solo 125milioni di celle, ma dentro ciascuna delle quali io potessi scrivere numeri che vanno da 0 a 2^64 = 18446744073709551615, ovvero celle da 64bit. 125.000.000 * 64/8 fa di nuovo 1GB. In realta', per il discorso fatto prima sulla matrice, potrei averne anche solo 14 di pin. Spacchiamo l'indirizzo in 2, consideriamo i primi 14 bit come indirizzo di riga, e li passiamo alla RAM poi passiamo i restanti 13bit, considerati come indirizzo di colonna. Poi aspettiamo un po' e leggiamo il contenuto sul DataBus. Quote:
RAS precharge = TRP TRAS e' in realta' un valore che deve essere almeno la somma degli altri 3. E' la somma degli altri 3 piu' un certo pelino di pausa. La vogliamo lasciare un po' in pace la RAM? In realta' non stara' senza far nulla. Cosa deve fare la RAM in quel tempo rimanente? Purtroppo la storiella che ti avevo detto prima, relativamente al fatto che una cella di RAM rimane stabile da quando la scrivo fino a che il computer non si spegne, non e' proprio vera. Le celle di ram sono condensatori, e si scaricano. Ogni tanto occorre ricaricarli. Vengono caricati quando li scrivo (ovviamente) ma vengono rinfrescati anche quando li leggo. Quel tempo in piu' di differenza tra TRCD+TRP+CAS e TRAS, e' il tempo che bisogna lasciare alla RAM per ricaricare la riga interessata dalla nostra lettura, perche' durante la lettura i condensatori li abbiamo scaricati (per leggere il contenuto della cella, i condensatori elettricamente si scaricano sul DataBus, ed occorre quindi rimpiazzare i valori appena letti)
__________________
Se pensi che il tuo codice sia troppo complesso da capire senza commenti, e' segno che molto probabilmente il tuo codice e' semplicemente mal scritto. E se pensi di avere bisogno di un nuovo commento, significa che ti manca almeno un test. Ultima modifica di gugoXX : 28-02-2008 alle 17:30. |
|||||
![]() |
![]() |
![]() |
#16 | |
Senior Member
Iscritto dal: Jun 2001
Città: Milano
Messaggi: 3257
|
Quote:
Ciao, ho ripescato per caso (facendo ricerche su un modello di DDR2...) questo thread....volevo solo farti i complimenti per come hai spiegato, in modo molto semplice e comprensibile, un discorso tecnico complicato......complimenti veramente, ineccepibile la spiegazione!!!! Dovresti insegnare..... ![]() |
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 11:04.