Torna indietro   Volovirtuale.com - il Portale dedicato al volo simulato > Angolo della Tecnica > Sezione hardware > Motherboard, RAM e CPU
Registrazione Donate FAQ Lista utenti Calendario Gallery Segna forums come letti

Notices

Rispondi
 
LinkBack Strumenti discussione
Vecchio 17-03-2008, 14.12.57   #1 (permalink)
Certified balls breaker
 
L'avatar di Filippo1974
 
Data registrazione: 26-11-2007
Residenza: 5 NM outbound PDV NDB on QDR 267°
Messaggi: 662
Filippo1974 is on a distinguished road
Predefinito Ancora sul memory mapped I/O

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

Guarda il mio profilo su LinkedIn
Filippo1974 non è connesso   Rispondi citando
Rispondi

Strumenti discussione

Regole di scrittura
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Attivato
Le faccine sono Attivato
Il codice [IMG] è Attivato
Il codice HTML è Attivato
Trackbacks are Attivato
Pingbacks are Attivato
Refbacks are Attivato


Tutti gli orari sono GMT +2. Adesso sono le 10.01.28.


Powered by vBulletin versione 3.7.3
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Traduzione italiana : www.vbulletin.it
Advertisement System V2.6 By   Branden
Copyright ©2005-2008, Volovirtuale.com