Mehr als 2GB RAM im iMac?

Ich habe in meinem Dual G4 ja 2 GB Ram, warum kann ich unter Virtual PC 7 nur max. 512 MB dem XP zuordnen?
Ich hatte es so verstanden, daß 32 Bit Anwendung max. 4 GB adressieren können, war das falsch? Ich spielte mit dem Gedanken die 512 MB-Module meines Rechners gegen 1 GB zu tauschen, immer noch billiger als ein neuer G5. :rolleyes:

Also bei DVD erstellen wird es auch mit 2 GB manchmal eng mit dem Speicher und mein Mac fängt an zu swappen, ohne Ende und daher wäre mehr Speicher doch eine einfachere Lösung. kopfkratz
 
jokkel schrieb:
Bei Virtual PC bezieht es sich allerdings auf den virtuellen PC, der dann eben nicht mehr als 2GB benutzen kann. Der Mac als Wirtssystem, kann so viel Speicher haben, wie er will.
Sofern VirtualPC keine 64bit Applikation ist, kann man einer VirtualPC VM sowieso nicht mehr als 4GB RAM zuweisen. Wobei es wieder zu beachten gilt, dass eine VM mit mehr als 2GB RAM sowieso wieder unsinnig wäre.
VirtualPC emuliert in seiner VM eine 32bit CPU und es gelten somit für die VM die in meinen letzten Postings genannten Beschränkungen.

Zu Virtual PC 7 selbst:
So wie ich die folgenden Meldungen lese, bezieht sich die VirtualPC 7 Schwachstelle eben nicht auf den Virtuellen PC sondern auf den wirklichen PC. Beachte mal den hervorgehobenen Teil den der Meldung weiter unten:

VPC 7 and 2Gb or more RAM
http://www.tech-archive.net/Archive/Mac/microsoft.public.mac.virtualpc/2004-10/0122.html

Virtual PC 7.0 (#2): Confirmed problem with more than 2 GB of RAM, workaround; other issues
http://www.macfixit.com/article.php?story=20041006075329300
"I just received my copy of Virtual PC 7 with XP Pro installed. There is a problem on machines running more than 2GB of ram. The PC will not work giving an error code of 0r700 Ed.- The actual error code is "Unhandled PowerPC exception 0x700 - Program Fault" and looping eternally on the reset button."

"I spoke to support from Microsoft and they are working on a patch. The tech said it is a few weeks away. If you remove the excess ram down to 2GB the program works flawless and much faster than the old Virtual PC 6.0."

As noted by Polo, the base workaround for this issue is to reduce your installed RAM to under 2 GB -- an untenable solution for many users who either specifically need the extra RAM or only have a pair of 1 GB DIMMS (G5 DIMMs must be installed in the slots in pairs of the same size.)

RE: VPC 7 and 2Gb or more RAM
http://www.tech-archive.net/Archive/Mac/microsoft.public.mac.virtualpc/2004-10/0170.html
Thanks, I tried to install on my system with 3gb with no luck. I have 2
512mb DIMMS in the first bank and 2 1gb DIMMS in the second bank so you
could be right on the configuration thing. I did read a work around that
involves removing a couple of VPC files that I am going to try maybe
tonight. I do have the dual G5 system and got the XP Pro image so it
will be interesting. Speed is not a big issue for me so if it runs at
about the 533 mhz level it will do everything I need to do from a PC
standpoint. Mostly I just need to be able to see the menus and such as I
help a lot of people over the phone with XP problems. I have been pretty
much working from memory for the last year and at my age the memory of
Windows is fading fast. Which is a good thing as I see it. :)

Microsoft confirms Virtual PC RAM issue; update coming
http://www.macminute.com/2004/10/08/virtual-pc/
Microsoft has confirmed to MacMinute that its recently released Virtual PC 7 will not work with Power Mac G5s with more than 2GB of RAM installed. "Microsoft is aware of this important issue, which will affect a small percentage of customers, and has made it a high priority to address as quickly as possible," a Microsoft spokesperson told MacMinute. The software giant said that an update to Virtual PC 7 is expected within the coming weeks that will solve the problem. In the meantime, Microsoft is recommending the following two options as a workaround:

