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


Hi Nilay,

This patch is getting close.  Comments below.  

There is one item in this patch that I would request other developers to 
comment on.  Please look at Nilay's changes to packet.hh and let us know if 
they seem reasonable to you.  The main point here is that functional requests 
are not guaranteed to succeed in Ruby and thus there must be some mechanism to 
indicate when they failed.  Does passing that information back in the packet 
make sense?  Should it be in the request instead?  Other possible issues?


configs/example/ruby_mem_test.py
<http://reviews.m5sim.org/r/611/#comment1495>

    It seems that the following three parameters should not be hardcoded, but 
instead should be set using command line options.  Hardcoding the atomic 
parameter to false still makes sense, since Ruby can handle atomic requests.  
Also we should update the comment above.  



src/cpu/testers/memtest/memtest.cc
<http://reviews.m5sim.org/r/611/#comment1496>

    Remove commented out line



src/mem/packet.hh
<http://reviews.m5sim.org/r/611/#comment1497>

    This is more of a question to the other developers:
    
    Is this a reasonable way to return functional request failure?  It works 
for me, but I want to get others opinion.



src/mem/protocol/MESI_CMP_directory-L1cache.sm
<http://reviews.m5sim.org/r/611/#comment1498>

    Why are you adding this function?  SLICC already generates a similar 
function: getPermission().
    
    Overall, I hope/think we can add functional access support without 
requiring any more changes to the protocol specific .sm files beyond the 
changeset:   8086:bf0335d98250 that I checked in a couple months ago.



src/mem/ruby/system/CacheMemory.cc
<http://reviews.m5sim.org/r/611/#comment1499>

    Why are you commenting this line out?  If you think it is no longer needed, 
just remove it.  If we remove it, can we guarentee that the permission is 
initialized to some value?  For instance, do we know whether the "entry" 
constructor will allows initialize the value?



src/mem/ruby/system/DirectoryMemory.cc
<http://reviews.m5sim.org/r/611/#comment1500>

    Please align this statement.



src/mem/ruby/system/RubyPort.cc
<http://reviews.m5sim.org/r/611/#comment1501>

    Overall, I really like the comments you added in this file.  They really 
help clarify what is going on here.  Just one
    minor correction: change "Any copy" to "Any valid copy"



src/mem/ruby/system/System.hh
<http://reviews.m5sim.org/r/611/#comment1502>

    Why are these functions static?  I'm concerned that declaring these static 
will unecessarily restrict using Ruby in multiple system simulation.  Also from 
my understanding of the code, there is no need to make them static.  Perhaps 
I'm missing something.


- Brad


On 2011-04-12 16:35:34, Nilay Vaish wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> http://reviews.m5sim.org/r/611/
> -----------------------------------------------------------
> 
> (Updated 2011-04-12 16:35:34)
> 
> 
> Review request for Default.
> 
> 
> Summary
> -------
> 
> Ruby: Add support for functional accesses
> This patch is meant for aiding discussions on implementation of functional
> access support in Ruby.
> 
> 
> Diffs
> -----
> 
>   configs/example/ruby_mem_test.py cb1e137ac35e 
>   configs/ruby/MESI_CMP_directory.py cb1e137ac35e 
>   configs/ruby/Ruby.py cb1e137ac35e 
>   src/cpu/testers/memtest/memtest.cc cb1e137ac35e 
>   src/mem/packet.hh cb1e137ac35e 
>   src/mem/packet.cc cb1e137ac35e 
>   src/mem/protocol/MESI_CMP_directory-L1cache.sm cb1e137ac35e 
>   src/mem/protocol/MESI_CMP_directory-L2cache.sm cb1e137ac35e 
>   src/mem/protocol/MESI_CMP_directory-dir.sm cb1e137ac35e 
>   src/mem/protocol/RubySlicc_Types.sm cb1e137ac35e 
>   src/mem/ruby/network/Network.cc cb1e137ac35e 
>   src/mem/ruby/network/Network.py cb1e137ac35e 
>   src/mem/ruby/profiler/Profiler.cc cb1e137ac35e 
>   src/mem/ruby/profiler/Profiler.py cb1e137ac35e 
>   src/mem/ruby/recorder/Tracer.cc cb1e137ac35e 
>   src/mem/ruby/recorder/Tracer.py cb1e137ac35e 
>   src/mem/ruby/system/AbstractMemory.hh PRE-CREATION 
>   src/mem/ruby/system/AbstractMemory.cc PRE-CREATION 
>   src/mem/ruby/system/AbstractMemory.py PRE-CREATION 
>   src/mem/ruby/system/Cache.py cb1e137ac35e 
>   src/mem/ruby/system/CacheMemory.hh cb1e137ac35e 
>   src/mem/ruby/system/CacheMemory.cc cb1e137ac35e 
>   src/mem/ruby/system/DirectoryMemory.hh cb1e137ac35e 
>   src/mem/ruby/system/DirectoryMemory.cc cb1e137ac35e 
>   src/mem/ruby/system/DirectoryMemory.py cb1e137ac35e 
>   src/mem/ruby/system/RubyPort.hh cb1e137ac35e 
>   src/mem/ruby/system/RubyPort.cc cb1e137ac35e 
>   src/mem/ruby/system/RubySystem.py cb1e137ac35e 
>   src/mem/ruby/system/SConscript cb1e137ac35e 
>   src/mem/ruby/system/Sequencer.cc cb1e137ac35e 
>   src/mem/ruby/system/Sequencer.py cb1e137ac35e 
>   src/mem/ruby/system/System.hh cb1e137ac35e 
>   src/mem/ruby/system/System.cc cb1e137ac35e 
>   src/mem/slicc/ast/MemberExprAST.py cb1e137ac35e 
> 
> Diff: http://reviews.m5sim.org/r/611/diff
> 
> 
> Testing
> -------
> 
> I have tested functional accesses with the ratio between functional
> and timing accesses for different ratios -- 100:0, 99:1, 90:1, 50:50,
> 10:90, 1:99. It is working in all the cases.
> 
> 
> Thanks,
> 
> Nilay
> 
>

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

Reply via email to