Re: [Gems-users] Regarding memory consistency issues


Date: Mon, 2 Oct 2006 13:48:15 -0500 (CDT)
From: Mike Marty <mikem@xxxxxxxxxxx>
Subject: Re: [Gems-users] Regarding memory consistency issues
> 	I know that GEMS is a Timing-first simulator, and then, strictly,
> this would not be possible. However, what confuses me is that, if
> DATA_BLOCK==true, then %GEMS/Rruby/module/ruby.c registers the Simics
> "snoop-memory" interface. This interface, according with the Simics
> Programming Guide, can be used to modify the result of loaded values. Thus,
> the timing interface models the timing of the request and the snoop
> interface can model the final value of the request. Also, in the SLICC code
> for the MESI LogTM protocol, there are callbacks like:
> sequencer.readCallback(address, getCacheEntry(address).DataBlk), which
> returns a value depending on the data held in the m_dataBlk member. However,
> I am not 100% sure about all this.
>

Yes, you can do that.  However Solaris might not work...


> 	My problem is that I would like to simulate a system in which there
> might be several different speculative values for the same address, on
> different cache controllers. Obviously, this can not be directly implemented
> in Simics, due to the single global memory image. The different values
> should be held on the Ruby caches, and a snoop interface should be used to
> make Simics detect a value different from the global one. Also, this might
> have some effects on the consistency model; this is where the original
> questions came from.
>
> 	Has anyone ever tried something similar? Any help would be
> appreciated.
>

Yes, this can be done assuming your software stack works.

--mike

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