PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Adressraum im Hinblick auf die GraKa


XtraLarge
2007-10-23, 12:00:29
Hallo zusammen!

Ich bin in diesem Thema nicht wirklich bewandert, versuche mich aber gerade reinzudenken.

Ein Rechner mit 4GB Ram kann unter "Windows 32bit" je nach GraKa bis zu 3,5GB Ram nutzen. Davon bis zu 2GB pro Anwendung.

Meine Frage wäre jetzt, ob der vorhandene Adressraum für ein Spiel (also die 2GB) schon den Adressraum für die GraKa beinhalten oder ob dieser addiert wird? Also sind es "2GB + V-Ram" oder sind es "2GB - V-Ram"?! Was ja bei einer entsprechenden GraKa mit 768MB oder gar 1024MB V-Ram eine entscheidende Rolle spielt. Irgendwann muss sich das doch mal ins Gehege kommen, oder?

Gast
2007-10-23, 12:03:45
Also sind es "2GB + V-Ram"
So siehts aus. :)

Gast
2007-10-23, 12:18:11
Befindet sich der Graka Raum nicht eh im Kernel Space?

Funkyman
2007-10-23, 12:18:50
Was passiert denn wenn ich (theoretisch) unter 32bit eine Grafikkarte mit 3 gb ram benutzen würde und im system 2 gb ram hätte. Da windows ja maximal 4 gb verwalten kann? Würde dann nur 1 gb ram zur verfügung stehen?

Gast
2007-10-23, 12:24:30
Würde dann nur 1 gb ram zur verfügung stehen?
Ja.

Aber bitte ersetze Windows durch 32bit. :)

XtraLarge
2007-10-23, 12:31:01
Soll heissen, dass das theoretische Optimum unter 32bit bei 2GB Ram + 2GB V-Ram liegt? Entsprechend große Texturen vorrausgesetzt...Oder eher 1,5GB V-Ram und 2,5GB Ram?

Oder ist das "einfach" nur eine Sache der Optimierung des Programms/Spiels?!

Funkyman
2007-10-23, 12:58:25
Naja aktuell würd ich eher mal sagen mehr system ram als grakaram. Mehr als 740 MB ram auf der Grafikkarte werden aktuell nicht gebraucht außer du fährst extrem hohe auflösungen mit sehr hohen AA.

Was mich noch interessieren würde ist, ob ein 32 Bit Betriebssystem die 3gb VRAM überhaubt adressieren kann oder kommt es hier auch zur 2 gb Adressraum begrenzung?

Avalox/Gast
2007-10-23, 13:24:23
Was passiert denn wenn ich (theoretisch) unter 32bit eine Grafikkarte mit 3 gb ram benutzen würde und im system 2 gb ram hätte. Da windows ja maximal 4 gb verwalten kann? Würde dann nur 1 gb ram zur verfügung stehen?


Der Speicher der Grafikkarte wird nicht im Adressraum des PCs abgebildet. Da der Adressraum des PC zu klein ist, wird nur ein Fenster, eine Page des Grafikkartenspeichers abgebildet.
Der PC Grafiktreiber verschiebt dann diesen Speicherblock mehr oder wenig aufwendig um so Zugriff auf den kompletten Grafikkartenspeicher zu erhalten.

Das ändert sich auch bei 64Bit OS nicht, da die Grafikkarte immer noch in den ersten 4GB eingeblendet wird. Ein waschechtes 64Bit System könnte natürlich den Grafikspeicher, wie auch aller anderen Komponentenspeicher im System einblenden, inkl. z.B. der Festplatten. Aber davon ist man noch entfernt. Windows kommt bis heute nicht mit EFI zurecht, so lange man noch die konventionellen Bios PC Mainboards nutzt wird sich auch nichts ändern.

Neomi
2007-10-23, 13:40:04
Der Grafikspeicher muß nicht zwangsläufig linear adressiert werden. Linear ist zwar bequem, aber da der Zugriff eh nur über den Treiber läuft, ist diesem auch ein unbequemerer Weg zuzumuten.

Ein Speicherfenster von z.B. 64 MiB, um den Grafikspeicher einzublenden, würde vollkommen ausreichen. Technisch würden natürlich auch 64 KiB reichen (und haben zu DOS-Zeiten auch gereicht), aber das wäre dann heutzutage doch zu ineffizient. Dabei muß der Treiber der Grafikkarte nur sagen, ab welchem Offset er die 64 MiB gerade eingeblendet haben will. Dazu dann noch die Beachtung von ein paar Stolpersteinen (z.B. vor einem Wechsel den Cache flushen, damit nichts verzögert an die falsche Stelle geschrieben wird oder nach dem Wechsel den Cache invalidieren), und der Adressraum wird kaum beansprucht. Das Hauptproblem ist es, das alles konsequent durchzuhalten und es an keiner Stelle zu vergessen, während lineare Adressierung quasi von alleine funktioniert.

