Difference between revisions of "Simple"

From gem5
Jump to: navigation, search
m (Simple Network)
 
(3 intermediate revisions by the same user not shown)
Line 1: Line 1:
=== Simple Network ===
+
'''More details of the gem5 Ruby Interconnection Network are [[Interconnection_Network|here]].'''
 +
 
 +
== Simple Network ==
 +
 
 +
The default network model in Ruby is the simple network.
  
The simple network models hop-by-hop network traversal, but abstracts out detailed modeling within the switches.
+
* '''Related Files''':
The switches are modeled in simple/PerfectSwitch.cc while the links are modeled in simple/Throttle.cc.
+
** '''src/mem/ruby/network/Network.py'''
The flow-control is implemented by monitoring the available buffers and available bandwidth in output links before sending.
+
** '''src/mem/ruby/network/simple'''
 +
** '''src/mem/ruby/network/simple/SimpleNetwork.py'''
  
[[File:Simple_network.jpg|200px|center]]
+
== Configuration ==
 +
Simple network uses the generic network parameters in Network.py:
 +
** '''number_of_virtual_networks''': This is the maximum number of virtual networks. The actual number of active virtual networks is determined by the protocol.
 +
** '''control_msg_size''': The size of control messages in bytes. Default is 8. '''m_data_msg_size''' in Network.cc is set to the block size in bytes + control_msg_size.
  
* '''Configuration''':
+
Additional parameters are specified in simple/SimpleNetwork.py:
Simple network uses the generic network parameters in Network.py. Additional parameters are specified in simple/SimpleNetwork.py:
 
 
** '''buffer_size''': Size of buffers at each switch input and output ports. A value of 0 implies infinite buffering.
 
** '''buffer_size''': Size of buffers at each switch input and output ports. A value of 0 implies infinite buffering.
 
** '''endpoint_bandwidth''': Bandwidth at the end points of the network in 1000th of byte.
 
** '''endpoint_bandwidth''': Bandwidth at the end points of the network in 1000th of byte.
 
** '''adaptive_routing''': This enables adaptive routing based on occupancy of output buffers.
 
** '''adaptive_routing''': This enables adaptive routing based on occupancy of output buffers.
  
 +
== Switch Model ==
 +
The simple network models hop-by-hop network traversal, but abstracts out detailed modeling within the switches.
 +
The switches are modeled in simple/PerfectSwitch.cc while the links are modeled in simple/Throttle.cc.
 +
The flow-control is implemented by monitoring the available buffers and available bandwidth in output links before sending.
  
'''More details of the gem5 Ruby Interconnection Network are [[Interconnection_Network|here]].'''
+
[[File:Simple_network.jpg|200px|center]]

Latest revision as of 02:41, 25 September 2016

More details of the gem5 Ruby Interconnection Network are here.

Simple Network

The default network model in Ruby is the simple network.

  • Related Files:
    • src/mem/ruby/network/Network.py
    • src/mem/ruby/network/simple
    • src/mem/ruby/network/simple/SimpleNetwork.py

Configuration

Simple network uses the generic network parameters in Network.py:

    • number_of_virtual_networks: This is the maximum number of virtual networks. The actual number of active virtual networks is determined by the protocol.
    • control_msg_size: The size of control messages in bytes. Default is 8. m_data_msg_size in Network.cc is set to the block size in bytes + control_msg_size.

Additional parameters are specified in simple/SimpleNetwork.py:

    • buffer_size: Size of buffers at each switch input and output ports. A value of 0 implies infinite buffering.
    • endpoint_bandwidth: Bandwidth at the end points of the network in 1000th of byte.
    • adaptive_routing: This enables adaptive routing based on occupancy of output buffers.

Switch Model

The simple network models hop-by-hop network traversal, but abstracts out detailed modeling within the switches. The switches are modeled in simple/PerfectSwitch.cc while the links are modeled in simple/Throttle.cc. The flow-control is implemented by monitoring the available buffers and available bandwidth in output links before sending.

Simple network.jpg