Als Workaround gibt es nur zwei Möglichkeiten:
1) RAM aus dem G5 Rechner ausbauen so dass max. 2GB RAM installiert sind.
oder falls das nicht geht/gewünscht ist
2) eine bestimmte VirtualPC Kernelextension löschen
 
pdr2002 schrieb:
Ich habe in meinem Dual G4 ja 2 GB Ram, [...]
Ich hatte es so verstanden, daß 32 Bit Anwendung max. 4 GB adressieren können, war das falsch?
Nein.
Sie kann es _adressieren_ aber kann sie es auch nutzen?

Der Prozessraum einer Applikation ist bei 32bit auf max. 2GB beschränkt. Auch wenn du deinen Rechner von 2GB auf 4GB aufrüstest ist es unwahrscheinlich, dass deine DVD Erstellungssoftware mehr als 2GB wirklich nutzen kann auf deinem derzeitigen System.

Achtung, technisch:
Deine 32bit CPU hat einen Adressraum von 4G. Von diesem Adressraum gehören die obersten 2G Adressen dem Betriebssystem (2G Kernelspace) und die untersten 2G Adressen (2G Userspace) gehören dir.

Jetzt fängst du an, Hauptspeicher in den Rechner einzubauen...

Bis 2GB installiertem RAM gehört alles dir und die kannst dein komplettes installiertes RAM frei nutzen, weil adressieren.
Wenn du noch mehr RAM einbaust, liegt dessen Adressbereich teilweise im oberen Adressbereich. Und an den oberen Adressbereich (ab der Adresse 2G) darf nur das Betriebssystem ran aber nicht du.

Das heisst, dass bei mehr als 2GB installiertem RAM die lediglich auf die untersten 2GB RAM zugreifen kannst. Der Rest liegt sozusagen "brach" weil nur das Betriebssystem selbst auf den Bereich 2..4GB zugreifen kann.

Das vorgenannte wäre der sogenannte 2/2 Split (2G Userspace; 2G Kernelspace).

Eventuell kann man den MacOSX Betriebsystemkernel auf 3/1 Split (3G Userspace; 1G Kernelspace) umstellen. Dann würde sich die Grenze um 1G zu deinen Gunsten verschieben. Du hättest dann einen Adressraum von 3G und könntest somit maximal 3GB installiertes RAM adressieren und nutzen.
 
lundehundt schrieb:
Der iMac G5 kann afaik max 2 GB adressieren - auch wenn man groessere Riegel als 2x1 GB einbaut wuerde das nichts nuetzen. Erst der der 2GHz G5 Dual kann bis zu 8 GB RAM Adressieren.

Cheers,
Lunde

Moment mal?!
Ich habe den G5 1,8 GHZ DP der ersten Serie, also noch mit PCI-X.
Und soweit ich mich erinnern kann, konnte dieser auch 8 GB (4x 2GB) schlucken/verwalten. Oder sollte ich mich hierbei irren?
 
Heinrich1 schrieb:
Nein.
Sie kann es _adressieren_ aber kann sie es auch nutzen?

Der Prozessraum einer Applikation ist bei 32bit auf max. 2GB beschränkt. Auch wenn du deinen Rechner von 2GB auf 4GB aufrüstest ist es unwahrscheinlich, dass deine DVD Erstellungssoftware mehr als 2GB wirklich nutzen kann auf deinem derzeitigen System.

Achtung, technisch:
Deine 32bit CPU hat einen Adressraum von 4G. Von diesem Adressraum gehören die obersten 2G Adressen dem Betriebssystem (2G Kernelspace) und die untersten 2G Adressen (2G Userspace) gehören dir.

Jetzt fängst du an, Hauptspeicher in den Rechner einzubauen...

Bis 2GB installiertem RAM gehört alles dir und die kannst dein komplettes installiertes RAM frei nutzen, weil adressieren.
Wenn du noch mehr RAM einbaust, liegt dessen Adressbereich teilweise im oberen Adressbereich. Und an den oberen Adressbereich (ab der Adresse 2G) darf nur das Betriebssystem ran aber nicht du.

