Difference between revisions of "Simple"
From gem5
					
										
					
					 (Created page with "=== Simple Network ===  The simple network models hop-by-hop network traversal, but abstracts out detailed modeling within the switches. The switches are modeled in simple/Per...")  | 
				|||
| (4 intermediate revisions by the same user not shown) | |||
| Line 1: | Line 1: | ||
| − | + | '''More details of the gem5 Ruby Interconnection Network are [[Interconnection_Network|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 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 switches are modeled in simple/PerfectSwitch.cc while the links are modeled in simple/Throttle.cc.    | ||
| Line 6: | Line 26: | ||
[[File:Simple_network.jpg|200px|center]]  | [[File:Simple_network.jpg|200px|center]]  | ||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
Latest revision as of 01: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.