Re: [Gems-users] stalling simics


Date: Wed, 2 May 2007 16:00:16 -0700 (PDT)
From: "Dave Z." <zhu_dave@xxxxxxxxx>
Subject: Re: [Gems-users] stalling simics
Thanks for your quick reply, Dan! Now, I got the
stalling and unstalling working. But this raised some
other issues in SimicsProcessor. When the request is
"serving", there is an error message for unstalling
Simics without Ruby asking. Why is this considered an
error? 

Also, there is an assertion
(m_active_requests[idx].status == Queued), why is this
necessary? Is it okay to remove this assertion without
breaking anything else?

Thanks,

Dave


--- Dan Gibson <degibson@xxxxxxxx> wrote:

> Ruby stalls Simics initially by returning a huge
> number of stall cycles 
> (2 billion if I remember correctly) from the initial
> request.
> 
> The unstall events occur as part of a hitCallback,
> via the SIMICS_* 
> interface. Grep in interface.C for "stall" and you
> should find lots of 
> API for stalling and unstalling Simics.
> 
> Regards,
> Dan
> 
> Dave Z. wrote:
> > --- Mike Marty <mikem@xxxxxxxxxxx> wrote:
> >
> >   
> >>> If I understand correctly, when Simics
> encounters
> >>>       
> >> a
> >>     
> >>> data or instruction access, it stalls and passes
> >>>       
> >> the
> >>     
> >>> request to Ruby. Then, Ruby handles the request
> >>> (SimicsDriver, SimicsProcessor, Sequencer,
> >>>       
> >> Coherence
> >>     
> >>> Protocol) and returns some number of cycles.
> When
> >>> Simics receives the number of cycles, it waits
> >>>       
> >> until
> >>     
> >>> that many cycles pass and continues simulation.
> >>>       
> >> Please
> >>     
> >>> correct me if I'm wrong.
> >>>
> >>>       
> >> The model is that Ruby will stall a Simics
> processor
> >> indefinitely until a
> >> request finishes.  Then it unstalls Simics and
> >> Simics will "replay" the
> >> stalled instruction.  It doesn't actually return
> the
> >> # of cycles stalled
> >> to Simics.
> >>     
> >
> >
> > Thanks for your prompt reply, Mike. Could you
> please
> > tell me where Ruby stalls and unstalls Simics? Is
> it
> > possible to stall Simics indefinitely and unstall
> it
> > in a magic callback, for example?
> >
> > Thanks,
> >
> > Dave 
> >
> > __________________________________________________
> > Do You Yahoo!?
> > Tired of spam?  Yahoo! Mail has the best spam
> protection around 
> > http://mail.yahoo.com 
> > _______________________________________________
> > 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.
> >
> >   
> 
> -- 
> http://www.cs.wisc.edu/~gibson [esc]:wq!
> 
> _______________________________________________
> 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.
> 
> 


__________________________________________________
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around 
http://mail.yahoo.com 
[← Prev in Thread] Current Thread [Next in Thread→]