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

Review request for Default.


Repository: gem5


Description
-------

Changeset 11356:2c8bd12f84a2
---------------------------
mem: Implement alternative flow control between MemObject ports

The default gem5 behavior for flow control between MemObjects is to use retry
(ACK/NACK) based approach where the slave MemObject typically handles flow
control from the master(s). This provides an API that may be connected to
MemObject's ports to handle flow control in a more generic, less instrusive
manner. As an example, a token-based flow control is implemented where the
master handles situations where the slave can not accept any more requests.
Tokens are split by simplistically dividing tokens privately among masters.
In this approach, nearly all flow control tracking is handle by the flow
control delegate rather than slave MemObject. This allows us to implement
a common interface to handle, for example, QoS between MemObjects without
major modificaitons to individual MemObjects.

Currently the default is to use no flow control and fallback to the default
retry mechanisms in gem5. Flow control capability may be added by specifying
either master_flow_control or slave_flow_control in Python configuration
scripts when the MemObject is instantiated.


Diffs
-----

  src/mem/MemObject.py 31c5786945b447b372c3b7d346aea8fa6208577c 
  src/mem/SConscript 31c5786945b447b372c3b7d346aea8fa6208577c 
  src/mem/dram_ctrl.cc 31c5786945b447b372c3b7d346aea8fa6208577c 
  src/mem/flow_control.hh PRE-CREATION 
  src/mem/flow_control.cc PRE-CREATION 
  src/mem/mem_object.hh 31c5786945b447b372c3b7d346aea8fa6208577c 
  src/mem/port.hh 31c5786945b447b372c3b7d346aea8fa6208577c 
  src/mem/port.cc 31c5786945b447b372c3b7d346aea8fa6208577c 
  src/mem/protocol/RubySlicc_Defines.sm 
31c5786945b447b372c3b7d346aea8fa6208577c 
  src/mem/ruby/slicc_interface/AbstractController.hh 
31c5786945b447b372c3b7d346aea8fa6208577c 
  src/mem/ruby/slicc_interface/AbstractController.cc 
31c5786945b447b372c3b7d346aea8fa6208577c 
  src/mem/slicc/symbols/StateMachine.py 
31c5786945b447b372c3b7d346aea8fa6208577c 
  src/mem/token_flow.hh PRE-CREATION 
  src/mem/token_flow.cc PRE-CREATION 
  src/python/swig/pyobject.cc 31c5786945b447b372c3b7d346aea8fa6208577c 
  src/mem/FlowControl.py PRE-CREATION 

Diff: http://reviews.gem5.org/r/3356/diff/


Testing
-------


Thanks,

Matthew Poremba

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

Reply via email to