Antworten ohne Registrierung

Bis zu 64GB RAM mit 32Bit Windows Betriebssystemen




little_peanut
21.01.2008, 20:56 Uhr
Workaround zum Thema
64GB RAM mit 32Bit Windows Betriebssystemen


Wir alle kennen die häufigen Fragen: "Kann ich meine 4GB RAM unter Windows XP 32Bit zum Laufen bringen?" Klare Antwort immer: NEIN.

Ich hab mir mal Gedanken gemacht und ein kleines Workaround angefertigt, wie man die 4GB RAM vielleicht doch nutzbar machen könnte.

1. Das Prolem

1.1 Das physische Problem
Im Jahr 1985 leitete Intel im Bereich der Desktop-Prozessoren die 32bit Ära ein. Mit dem Intel 80i386 ("386er") wurde der erste 32bit x86 CPUs vorgestellt, auf dessen Grundlage auch die aktuellsten Desktop-CPUs basieren. Selbst die Aktuellen AMD64(z.B. Athlon64) und EMT64(z.B. der Conroe) basieren noch auf dem 386er und wurden lediglich um einen Befehlssatz und erweiterten Registern ausgestattet.

Nun was sagt uns diese Bit-Anzahl nun? Zum einen ist es die Breite der Code- und Datenregister(Akkumulatoren) zum Anderen allerdings auch die Breite der Adressregister. Adressregister werden für die Berechnung von Speicheradressen genutzt, die über die Adressleitung angesprochen werden.
Ein 32Bit Prozessor hat somit 32 Adressleitungen und kann demnach 2^32 = 4294967296 Speicherstellen ansprechen. Eine Speicherzelle besteht nun aus 8 Bit (entspricht 1 Byte), so dass eine 32bit-CPU halt bis zu 4 Gigabyte Speicher adressieren kann. Der für den User verwendbare Arbeitsspeicher liegt jedoch meist deutlich unter der maximal ansprechbaren Speicher, da für die Adressierung des VRAM und der Erweiterungskarten sowie des IO auch Adressbereiche verwendet werden.

Da das BIOS nicht weiß, ob ein 32-bit oder 64-bit Betriebsystem gebootet wird, startet es immer im 32-bit Mode. Darin stehen maximal 4 GB addressierbarer Speicher zur Verfügung. Deshalb müssen alle Memory- und Device-Adressräume unterhalb der 4 GB-Grenze eingeblendet werden. Wenn man nun >2 GB physikalischen Hauptspeicher einbaut, dann kommt es zum Ressourcenkoflikt zwischen physikalischem Hauptspeicher und den Device-Adressräumen.

Die meisten BIOS-Versionen lösen das Problem in der Form, dass sie ein Speicherloch unterhalb der 4 GB-Grenze einfügen. Dieses Loch wird auch als PCI-Loch (PCI Hole) bezeichnet. Der Speicher, den dieses Loch belegt, kann von keinem Betriebsystem angesteuert werden. Dadurch bleiben ~512 MB bis ~1.5 GB RAM ungenutzt. Es ist dabei unabhängig, ob es sich um ein 32-bit oder 64-bit OS handelt.

Die einzige Möglichkeit, diesen Speicher nutzbar zu machen, ist die Verlagerung in einen Bereich, der oberhalb von 4 GB liegt und nicht durch physikalischen Speicher schon belegt ist. Dazu bedarf es aber einiger Voraussetzungen:

* Betriebsystemunterstützung
Das Betriebsystem muss Speicher >4 GB ansprechen können. Windows 2000, Windows XP, Windows Server 2003 und Windows Vista unterstützen in den Standardvarianten mit 32-bit maximal 4 GB RAM. Die Advanced-, Enterprise- und Datacenter-Produkte sowie die 64-bit-Versionen können mehr Speicher addressieren, wobei die Grenzen hier von den jeweiligen Versionen abhängen und bis zu 1 TB reichen können.
* Prozessorunterstützung
Intel und AMD unterstützen 40-bit Addressierung in ihren aktuellen x64-Prozessoren (Intel EM64T/AMD64). Ältere Prozessoren sind auf 36-bit (PAE) oder auch 32-bit limitiert.
* Chipsatzunterstützung
Der Chipsatz des Mainboards muss Memory Remapping oberhalb von 4GB unterstützen. Leider beherrscht die grosse Mehrheit der derzeit auf dem Markt erhältlichen Chipsätze für Desktops und mobile Computer genau diese Funktion nicht. Sie lässt sich auch nicht mittels eines BIOS-Updates nachrüsten. Erst die Workstation-Chipsätze von AMD und nVidia sowie demnächst erscheinende neue Chipsätze für Desktops und mobile Computer unterstützen mehr als 4 GB RAM und können die Hauptspeicheradressen zur Umgehung des PCI-Lochs verlagern.


