SimObjects get created more or less by working depth-first from the root of
the configuration hierarchy, but for the children of a particular tree node
there's no enforced order, which is why your CPUs are getting created in
pseudo-random order.

As each CPU object gets created, it registers itself with the Process object
that represents your program.  The Process object starts the program running
on the first CPU that registers itself.

If you are just running a single-threaded program, the easy way to fix this
is to associate the workload object only with cpu[0] in your configuration
script.

If you're running a multi-threaded program but you want the initial thread
to always come up on cpu[0], that's a little trickier.  I don't know of a
way to force that in the current system.  I'd have to think about what is
the easiest way to make that possible.

Steve

On 8/28/07, Meng-Ju Wu <[EMAIL PROTECTED]> wrote:
>
> Hi,
>
> I tried 8 CPUs configuratation in SE mode. The creation order of CPU IDs
> is 6->4->5->2->3->0->1->7. When I run a single-thread prpgram, the program
> is executed on CPU 6. How should I change the simulator to let my program
> can be executed on CPU 0? And why the creation order is not
> 0->1->2->.....->6->7?
>
> I really appreciate if you can give me some hints about which part of the
> source codes I should look at.
>
> Thanks,
>
> Meng-Ju
>
>
>
> _______________________________________________
> m5-users mailing list
> m5-users@m5sim.org
> http://m5sim.org/cgi-bin/mailman/listinfo/m5-users
>
_______________________________________________
m5-users mailing list
m5-users@m5sim.org
http://m5sim.org/cgi-bin/mailman/listinfo/m5-users

Reply via email to