The Simics/Ruby interface operates as follows.
Simics Issues a Request to Ruby
Case 1: Fast-Path Hit: Ruby return a stall time of zero.
Case 2: Fast-Path disabled: Ruby enqueues one or more events, depending
on the protocol, to handle the access. Ruby returns a stall time of two
billion cycles.
As simulation continues, the Simics processor is stalled. For
(approximately) each SIMICS_RUBY_MULTIPLIER cycles /observed by Simics/,
Simics makes one call into Ruby's event queue, nominally RunEventQueue().
Each run of the event queue increments the local time (Ruby_cycles), and
processes events for the current Ruby_cycle. Eventually, the processing
of these events handles the request, and Ruby un-stalls the affected
Simics processor with an explicit API call.
Lastly, Simics re-issues the request to Ruby, a peculiarity of the
interface. This re-issue is captured in SimicsDriver as I recall, and is
not observed by higher levels of Ruby in normal operation.
Regards,
Dan
divya ramakrishnan wrote:
Hi,
I have a very basic question about the flow of control in the
interface between Simics and Ruby.
I understand that for every memory access, Simics wakes up Ruby and
adds the transaction to the event queue. How exactly is this event
queue triggered [using triggerevents(time)] after the Simics processor
is stalled?
Is Ruby triggered for every cycle after that till it returns a latency
and unstalls the processor? Is this triggering done by Simics by
waking up Ruby every cycle?
It would be great if I could understand this basic flow because I am
really confused about the network simulation.
Thank you,
Divya
University of Cincinnati
------------------------------------------------------------------------
Meet people who discuss and share your passions. Join them now.
<http://in.rd.yahoo.com/tagline_groups_7/*http://in.promos.yahoo.com/groups>
------------------------------------------------------------------------
_______________________________________________
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.
|