Date: | Tue, 20 Sep 2011 17:16:01 -0400 |
---|---|
From: | "abhisekpan@xxxxxxxxx" <abhisekpan@xxxxxxxxx> |
Subject: | [Gems-users] Stalling Simics from inside Ruby |
Hi Folks, I am trying to stall simics from ruby after a specific number of instructions, for example, I would like to stall simics for 100000 cycles after every 10 million instructions seen by ruby. This is independent of the stall that happens because of cache misses. My question is what can be a feasible way to do this? We can count the instructions in SimicsDriver.C / SimicsProcessor.C, but, as far as I understand, simply calling the SIMICS_stall() interface would not achieve what we want. As I understand, for a miss, Simics would be stalled for 2 million cycles anyway, and would be woken up later through a hit-callback when the miss reaches the eventqueue head. So even if I call the stall function for a definite number of cycles, ruby will wake simics up independently. I was thinking if we can modify the time for the SIM_time_post_cycle() callback which is called from runRubyEventQueue(). Normally is it set with SIMICS_RUBY_MULTIPLIER cycles and wakes up the event-queue every SIMICS_RUBY_MULTIPLIER cycles. Can we replace this with 10000 cycles to simulate this special stall? Or should I add a dummy event to the messagebuffer with a very high wake-up time? I am not yet sure how exactly this can be done. Please let me know if you have any suggestions! Thank you very much! -- Abhisek Live Long and Prosper |
[← Prev in Thread] | Current Thread | [Next in Thread→] |
---|---|---|
|
Previous by Date: | [Gems-users] Opal Statistics Documentation, Michael A. Skitsas |
---|---|
Next by Date: | [Gems-users] Is GEMS for windows ??, mostafa m hassan |
Previous by Thread: | [Gems-users] Simulation of Parsec using OPAL, Michael A. Skitsas |
Next by Thread: | [Gems-users] Using GEMS standalone, Islam Atta |
Indexes: | [Date] [Thread] |