RAM e windows 32 bit, perché solo 3.25 GB ?

Pubblicità

n2o

Utente Attivo
Messaggi
336
Reazioni
7
Punteggio
39
so che con windows 32 bit il pc legge solo 3.25 GB di RAM ma vorrei sapere perché. centra qualcosa il MAR e l' MDR ??
 
MAR, è un problema di quantità di memoria indirizzabile.
In una CPU 32bit i registri sono a 32bit, quindi anche il MAR: 2^32 fa ~4GB (4GB precisi se usi la notazione 1K=1024).
Per i 750MB mancanti... dovrebbero essere usati per risorse hardware, periferiche, ecc.
 
se il mar è a 32 bit vuol dire che possiamo avere al max 2^32 indirizzamenti. se moltiplico questo numero per i 32 bit dell MDR allora dovrei ottenere la capacità di memoria massima che però sembra essere 16 GB in base a questi calcoli qui o.O
 
No, le singole celle di memoria indirizzabili sono a 8bit = 1Byte, poco importa che tu possa scrivere in memoria anche dati a 32bit, perché occuperanno più celle da 8bit.
Quindi: 2^32 -> ~4'000'000'000 celle da 8bit=1Byte indirizzabili, che sono ~4GB.
Se hai un dato dell'MDR che occupa 16 o 32bit, occuperà 2 o 4 celle di memoria (da 8bit).
 
Dai un occhiata qua:
3 GB barrier - Wikipedia, the free encyclopedia

"Thus, the "3 GB barrier" under x86 Windows "client" operating systems can therefore arise in two slightly different scenarios. In both, RAM near the 4 GB point conflicts with memory-mapped I/O space. Either the BIOS simply disables the conflicting RAM; or, the BIOS remaps the conflicting RAM to physical addresses above the 4 GB point, but x86 Windows client editions refuse to use physical addresses higher than that, even though they are running with PAE enabled. The conflicting RAM is therefore unavailable to the operating system whether it is remapped or not."
 
No, le singole celle di memoria indirizzabili sono a 8bit = 1Byte, poco importa che tu possa scrivere in memoria anche dati a 32bit, perché occuperanno più celle da 8bit.
Quindi: 2^32 -> ~4'000'000'000 celle da 8bit=1Byte indirizzabili, che sono ~4GB.
Se hai un dato dell'MDR che occupa 16 o 32bit, occuperà 2 o 4 celle di memoria (da 8bit).
quindi mi stai dicendo che la lunghezza dell'MDR è fissa ed è sempre pari a 8 bit? io sapevo che la lunghezza dell MDR determinava anche la parola macchina del sistema. devo dedurre che a questo punto la parola macchina è sempre 8 bit? come spieghi sistemi con parola macchina pari a 16,32,64 .. bit?
 
I sistemi a 32bit hanno il limite di 3gb. Pertanto puoi installarci anche 32gb di ram. Ma il sistema ne vedrà sempre e solo 3gb al massimo. Le restanti come se non esistessero.
 
quindi mi stai dicendo che la lunghezza dell'MDR è fissa ed è sempre pari a 8 bit? io sapevo che la lunghezza dell MDR determinava anche la parola macchina del sistema. devo dedurre che a questo punto la parola macchina è sempre 8 bit? come spieghi sistemi con parola macchina pari a 16,32,64 .. bit?

Un dato, un'istruzione, parola, quello che vuoi, può essere lungo 16/32/64bit.
Il punto è che noi utilizziamo come unità di misura "base" il Byte (tanto che diciamo appunto 4Giga-Byte di memoria, non 4Giga-a32bit); e noi vogliamo poter utilizzare/indirizzare OGNI SINGOLO Byte (cella) presente nella memoria. Perciò usiamo comunque il Byte come misura.

Nel caso a 32bit abbiamo un MDR da 32bit, per parole a 32bit. Però la memoria verrà sempre indirizzata per BYTE, una parola da 32bit in memoria verrà scritta su 4 "righe/celle" da 8bit (8x4=32).

Vedila anche dal punto di vista della compatibilità, se ad ogni passaggio 8->16->32->64 avessimo dovuto cambiare tipo RAM perché "qualcuno ha deciso che da quel giorno si sarebbero indirizzate solo unità/celle da 16/32bit"... sarebbe potuto diventare un problema.

In breve: anche se la "word" usata dalla macchina è a 16/32/64bit, la memoria viene sempre indirizzata per cella (8bit).
Spero di essere stato abbastanza chiaro.


Nel caso, prova a guardare questo pdf (che non so neanche se posso postare): http://www.di.unito.it/~olivetti/BCTU2005/LEZIONI/LEZ03architettura.pdf da pagina 7.
Viene evidenziata la differenza tra "parola" e "cella", che dovrebbe risolvere ogni tuo dubbio.

Se vuoi, ecco anche un paragrafo da Wikipedia: http://it.wikipedia.org/wiki/Word#Word_e_indirizzamento_dei_byte
 
Ultima modifica:
Un dato, un'istruzione, parola, quello che vuoi, può essere lungo 16/32/64bit.
Il punto è che noi utilizziamo come unità di misura "base" il Byte (tanto che diciamo appunto 4Giga-Byte di memoria, non 4Giga-a32bit); e noi vogliamo poter utilizzare/indirizzare OGNI SINGOLO Byte (cella) presente nella memoria. Perciò usiamo comunque il Byte come misura.

Nel caso a 32bit abbiamo un MDR da 32bit, per parole a 32bit. Però la memoria verrà sempre indirizzata per BYTE, una parola da 32bit in memoria verrà scritta su 4 "righe/celle" da 8bit (8x4=32).

Vedila anche dal punto di vista della compatibilità, se ad ogni passaggio 8->16->32->64 avessimo dovuto cambiare tipo RAM perché "qualcuno ha deciso che da quel giorno si sarebbero indirizzate solo unità/celle da 16/32bit"... sarebbe potuto diventare un problema.

In breve: anche se la "word" usata dalla macchina è a 16/32/64bit, la memoria viene sempre indirizzata per cella (8bit).
Spero di essere stato abbastanza chiaro.


Nel caso, prova a guardare questo pdf (che non so neanche se posso postare): http://www.di.unito.it/~olivetti/BCTU2005/LEZIONI/LEZ03architettura.pdf da pagina 7.
Viene evidenziata la differenza tra "parola" e "cella", che dovrebbe risolvere ogni tuo dubbio.

Se vuoi, ecco anche un paragrafo da Wikipedia: Word - Wikipedia

allora questo spiega tutto :) grazie mille per la spiegazione adesso tutto è più logico.
 
Pubblicità
Pubblicità

Discussioni Simili

Indietro
Top