I think you stated it pretty accurately, Gabe.  It looks like the
base_dyn_inst.hh file is only used in o3, ozone, and checker, and of
those only o3 is really being used right now.

Steve

On Thu, Jul 22, 2010 at 12:56 AM, Gabe Black <gbl...@eecs.umich.edu> wrote:
> The dynamic instruction object is really just the dynamic information
> associated with an instruction, as apposed to the static instruction
> object that gets reused. Strictly speaking there's no guarantee that an
> arbitrary dynamic instruction will always use timing mode, but all the
> CPU models we have that are complicated enough to need dynamic
> instructions use timing mode exclusively as far as I know. O3's dynamic
> instruction object for sure uses only timing mode, so yes, in that case,
> the data parameter is just so the function signatures are the same in
> the read case. initiateAcc is how memory instructions access memory in
> timing mode, so again, in this case and in most practical cases a
> dynamic instruction object's read function would be called from
> initiateAcc and not execute. If you're only worried about O3 (ie. it's
> in the o3 directory) you don't need to keep track of data. If it's the
> base dynamic instruction object it's a little less clear since
> -practically- speaking it will probably only be used with timing mode,
> but there isn't any reason I can think of that has to be true in all
> cases. I think the base dynamic instruction object may actually not be
> very far separated from O3 so it may already assume timing mode in other
> places.
>
> Please someone speak up if I'm wildly mischaracterizing how this is
> supposed to work. I've worked a lot with O3's innards, but I think all
> the design work was done before I was associated with M5.
>
> Gabe
>
> Min Kyu Jeong wrote:
>> so base_dyn_inst is always used timing memory - I assumed so but just
>> wanted to confirm this to make sure that read function,
>>
>> BaseDynInst<Impl>::read(Addr addr, T &data, unsigned flags)
>>
>> 'data' argument isn't really doing anything but being a placeholder
>> for func sig matching in xc interface. -- is this correct?
>>
>> BaseDynInst::read() will be called only in initiateAcc(), not in
>> execute() function. When the initiateAcc()/completeAcc() pair is used,
>> pkt->get() is used in completeAcc() to read the data.
>>
>> I am moving some code from read() to finishTranslation() and it looks
>> like 'data' variable doesn't need to be passed.
>>
>> Thanks,
>>
>> Min
>>
>> On Thu, Jul 15, 2010 at 10:01 AM, Steve Reinhardt <ste...@gmail.com
>> <mailto:ste...@gmail.com>> wrote:
>>
>>     On Wed, Jul 14, 2010 at 8:35 AM, Min Kyu Jeong <mkje...@gmail.com
>>     <mailto:mkje...@gmail.com>> wrote:
>>     >  b) memory is atomic (is it a possible combination? dyn_inst +
>>     atomic?) -
>>     > x86 doesn't seem to have code for this case -
>>     Walker::recvAtomic() does
>>     > nothing.
>>
>>     I don't believe that O3+atomic mode works.  Practically speaking it
>>     doesn't make any sense.
>>
>>     Steve
>>     _______________________________________________
>>     m5-dev mailing list
>>     m5-dev@m5sim.org <mailto:m5-dev@m5sim.org>
>>     http://m5sim.org/mailman/listinfo/m5-dev
>>
>>
>> ------------------------------------------------------------------------
>>
>> _______________________________________________
>> m5-dev mailing list
>> m5-dev@m5sim.org
>> http://m5sim.org/mailman/listinfo/m5-dev
>>
>
> _______________________________________________
> m5-dev mailing list
> m5-dev@m5sim.org
> http://m5sim.org/mailman/listinfo/m5-dev
>
_______________________________________________
m5-dev mailing list
m5-dev@m5sim.org
http://m5sim.org/mailman/listinfo/m5-dev

Reply via email to