Quanti indirizzi di bit sono necessari per un computer con n byte di memoria?

3

Quanti bit di indirizzo sono richiesti (per il contatore del programma per esempio) in un computer con indirizzo byte con 512 Mbyte RAM?

Che aspetto ha la formula?

In che modo questo si collega al fatto che 32 bit non possono occupare più di 4 GB di RAM?

    
posta Niklas Rosencrantz 10.12.2012 - 17:03
fonte

5 risposte

14

Sono necessari i bit log2 (n) per indirizzare n byte. Ad esempio, è possibile memorizzare 256 valori diversi in un numero a 8 bit, quindi 8 bit possono indirizzare 256 byte. 2 10 = 1024, quindi hai bisogno di 10 bit per indirizzare ogni byte in un kilobyte. Allo stesso modo, sono necessari 20 bit per indirizzare ogni byte in un megabyte e 30 bit per indirizzare ogni byte in un gigabyte. 2 32 = 4294967296, che è il numero di byte in 4 gigabyte, quindi è necessario un indirizzo a 32 bit per 4 GB di memoria.

    
risposta data 10.12.2012 - 17:03
fonte
6

Le risposte esistenti hanno spiegato che la formula per l'indirizzamento della ram è 2 ^ BITS = Ram indirizzabile, ma non ha spiegato il perché.

Considera un sistema con 2 bit. Può indirizzare 4 byte di RAM come segue:

Byte 0: 00
Byte 1: 01
Byte 2: 10
Byte 3: 11

Per ogni bit aggiuntivo, possiamo occupare il doppio della memoria. Ad esempio, aggiungere 0 bit a ciascuno per byte 0-3, quindi aggiungere 1 bit per byte 4-7. Indirizziamo il byte X usando una disposizione di bit corrispondente a X in binario.

    
risposta data 10.12.2012 - 23:40
fonte
3

È necessario il log (base 2) dei N byte per indirizzare direttamente N byte di RAM.

4 GB = 2^32 bytes
log_2( 2^m ) = m

quindi

log_2( 2^32 ) = 32

Quindi un indirizzo a 32 bit consente di fare direttamente riferimento a 2 ^ 32 byte (4 GB). Un indirizzo a 64 bit consente di fare riferimento direttamente a 2 ^ 64 byte (16 exabyte).

    
risposta data 10.12.2012 - 17:07
fonte
1

How many bits of address is required (for the program counter for example) in a byte-addressed computer with 512 Mbyte RAM?

Non c'è risposta.

Per i sistemi moderni il software utilizza la memoria virtuale e la memoria virtuale non ha nulla a che fare con la memoria fisica. Ad esempio, potresti avere 512 MiB di RAM, 1.5 GiB di spazio di scambio e 2 GiB di file mappati in memoria.

Per la maggior parte dei sistemi che hanno circa 512 MiB di RAM; in genere si desidera / si aspettano indirizzi a 32 bit e puntatori di istruzioni a 32 bit (e hanno 4 GB di spazio di indirizzi virtuali per processo, incluso lo spazio riservato dal kernel).

Si noti che "quantità di RAM" non ha nulla a che fare con le dimensioni effettive dell'indirizzo fisico o le dimensioni minime dell'indirizzo fisico. Un computer con 512 MiB di RAM, 4 MiB di ROM e 512 MiB di dispositivi mappati in memoria (schede video, ecc.) Può richiedere un minimo di 2 GiB di spazio di indirizzamento fisico (e potrebbe effettivamente avere 4 GiB di spazio di indirizzamento fisico).

    
risposta data 05.02.2016 - 21:45
fonte
0

Dipende non dalla quantità di RAM, ma dallo spazio degli indirizzi. Un processore a 64 bit con 512 MB di RAM e memoria virtuale supportata da un disco rigido da 5 TB richiede almeno 43 bit per gli indirizzi. Ora se supporti allocazioni sparse allora hai bisogno di più.

    
risposta data 05.02.2016 - 23:55
fonte

Leggi altre domande sui tag