1.1 Das logische Problem
Ein weiteres Problem ist die Lizenz des gekaufen Windows, denn MS hat einfach logische Sperren eingebaut, die auf keiner physischen Grundlage basieren, abgesehen von der "Geld regiert die Welt"-Regel. Folgende Tabelle zeigt die logische Limitierung der bisher erschienen Windows-Betriebssysteme.




2. Die Lösung

Das Zauberwort ist PAE ("Physical Address Extension", -->

[Zur Link-Ansicht bitte registrieren.]

)
Diese Technik erlaubt es, auch mehr Arbeitsspeicher nutzbar zu machen, als durch die ursprüngliche CPU-Architektur vorgegeben.

2.1 Was macht PAE möglich?
Ziemlich genau 10 Jahre nach dem 386er stellte Intel den "Pentium Pro" vor. Dieser leider sehr wenig beachtete Prozessor brachte eine, damals nur im Servermarkt sinnvolle, wichtige Erweiterung mit sich. Zwar war der Pentium Pro ausschließlich für 32Bit Code optimiert, doch hatte er einen 36Bit breiten Adressbus. Dieser ermöglicht nun die Adressierung von satten 64GB RAM.
Auch nahezu alle neuen CPUs (und Mainboards, wenn ein externer Speichercontroller benötigt wird) haben diese 36bit breiten Adressbusse.

2.2 Wie nutzt man PAE nun?
Unter Windows NT(4/2000/XP) aktiviert man PAE, in dem man den Parameter /PAE in die boot.ini hinzufügt. Das einzige Windows NT, das keine boot.ini hat, ist Vista(von dessen Benutzung eh nur abzuraten ist) und dies unterstützt eh kein PAE.

Das geht so:
Start --> Systemsteuerung --> System --> Reiter Erweitert --> Einstellungen unter Starten und Wiederherstellen ==> Bearbeiten unter Systemstart. Nun kann die boot.ini-Datei beschrieben werden.

So könnte es beispielsweise aussehen:
Code:
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /noexecute=optin /fastdetect /PAE
Nach einem Neustart sollte nun der volle RAM unter Windows NT verfügbar sein, sofern es die Lizenz erlaubt.




3. Das Problem

Zwar sind insgesamt theoretisch 64GB nun vergügbar, Windows NT kann jedoch nur maximal 2GB einem Task zuweisen. Fordert ein Programm mehr Arbeitsspeicher, so werden die Daten trotzdem in die Auslagerungsdatei geschrieben. Somit sind die 4GB auch nur auf dem Blatt verfügbar.



3. Die Lösung des Problems

Aber weil wir alle kreative Denker sind, ist uns der Nutzen des durch die PAE gewonnen zusätzlichen Gigabyte RAM klar: Wir erstellen eine RAM-Disk und verwenden diese virtuelle Partition zur Verwaltung der Auslagerungsdatei.


Installation der RAM-Disk:

1. Unter ==>

[Zur Link-Ansicht bitte registrieren.]

finden wir die benötigten Dateien

2. In einem temporären Verzeichnis entpacken. Das entpackte Archiv "installfiles.zip" entpacken. Es entsteht der Unterordner "INSTALL".

3. Systemsteuerung ==> Hardware ==> Ja, die Hardware wurde bereits installiert ==> Ganz runter scrollen ==> neue Hardware hinzufügen ==> Hardware manuell von einer Liste installieren ==> Alle Geräte anzeigen ==> Button Datenträger ==> zur "RAMdisk.inf" navigieren aus dem Unterverzeichnis "INSTALL". Installieren.

4. Falls er neustarten will nach der Installation, lassen wir ihn das machen.

5. Im Arbeitsplatz sollte jetzt die RAM-Disk zu sehen sein. Sie hat standartmäßig eine Größe von 3,1MB.

6. Um die Größe anzupassen: Systemsteuerung ==> System ==> Hardware ==> Gerätemanager ==> "RAM-Disk" ==> Eigenschaften

7. Zuletzt verlegen wir die Auslagerungsdatei auf die RAM-Disk-Partition. Fertig.


4. Verteilung des Arbeitsspeichers

Folgende Information ist für 32Bit-Anwender mit 4GB Arbeitsspeicher relevant:

Falls der Computer mit 4 GB physikalischem Speicher bestückt ist, dann werden zwischen 0,5 und 1,25 GB für den PCI-Adressbereich reserviert, bevor er für Anwendungen zur Verfügung steht. Deshalb stehen der 32-Bit-Version von Windows XP lediglich ca. 2,75 bis 3,7 GB Speicher zur Verfügung - abhängig von der AGP aperture size bzw. von dem Grafikspeicher auf der PCI-Express-Grafikkarte. Wenn mehr Arbeitsspeicher genutzt werden soll, dann muss ein 64-Bit-Betriebssystem eingesetzt werden.

Standardmäßig steht die Hälfte des 4GB großen virtuellen Adressraumes den Anwenderprogrammen zur Verfügung, die andere Hälfte ist für Kernel- und Ausführungsprogramme reserviert. Mit einem /3GB-Schalter in der Boot.ini-Datei läßt sich diese Grenze zu Gunsten der Anwenderprogramme verschieben, so daß diese mit 3 GB bedacht werden, während auf das Betriebssystem lediglich 1 GB entfallen. Dies kann für einige Anwendungen vorteilhaft sein und ermöglicht größere ungeteilte Speicherblocke im Adressraum.

Der zusätzliche Parameter "/USERVA=2990" ist die Feineinstellung des 3GB-Switches und benötigt den Parameter "/3GB". Der Wert dahinter sollte 2990 (MB) betragen, da mit dem von Microsoft empfohlenen Wert von 3030 öfters Abstürze beobachtet wurden. "USERVA" steht nur ab Windows XP zur Verfügung.

Die Parameter müssten dann so aussehen:
Code:
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /noexecute=optin /fastdetect /PAE /3GB /USERVA=2990
Allerdings wird der 3GB-Switch nicht von jedem Programm genutzt. Denn jeder Task, der davon profitieren soll, muss vom Hersteller dafür optimiert sein. Es gibt im Moment wenige Programme, die den 3GB-Switch unterstützen und von der zusätzlichen Speicher-Weite profitieren. Diese sind jedoch für den Consumer kaum von Interesse.


:nick:
Beste Grüße
Jonny aka die Nuss & AlexanderPCT

*Anmerkung1: Linux-User sind fein raus, ab dem Kernel 2.4.4 wird PAE ohne Einschränkungen unterstützt.
*Anmerkung2: verwendete GB sind natürlich GiB
#1




eUncle
21.01.2008, 21:31 Uhr
Hmm, das ist wohl eine der saubersten Lösungen
...brauche ich jedoch selbst zZ nicht (=> Linux ;D)

Aber schön übersichtlich geschrieben/beschrieben - hoffe mal, dass die vielen "Unwissenden" diesen Beitrag mit Hilfe der SuFu finden werden ^^
--> Nuss, haste schön gemacht :P
#2

Gast
21.01.2008, 21:54 Uhr
muhaha ^^ besser gehts nicht... danke =)
#3

Gast
22.01.2008, 00:34 Uhr
muss man den noobs wirklich noch beibringen was PAE ist

@nuss danke dafür wir wolln ja auch für noobs da sein :P ^^


eins noch: die sache mit den 2gb sieht MS als sicherheit an ... das sit auch bei den 64bitern so .... riesengroßer affengriff aber ich kenn selber keine bessere lösung ^^


sticky wird gemacht
#4




Gast
22.01.2008, 10:32 Uhr
wenn ichs brauch, weiß ich wo ich suchen muss

ps: ich bin ein noob ...PAE sagt ma nix :P
#5

Gast
22.01.2008, 18:50 Uhr
es werden immer noch 2GB angezeigt...trotz das ich / PAE hinzugefügt habe... :häh:

funktioniert dann RAM-Disk trotzdem richtig?
#6

eUncle
22.01.2008, 18:53 Uhr
...ohne Leerzeichen!
Nicht / PAE, sondern /PAE
#7

Gast
30.01.2008, 01:36 Uhr
der guide hat ein unfangreiches update erhalten, vieleicht ma nochmal lesen
#8

Gast
30.01.2008, 14:06 Uhr
Respekt Nuss

Bei nem Kollegen funktionierts aber leider nicht . Board ist nen Abit Quad GT
#9

little_peanut
30.01.2008, 19:19 Uhr
Was funktioniert denn nicht?
#10

Gast
30.01.2008, 19:20 Uhr
Es werden weiterhin nur 3,32 Gb erkannt
#11

