Previous - Up - Next

9.2   Link Object Timing

All frames that are sent over a link are delivered to the receiving device/devices at a point in simulated time after the time when it was sent. The delay is the same for every frame, and is called the latency of the link. The latency is a configuration parameter that can be set individually for each link object.

Link objects are most often used to communicate between network devices using separate clocks, and because of how Simics handles simulated time, the clocks are not always completely synchronized. To avoid strange causality effects and indeterministic simulation, the latency of any link must not be set so low that data sent over it might reach the recipient at a point in time that it has already passed. This imposes a lower boundary on the latency, called the min-latency of the link. The value of the min-latency depends on the simulation setup, in particular whether the simulation is distributed between several Simics processes or not. See Chapter 11 for information about distributing the simulation.

The latency of a link can be displayed by the <ethernet-link>.info command:

Information about ethlink0 [class ethernet-link]

                       Latency : 1 us
                  Distribution : local
                     Filtering : enabled

                 Local devices : none
                Remote devices : none

Real network connection:
                     Connected : No

As can be seen from the example above, the default latency for an Ethernet link object is one microsecond.

The latency of a link can be specified in the new-ethernet-link command as a number of nanoseconds. If the latency of a link is set too low, it will be automatically adjusted to the lowest value allowed by the setup. For example, if you launch a new multi machine setup, such as ebony-linux-multi, and try to create a link with too low latency, Simics will adjust the latency automatically:

simics> new-ethernet-link latency = 100
[ethlink0 info] Adjusting latency to 1e-005 s because the 
min-latency changed
Created ethernet-link ethlink0
Information about ethlink0 [class ethernet-link]

                       Latency : 10 us

Previous - Up - Next