Das heisst, dass bei mehr als 2GB installiertem RAM die lediglich auf die untersten 2GB RAM zugreifen kannst. Der Rest liegt sozusagen "brach" weil nur das Betriebssystem selbst auf den Bereich 2..4GB zugreifen kann.

Das vorgenannte wäre der sogenannte 2/2 Split (2G Userspace; 2G Kernelspace).

Eventuell kann man den MacOSX Betriebsystemkernel auf 3/1 Split (3G Userspace; 1G Kernelspace) umstellen. Dann würde sich die Grenze um 1G zu deinen Gunsten verschieben. Du hättest dann einen Adressraum von 3G und könntest somit maximal 3GB installiertes RAM adressieren und nutzen.
OK, habe ich verstanden, aber das bedeutet, doch, das sich jetzt meine Anwendungen und das System die 2 GB teilen, richtig? Wenn ich 4GB hätte, wären es dann 2 GB für die Anwendungen und der Rest für's System -> Meine Anwendungen haben mehr Speicher zur Verfügung und mein System ebenfalls, was doch eigentlich der gewünschte Effekt wäre, oder habe ich da noch einen Denkfehler? kopfkratz
 
Ochi schrieb:
Moment mal?!
Ich habe den G5 1,8 GHZ DP der ersten Serie, also noch mit PCI-X.
Und soweit ich mich erinnern kann, konnte dieser auch 8 GB (4x 2GB) schlucken/verwalten. Oder sollte ich mich hierbei irren?

Ganz richtig.

Die erste Serie der G5 PowerMac hatte 8 RAM Slots auf dem Mainboard. Das kleinste Modell damals hatte 4 RAM Slots. Da man damals maximal 1GB grosse RAM Riegel kaufen konnte hiess dies, dass man im kleinsten PowerMac maximal 4GB RAM und in den beiden grösseren Modellen 8GB RAM installieren kann. Das war keine technische Beschränkung, sondern einfach nur das, was man damals _bauen_ und _kaufen_ konnte.

Heute sind bereits 1GB und 2GB RAMs verfügbar und irgendwann wird man auch 4GB RAMs kaufen können.

Egal welche RAMs man auch nimmt:
Bei einem G5 PowerMac (keine Ahnung ob das auch für den iMac G5 gilt) muss das RAM immer Paarweise installiert werden.
D.h. bei 4 RAM Slots:
2x 1GB oder 2x 2GB oder 4x 1GB oder 4x 2GB oder ein paarweiser mix z.B. 2x 1GB + 2x 2GB oder ...

Je nach Anzahl der RAM Slots berechnet sich nun der _heute_ maximale RAM Ausbau:
4 Slots -> bestückt mit 2GB RAMs -> Summe: 8GB RAM
8 Slots -> bestückt mit 2GB RAMs -> Summe: 16GB RAM

Die Beschränkung des Memorycontrollers (42bit statt 64bit) tritt hier noch lange nicht in Erscheinung.
 
Ochi schrieb:
Moment mal?!
Ich habe den G5 1,8 GHZ DP der ersten Serie, also noch mit PCI-X.
Und soweit ich mich erinnern kann, konnte dieser auch 8 GB (4x 2GB) schlucken/verwalten. Oder sollte ich mich hierbei irren?

Laut Mac Tracker max. 4GB. Aber wie wir ja gelernt haben orientiert sich diese Angabe von Apple an der Groesse der auf dem Markt befindlichen Speicherriegel und nicht daran wieviel theoretisch addressierbar waeren.

Cheers,
Lunde

Das paarweise bestuecken der Steckplaetze (interleaved memory) hat Vorteile ist aber nicht zwinged notwendig. Wenn die Riegel gleich gross sind kann der Memory Controller beide Riegel quasi wie einen einzelnen grossen ansprechen.
 
pdr2002 schrieb:
OK, habe ich verstanden, aber das bedeutet, doch, das sich jetzt meine Anwendungen und das System die 2 GB teilen, richtig?
Ja, beide teilen sich den zur Verfügung stehenden Speicher. Das Betriebssystem füllt "von oben" herunter und deine Applikation "von unten" her den Hauptspeicher.