Gast
30.01.2008, 19:36 Uhr
wie oben geschrieben muss das board das auch unterstützen, aber afaik gibts kein halbwegs aktuelles, das as nicht unterstützt, also schätz ich ma auf einen fehler

leerzeichen oder sowas?
#12

Gast
30.01.2008, 19:39 Uhr
Nein genau so wie es oben steht.
#13

little_peanut
05.02.2008, 20:58 Uhr
Wird im BIOS auch gesagt "4048MB physical Memory detected"?
#14

Gast
05.02.2008, 22:36 Uhr
hab das gleiche problem,..
hab die boot.ini wie beschrieben verändert, und bei mir steht nochimmer 3,25 gb RAM, und ned 4,00

board abit ip35
#15

Gast
05.02.2008, 22:39 Uhr
ihr habt nicht zufällig home?
#16

Gast
05.02.2008, 22:41 Uhr
habs heute bei nem Freund probiert... das " /PAE" hat nicht gwirkt weiterhin nur 3.5GB RAM lt. "Arbeitsplatz" im Bios wird aber alles korrekt angezeigt...komisch...aber ist mir persönlich wurscht

er hat XP prof.
#17

Gast
05.02.2008, 22:43 Uhr
xp pro

weiß wer rat?
#18

little_peanut
06.02.2008, 00:01 Uhr
Es kann durchaus sein, dass das BIOS Speicher reserviert. Dann muss halt geschaut werden, ob das eingestellt werden kann. Wenn nicht, dann habt ihr Pech.

Ich hab z.B. das Pech, das mein BIOS nun nen ganzen Gigabyte RAM reserviert und sich nirgendwo eine Einstellung findet, die dies unterbindet oder limitiert. Ein paar Revs vorher war dies nicht der Fall - ich musste aber ein Update machen, da mit meinem WLAN-Chipsatz Probleme auftraten. Tja, ich kann nur auf ein Update hoffen, das auch dieses Problem behebt.
#19

Gast
29.03.2008, 00:49 Uhr
trotz PAE erkennt meiner laut XP nur 2GB, obwohl das BIOS volle 4GB erkennt.
kann ich die Auslagerungsdatei mittels RAM Disk auf 2GB einstellen...?
es müsste ja dann folgendes aufgehen...:

2GB-> von XP + 2GB-> manuell im Laufwerk = 4GB ?!

edit: habe soeben probiert im RAM-Disk 2048MB einzustellen. ...erfolglos

Ich bekam eine Fehlermeldung und führte einen Neustart aus.
Danach habe ich nach dem RAM-Disk Laufwerk nachgeschaut, welches 0Byte groß war.

Der einzigste maximale Speicherwert, ist 928MB.

Aber warum nur 928MB, anstatt 2048MB? :wallbash:
#20

Gast
01.04.2008, 12:47 Uhr
Bei mir funzt PAE auch nicht. 4GB werden vom Bios erkannt und XP erkennt nur 3GB



[Zur Link-Ansicht bitte registrieren.]

#21

Gast
01.04.2008, 13:08 Uhr
hab irgendwo mal gelesen, dass man den grafikspeicher auch noch mit dazurechnen muss. sollte das stimmen, dann is bei dir, chris, ja richtig. 3GB+512MB und max werden 3,5GB angezeigt.
#22

Gast
01.04.2008, 13:37 Uhr
so isses ohne PAE @ furious

öhm mal ne reine theorie: kann das sein das intel bei günstigeren cpus einfach die adressleitungen wegläßt? denn PAE ist ja an bei dir chris O_o
#23

Gast
02.04.2008, 11:25 Uhr
Was kann man da jetzt machen das es bei mir funktioniert?
#24

Gast
02.04.2008, 15:34 Uhr
würde mich jetzt auch intressieren....das problem meines freundes hat sich inzw. zwar erledigt, weil er sich Vista 64 home ultimate gekauft hat, aber ich habe nicht vor umzusteigen und irgendwann werde ich das gleiche problem haben
#25

little_peanut
02.04.2008, 15:34 Uhr
Kannste mal den Inhalt deiner boot.ini posten. Vielleicht findet sich ja nen Parameter, der stört. ^^

EDIT: Im Zweifelsfall müsst ihr dann wohl auf Server 2003 Enterprise umsteigen. Ich hätt's auch schon gemacht, leider hab ich nur ne englische Version hier rumliegen. -.-
#26

