Stochastic Modeling

Evaluate system architecture
generate latency / throughput graphs

In stochastic modeling, different channels need to be modeled for each input-output combination also. This can lead to modeling queues, time and quantity.  Queue theory plays a major role in early architecture simulation and can provide extremely valuable feedback without having to enter a lot of cycle-accurate details. The stochastic processes may compute on the available system resource and shared quantity. The traffic may vary according to the use cases and the complexity of the process. Whenqueuing theory comes into account, the stochastic process may need schedulers, flow control, arbitrates, FIFO, LIFO, delays, shared resources and channels to implement it.

In VisualSim Architect, one can model designs as stochastic processes, with library blocks and simulators supporting the same. The latency, in seconds, and throughput, measured in Mbps, gives the efficiency of the stochastic process. Designer can put into use, different use cases and get the expected output.

Stochastic Modeling- SysML, AADL and Stochastic Resource Modeling

Model-based Systems Engineering defines Resources as a physical or virtual entity that consumes time or quantity.  There are slight variations in the definitions by Unified Modeling Language (UML), System Modeling Language (SysML) and Architecture Analysis and Design Language (AADL).  Examples of resources include bank teller, supply chain, processor, memory, network, software task, RTOS and queues. Resources emulate the scheduling, flow control and consumption.  The use of Resource Modeling is to quickly size the system and identify bottlenecks.

VisualSim has a large library of resources that cover the requirement for system-level modeling.  These include queues, server, event-based, time-based, quantity-based, channels, pipelines and schedulers.  The Queue, in the simplest form is an M/M/N(1) definition.  Examples of these can be a Bank Teller, a conveyer belt or a call center agent.  In product setting, this can be RTOS Queue, RTOS scheduling, middleware virtual machines, processor, memories, peripherals, network nodes or wireless channel.  In a distributed system, aircrafts or a set of ammunition can be a resource.

Resources are broadly classified as:

Active which consumes time and Passive which consumes quantity.

A processor is an active resource while a parking lot with spaces for different types of cars is a passive resource. A memory is a passive resource to represent the memory array and the memory controller is Active, as it has variable time to get access to the passive content. Resource models the consumption of the entity with the purpose of sizing the entity, identifying the bottleneck and optimizing the specification to meet the requirements.

VisualSim Resource blocks are unique in that they combine timing, power and functionality. This means that the user can get full statistical picture of the system operation at the end of a Monte-Carlo simulation. These Resource blocks scale from 1 to 1 million using parameters and dynamic instantiation, thus accelerating model construction and limited rework to study large systems. Models with 100 million resources can be simulated in matter of minutes, thus offering much more extensive exploration.

Applications of Resource Modeling

  1. FPGA and processor modeling
  2. Software task allocation
  3. Networking modeling
  4. Exploring the resource requirements for high-level synthesis
  5. Online transaction processing
  6. Agent-based modeling for human resources
  7. Components and business operations modeling
  8. Cluster-based multi-component online services
  9. Predict employee burnout
  10. Advanced financial planning

The Queues, Servers, System Resources, Pipeline and Channel are the library components that model the timing, power and functionality of the entity.  Queues and Servers are modeled in the behavior flow.  SystemResources are used to model the popular Y-chart or the separation of behavior and architecture.  The first one is used when the resources is dedicated to a single flow while the second is used when there are a number of requesters in multiple flow that are requesting for a System Resource.

The Quantity-Shared Resource is a passive resource that models the consumption of certain quantity of resources. This block is both indexed and non-indexed.