> On May 18, 2015, 10:06 p.m., Nilay Vaish wrote:
> > I have asked this question before when Steve posted this patch several 
> > months ago.
> > I am going to ask it again?  Is it all right to buffer requests in the 
> > Sequencer?
> > Do we know of CPU designs that do so?  What problems do we face when we 
> > push through
> > requests for same address to the cache controllers?

Yes, it is ok to buffer requests in the Sequencer.  We are pretty satisfied 
with the correlation results against our hardware using Ruby.  The Sequencer is 
a simplification of much more complicated buffering in real hardware.  That 
simplification is a very good thing.

I believe it is pretty universal across most designs that they don't allow a 
single CPU to issue multiple requests for the same cache line that go out 
throughout the memory system.  That has huge power and complexity implications.


- Brad


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


On May 11, 2015, 10:22 p.m., Tony Gutierrez wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> http://reviews.gem5.org/r/2787/
> -----------------------------------------------------------
> 
> (Updated May 11, 2015, 10:22 p.m.)
> 
> 
> Review request for Default.
> 
> 
> Repository: gem5
> 
> 
> Description
> -------
> 
> Changeset 10844:0848038fe1d8
> ---------------------------
> 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 fbdaa08aaa426b9f4660c366f934ccb670d954ec 
>   src/mem/ruby/system/Sequencer.cc fbdaa08aaa426b9f4660c366f934ccb670d954ec 
> 
> 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