Gast
02.04.2008, 16:29 Uhr
wegen den 4GB Arbeitsspeicher habe ich extra mal Vista x64 installiert.
Ist zwar alles schön und gut, aber mein toller onBoard-Sound sowie meine Soundkarte laufen nicht unter Vista =(
#27

Gast
02.04.2008, 17:55 Uhr
Meine boot.ini:

[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOW S
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Micro soft Windows XP Professional" /noexecute=optin /fastdetect /PAE
#28

Gast
02.04.2008, 18:31 Uhr
kannst du nicht hinten noch /4gb hinmachen
mach ausserdem mal das timeout=3

@post30: graka glaub ich nicht, denn von ati / intel / nvidia gibts x64 vista treiber, die sogar funktionieren^^
#29

Gast
02.04.2008, 19:29 Uhr
gollum wo siehst du ne graka dabei? XD du bst blind?
#30

little_peanut
02.04.2008, 19:50 Uhr
@Gollum: Nen 4GB-Switch gibt es nicht. Es gibt nur defacto einen 3GB-Switch über den Parameter /3GB.

EDIT: Was das angeht, so habe ich im HowTo jetzt unter Punkt 4 weiter Infos hinzugefügt.
#31

Gast
02.04.2008, 20:33 Uhr
@alex: lAH OK, er hat 2 mal sound geschrieben^^
@nuss: achso
@alex: Was mir grad eingefallen ist: WO BLEIBT MEIN HANDY?
#32

Gast
21.04.2008, 16:09 Uhr
HI

Bei mir funzt das auch nicht :-(

Hab XP Pro, AMD 6000+ X2, 4 GB RAM und die 8800 GT GS 1024...

Im Windows werden mir zwar 3,25 GB RAM angezeigt EGAL ob mit:
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Micro soft Windows XP Professional" /noexecute=optin /fastdetect /PAE
oder
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Micro soft Windows XP Professional" /noexecute=optin /fastdetect /PAE /3GB /USERVA=2990
oder auch einfach nur:
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Micro soft Windows XP Professional" /noexecute=optin /fastdetect

Angezeigt wird mir IMMER 3,25 GB RAM
Im BIOS werden mir volle 4 GB angezeigt...

Das Problem ist jedoch daß ich mein RAM-DISK nicht höher stellen kann als 64 MB bzw.: 67108864
Wenn ich mehr einstelle, wir das Laufwerk NICHTMEHR erkannt... :-(
Um ihn jedoch als Auslagerungs-Laufwerk nutzen zukönnen, will Windows mehr von mir...

Was muss ich machen damit ich den RAM-Disk größer bekomm???
#33

little_peanut
21.04.2008, 17:52 Uhr
@Ramdisk: Eventuell eine alternative Software verwenden. :google: mal. Wird noch genügend andere Möglichkeiten geben.

@PAE: Je nachdem wieviele Geräte über PCI/PCIe/AGP angesprochen werden, wird vom OS ne gewisse Menge RAM reserviert und kann nicht verwendet werden. Daran lässt sich nix ändern, so funktioniert der Kernel von Windows. Leider.

Der 3GB-Switch ist nur dafür da, dass mehr als 2GB-RAM pro Task verwendet werden können. Allerdings muss dieses Feature vom jeweiligen Programmcode unterstützt werden und das ist selten bei Consumer-Programmen der Fall.
#34

Gast
21.04.2008, 18:12 Uhr
Zitat:
Zitat von Hanys
HI

Bei mir funzt das auch nicht :-(

Hab XP Pro, AMD 6000+ X2, 4 GB RAM und die 8800 GT GS 1024...

Im Windows werden mir zwar 3,25 GB RAM angezeigt EGAL ob mit:
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Micro soft Windows XP Professional" /noexecute=optin /fastdetect /PAE
oder
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Micro soft Windows XP Professional" /noexecute=optin /fastdetect /PAE /3GB /USERVA=2990
oder auch einfach nur:
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Micro soft Windows XP Professional" /noexecute=optin /fastdetect

Angezeigt wird mir IMMER 3,25 GB RAM
Im BIOS werden mir volle 4 GB angezeigt...

Das Problem ist jedoch daß ich mein RAM-DISK nicht höher stellen kann als 64 MB bzw.: 67108864
Wenn ich mehr einstelle, wir das Laufwerk NICHTMEHR erkannt... :-(
Um ihn jedoch als Auslagerungs-Laufwerk nutzen zukönnen, will Windows mehr von mir...

Was muss ich machen damit ich den RAM-Disk größer bekomm???
Probiers mal hiermit:


[Zur Link-Ansicht bitte registrieren.]



Damit gings bei mir problemlos!
#35


Facebook

Jahresarchive



Search Engine Optimization by vBSEO 3.6.0