On Fri, 11 Mar 2011, Steve Reinhardt wrote:


Thanks for the explanation... I was expecting to see a loop on
L1DcacheMemory like before and I missed the one on system.ruby.network.

In the short run, I think the easiest way to break the cycle is to have the
network take the RubySystem object as a parameter instead of the other way
around, then add a registerNetwork() callback on RubySystem to let the
network give the system its pointer.

There are more dependencies involved in here. RubySystem needs total memory size, which is calculated by looping through all the directory controllers. But the controllers themselves require RubySystem pointer.

I still don't understand the opposition to cache controllers moving under RubySystem. They should logically be under RubySystem. Whenever we choose to remove RubySystem, everything will move under system. By having controllers under system and rest of Ruby components under RubySystem, we are creating two paths in the graph that are running parallel to each other, even though we have dependence between them. I would rather have a tree / directed acyclic structure.

Thanks
Nilay
_______________________________________________
m5-dev mailing list
m5-dev@m5sim.org
http://m5sim.org/mailman/listinfo/m5-dev

Reply via email to