Route
Optimization using Network SmartBlocks
Click
here to view the interactive VisualSim
Block Diagram and model
Any
collection of nodes that are connected
together is considered a network
in VisualSim terminology. This could
be devices on a board or a set of
SOC components on an ASIC. The routing
between these nodes require detailed
analysis to determine the optimum
routing paths and reliability of
the routing protocol. The networking
blocks in VisualSim provide the
ability to setup these types of
network nodes and their links. In
addition, the ability to generate
a variety of workloads and create
a variety of operating scenarios
is provided.
The
Workloads can be characterized using
-
The
data structure blocks, generates
operations based on a inter-arrival
time and a distribution. The common
distribution functions are provided
and others can be easily added
using a feedback loop function
or using the Expression block.
-
Trace
files captured from the rsa system
can be provided as an input stimulus
using the File IO blocks
-
The
workload characteristics can be
defined in a file and VisualSim
can call this file to create the
required workload for the model.
The
network scenarios can be charecterized
using the Node Master, Pipeline,
Layer Table and the Routing Table
blocks. Example of these scenarios
include
-
Link/bus
utilization by varying the number
of retransmission
-
Evaluate
caching requirements and CPU processing
required to reestablish after
the dynamic modifications of the
routing table by adding or deleting
a link. The rate of these link
modification can be dynamically
adjusted to determine the worst
the processing and power requirements
for the worst-case scenarios.
-
Determine
the optimum frame size for delivering
data up and down the protocol
stack at each node. The optimization
can be for protocol overhead,
reduce the number of simulataneous
operations and reducing processing
overhead.
Project
Objective
This project evaluates the utilization
at each node of a network of devices
when a link is removed and later added.
The model also captures the optimum
path between the devices based on
different workloads.
Capabilities
Demonstrated
This demo model demonstrates the
networking capability of VisualSim
and focuses on the NODE, Routing_Table,
and NODE_Master blocks. The NODE
blocks provide either "connected"
or "connectionless" modeling
capability. This model is using
the more advanced "Virtual
Connection" modeling style,
which provides for easy model layout,
irregardless of physical connections,
and provides a simulation speed
advantage, as fewer input-output
port actions are taken by the model.
The
Routing_Table is another modeling
innovation, in that all of the NODE
blocks can access this common Routing
Table, where common network parameters
can be set for the entire network.
Multiple networks, and routing tables
are also supported. The NODE_Master
is another modeling innovation that
allows the user to do one of three
actions: add a link, remove a link,
or simply update the routing table
(dynamic routing capability). Currently,
the network routing blocks support
the shortest path first Dykstra
routing algorithm (N^2). As there
are many new routing algorithms,
VisualSim provides for user routing
algorithms. This is performed by
simply manipulate the existing Routing
Table via the Model_List block,
or create a code based version of
the routing algorithm.
Model
Development Statistics
Number of unique blocks required
to create the model = 10
Time to do the initial model construction
= 3 hours
Model analysis and refinement =
2 days
Documentation = 1.5 day
Model
Construction Details
This is a model of a simple network
comprising of 7 nodes. A node is
a device on the network that accepts
data, analyzes the data, modifies
and sends it out to the next node
in the chain. The traffic can originate
at either Node 1 or Node 2. Each
transaction will terminate at either
µP1 or µP2. The model
consists of:
-
Workload
generators represented by the
blocks Workload_Gen and MUX2.
The Workload_Gen is a hierarchical
block which means that this block
is described by using a combination
of other blocks. The generator
uses a possion distribution to
generate the transactions. The
parameters to the workload_gen
can be modified to vary the traffic
rate in this model. In this model
the workload generator dynamically
determines which node to send
each incoming transaction.
- Node
1-7 represented by the Node and
Dly blocks. All of these nodes instantiate
the same block but their respective
parameters are unique. Double-Click
on any of these blocks and you will
see the parameters of the blocks.
* Names of the Nodes on the input
side in the Input Name field
* Wire-rates of the input links
in the Input Rates fields
* Name of the Node connected on
the output side in the Output Name
field
* Distance to the Nodes connected
on the output side in the Output_Length.
-
Statistics
capture is represented by the
Disp_Fast blocks.
-
Routing
represented by the Routing Table.
In this model the Routing Table
"RT" is connected to
all the block. The connection
between the routing table and
the nodes is described at the
Node in the Routing Table field.
Double-Click on the Routing_Table
block to view the parameters.
The following are the parameters
* Propagation constant specifies
the type of link. The base rate
is that of fiber and can be modified
to create alternate links such
as twisted-pair, coaxial etc.
* The Routing Algorithm defines
which algorithm to utilize. The
standard one is Dykstra but there
are a number of proprietary one's.
These alternates algorithms can
be defined as User_Algorithm1
or 2.
* The Routing algorithm requires
a cost factor to compute the routing
table. The Cost factor is specified
by the Routing_Cost field and
can be- hops, distance, bandwidth
or loading.
* The last field specifies that
the connections between the Nodes
are made using the Virtual Connection
capability of the Node blocks.
-
The
setup of the network architecture
is separated from the scenario
creation or model control represented
by the Init, Pipeline, Const and
the Node_Master blocks. In this
case we are studying the impact
of removing and later adding a
link. The management of the link
status is controlled by the Pipeline
and Node Master. The pipeline
blocks sends a transaction on
the each link at the time specified
in the filed of the respective
output port. In this example,
port 1 is activated at time=100ms,
while port 2 is activated at time=110ms.
The following actions are performed:
* Port 1 sends a message to the
Node_Master to remove a link at
time=100ms. The specific link
to be removed is described in
the Node_Master block parameters.
In this case the link between
Node3 and Node 5 is detached.
* Port 4 sends a message to Node_Master2
at time=150ms to add a link. The
link between Node3 and Node 5
is added. The link speed and the
length do not need to be the same
as the original values.
* The ports 2 and 3 are used for
generating statistics
Simulations
The model demonstrates packets being
sent through the model, a link being
removed between Node_3 and Node_5
at time t = 100.0, a routing table
generated at t= 110.0, adding back
the same link between Node_3 and Node
_5 at t = 150.0, and finally a routing
table generated at t= 160.0.
Results
When you click on GO, VisualSim executes
a Discrete-Event simulation of the
model. For this example, there are
two results that are displayed
- Routing
Table at time=110ms and 160ms
- Details
of each packet that traverses the
link.
Some
of the analysis that can be performed
on this model without changing any
of the connenctions:
- Modify
the link to remove or add. This
is done by changing the parameter
in Node_Master and Node_Master2
- Modify
the time to activate the port 1
and 4. This will alter the time
at which the links will be added
or removed.
- The
task of adding or removing a link
can be changed by modifying the
string value in the Const and Const2
blocks
- The
link rates can be modified in each
Node block to get a utilization
at each.
- The
maximum throughput of this network
can also be determined by reducing
the interarrival rate between incoming
packets at the Workload_Gen. At
some point an error message will
be generated that shows the Node
buffer has overflowed thus indicating
that the network is starting to
drop packets because the arrival
rate exceeds the capacity of the
network.
- Select
a different routing algorithm to
compare results between the different
options available. The factory default
provides all the three algorithms
the same. The user can change when
modifying the system model.
|