Dialogo tra RAM, CPU e altri "pezzi" del pc: dubbi
Inviato: dom gen 06, 2008 5:34 pm
Heilá gente,
vorrei sapere se qualcuno é in grado di far luce su alcuni miei dubbi "tecnici" riguardanti la CPU e la memoria RAM, in particolare sul funzionamento del memory controller degli Athlon64, lo scambio di dati CPU-RAM (principalmente con DDR e DDR2), e il dialogo tra memorie RAM e altri "pezzi" del calcolatore.
Cerco di arrivare ai miei dubbi partendo da lontano.
Mi pare di aver capito che, con i vecchi AthlonXP, lo scambio di dati CPU-RAM avvenisse attraverso il NorthBridge, ad una frequenza pari a quella dell'FSB, o Front Side Bus, a sua volta pari alla frequenza di clock "base" del processore moltiplicata per due; questa frequenza dell'FSB (che poi una frequenza vera e propria non era, bensí si trattava di un "data transfer" in MT/s, pari -in valore- al doppio della frequenza di clock, perché veniva giá sfruttato il doppio trasferimento di dati per ciclo di clock -cioé la tecnologia Double Data Rate) coincideva esattamente con quella della memoria ram (tutti i nuovi AthlonXP supportavano giá le DDR), con "data transfer" pari -sempre in valore- al doppio della frequenza del buffer I/O (che conicideva con la frequenza di lavoro del chip di memoria).
La frequenza "di lavoro" del FSB era anche sfruttata in molti altri canali di "dialogo" come l'AGP, quello delle porte PCI, e via dicendo.
Con l'avvento degli Athlon64 le cose si sono complicate, per via dell'introduzione, all'interno del processore stesso, del memory controller integrato (che prima era solitamente presente nel NorthBridge; questo dispositivo serve a mettere in comunicazione diretta la CPU con la memoria RAM), e dell'Hyper Transport (canale diretto di interfaccia CPU-NorthBridge).
Per finire, da pochi anni sono arrivati i dual core, che hanno permesso l'implementazione (o -per meglio dire- il pieno sfruttamento) delle DDR2, che, a fronte di frequenze di chip praticamente pari a quelle delle DDR, grazie ad alcuni espedienti elettronici, sono peró arrivate ad avere un clock del buffer I/O doppio rispetto alle sorelle minori, e pertanto anche un "data transfer" raddoppiato.
Ora nella mia mente c'é solo grande confusione.
Ecco le domande:
Grazie a chiunque avrá la pazienza di rispondere.
Note
*: perché due core a 200MHz implicano un "transfer rate" di 400MT/s l'uno, per un totale di 800MT/s, perfettamente pari a quello delle DDR2 (si noti che 800MT/s * 64 bit * 1/8 Byte/bit = 6400 MByte/s, esattamente la banda passante delle DDR2-800).
vorrei sapere se qualcuno é in grado di far luce su alcuni miei dubbi "tecnici" riguardanti la CPU e la memoria RAM, in particolare sul funzionamento del memory controller degli Athlon64, lo scambio di dati CPU-RAM (principalmente con DDR e DDR2), e il dialogo tra memorie RAM e altri "pezzi" del calcolatore.
Cerco di arrivare ai miei dubbi partendo da lontano.
Mi pare di aver capito che, con i vecchi AthlonXP, lo scambio di dati CPU-RAM avvenisse attraverso il NorthBridge, ad una frequenza pari a quella dell'FSB, o Front Side Bus, a sua volta pari alla frequenza di clock "base" del processore moltiplicata per due; questa frequenza dell'FSB (che poi una frequenza vera e propria non era, bensí si trattava di un "data transfer" in MT/s, pari -in valore- al doppio della frequenza di clock, perché veniva giá sfruttato il doppio trasferimento di dati per ciclo di clock -cioé la tecnologia Double Data Rate) coincideva esattamente con quella della memoria ram (tutti i nuovi AthlonXP supportavano giá le DDR), con "data transfer" pari -sempre in valore- al doppio della frequenza del buffer I/O (che conicideva con la frequenza di lavoro del chip di memoria).
La frequenza "di lavoro" del FSB era anche sfruttata in molti altri canali di "dialogo" come l'AGP, quello delle porte PCI, e via dicendo.
Con l'avvento degli Athlon64 le cose si sono complicate, per via dell'introduzione, all'interno del processore stesso, del memory controller integrato (che prima era solitamente presente nel NorthBridge; questo dispositivo serve a mettere in comunicazione diretta la CPU con la memoria RAM), e dell'Hyper Transport (canale diretto di interfaccia CPU-NorthBridge).
Per finire, da pochi anni sono arrivati i dual core, che hanno permesso l'implementazione (o -per meglio dire- il pieno sfruttamento) delle DDR2, che, a fronte di frequenze di chip praticamente pari a quelle delle DDR, grazie ad alcuni espedienti elettronici, sono peró arrivate ad avere un clock del buffer I/O doppio rispetto alle sorelle minori, e pertanto anche un "data transfer" raddoppiato.
Ora nella mia mente c'é solo grande confusione.
Ecco le domande:
- Affinché ci sia comunicazione tra due entitá separate, é necessario che queste due entitá "parlino" la stessa lingua: se consideriamo CPU e RAM, immagino che la stessa lingua significhi contemporaneamente stessa frequenza di scambio di dati e stessa banda passante. E' corretto o sbagliato?
Chiedo questo perché, essendo totalmente ignorante riguardo all'architettura dei pc, immagino che una unitá che lavori a 2400MHz di frequenza non possa dialogare granché bene con un'altra funzionante a 400MHz (il caso, ad esempio, di un Athlon64 e di un modulo di memoria DDR), e che, altresí, se la prima unitá mettesse a disposizione una banda passante di 2400*8=19200 MB/s, chiaramente la quasi totalitá della banda sarebbe inutilizzata, costituendo i 3200 MB/s (400*8) di banda dell'altra unitá un vero e proprio collo di bottiglia (parliamo sempre di BUS a 64 bit).
Dunque é corretto dire che, in generale, le memorie ram (indipendentemente dalla quantitá di moduli) sfruttano un canale di comunicazione per il quale devono corrispondere sia la frequenza di funzionamento, sia la banda passante?- Se sí, é giusto dire che, sia le DDR1, quanto le cpu Athlon64 single core, utilizzano la tecnologia Double Data Rate in modo tale da incrementare il "transfer rate", e far comunque coincidere oltre alla frequenza di clock (200MHz per gli Athlon64, e 200MHz per le DDR400), anche la quantitá di dati scambiati (con un'eguale ampiezza del BUS a 64bit)?
- Sempre se sí, nel caso delle cpu AMD dual core e delle memorie DDR2, come si coniugherebbe il discorso di prima con il fatto che la cpu funziona sempre a 200MHz, ma sono due i core presenti, e le memorie DDR2-800 funzionano ad una frequenza di clock di 400MHz (e dunque non vi é coincidenza di frequenza, bensí solo di banda passante*)???
- Ancora:é corretto affermare che l'utilizzo del dual channel non comporta miglioramenti nello scambio di dati tra CPU e RAM, quando la banda passante coincide perfettamente (come nel caso di Athlon64 single core e DDR400, oppure di Athlon64 dual core e DDR2-800)?
Cioé: é corretto dire che la maggiore ampiezza di banda messa a disposizione dalle DDR/DDR2, per via dei 128 bit del dual channel, viene sfruttata in questi casi solo da altri canali di dialogo (se ne esistono), come ad esempio quello tra memorie e AGP/PCI-E, oppure tra memoria e dischi rigidi?- Se sí, é corretto dire che le memorie ram su piattaforme 939 e AM2, attraverso il collegamento diretto con la CPU e poi attraverso il NorthBridge, usufruiscono anche di altri canali di "comunicazione" con differenti dispositivi, come per l'appunto l'hard disk, la scheda video e cosí via?
Oppure tutti i dati in ingresso ed in uscita dalle memorie RAM, passando necessariamente attraverso il memory controller, cioé attraverso il processore, devono sottostare alla larghezza di banda in comune con quest'ultimo?
- Se sí, é corretto dire che le memorie ram su piattaforme 939 e AM2, attraverso il collegamento diretto con la CPU e poi attraverso il NorthBridge, usufruiscono anche di altri canali di "comunicazione" con differenti dispositivi, come per l'appunto l'hard disk, la scheda video e cosí via?
Grazie a chiunque avrá la pazienza di rispondere.
Note
*: perché due core a 200MHz implicano un "transfer rate" di 400MT/s l'uno, per un totale di 800MT/s, perfettamente pari a quello delle DDR2 (si noti che 800MT/s * 64 bit * 1/8 Byte/bit = 6400 MByte/s, esattamente la banda passante delle DDR2-800).