da Aesir » lun dic 24, 2007 7:32 pm
Drama hai ragione quando dici che con un indirizzo memorizzato in un registro a 32 bit (gli E_X dell'architettura x86) si possono indirizzare solo 4 GB, ci mancherebbe altro, infatti la segmentazione è possibile grazie a due valori a 32 bit (ergo 2 registri) che combinati assieme danno l'indirizzo fisico in memoria.
Non mi sembra il caso di spiegare qui l'esatto funzionamento teorico, ci vorrebbe un post molto lungo e magari qualche schema o esempio, comunque se ti interessa puoi trovare sicuramente molto su internet. A grandi linee in 32 bit il segmento al massimo può essere al massimo 4 GB (penso che sia meno, può essere un'altra potenza di due , ma ipotizziamo che sia così) a questo punto l'offset individua questo blocco univocamente. un numero a 36 bit quindi sarebbe così formato: le prime 32 cifre da destra = segmento = 4GB, le ultime 4 = offset = 16 (F) valori possibili e dato che 16*4 = 64 eccoti i 64 GB.
Comunque basta che cerchi le specifiche degli ultimi processori, se ciò non fosse possibile come sostieni, perché mai fare un bus di 36 bit ? Vuoi vedere che vogliono introdurre un sistema in base 9?[:D]
Ciao, Buon Natale!!!
p.s. non bollare come espertoni e venditori gente che è più esperta di tutti noi messi assieme, il tizio che ho citato nel mio post precedente insegna in un università americana programmazione a basso livello, ha sviluppato un suo linguaggio e ha scritto un manuale per l'insegnamento di 1500 pagine sull'assembly a 16 bit che poi ha aggiornato a 32 bit (in quello a 16 bit spiega bene la segmentazione in quello a 32 adduce che è inutile conoscerla visto che sia Windows che Linux non la utilizzano, va detto però che l'ultima versione della guida è precedente all'aggiornamento del kernel suddetto e questo spiega perché non ne parli).