Quinn, By wired, I mean the data that I put in the memory remains at a fixed place in physical memory - it is not paged out. This would probably be equivalent to a fixed mapping from VM to physical memory. I heard that OS-X Panther was in some ways a 64-bit OS. In other words, I thought tasks could execute 64-bit addressing load and store machine instructions. Maybe I am mistaken. Also, I maybe mistakenly thought that you could compile a C/C++ program in a way such that you could have 64-bit pointers that are dereferenced. If these things are not available, does anyone one have an idea of when they will become available in the future? Thanks, Larry -----Original Message----- From: Quinn To: 'darwin-kernel@lists.apple.com' Sent: 11/13/2003 1:58 AM Subject: Re: Can a task on each of 2 processors share 7 GB of physical memory At 18:37 -0800 12/11/03, Miller, Larry wrote:
I would like to be able to wire these blocks.
The G5 has two different types of wired memory. There's the traditional definition of wired, that is that the virtual to physical memory translation can't change, and then there's a new concept of "wired for I/O". Wiring memory for I/O enters it into a memory management unit that translates 32-bit PCI addresses into > 32-bit processor physical addresses (the DART). Which of these forms of wiring are you interested in?
And I would like to have a
task on each of the two processors have direct access (thru pointer
dereferencing) to this 7 GB worth of memory.
This indicates that you want to access > 4 GB of memory from a single process via direct pointer access. Do I understand you correctly? If so, this can't be done on G5 systems running current versions of Mac OS X. Currently all processes have a 32-bit address space and run in 32-bit mode. Therefore no process can directly access more than 4 GB of memory (the limit is less if you consider the address space consumed for frameworks etc). That's not to say that the G5's large physical memory is useless. It allows you to run multiple processes, each with a huge working set. You can also indirectly access large memory spaces by changing the memory mappings within your process. However, both of these are outlawed by your problem statement. Apple is aware of the need for supporting 64-bit address spaces. However, I'm not authorised to say anything about our plans in this area. S+E -- Quinn "The Eskimo!" <http://www.apple.com/developer/> Apple Developer Technical Support * Networking, Communications, Hardware _______________________________________________ darwin-kernel mailing list | darwin-kernel@lists.apple.com Help/Unsubscribe/Archives: http://www.lists.apple.com/mailman/listinfo/darwin-kernel Do not post admin requests to the list. They will be ignored. _______________________________________________ darwin-kernel mailing list | darwin-kernel@lists.apple.com Help/Unsubscribe/Archives: http://www.lists.apple.com/mailman/listinfo/darwin-kernel Do not post admin requests to the list. They will be ignored.