Hello,
I am trying to simulate x86 system with memory greater than 3GB using
Ruby hierarchy and MOESI_hammer protocol.
As x86 has an I/O gap between 3 to 4GB, two memory controllers are created.
However by default the num-dirs is taken as 1 and I get the following
assertion error during bootup in file mem/ruby/structures/DirectoryMemory.cc
Assertion `idx < m_num_entries' failed
Specifying the --num-dirs=2, I run into the following error in
file base/addr_range.hh before bootup even begins
fatal: Got 1 ranges spanning 1 interleaving bits
I noticed that in MOESI_hammer.py the create_system() function splits the
phys_mem_size into mem_module_size without knowledge of the I/O gap as below
mem_module_size = phys_mem_size / options.num_dirs
I fixed this to the right values but this still does not fix the
interleaving bits issue.
Also, when running the system with 3GB memory and num-dirs=2 (which works
well), I observe that even though the interleaving and hashing bits are
initially set in MemConfig.py, when executing src/mem/xbar.cc these bits
are set to 0 (disabled).
What is the right way to run Ruby with multiple directories and memory
greater than 3GB?
How are the interleaving and hashing (xor) bits used?
Thanks in advance.
--
*Regards,*
*Adarsh Patil*
*Indian Institute of Science*
*Bangalore, India*
TimeWarp <http://timewarp.adarsh.space>
_______________________________________________
gem5-users mailing list
[email protected]
http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users