End-to-end latency
An end-to-end latency is the observable time difference between a pair of stimulus and response events of a complex system. An end-to-end latency constraint puts limits on the time differences allowed for such a system, without regard to its internal structure.
Relationships
Main Description

Short Description

An end-to-end latency is the observable time difference between a pair of stimulus and response events of a complex system. An end-to-end latency constraint puts limits on the time differences allowed for such a system, without regard to its internal structure.

End-to-end latency constraints can be of two forms. A reaction constraint says that for each occurrence of the stimulus event, a matching response event occurrence must be found within the prescribed time limits. An age constraint, on the other hand, states that for each occurrence of the response event, a matching stimulus event occurrence must exist. In general, a reaction constraint allows for the responses to occur more (but not less) frequently than the stimuli, while an age constraint allows a response event to be matched by a busier (but not slower) stimulus.

 

Links to TADL2 concepts

·         EventChain

·         ReactionConstraint

·         AgeConstraint

·         DelayConstraint

 

Abstraction level specific list of applicable events

The constraints can be applied to any type of events, see supporting material below.

 

Context Specific Example

The logical connection between a stimulus and a response event can be expressed using an eventChain construct:

 

  c = eventChain {

          stimulus = eventFunctionFlowPort { port = PedalIn },

          response = eventFunctionFlowPort { port = BrakeOut }

      }

 

To express a maximal reaction time of 200 ms for the event chain c one writes:

 

  r = reactionConstraint {

          scope = c,

          upper = 200 ms

      }

 

 

Figure 1. Reaction constraint with attributes minimum and maximum, and a reference to a scope event chain.

 

Giving c a maximal age of 200 ms instead looks as follows:

 

  a = ageConstraint {

          scope = c,

          upper = 200 ms

      }

 

Figure 2. Age constraint with attributes minimum and maximum, and a reference to a scope event chain.

 

To specify a minimal reaction time or minimal age of 50 ms as well, one just adds the attribute

 

          lower = 50 ms

 

to any of the above constraints. An absent lower attribute is equal to 0.

Reaction and age constraints can alternatively be written using a common delay constraint, which also bypasses the use of an explicit event chain. The following two definitions are equivalent to the previous ones:

 

  r = delayConstraint {

         source = eventFunctionFlowPort{ port = PedalIn },

         target = eventFunctionFlowPort{ port = BrakeOut },

         upper  = 200 ms

      }

 

  a = delayConstraint {

          source = eventFunctionFlowPort{ port = BrakeOut },

          target = eventFunctionFlowPort{ port = PedalIn },

          upper  = 200 ms

      }

 

Figure 3. Delay constraint with attributes upper and lower.

More Information