PDA

View Full Version : Memoria logica e fisica indirizzabile


leon84
04-07-2007, 09:38
Salve,
innanzitutto qual è la differenza tra memoria fisica e logica.

Io credo che la memoria logica è tutta quella indirizzabile dal processore e cioè se per indirizzare questo utilizza registri da 32 bit si potranno indirizzare massimo 2^32 locazioni di memoria da 1 byte.

La memoria fisica invece è quella realmente installata.

Dico bene ?

Se si ho questo esercizio da risolvere:

Supponendo di estendere un indirizzo di 16 bit con il MSB, individuare la regione dello spazio di indirizzamento a 32 bit acceduta.

leon84
09-07-2007, 14:34
up

goldorak
09-07-2007, 16:23
Beh il fatto che utilizzi solo registri a 32 bit non implica automaticamente che l'indirizzamento della memoria sia a 32 bit. Un esempio classico si ha con i processori 386/486 e antecedenti conteneva registria 8/16 bit ma l'indirizzamento sulla memoria fisica avveniva con 20bit.
Si combinavano 2 registri di 16 bit (uno per determinare il segmento e l'altro per determinare l'offest) per ottenere alla fine un indirizzo fisico di 20bit.
Il che spiega perche' i programmi dos non potevano gestire piu' di 1 MB di ram.

Ora con i processori che usano un indirizzamento della memoria lineare ce' in linea di principio una corrispondenza tra indirizzamento logico a n bit e l'indirizzamento fisico a n bit.

Pertanto con i processori moderni che usano 32 bit per la memoria logica, useranno 32 bit per l'indirizzamento della memoria fisica.

Detto questo, se devi estendere un indirizzo di 16 bit a 32 bit tenendo conto del MSB occorre vedere se il MSB e' 1 o 0.
Se l'indirizzo a 16 bit e' cosi : 1xxx xxxx xxxx xxxx dove x=0 o 1
l'estensione a 32 bit sara' 1111 1111 1111 1111 1xxx xxxx xxxx xxxx

mentre se l'indirizzo a 16 bit e' cosi' 0xxx xxxx xxxx xxxx con x=0 o 1
la sua estensione a 32 bit sara' 0000 0000 0000 0000 0xxx xxxx xxxx xxxx quindi in pratica l'estensione dell'indirizzo a 32 bit coincide con quello a 16 bit. Ma solo in questo caso.