Skip to content
abadp edited this page May 22, 2015 · 2 revisions

Introduction

"SimulationSGML" file is a sgml file employed to set general parameters needed to run a simulation. This file specifies mainly all those aspects of the simulation not specific of the network configuration. These parameters include traffic-related parameters (such as traffic-pattern, message and packet length), generic parameters (such as simulation cycles, load applied) and GEMS-related parameters (such as Network/Cache clock ratio or virtual/physical networks). An example of a simulation description is provided below.

<Simulation id="M44-CT-NOC">
   <Network            id="M44_CT_NOC">
   <SimulationCycles   id=20000000000000000>
   <StopInjectionAfterMsg id=200000000000>
   <TrafficPattern     id="MODAL" type=EMPTY numMessTypes=4>
   <Seed               id=113>
   <Load               id=0.1>
   <MessageLength      id=1>
   <PacketLength       id=5>
   <LinkWidth          id=16>
   <FlitSize           id=5>
   <NetworkClockRatio  id=1>
   <UnifyNetworks      id=1>
   <ResetStats            id=1000> 
</Simulation>

Elements

Simulation

This tag specifies the simulation name. We need this name to execute a simulation. This is the only parameter that mandatory must be passed to Topaz through command line using the '-s' option.

Network

For each simulation, this tag tells Topaz which of the network elements at the Network SGML file has to be employed.

SimulationCycles

This element sets the simulation length in cycles. This value can be overridden through command line using the '-c' option.

StopInjectionAfterMsg

An alternative way to set simulation length. In this case, its value determines the number of messages that are injected to the network. When TOPAZ reaches the limit given by this element value, it will no longer generate any message (except for reactive traffic patterns). Simulation is stopped when every message generated has reached a consumer port, and the network becomes completely empty.

TrafficPattern

This element specifies which traffic pattern will be used in this simulation. The shape of the pattern employed is highly configurable, this tag is deeply explained in Traffic Pattern.

Seed

Specifies the value that will initialize the pseudo random number generator. For debugging, keeping this parameter to a fixed value allows us to reproduce error situations.

Load

Sets the normalized traffic load. The value of this parameter is the load applied to the network in flits/cycle/router. For this reason, its value must be between 0.0 and 1.0. This value can be overridden using the command line option '-l'. This tag and the next one (Probability) cannot be used simultaneously as load must be defined in a unique way).

Probability

Similar to the previous parameter. Sets the injection probability as a fraction of the total bisection bandwidth. This value must also be between 0.0 and 1.0. This tag and the previous one cannot be used simultaneously as load must be defined in a unique way.

MessageLength

Sets the number of packets a message has. Messages can be both multi-packet or uni-packet. In On-chip environments messages are built through a single packet in most cases.

PacketLength

Sets the number of flits a packet has. In TOPAZ, the flit is the minimal unit of information transferred through a link in a single cycle. In the literature, a further division of flits can be found, in units called phits. In TOPAZ case, flits cannot be divided, so 1 flit= 1 phit. This value can be overridden using the command line option '-L'.

LinkWidth

Working with GEMS, this value can be useful to automatically calculate the number of flits required by a packet given a fixed link width value. Currently this tag has no real utility.

FlitSize

Working with GEMS, this value can be useful to automatically calculate the number of flits required by a packet given a fixed link width value. Currently this tag has no real utility.

NetworkClockRatio

This parameter determines the relation between the operation frequency of network components and the rest of memory hierarchy components (GEMS/GEM5). A value of 2 means that the network components operate two times faster than caches (two TOPAZ cycles are simulated for each RUBY cycle simulated). Non integer values are also supported.

UnifyNetworks

This parameter determines whether our simulation with GEMS/GEM5 will employ virtual or physical networks. When set to false, a number of simulations equal to the number of message types is initiated.

ResetStats

This parameter instructs the simulator to reset all stats at the specified clock cycle.

Clone this wiki locally