Re: [Gems-users] Ruby/Simics Interface


Date: Fri, 03 Nov 2006 16:58:00 -0600
From: Dan Gibson <degibson@xxxxxxxx>
Subject: Re: [Gems-users] Ruby/Simics Interface
Deep,

To only invoke ruby for data accesses, do not issue the "instruction-fetch-mode instruction-fetch-trace" command to Simics.

When Simics calls into ruby, the actual point is in Ruby's commands.C. commands.C is a wrapper for the rest of Ruby's functionality... from commands.C, various MakeRequest functions are called in SimicsDriver.C, SimicsProcessor.C, and Sequencer.C. SimicsDriver and SimicsProcessor are used to abstract the Simics/Ruby interface -- most folks prefer to modify Sequencer.C (and higher-level code) for this reason.

One of two things can happen after the Sequencer's MakeRequest() function is called. IF the request is an L1 hit AND "fast path hits" are enabled, Simics will NOT be stalled, and no coherence action will take place. If the access is NOT and L1 hit OR fast path hits are not enabled, the action taken will then depend on the coherence protocol -- under most cases Simics will be stalled for one or more cycles.

Periodically, Simics will run the Ruby event queue in EventQueue.C. Various events will unstall Simics when data requests are satisfied.

Regards,
Dan Gibson

Shougata Ghosh wrote:

Hi
I'm completely new to GEMS. I am trying to understand how Simics and ruby interact with each other so that I can modify ruby according to my needs. Which functions are used/called by Simics to invoke ruby? Also, what would be a quick way to set simics to invoke ruby for only load/store instructions (and not for every instruction fetch)? I guess I could easily figure out the second part once I find out which functions are used to invoke ruby.
Your response will be very much appreciated.
Thanks
Deep

_______________________________________________
Gems-users mailing list
Gems-users@xxxxxxxxxxx
https://lists.cs.wisc.edu/mailman/listinfo/gems-users
Use Google to search the GEMS Users mailing list by adding "site:https://lists.cs.wisc.edu/archive/gems-users/"; to your search.


[← Prev in Thread] Current Thread [Next in Thread→]