pdr2002 schrieb:
Wenn ich 4GB hätte, wären es dann 2 GB für die Anwendungen und der Rest für's System -> Meine Anwendungen haben mehr Speicher zur Verfügung und mein System ebenfalls, was doch eigentlich der gewünschte Effekt wäre, oder habe ich da noch einen Denkfehler? kopfkratz
Soweit richtig, nur...
Auf den Bereich 2..4G kann ja nur das Betriebssystem zugreifen (= Kernelspace). Nur, wieviel Speicher ist denn eigentlich nun ausschliesslich durch den Kernel belegt? Der Kernel selbst braucht nur wenige Megabyte und die paar Treiber die immer geladen sind brauchen ebenfalls nur wenige Megabyte. Der Rest (z.B. Festplattencache "Buffers" und Cache für Shared Libraries "shared") ist alles Userspace.

Bleibt die Frage "Ja wie gross denn nun?"... IIRC müsste der in "top" angegebene Wert für "PhysMem: ????? wired" dies Aussagen.

Bei mir wäre dies eine Wert von ca. 86MB.
Bei einem G3 oder G4 hiesse dies: 2x 1GB + 2x 64MB RAMs (= Summe: 2128 MByte) oder 2x 1GB + 2x 256MB RAMs (= Summe: 2.5GB)
Die oberen 128MB bzw. 512MB in diesem Rechenbeispiel darf sich dann dein Kernel und seine Gerätetreiber einverleiben.

Bei einem G5 gilt dieses Rechenbeispiel nicht. Zwar gibt es auch dort einen Split aber selbst bei einem 2/2 Split läge der dann bei "die untern 4T Adressen für dich" und "die oberen 4T Adressen für den Kernel".
 
Zuletzt bearbeitet:
Heinrich1 schrieb:
Ja, beide teilen sich den zur Verfügung stehenden Speicher. Das Betriebssystem füllt "von oben" herunter und deine Applikation "von unten" her den Hauptspeicher.


Soweit richtig, nur...
Auf den Bereich 2..4G kann ja nur das Betriebssystem zugreifen (= Kernelspace). Nur, wieviel Speicher ist denn eigentlich nun ausschliesslich durch den Kernel belegt? Der Kernel selbst braucht nur wenige Megabyte und die paar Treiber die immer geladen sind brauchen ebenfalls nur wenige Megabyte. Der Rest (z.B. Festplattencache "Buffers" und Cache für Shared Libraries "shared") ist alles Userspace.

Bleibt die Frage "Ja wie gross denn nun?"... IIRC müsste der in "top" angegebene Wert für "PhysMem: ????? wired" dies Aussagen.

Bei mir wäre dies eine Wert von ca. 86MB.
Bei einem G5 mit paarweiser RAM Bestückung hiesse dies: 2x 1GB + 2x 64MB RAMs (= Summe: 2128 MByte) und gut ist. Und weil das nicht kaufbar ist: 2x 1GB + 2x 256MB RAMs (= Summe: 2.5GB)
Die oberen 128MB bzw. 512MB in diesem Rechenbeispiel darf sich dann dein Kernel und seine Gerätetreiber einverleiben.
Tja, da ist OSX wohl doch effizienter al ich dachte. Na ja, nächstes ja habe ich wohl genug Geld gespart und dann wollte ich meinen Rechner eh gegen einen G5 tauschen, mal sehen was bis dahin aktuelll ist :cool:
Danke für die Info's :p
 
Heinrich1 schrieb:
Die Beschränkung des Memorycontrollers (42bit statt 64bit) tritt hier noch lange nicht in Erscheinung.
Das ist die Beschränkung durch den Prozessor (externer Adressbus). Der Memorycontroller (U3) hat eine andere Beschränkung (16GB AFAIK).
Der G4-Prozessor hat einen externen 36-bit-Adressbus, könnte also 64GB ansprechen, der Memorycontroller (U2) erlaubt aber nur 2GB.
 
Heinrich1 schrieb:
Ja, beide teilen sich den zur Verfügung stehenden Speicher. Das Betriebssystem füllt "von oben" herunter und deine Applikation "von unten" her den Hauptspeicher.
So war es in Mac OS 9.
In Mac OS X ist das alles ganz anders: Der physikalische Speicher ist der Cache (bzw. die schnellste Cache-Stufe) für das VM-System.

