-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
http://reviews.gem5.org/r/2787/#review6416
-----------------------------------------------------------


On 5/19 Nilay wrote:  "I need some reference on this.  I talked to Prof. Wood 
about it and he said that he is not aware of any CPUs that do this.'

Is the challenge that CPUs do not use complicated buffering to properly 
implement memory models?  If so, I don't see how someone could disagree with 
that statement.  For instance, see Butler et al. IEEE Micro paper from 2011.  
There are three different L/S units that can generate requests to the L1 I and 
D caches.  Do you not think there is complicated buffering to support this?

On 5/19 Nilay also wrote: "Note that the L0/L1 controller would serve those 
requests from the same cache block.  So requests would not be sent out beyond 
the L0/L1 controller.  And as much as I understand the protocols currently in 
gem5, if we completely remove the aliasing support from sequencer, the L0/L1 
controllers would either merge or block aliased requests."

I would be very careful with trying such a solution.  Most SLICC protocols rely 
on stalling or recycling to deal with conflicting requests.  A lot of stalls 
and recycles can significantly impact performance.

In general, we need to get past the expectation that contributors are going to 
completely re-implement their entire approach when posting a patch.  What you 
are suggesting goes well beyond this patch.

- Brad Beckmann


On May 26, 2015, 7:42 p.m., Tony Gutierrez wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> http://reviews.gem5.org/r/2787/
> -----------------------------------------------------------
> 
> (Updated May 26, 2015, 7:42 p.m.)
> 
> 
> Review request for Default.
> 
> 
> Repository: gem5
> 
> 
> Description
> -------
> 
> Changeset 10817:d010e6a8e783
> ---------------------------
> ruby: Fixed pipeline squashes caused by aliased requests
> 
> This patch was created by Bihn Pham during his internship at AMD.
> 
> This patch fixes a very significant performance bug when using the O3 CPU 
> model
> and Ruby. The issue was Ruby returned false when it received a request to the
> same address that already has an outstanding request or when the memory is
> blocked. As a result, O3 unnecessary squashed the pipeline and re-executed
> instructions. This fix merges readRequestTable and writeRequestTable in
> Sequencer into a single request table that keeps track of all requests and
> allows multiple outstanding requests to the same address. This prevents O3
> from squashing the pipeline.
> 
> 
> Diffs
> -----
> 
>   src/mem/ruby/system/Sequencer.hh df2aa91dba5b0f0baa351039f0802baad9ed8f1d 
>   src/mem/ruby/system/Sequencer.cc df2aa91dba5b0f0baa351039f0802baad9ed8f1d 
> 
> Diff: http://reviews.gem5.org/r/2787/diff/
> 
> 
> Testing
> -------
> 
> 
> Thanks,
> 
> Tony Gutierrez
> 
>

_______________________________________________
gem5-dev mailing list
[email protected]
http://m5sim.org/mailman/listinfo/gem5-dev

Reply via email to