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


This patch breaks some current SLICC functionality. In addition to the fixes 
mentioned below, check_next_cycle and stallPort should be modified to take in a 
parameter specifying the message buffer that they are to stall. RB3143 provides 
an example solution.


src/mem/slicc/ast/FuncCallExprAST.py (line 144)
<http://reviews.gem5.org/r/3139/#comment6197>

    Per my testing of this patch, this "continue" results in an infinite loop 
of the generated transition logic when a z_stall occurs. It should be removed.



src/mem/slicc/symbols/StateMachine.py (line 320)
<http://reviews.gem5.org/r/3139/#comment6198>

    msg_bufs does not guarantee that it has no duplicates. If a message buffer 
is used by more than one port, this will result in duplicate wakeup 
class/function declarations and a C++ compiler error. Duplicates should be 
removed from msg_bufs beforehand (RB 3143 provides an example solution).



src/mem/slicc/symbols/StateMachine.py (line 1020)
<http://reviews.gem5.org/r/3139/#comment6199>

    This should be if (${{msg_buf}}_ptr->isReady...).


- Yatin Manerkar


On Sept. 24, 2015, 2:58 p.m., Nilay Vaish wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> http://reviews.gem5.org/r/3139/
> -----------------------------------------------------------
> 
> (Updated Sept. 24, 2015, 2:58 p.m.)
> 
> 
> Review request for Default.
> 
> 
> Repository: gem5
> 
> 
> Description
> -------
> 
> Changeset 11137:70bfe6d0a764
> ---------------------------
> ruby: consumer: move away from Consumer class
> 
> Objects in ruby memory system typically inherit from the Consumer class that
> provides support for scheduling events.  The Consumer class maintains a 
> std::set
> of times at which events have been posted by the Derived class object.  
> Typically
> this causes a lot of overhead.  Secondly, the objects schedule events that are
> very coarse grained.  This patch reduces ruby memory system's reliance on the 
> Consumer
> class.
> 
> The patch changes the objects in the Network and the generated code for 
> Controllers
> in a significant way.  The generated controllers would now schedule events for
> individual input ports and not for the entire controller itself.  Similarly, 
> PerfectSwitch
> and Throttle would now schedule events on individual message buffers and not 
> for the
> entire object.  This avoids looking at buffers that do not have any message 
> pending.
> 
> 
> Diffs
> -----
> 
>   src/mem/ruby/structures/TimerTable.cc 5d38dc2f7d66 
>   src/mem/slicc/ast/FuncCallExprAST.py 5d38dc2f7d66 
>   src/mem/slicc/ast/IfStatementAST.py 5d38dc2f7d66 
>   src/mem/slicc/ast/InPortDeclAST.py 5d38dc2f7d66 
>   src/mem/slicc/symbols/StateMachine.py 5d38dc2f7d66 
>   src/mem/ruby/structures/RubyMemoryControl.cc 5d38dc2f7d66 
>   src/mem/ruby/structures/TimerTable.hh 5d38dc2f7d66 
>   src/mem/ruby/network/MessageBuffer.hh 5d38dc2f7d66 
>   src/mem/ruby/network/MessageBuffer.cc 5d38dc2f7d66 
>   src/mem/ruby/network/garnet/fixed-pipeline/NetworkInterface_d.hh 
> 5d38dc2f7d66 
>   src/mem/ruby/network/garnet/fixed-pipeline/NetworkInterface_d.cc 
> 5d38dc2f7d66 
>   src/mem/ruby/network/garnet/fixed-pipeline/NetworkLink_d.hh 5d38dc2f7d66 
>   src/mem/ruby/network/garnet/fixed-pipeline/NetworkLink_d.cc 5d38dc2f7d66 
>   src/mem/ruby/network/garnet/fixed-pipeline/flitBuffer_d.hh 5d38dc2f7d66 
>   src/mem/ruby/network/garnet/fixed-pipeline/flitBuffer_d.cc 5d38dc2f7d66 
>   src/mem/ruby/network/garnet/flexible-pipeline/NetworkInterface.hh 
> 5d38dc2f7d66 
>   src/mem/ruby/network/garnet/flexible-pipeline/NetworkInterface.cc 
> 5d38dc2f7d66 
>   src/mem/ruby/network/garnet/flexible-pipeline/NetworkLink.hh 5d38dc2f7d66 
>   src/mem/ruby/network/garnet/flexible-pipeline/NetworkLink.cc 5d38dc2f7d66 
>   src/mem/ruby/network/garnet/flexible-pipeline/Router.cc 5d38dc2f7d66 
>   src/mem/ruby/network/garnet/flexible-pipeline/flitBuffer.hh 5d38dc2f7d66 
>   src/mem/ruby/network/garnet/flexible-pipeline/flitBuffer.cc 5d38dc2f7d66 
>   src/mem/ruby/network/simple/PerfectSwitch.hh 5d38dc2f7d66 
>   src/mem/ruby/network/simple/PerfectSwitch.cc 5d38dc2f7d66 
>   src/mem/ruby/network/simple/Throttle.hh 5d38dc2f7d66 
>   src/mem/ruby/network/simple/Throttle.cc 5d38dc2f7d66 
>   src/mem/ruby/slicc_interface/AbstractController.hh 5d38dc2f7d66 
>   src/mem/ruby/slicc_interface/AbstractController.cc 5d38dc2f7d66 
>   src/mem/ruby/slicc_interface/Message.hh 5d38dc2f7d66 
>   src/mem/ruby/structures/RubyMemoryControl.hh 5d38dc2f7d66 
> 
> Diff: http://reviews.gem5.org/r/3139/diff/
> 
> 
> Testing
> -------
> 
> 
> Thanks,
> 
> Nilay Vaish
> 
>

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

Reply via email to