Übrigens lag die Grenze an Speicher pro Applikation bei Mac OS 8,5 bei 999MB und bei Mac OS 9 dann bei 1,5GB.
der in "top" angegebene Wert für "PhysMem: ????? wired"
Ist lediglich diejenige Menge an Pages, die nicht in den Swapbereich ausgelagert werden dürfen. Das ist natürlich der Kernel und die Treiber, aber auch der Speicher des emulierten PCs von VirtualPC landet dort (weil VPC den Kernel darum bittet, diesen Speicher nicht dem VM-System zum Auslagern zur Verfügung zu stellen).
 
Zuletzt bearbeitet von einem Moderator:
Eine ganz andere Frage - hoffe das ist ok. Ich habe einen 1 GB Riegel und den Original 256 Riegel in meinem iMac. Wann ist er jetzt schneller - mit nur einem 1 GB Riegel oder mit dem 256 Riegel plus dem 1 GB Riegel?
 
Ich kann dir das nicht beantworten. Musst mal den Cinebench oder Speedtest laufen lassen.

Es gab vor einiger Zeit (PPC) schon mal interleaved Memory bei Apple. Da wurde von ca. 10 % Leistungssteigerung gesprochen wenn die Baenke Paralell bestueckt waren. Und nicht alle Anwendungen profitieren gleich davon. Hier gab es vor einiger Zeit schon mal einen Fred dazu. Such mal nach interleaved.

Cheers,
Lunde
 
Das von Lunde beschrieben Feature gibt es nur im iMac G5 (und früher mal in den PowerMacs 7500-9500 und noch früher im Quadra 650).
Im iMac G5 (und nur dort, die alten Kisten vergessen wir mal) kann es sein, dass 2x 512MB schneller sind, als 256MB + 1GB. Mit nur dem 1GB-Riegel ist aber auch der iMac G5 auf keinen Fall schneller, als mit 256MB + 1GB.
Denn nur, wenn zwei gleiche Riegel verwendet werden, wird der Speicher interleaved (d.H. der Bus von 2x 64bit zu 1x 128bit vereint). Wenn nur ein Riegel gesteckt ist es genau, wie bei zwei unterschiedlichen. Wenn nur ein Riegel steckt, gibt es ja nix zu interleaven.
 
._ut schrieb:
So war es in Mac OS 9.
In Mac OS X ist das alles ganz anders: Der physikalische Speicher ist der Cache (bzw. die schnellste Cache-Stufe) für das VM-System.
Ich habe von Unix Kernel geredet und nicht vom klassischen MacOS.
Und bei Unix existiert der von mir beschriebene 2/2 bzw. 3/1 split wovon lediglich der unter Teil des Adressraum dem Anwender zur Verfügung steht.

._ut schrieb:
Ist lediglich diejenige Menge an Pages, die nicht in den Swapbereich ausgelagert werden dürfen.
Kleine Korrektur: "top" gibt hier die Menge in Megabyte an, während die Anzahl "Pages" lediglich von dem Befehl "vm_stat" angezeigt wird. Und unter einer "Page" können sich -- ausser den Programmierern -- sicher die wenigsten eine Grössenordnung vorstellen.

Auszug aus der Manpage zu vm_stat:
Pages wired down
the total number of pages wired down. That is, pages that cannot
be paged out.

._ut schrieb:
Das ist natürlich der Kernel und die Treiber,
Und darum ging es.
Dass der Wert vielleicht nicht 100%ig passt ist mir schon klar, aber ich erwarte andererseits auch keine besonders grosse Abweichung von diesem Wert.
Bei mir läuft gerade kein VirtualPC o.ä. und dann bedeutet es ja, dass lediglich etwa 80-90MB RAM zum Kernelspace gehören und in den oberen Adressbereich verschoben werden könnten wenn bei einem G3/G4 mehr als 2GB RAM installiert ist.

._ut schrieb:
aber auch der Speicher des emulierten PCs von VirtualPC landet dort (weil VPC den Kernel darum bittet, diesen Speicher nicht dem VM-System zum Auslagern zur Verfügung zu stellen).

