![]() |
|
|||||||
| Registrazione | Donate | FAQ | Lista utenti | Calendario | Gallery | Segna forums come letti |
| Notices |
![]() |
|
|
LinkBack | Strumenti discussione |
|
|
#1 (permalink) |
|
Certified balls breaker
Data registrazione: 26-11-2007
Residenza: 5 NM outbound PDV NDB on QDR 267°
Messaggi: 662
![]() |
Ciao a tutti,
Volevo riprendere un attimo il discorso del memory mapped I/O, per darvi alcune informazioni che spero vi saranno gradite. Nelle ultime settimane sono state poste a più riprese domande sul fatto che quando si hanno 4 GB di RAM installati nel proprio PC e si usa Windows a 32 bit, il sistema non riporta mai tutti e 4 i GB disponibili, bensì sempre una quantità inferiore, a volte anche di molto. Con questo esempio pratico vi mostro da dove nasce il problema, attraverso un metodo che, vi avverto subito, è molto "spannometrico", ma dà l'idea di dove venga "mangiata" quella porzione dei 4 GB che manca all'appello. Anzi, in questo esempio (molto concreto: è il mio PC in ufficio) vedrete che nemmeno chi ha "solo" 2 GB di RAM è immune al problema. Come abbiamo avuto modo di dire più volte, l'origine del problema è il cosiddetto "Memory mapped I/O", ovvero l'utilizzo di una parte degli indirizzi di memoria non più per puntare, appunto, memoria, bensì periferiche hardware. La CPU "vedrà" quindi queste periferiche come se fossero un "pezzo di RAM" ma in realtà starà comunicando non con una RAM, bensì con una scheda video piuttosto che un controller SATA piuttosto che una scheda di rete. Naturalmente, poiché questa "fetta" di indirizzi di memoria non è più legata alla RAM ma ad una periferica, la RAM che sarebbe stata gestita con questi indirizzi "sacrificati" per altri scopi non sarà più visibile. Da qui l'annoso problema che i 4 GB di RAM per Windows non sono più 4 ma saranno 3.5, oppure 3, oppure addirittura meno (ad alcuni ne risultano 2.9). Per avere un'idea molto approssimativa di quanto larga sia la "fetta" degli indirizzi di memoria "destinati ad altro uso", si può procedere come segue. Andiamo nella Gestione Periferiche di Windows e cerchiamo, nelle periferiche di sistema, i vari bus di comunicazione. Nel mio caso ho il bus PCI che governa un po' tutto: ![]() Se vado nelle proprietà di questa periferica e passo nella sezione "Risorse", vedrò quanti e quali sono gli intervalli di indirizzi di memoria riservati per il memory mapped I/O su questo bus: ![]() Notare che, nel mio caso, appare una fetta molto consistente di indirizzi di memoria che sono stati strappati alla RAM per il riutilizzo nella gestione del bus PCI. Se prendo la calcolatrice di Windows, attivo la modalità "scientifica" e faccio un rapido conto, trovo che 0xFEBFFFFF - 0x78000000 equivale a circa 2,2 GB di potenziale RAM indirizzabile sacrificati per essere destinati a gestire il bus PCI. Stando così le cose, si deduce che dei 4 GB teoricamente visibili dalla CPU a 32 bit, ne restano in pratica solamente 1,8 GB (circa) utilizzabili. La conferma ce l'ho guardando il sommario della configurazione del PC: ![]() Quindi, nel mio caso, perfino 2 GB di RAM vengono in piccola parte sprecati. Presumibilmente, in questo caso specifico c'è da intervenire nel BIOS per vedere quanta memoria RAM sia stata allocata per uso esclusivo della grafica integrata: dovrebbe essere possibile limitare i danni diminuendo questo quantitativo di memoria. Se il PC non deve eseguire applicazioni 3D, e un PC con la grafica integrata sarà difficile che venga destinato a questo uso, bastano pochi MB per il framebuffer (con 16 MB di memoria video è possibile gestire tranquillamente risoluzioni desktop fino a 1920x1440 con 32 bit di profondità di colore, limitatamente al 2D). Come vedete, i conti non tornano proprio in modo esatto, ma se smanettate qualche minuto con la gestione periferiche, potete farvi un'idea di quali siano le periferiche che, con il memory mapping, vi sottraggono spazio dalla RAM. Ciao Filippo
__________________
PPL Holder Pentium D 840, 4 GB RAM, Asus P5WD2 Deluxe, Nvidia GeForce 7800 GTX 256 MB, HD WD Raptor 150 GB + WD Caviar 300 GB + WD Caviar 160 GB, Windows XP Professional x64 Visita il mio fotoalbum! http://fotoalbum.alice.it/filippos |
|
|
|