If I had to guess, I'd say you're not looking at the right call to the translate function. I haven't messed with the alpha memory layout in a while, but 0x200a3860 may be a valid heap address, while I believe 0x11ff91db0 is a stack address.

Also all the translation is page-based, so even with translation the addresses ought to be congruent in the bottom 13 bits.

The translation in SE mode is totally transparent to the CPU, so I don't think it should be relevant for the problem you're trying to solve. The only time you would see a physical address is if you're in the memory system (e.g. in a cache or in main memory).

If you're still having problems, please post some specific examples and/or code and maybe that will help us understand what's going on.

Steve

Nicolas Zea wrote:
Does anyone have any information on how the conversion from an address visible to a user program to a physical address stored on the simulated physical memory takes place? The page table attached to each process does not appear to use the same address space as the program itself. (for example, the program thinks a variable is at addr 0x200a3860, when in fact the load with the effective address send to the page_table translate function is 0x11ff91db0).

As I understand it, on alpha the PAL takes care of this memory management. In se mode though, how is this done?

I'm currently trying to set a thread's pc to the beginning of a function. The address of the function comes from a system call with a function pointer parameter. Any information on how to convert that function pointer to a physical address would be appreciated.

-Nick
_______________________________________________
m5-users mailing list
[email protected]
http://m5sim.org/cgi-bin/mailman/listinfo/m5-users

_______________________________________________
m5-users mailing list
[email protected]
http://m5sim.org/cgi-bin/mailman/listinfo/m5-users

Reply via email to