I think that everything that you need to do should be in python.
Basically, you need to connect both CPUs to the same ITB and DTB
objects.

If you look in src/cpu/BaseCPU.py, you can see that the itb and dtb
each default to AlphaTLB()

This creates a new TLB and each CPU will end up getting its own.  If
you want two CPUs to share a TLB, then you need to do this:

itb = AlphaTLB()
cpu0.itb = itb
cpu1.itb = itb

The difference here is that they're both pointing to the same object.

This is written assuming that the TLB objects don't carry any per CPU
state which I think right now is true.  If they were more closely tied
to the CPU, then you might have to write something like the drain,
resume, switchOut, and takeOverFrom functions that the CPU uses to
deal with the movement of the cache object.

  Nate


On Tue, Jun 16, 2009 at 5:32 AM, Timothy M Jones <[email protected]> wrote:
>
> Hi everyone,
>
> I'm trying to implement SMARTS-like functionality in the Alpha SE
> version of m5. So far I have managed to get the simulator to switch
> between the AtomicSimpleCPU and DerivO3CPU and back again repeatedly.
> I've also implemented functionality to do the switching after a certain
> number of instructions (instead of cycles).
>
> However, when I switch cpus, I set the new CPU to use the warmed caches
> from the old cpu. The same doesn't happen for the itb and dtb. In fact,
> from looking at the code I think that 2 different instances of these get
> created, one for each cpu.
>
> So, how easy would it be to implement this and where would I start?
> Could I do this in cpu/BaseCPU.py, cpu/base.cc, cpu/base.hh only or do I
> need to consider other places too?
>
> Thanks for your help
> Tim
>
> --
> The University of Edinburgh is a charitable body, registered in
> Scotland, with registration number SC005336.
>
> _______________________________________________
> 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