Das würde ja bedeuten, dass VirtualPC eine privilegierte Applikation ist die direkt Kernelbefehle an das VirtualMemory Subsystem sendet?! Das wäre ja sehr "problematischer" Programmierstil da die kleinste Änderung oder Anpassung des Kernel VM Subsystems sofort Anpassungen in der Applikation zur Folge hätte.
Das kann ich mir nicht vorstellen.

Andererseits werden in "Pages wired" auch Speicherseiten erfasst die gerade in Verwendung (z.B. Programmteile die gerade eine Berechnung durführen; Beispielsweise ein laufender Photoshop Filter) sind und deswegen nicht ausgelagert werden können/dürfen.

Siehe auch Auszug aus der Entwickler Doku:

FUNCTION
kern_return_t vm_wire (host_priv_t host_priv, vm_task_t target_task, vm_address_t address, vm_size_t size, vm_prot_t access)

The function vm_wire() allows privileged applications to control memory pageability. host_priv is the privileged host port for the host on which target_task resides. address is the starting address, which will be rounded down to a page boundary. size is the size in bytes of the region for which protection is to change, and will be rounded up to give a page boundary. access specifies the types of accesses that must not cause page faults.

The semantics of a successful vm_wire operation are that memory in the specified range will not cause page faults for any accesses included in access. Data memory can be made non-pageable (wired) with a access argument of VM_PROT_READ | VM_PROT_WRITE. A special case is that VM_PROT_NONE makes the memory pageable.

The function returns KERN_SUCCESS if the call succeeded, KERN_INVALID_HOST if host_priv was not the privileged host port, KERN_INVALID_TASK if task was not a valid task, KERN_INVALID_VALUE if access specified an invalid access mode, KERN_FAILURE if some memory in the specified range is not present or has an inappropriate protection value, and KERN_INVALID_ARGUMENT if unwiring (access is VM_PROT_NONE) and the memory is not already wired.
 
._ut schrieb:
...
Denn nur, wenn zwei gleiche Riegel verwendet werden, wird der Speicher interleaved (d.H. der Bus von 2x 64bit zu 1x 128bit vereint). Wenn nur ein Riegel gesteckt ist es genau, wie bei zwei unterschiedlichen. Wenn nur ein Riegel steckt, gibt es ja nix zu interleaven.

Müssen die beiden Riegel nur die gleiche Speichergröße haben, oder müssen die exakt gleich sein?

Es könnte ja sein das jemand zwei 1GB Riegel von unterschiedlichen Herstellern einbaut, zählen die dann als unterschiedlich?
 
Magicq99 schrieb:
Müssen die beiden Riegel nur die gleiche Speichergröße haben, oder müssen die exakt gleich sein?

Es könnte ja sein das jemand zwei 1GB Riegel von unterschiedlichen Herstellern einbaut, zählen die dann als unterschiedlich?
Sie müssen technisch (Speichermenge, -organisation, Zugriffszeit/Latenz, etc.) gleich sein.
Ob da jetzt nun Samsung oder Infineon drauf steht oder die Platine rot oder grün ist ist letztendlich egal.

Es ist halt einfacher sicherzustellen dass beide RAM Riegel wirklich technisch baugleich sind, wenn du beide vom selben Hersteller beziehst.

Aber wenn du eine Email an einen der RAM Hersteller schreibst werden die dir sicher was anderes erzählen :D
 
Hallo,

da hier gerade so viele Experten unterwegs sind möchte ich gerne auch noch eine Frage loswerden. Kann ich mein unten genanntes iBook auch noch weiter mit RAM aufstocken? Laut Apple gehen nicht mehr als 320 MB RAM. Vielen Dank.

Gruss

ot
 
operatort schrieb:
Hallo,
da hier gerade so viele Experten unterwegs sind möchte ich gerne auch noch eine Frage loswerden. Kann ich mein unten genanntes iBook auch noch weiter mit RAM aufstocken? Laut Apple gehen nicht mehr als 320 MB RAM.
Laut MacTracker kann ein "Indigo" auf maximal 576 MB RAM (64 + 512) aufgerüstet werden. Von Apple als "supported" genannt sind aber aus bekannten Gründen nur 320 MB (64 + 256).
 
Zurück
Oben Unten