Auf diese Art würden sogar Grafikkarten mit 16 GiB trotz 32 Bit OS voll nutzbar sein. PAE (bis 64 GiB RAM mit 32 Bit OS) funktioniert ähnlich.

Edit: hmmm, bin ein bischen zu spät wie mir scheint.

XtraLarge
2007-10-23, 13:46:24
Der Speicher der Grafikkarte wird nicht im Adressraum des PCs abgebildet. Da der Adressraum des PC zu klein ist, wird nur ein Fenster, eine Page des Grafikkartenspeichers abgebildet.
Der PC Grafiktreiber verschiebt dann diesen Speicherblock mehr oder wenig aufwendig um so Zugriff auf den kompletten Grafikkartenspeicher zu erhalten.

Das ändert sich auch bei 64Bit OS nicht, da die Grafikkarte immer noch in den ersten 4GB eingeblendet wird. Ein waschechtes 64Bit System könnte natürlich den Grafikspeicher, wie auch aller anderen Komponentenspeicher im System einblenden, inkl. z.B. der Festplatten. Aber davon ist man noch entfernt. Windows kommt bis heute nicht mit EFI zurecht, so lange man noch die konventionellen Bios PC Mainboards nutzt wird sich auch nichts ändern.

Aber bei 64bit beeinträchtigt das nicht mehr so sehr den nutzbaren Speicher?! Wenn ich dich richtig verstanden habe, dann wird quasi ein Teil des Arbeitsspeichers "stillgelegt" und dessen Adressraum aufgrund der Performance vom Treiber dem V-Ram zugeteilt? Würde dann bedeuten, dass wir keine GraKas mit bspw. 4GB V-Ram sehen werden? Der Rest wäre ja eher uninteressant, da wir mit 64bit ja vermutlich bis ins nächste Jahrhundert ausgesorgt hätten. Und wenn Windows irgendwann mal 20GB Ram braucht...

Avalox/Gast
2007-10-23, 14:04:55
Aber bei 64bit beeinträchtigt das nicht mehr so sehr den nutzbaren Speicher?! Wenn ich dich richtig verstanden habe, dann wird quasi ein Teil des Arbeitsspeichers "stillgelegt" und dessen Adressraum aufgrund der Performance vom Treiber dem V-Ram zugeteilt? Würde dann bedeuten, dass wir keine GraKas mit bspw. 4GB V-Ram sehen werden? Der Rest wäre ja eher uninteressant, da wir mit 64bit ja vermutlich bis ins nächste Jahrhundert ausgesorgt hätten. Und wenn Windows irgendwann mal 20GB Ram braucht...


Da aber immer nur ein Teil des tatsächlichen Grafikkartenspeichers eingeblendet wird, kann dieser dann gesamt beliebig gross sein. Wie Neomi es schon ausgeführt hat.

Beim 64Bit PC OS, wird immer dabei immer noch die Page des Grafikkartenspeichers unterhalb von 4GB eingeblendet. Damit liegt dieser voll im ggf. bestückten Hauptspeicherbereich. Nun könnte ein 64Bit OS mehr Speicher adressieren. Wenn das Mainboard es unterstützt, kann man den Teil des Hauptspeichers, dessen Adressen durch Komponenten belegt sind, oberhalb von 4GB wieder einblenden, eben verschieben. Das klappt aber wahrlich nicht bei allen Mainboards gleich gut, auch wenn es unterstützt wird. Unelegant ist es zudem.
Eine 32Bit Altlast. Es ist sehr unschön, dass Innovation so stark gebremst wird.

AMD64 kennt allerdings dabei nur 48Bit Adressen so, dass nur 256TB zu adressieren sind. Könnte für das lineare adressieren von Festplatten also schon zu knapp sein. Wird damit wahrscheinlich nie unterstützt werden. Aber für das einblenden des kompletten Grafikkartenspeichers reicht es.

Was mich nach wie vor interessiert und hier noch nicht jemand drauf geantwortet hat, ist, ob auf einem neuen Mac, der ja EFI nutzt, der Grafikkartenspeicher komplett im System adressiert werden kann? Der Mac als besserer PC.