> On 2011-06-09 11:17:24, Gabe Black wrote:
> > This isn't a review, just a thought on the question you're asking. If the 
> > access is speculative, is it ok to use a misspeculated pc since the 
> > instruction will be thrown out anyway?
> 
> Steve Reinhardt wrote:
>     Actually after briefly looking at the code, I wonder if we don't have a 
> bigger problem here.  I'm assuming that the ThreadContext struct reflects the 
> committed state of the machine, where we really want the state relative to 
> this in-flight instruction.  Have we just been getting lucky so far?  Seems 
> like in Alpha the TLB only uses the PC to see if it's in PAL mode or not, so 
> maybe the pipeline gets flushed when we switch in and out of PAL mode and 
> thus there's never an inconsistency there even in O3.  (Nate or Ali, can you 
> confirm this?)
>     
>     Korey, can you elaborate on the kind of errors you were running into 
> without this change?
>     
>     Technically I think perhaps the TLB should be using the ExecContext 
> interface instead of the ThreadContext, but since ExecContext isn't a real 
> object, that only works if you template the call... I wonder if we really 
> should be using something like the ProxyThreadContext (see 
> cpu/thread_context.hh) wrapped around a DynInst.  Does that make sense?
>
> 
> Ali Saidi wrote:
>     Steve, you're correct that entrances and exists from PAL are serialize 
> the pipeline so it isn't an issue. 
>     
>     The thread context is pretty much used to just read miscellaneous 
> register. Due to them (rightly) not being renamed and updated at commit the 
> tlb is getting non-speculative state only. Any instruction that is going to 
> do something that needs to be visible to later instructions needs to be 
> marked as serializing. In short, I don't think we need to change the current 
> interface and the hwrei change is very broken.

Can you rephrase this: "I don't think we need to change the current interface 
and the hwrei change is very broken." Are you saying that the subsequent hwrei 
patch is not what we want or ???

I think the interface is broken and we get away with it more than it's 
correctly coded. We may get away with in alpha, but I would think seeding the 
TLB with the last committed PC rather than the current  PC that needs to be 
translated is wrong and would at some point break the code.

Steve,
I think when I caught this "error" it was when the InOrder wasnt respecting the 
serializeBefore flag correctly. Thus, you get a mixup in which instruction PC 
needs to be translated.


- Korey


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
http://reviews.m5sim.org/r/743/#review1311
-----------------------------------------------------------


On 2011-06-08 23:34:50, Korey Sewell wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> http://reviews.m5sim.org/r/743/
> -----------------------------------------------------------
> 
> (Updated 2011-06-08 23:34:50)
> 
> 
> Review request for Default, Ali Saidi, Gabe Black, Steve Reinhardt, and 
> Nathan Binkert.
> 
> 
> Summary
> -------
> 
> inorder/dtb: make sure DTB translate correct address
> The DTB expects the correct PC in the ThreadContext
> but how if the memory accesses are speculative? Shouldn't
> we send along the requestor's PC to the translate functions?
> 
> 
> Diffs
> -----
> 
>   src/cpu/inorder/resources/cache_unit.cc 77d12d8f7971 
> 
> Diff: http://reviews.m5sim.org/r/743/diff
> 
> 
> Testing
> -------
> 
> 
> Thanks,
> 
> Korey
> 
>

_______________________________________________
gem5-dev mailing list
gem5-dev@m5sim.org
http://m5sim.org/mailman/listinfo/gem5-dev

Reply via email to