Ok, found and written a possible solution to this. I appreciate the help because I would continued searching it from a python point of view. Now I'm able to retrieve a pointer to others' TLBs and make a lookup. But I also want to emulate a delay meaning the time that would take to send the request to the TLBs and receive the reponse from each one. Taking into account that this would be a broadcast, the time can be fixed. How can it be done properly?

El 13/11/12 16:12, Nilay Vaish escribió:
On Tue, 13 Nov 2012, Albert wrote:

Aren't they created from a Python script as a SimObject and accesible by the CPU used through a Param of it?

I mean, if I mentioned Python scripts, to begin with, was because I though the System objects were created there. But also, as I said, I'm still trying to figure out how it works.

El 13/11/12 13:28, Nilay Vaish escribió:
On Tue, 13 Nov 2012, Albert wrote:

Ok, that seems to make sense, being also a simpler approach, but where exactly it should be done? Objects are instantiated from python scripts, so I imagine you are thinking about a parameter for one of those scripts? Also, TLBs are instantiated from the CPU (itb and dtb), but I want to collect the TLBs of each cpu on the System. CPUs are instantiated in m5/simulate.py along other objects descending from Root, but I'm not sure how to retrieve the TLBs from there. I'm not really used to the Python/C++ mixture in the config, and grep search where the objects are instantiated is a bit hard. So it is not really clear to me how to proceed.

And if I finally manage to create that list, if it is a parameter on a script as mentioned, how can I make it accesible from the tlb.cc class?


Forget about python part of gem5 for the time being. Think purely from C++ point of view. You have a class named TLB. Whenever an object of this class is created you need to add it to a list. So, you need to create a list before any of the TLB objects have been created and you need to figure out when a TLB object is created. If you just think C++, you should be able to make out how to do both of these.


Ultimately a TLB object is an object in C++ sense. Why don't you try what I am hinting at? I still suggest that you forget about the Python for the time being and try to solve the problem with in the realm of C++.

--
Nilay

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

Reply via email to