Route Optimization using Network SmartBlocks
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 bertween 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 charcterized 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 simulatneous 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 alogorithm (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 uniques 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 studing 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 conenctions:
- 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.