> 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.
|