> On July 15, 2014, 2:47 p.m., Andreas Sandberg wrote:
> > Overall, I think this patch looks good and the refactoring is a well-needed 
> > change to the way we implement replacement policies.
> > 
> > At a high level, I'd really appreciate it if you could split this patch 
> > into two patches so the refactoring becomes its own commit. That makes 
> > things like bisection much cleaner in the future.
> > 
> > I also found the naming of the different classes a bit confusing. I would 
> > suggest that you rename BaseLRU -> BaseSetAssoc or something similar. After 
> > all, the common stuff that goes into this base class isn't really LRU 
> > specific. I also get a bit confused by the PseudoLRU class. When I think of 
> > pseudo-LRU, I generally think of things like tree-based LRU or the 
> > algorithm used in Nehalem. I'd suggest that you rename it to something with 
> > random in the name instead.

I think the benefit of splitting it vs the effort to do so is too great. 
However the naming change would be useful. Thanks a lot for the patch Tony.


- Ali


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


On June 24, 2014, 11:26 p.m., Anthony Gutierrez wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> http://reviews.gem5.org/r/2167/
> -----------------------------------------------------------
> 
> (Updated June 24, 2014, 11:26 p.m.)
> 
> 
> Review request for Default.
> 
> 
> Repository: gem5
> 
> 
> Description
> -------
> 
> Changeset 10243:8f4099f6b9a2
> ---------------------------
> mem: re-factor LRU code and add random replacement cache tags
> 
> this patch implements a new tags class that uses a random replacement policy.
> these tags prefer to evict invalid blocks first, if none are available a
> replacement candidate is chosen at random.
> 
> this patch factors out the common code in the LRU class and creates a new
> abstract class: the BaseLRU class. any LRU tag or derivative of LRU must
> implement the methods related to the actual replacement policy. these are the
> following methods, which are pure virtual methods in BaseLRU:
> 
> accessBlock()
> findVictim()
> insertBlock()
> invalidate()
> 
> 
> Diffs
> -----
> 
>   src/mem/cache/base.cc cb4e86c177672fde6be7a409793c944e36353fc0 
>   src/mem/cache/cache.cc cb4e86c177672fde6be7a409793c944e36353fc0 
>   src/mem/cache/tags/SConscript cb4e86c177672fde6be7a409793c944e36353fc0 
>   src/mem/cache/tags/Tags.py cb4e86c177672fde6be7a409793c944e36353fc0 
>   src/mem/cache/tags/base_lru.hh PRE-CREATION 
>   src/mem/cache/tags/base_lru.cc PRE-CREATION 
>   src/mem/cache/tags/lru.hh cb4e86c177672fde6be7a409793c944e36353fc0 
>   src/mem/cache/tags/lru.cc cb4e86c177672fde6be7a409793c944e36353fc0 
>   src/mem/cache/tags/pseudo_lru.hh PRE-CREATION 
>   src/mem/cache/tags/pseudo_lru.cc PRE-CREATION 
> 
> Diff: http://reviews.gem5.org/r/2167/diff/
> 
> 
> Testing
> -------
> 
> Regressions pass
> 
> 
> Thanks,
> 
> Anthony Gutierrez
> 
>

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

Reply via email to