Synthesis of Communication Schedules for TTEthernet-based Mixed-Criticality Systems Domițian Tămaș-Selicean 1, Paul Pop 1 and Wilfried Steiner 2 1 Technical University of Denmark 2 TTTech Computertechnik AG
2 Outline Motivation TTEthernet ARINC 664p7 “Aircraft Data Network” TT and RC Traffic Transmission Problem Formulation Motivational Example Optimization Strategy RC End-to-End Analysis Experimental results Conclusions
3 Point-to-point connection Motivation Real time applications implemented using distributed systems PE Application A 1 -- highly critical Application A 2 -- critical Application A 3 -- non-critical Bus connection Reduces wiring and weight Mixed-criticality applications share the same network
4 ARINC 664 p7 “Aircraft Data Network” ES 1 ES 2 NS 1 NS 2 ES 3 ES 4 Full-Duplex Ethernet-based data network for safety-critical applications End System Network Switch
5 ARINC 664 p7 “Aircraft Data Network” ES 1 ES 2 NS 1 NS 2 ES 3 ES 4 CPU RAM ROM NIC
6 ARINC 664 p7 “Aircraft Data Network” ES 1 ES 2 NS 1 NS 2 ES 3 ES 4 NS 1 to ES 1 ES 1 to NS 1 dataflow link
7 ARINC 664 p7 “Aircraft Data Network” NS 1 NS 2 vl 2 vl 1 ES 1 τ1τ1 ES 2 τ4τ4 ES 3 τ2τ2 τ5τ5 ES 4 τ3τ3 Highly critical application A 1 : τ 1, τ 2 and τ 3 τ 1 sends message m 1 to τ 2 and τ 3 Non-critical application A 2 : τ 4 and τ 5 τ 4 sends message m 2 to τ 5 virtual link
8 ARINC 664 p7 “Aircraft Data Network” NS 1 NS 2 dp 1 vl 1 dp 2 l1l1 l2l2 l3l3 l4l4 ES 1 τ1τ1 ES 2 τ4τ4 ES 3 τ2τ2 τ5τ5 ES 4 τ3τ3 dataflow path Highly critical application A 1 : τ 1, τ 2 and τ 3 τ 1 sends message m 1 to τ 2 and τ 3 Non-critical application A 2 : τ 4 and τ 5 τ 4 sends message m 2 to τ 5
9 ARINC 664 p7 “Aircraft Data Network” Deterministic Event Triggered communication Separation of traffic enforced through “bandwidth allocation” Bandwidth Allocation Gap (BAG) – minimum time interval between two consecutive instances of a frame on a virtual link f x,1 f x,2 BAG x Maximum bandwidth assigned to virtual link vl i BW (vl i ) = f i.size/BAG i
10 TTEthernet ARINC 664p7 compliant Traffic classes: synchronized communication Time Triggered (TT) unsynchronized communication Rate Constrained (RC) – ARINC 664p7 traffic class Best Effort (BE) – no timing guarantees Standardized as SAE AS 6802 Marketed by TTTech Computertechnik AG Implemented by Honeywell on the NASA Orion Constellation
11 TTEthernet Composed of clusters Each cluster has a clock synchronization domain Inter-cluster communication using RC traffic ES 1 ES 2 NS 1 ES 3 ES 4 ES 5 ES 6 NS 2 ES 7 ES 8 Cluster 1 Cluster 2
12 b TT Transmission CPU P 1,1 τ1τ1 P 1,2 τ2τ2 B 2,Tx B 1,Tx TT S P 1,3 P 2,1 τ4τ4 P 2,2 τ3τ3 P 2,3 CPU FU B 1,Rx B 2,Rx ES 1 ES 2 NS 2 NS 3 FU TT R B 1,Tx B 2,Tx TT S NS 1 S f2f2 f3f3 f4f4 TT a c d e f g h i j k l m SRSRS A 1 : τ 1 m 1 τ 3, RC A 2 : τ 2 m 2 τ 4, TT b
13 b b TT Transmission CPU P 1,1 τ1τ1 P 1,2 τ2τ2 B 2,Tx B 1,Tx TT S P 1,3 P 2,1 τ4τ4 P 2,2 τ3τ3 P 2,3 CPU FU B 1,Rx B 2,Rx ES 1 ES 2 NS 2 NS 3 FU TT R B 1,Tx B 2,Tx TT S NS 1 S f2f2 f3f3 f4f4 TT a c d e f g h i j k l m SRSRS A 1 : τ 1 m 1 τ 3, RC A 2 : τ 2 m 2 τ 4, TT a c d e f g h i j k l m Packing message m 2 into frame f 2 Place f 2 in buffer B 1,Tx for transmission Send time specified in send schedule S S TT S sends f 2 to NS 1 f 2 is sent on the dataflow link to NS 1 The Filtering Unit (FU) checks the frame f 2 Expected receive time specified in receive schedule S R TT R checks if f 2 arrives according to schedule Place f 2 in buffer B 1,Tx for transmission Send time specified in send schedule S S FU checks f 2 Store the frame into receive buffer B 2,Rx Task τ 4 reads f 2 from buffer b
14 b b TT Transmission CPU P 1,1 τ1τ1 P 1,2 τ2τ2 B 2,Tx B 1,Tx TT S P 1,3 P 2,1 τ4τ4 P 2,2 τ3τ3 P 2,3 CPU FU B 1,Rx B 2,Rx ES 1 ES 2 NS 2 NS 3 FU TT R B 1,Tx B 2,Tx TT S NS 1 S f2f2 f3f3 f4f4 TT a c d e f g h i j k l m SRSRS A 1 : τ 1 m 1 τ 3, RC A 2 : τ 2 m 2 τ 4, TT a c d e f g h i j k l m Packing message m 2 into frame f 2 Place f 2 in buffer B 1,Tx for transmission Send time specified in send schedule S S TT S sends f 2 to NS 1 f 2 is sent on the dataflow link to NS 1 The Filtering Unit (FU) checks the frame f 2 Expected receive time specified in receive schedule S R TT R checks if f 2 arrives according to schedule Place f 2 in buffer B 1,Tx for transmission Send time specified in send schedule S S FU checks f 2 Store the frame into receive buffer B 2,Rx Task τ 4 reads f 2 from buffer b
15 b b TT Transmission CPU P 1,1 τ1τ1 P 1,2 τ2τ2 B 2,Tx B 1,Tx TT S P 1,3 P 2,1 τ4τ4 P 2,2 τ3τ3 P 2,3 CPU FU B 1,Rx B 2,Rx ES 1 ES 2 NS 2 NS 3 FU TT R B 1,Tx B 2,Tx TT S NS 1 S f2f2 f3f3 f4f4 TT a c d e f g h i j k l m SRSRS A 1 : τ 1 m 1 τ 3, RC A 2 : τ 2 m 2 τ 4, TT a c d e f g h i j k l m Packing message m 2 into frame f 2 Place f 2 in buffer B 1,Tx for transmission Send time specified in send schedule S S TT S sends f 2 to NS 1 f 2 is sent on the dataflow link to NS 1 The Filtering Unit (FU) checks the frame f 2 Expected receive time specified in receive schedule S R TT R checks if f 2 arrives according to schedule Place f 2 in buffer B 1,Tx for transmission Send time specified in send schedule S S FU checks f 2 Store the frame into receive buffer B 2,Rx Task τ 4 reads f 2 from buffer b
16 b b TT Transmission CPU P 1,1 τ1τ1 P 1,2 τ2τ2 B 2,Tx B 1,Tx TT S P 1,3 P 2,1 τ4τ4 P 2,2 τ3τ3 P 2,3 CPU FU B 1,Rx B 2,Rx ES 1 ES 2 NS 2 NS 3 FU TT R B 1,Tx B 2,Tx TT S NS 1 S f2f2 f3f3 f4f4 TT a c d e f g h i j k l m SRSRS A 1 : τ 1 m 1 τ 3, RC A 2 : τ 2 m 2 τ 4, TT a c d e f g h i j k l m Packing message m 2 into frame f 2 Place f 2 in buffer B 1,Tx for transmission Send time specified in send schedule S S TT S sends f 2 to NS 1 f 2 is sent on the dataflow link to NS 1 The Filtering Unit (FU) checks the frame f 2 Expected receive time specified in receive schedule S R TT R checks if f 2 arrives according to schedule Place f 2 in buffer B 1,Tx for transmission Send time specified in send schedule S S FU checks f 2 Store the frame into receive buffer B 2,Rx Task τ 4 reads f 2 from buffer b
17 b b TT Transmission CPU P 1,1 τ1τ1 P 1,2 τ2τ2 B 2,Tx B 1,Tx TT S P 1,3 P 2,1 τ4τ4 P 2,2 τ3τ3 P 2,3 CPU FU B 1,Rx B 2,Rx ES 1 ES 2 NS 2 NS 3 FU TT R B 1,Tx B 2,Tx TT S NS 1 S f2f2 f3f3 f4f4 TT a c d e f g h i j k l m SRSRS A 1 : τ 1 m 1 τ 3, RC A 2 : τ 2 m 2 τ 4, TT a c d e f g h i j k l m Packing message m 2 into frame f 2 Place f 2 in buffer B 1,Tx for transmission Send time specified in send schedule S S TT S sends f 2 to NS 1 f 2 is sent on the dataflow link to NS 1 The Filtering Unit (FU) checks the frame f 2 Expected receive time specified in receive schedule S R TT R checks if f 2 arrives according to schedule Place f 2 in buffer B 1,Tx for transmission Send time specified in send schedule S S FU checks f 2 Store the frame into receive buffer B 2,Rx Task τ 4 reads f 2 from buffer b
18 b b TT Transmission CPU P 1,1 τ1τ1 P 1,2 τ2τ2 B 2,Tx B 1,Tx TT S P 1,3 P 2,1 τ4τ4 P 2,2 τ3τ3 P 2,3 CPU FU B 1,Rx B 2,Rx ES 1 ES 2 NS 2 NS 3 FU TT R B 1,Tx B 2,Tx TT S NS 1 S f2f2 f3f3 f4f4 TT a c d e f g h i j k l m SRSRS A 1 : τ 1 m 1 τ 3, RC A 2 : τ 2 m 2 τ 4, TT a c d e f g h i j k l m Packing message m 2 into frame f 2 Place f 2 in buffer B 1,Tx for transmission Send time specified in send schedule S S TT S sends f 2 to NS 1 f 2 is sent on the dataflow link to NS 1 The Filtering Unit (FU) checks the frame f 2 Expected receive time specified in receive schedule S R TT R checks if f 2 arrives according to schedule Place f 2 in buffer B 1,Tx for transmission Send time specified in send schedule S S FU checks f 2 Store the frame into receive buffer B 2,Rx Task τ 4 reads f 2 from buffer b
19 b b TT Transmission CPU P 1,1 τ1τ1 P 1,2 τ2τ2 B 2,Tx B 1,Tx TT S P 1,3 P 2,1 τ4τ4 P 2,2 τ3τ3 P 2,3 CPU FU B 1,Rx B 2,Rx ES 1 ES 2 NS 2 NS 3 FU TT R B 1,Tx B 2,Tx TT S NS 1 S f2f2 f3f3 f4f4 TT a c d e f g h i j k l m SRSR S A 1 : τ 1 m 1 τ 3, RC A 2 : τ 2 m 2 τ 4, TT a c d e f g h i j k l m Packing message m 2 into frame f 2 Place f 2 in buffer B 1,Tx for transmission Send time specified in send schedule S S TT S sends f 2 to NS 1 f 2 is sent on the dataflow link to NS 1 The Filtering Unit (FU) checks the frame f 2 Expected receive time specified in receive schedule S R TT R checks if f 2 arrives according to schedule Place f 2 in buffer B 1,Tx for transmission Send time specified in send schedule S S FU checks f 2 Store the frame into receive buffer B 2,Rx Task τ 4 reads f 2 from buffer b
20 b b TT Transmission CPU P 1,1 τ1τ1 P 1,2 τ2τ2 B 2,Tx B 1,Tx TT S P 1,3 P 2,1 τ4τ4 P 2,2 τ3τ3 P 2,3 CPU FU B 1,Rx B 2,Rx ES 1 ES 2 NS 2 NS 3 FU TT R B 1,Tx B 2,Tx TT S NS 1 S f2f2 f3f3 f4f4 TT a c d e f g h i j k l m SRSRS A 1 : τ 1 m 1 τ 3, RC A 2 : τ 2 m 2 τ 4, TT a c d e f g h i j k l m Packing message m 2 into frame f 2 Place f 2 in buffer B 1,Tx for transmission Send time specified in send schedule S S TT S sends f 2 to NS 1 f 2 is sent on the dataflow link to NS 1 The Filtering Unit (FU) checks the frame f 2 Expected receive time specified in receive schedule S R TT R checks if f 2 arrives according to schedule Place f 2 in buffer B 1,Tx for transmission Send time specified in send schedule S S FU checks f 2 Store the frame into receive buffer B 2,Rx Task τ 4 reads f 2 from buffer b
21 b b TT Transmission CPU P 1,1 τ1τ1 P 1,2 τ2τ2 B 2,Tx B 1,Tx TT S P 1,3 P 2,1 τ4τ4 P 2,2 τ3τ3 P 2,3 CPU FU B 1,Rx B 2,Rx ES 1 ES 2 NS 2 NS 3 FU TT R B 1,Tx B 2,Tx TT S NS 1 S f2f2 f3f3 f4f4 TT a c d e f g h i j k l m SRSRS A 1 : τ 1 m 1 τ 3, RC A 2 : τ 2 m 2 τ 4, TT a c d e f g h i j k l m Packing message m 2 into frame f 2 Place f 2 in buffer B 1,Tx for transmission Send time specified in send schedule S S TT S sends f 2 to NS 1 f 2 is sent on the dataflow link to NS 1 The Filtering Unit (FU) checks the frame f 2 Expected receive time specified in receive schedule S R TT R checks if f 2 arrives according to schedule Place f 2 in buffer B 1,Tx for transmission Send time specified in send schedule S S FU checks f 2 Store the frame into receive buffer B 2,Rx Task τ 4 reads f 2 from buffer b
22 b b TT Transmission CPU P 1,1 τ1τ1 P 1,2 τ2τ2 B 2,Tx B 1,Tx TT S P 1,3 P 2,1 τ4τ4 P 2,2 τ3τ3 P 2,3 CPU FU B 1,Rx B 2,Rx ES 1 ES 2 NS 2 NS 3 FU TT R B 1,Tx B 2,Tx TT S NS 1 S f2f2 f3f3 f4f4 TT a c d e f g h i j k l m SRSR S A 1 : τ 1 m 1 τ 3, RC A 2 : τ 2 m 2 τ 4, TT a c d e f g h i j k l m Packing message m 2 into frame f 2 Place f 2 in buffer B 1,Tx for transmission Send time specified in send schedule S S TT S sends f 2 to NS 1 f 2 is sent on the dataflow link to NS 1 The Filtering Unit (FU) checks the frame f 2 Expected receive time specified in receive schedule S R TT R checks if f 2 arrives according to schedule Place f 2 in buffer B 1,Tx for transmission Send time specified in send schedule S S FU checks f 2 Store the frame into receive buffer B 2,Rx Task τ 4 reads f 2 from buffer b
23 b b TT Transmission CPU P 1,1 τ1τ1 P 1,2 τ2τ2 B 2,Tx B 1,Tx TT S P 1,3 P 2,1 τ4τ4 P 2,2 τ3τ3 P 2,3 CPU FU B 1,Rx B 2,Rx ES 1 ES 2 NS 2 NS 3 FU TT R B 1,Tx B 2,Tx TT S NS 1 S f2f2 f3f3 f4f4 TT a c d e f g h i j k l m SRSRS A 1 : τ 1 m 1 τ 3, RC A 2 : τ 2 m 2 τ 4, TT a c d e f g h i j k l m Packing message m 2 into frame f 2 Place f 2 in buffer B 1,Tx for transmission Send time specified in send schedule S S TT S sends f 2 to NS 1 f 2 is sent on the dataflow link to NS 1 The Filtering Unit (FU) checks the frame f 2 Expected receive time specified in receive schedule S R TT R checks if f 2 arrives according to schedule Place f 2 in buffer B 1,Tx for transmission Send time specified in send schedule S S FU checks f 2 Store the frame into receive buffer B 2,Rx Task τ 4 reads f 2 from buffer b
24 b b TT Transmission CPU P 1,1 τ1τ1 P 1,2 τ2τ2 B 2,Tx B 1,Tx TT S P 1,3 P 2,1 τ4τ4 P 2,2 τ3τ3 P 2,3 CPU FU B 1,Rx B 2,Rx ES 1 ES 2 NS 2 NS 3 FU TT R B 1,Tx B 2,Tx TT S NS 1 S f2f2 f3f3 f4f4 TT a c d e f g h i j k l m SRSRS A 1 : τ 1 m 1 τ 3, RC A 2 : τ 2 m 2 τ 4, TT a c d e f g h i j k l m Packing message m 2 into frame f 2 Place f 2 in buffer B 1,Tx for transmission Send time specified in send schedule S S TT S sends f 2 to NS 1 f 2 is sent on the dataflow link to NS 1 The Filtering Unit (FU) checks the frame f 2 Expected receive time specified in receive schedule S R TT R checks if f 2 arrives according to schedule Place f 2 in buffer B 1,Tx for transmission Send time specified in send schedule S S FU checks f 2 Store the frame into receive buffer B 2,Rx Task τ 4 reads f 2 from buffer b
25 b b TT Transmission CPU P 1,1 τ1τ1 P 1,2 τ2τ2 B 2,Tx B 1,Tx TT S P 1,3 P 2,1 τ4τ4 P 2,2 τ3τ3 P 2,3 CPU FU B 1,Rx B 2,Rx ES 1 ES 2 NS 2 NS 3 FU TT R B 1,Tx B 2,Tx TT S NS 1 S f2f2 f3f3 f4f4 TT a c d e f g h i j k l m SRSRS A 1 : τ 1 m 1 τ 3, RC A 2 : τ 2 m 2 τ 4, TT a c d e f g h i j k l m Packing message m 2 into frame f 2 Place f 2 in buffer B 1,Tx for transmission Send time specified in send schedule S S TT S sends f 2 to NS 1 f 2 is sent on the dataflow link to NS 1 The Filtering Unit (FU) checks the frame f 2 Expected receive time specified in receive schedule S R TT R checks if f 2 arrives according to schedule Place f 2 in buffer B 1,Tx for transmission Send time specified in send schedule S S FU checks f 2 Store the frame into receive buffer B 2,Rx Task τ 4 reads f 2 from buffer b
26 RC Transmission CPU P 1,1 τ1τ1 P 1,2 τ2τ2 Q 1,Tx Q 2,Tx B 2,Tx B 1,Tx TR 2 TR 1 RC S TT S P 1,3 P 2,1 τ4τ4 P 2,2 τ3τ3 P 2,3 CPU FU Q 1,Rx Q 2,Rx B 1,Rx B 2,Rx ES 1 ES 2 NS 2 NS 3 FU TP TT R B 1,Tx B 2,Tx TT S NS 1 S f2f2 f3f3 f4f4 f1f1 RC TT Q Tx SRSRS 1 Packing message m 1 into frame f 1 2 Insert it in queue Q 1,Tx 3 Traffic Regulator (TR) ensures bandwidth for each VL 4 RC scheduler RC multiplexes frames coming from TRs 5 TT S transmits f 1 when there is no TT traffic 6 f 1 is sent on the dataflow link to NS 1 7 FU checks the validity of the frame 8 Traffic Policing (TP) checks that f2 arrives according to the BAG 9 Copy f 1 to outgoing queue Q Tx 1010 Send f 1 when there is no TT traffic 1 FU checks f Copy to receiving Q 2,Rx 1313 Task τ 3 reads f 1 from the queue A 1 : τ 1 m 1 τ 3, RC A 2 : τ 2 m 2 τ 4, TT
27 RC Transmission CPU P 1,1 τ1τ1 P 1,2 τ2τ2 Q 1,Tx Q 2,Tx B 2,Tx B 1,Tx TR 2 TR 1 RC S TT S P 1,3 P 2,1 τ4τ4 P 2,2 τ3τ3 P 2,3 CPU FU Q 1,Rx Q 2,Rx B 1,Rx B 2,Rx ES 1 ES 2 NS 2 NS 3 FU TP TT R B 1,Tx B 2,Tx TT S NS 1 S f2f2 f3f3 f4f4 f1f1 RC TT Q Tx SRSRS 1 Packing message m 1 into frame f 1 2 Insert it in queue Q 1,Tx 3 Traffic Regulator (TR) ensures bandwidth for each VL 4 RC scheduler RC multiplexes frames coming from TRs 5 TT S transmits f 1 when there is no TT traffic 6 f 1 is sent on the dataflow link to NS 1 7 FU checks the validity of the frame 8 Traffic Policing (TP) checks that f2 arrives according to the BAG 9 Copy f 1 to outgoing queue Q Tx 1010 Send f 1 when there is no TT traffic 1 FU checks f Copy to receiving Q 2,Rx 1313 Task τ 3 reads f 1 from the queue A 1 : τ 1 m 1 τ 3, RC A 2 : τ 2 m 2 τ 4, TT
28 RC Transmission CPU P 1,1 τ1τ1 P 1,2 τ2τ2 Q 1,Tx Q 2,Tx B 2,Tx B 1,Tx TR 2 TR 1 RC S TT S P 1,3 P 2,1 τ4τ4 P 2,2 τ3τ3 P 2,3 CPU FU Q 1,Rx Q 2,Rx B 1,Rx B 2,Rx ES 1 ES 2 NS 2 NS 3 FU TP TT R B 1,Tx B 2,Tx TT S NS 1 S f2f2 f3f3 f4f4 f1f1 RC TT Q Tx SRSRS 1 Packing message m 1 into frame f 1 2 Insert it in queue Q 1,Tx 3 Traffic Regulator (TR) ensures bandwidth for each VL 4 RC scheduler RC multiplexes frames coming from TRs 5 TT S transmits f 1 when there is no TT traffic 6 f 1 is sent on the dataflow link to NS 1 7 FU checks the validity of the frame 8 Traffic Policing (TP) checks that f2 arrives according to the BAG 9 Copy f 1 to outgoing queue Q Tx 1010 Send f 1 when there is no TT traffic 1 FU checks f Copy to receiving Q 2,Rx 1313 Task τ 3 reads f 1 from the queue A 1 : τ 1 m 1 τ 3, RC A 2 : τ 2 m 2 τ 4, TT
29 RC Transmission CPU P 1,1 τ1τ1 P 1,2 τ2τ2 Q 1,Tx Q 2,Tx B 2,Tx B 1,Tx TR 2 TR 1 RC S TT S P 1,3 P 2,1 τ4τ4 P 2,2 τ3τ3 P 2,3 CPU FU Q 1,Rx Q 2,Rx B 1,Rx B 2,Rx ES 1 ES 2 NS 2 NS 3 FU TP TT R B 1,Tx B 2,Tx TT S NS 1 S f2f2 f3f3 f4f4 f1f1 RC TT Q Tx SRSRS 1 Packing message m 1 into frame f 1 2 Insert it in queue Q 1,Tx 3 Traffic Regulator (TR) ensures bandwidth for each VL 4 RC scheduler RC multiplexes frames coming from TRs 5 TT S transmits f 1 when there is no TT traffic 6 f 1 is sent on the dataflow link to NS 1 7 FU checks the validity of the frame 8 Traffic Policing (TP) checks that f2 arrives according to the BAG 9 Copy f 1 to outgoing queue Q Tx 1010 Send f 1 when there is no TT traffic 1 FU checks f Copy to receiving Q 2,Rx 1313 Task τ 3 reads f 1 from the queue A 1 : τ 1 m 1 τ 3, RC A 2 : τ 2 m 2 τ 4, TT
30 RC Transmission CPU P 1,1 τ1τ1 P 1,2 τ2τ2 Q 1,Tx Q 2,Tx B 2,Tx B 1,Tx TR 2 TR 1 RC S TT S P 1,3 P 2,1 τ4τ4 P 2,2 τ3τ3 P 2,3 CPU FU Q 1,Rx Q 2,Rx B 1,Rx B 2,Rx ES 1 ES 2 NS 2 NS 3 FU TP TT R B 1,Tx B 2,Tx TT S NS 1 S f2f2 f3f3 f4f4 f1f1 RC TT Q Tx SRSRS 1 Packing message m 1 into frame f 1 2 Insert it in queue Q 1,Tx 3 Traffic Regulator (TR) ensures bandwidth for each VL 4 RC scheduler RC multiplexes frames coming from TRs 5 TT S transmits f 1 when there is no TT traffic 6 f 1 is sent on the dataflow link to NS 1 7 FU checks the validity of the frame 8 Traffic Policing (TP) checks that f2 arrives according to the BAG 9 Copy f 1 to outgoing queue Q Tx 1010 Send f 1 when there is no TT traffic 1 FU checks f Copy to receiving Q 2,Rx 1313 Task τ 3 reads f 1 from the queue A 1 : τ 1 m 1 τ 3, RC A 2 : τ 2 m 2 τ 4, TT
31 RC Transmission CPU P 1,1 τ1τ1 P 1,2 τ2τ2 Q 1,Tx Q 2,Tx B 2,Tx B 1,Tx TR 2 TR 1 RC S TT S P 1,3 P 2,1 τ4τ4 P 2,2 τ3τ3 P 2,3 CPU FU Q 1,Rx Q 2,Rx B 1,Rx B 2,Rx ES 1 ES 2 NS 2 NS 3 FU TP TT R B 1,Tx B 2,Tx TT S NS 1 S f2f2 f3f3 f4f4 f1f1 RC TT Q Tx SRSRS 1 Packing message m 1 into frame f 1 2 Insert it in queue Q 1,Tx 3 Traffic Regulator (TR) ensures bandwidth for each VL 4 RC scheduler RC multiplexes frames coming from TRs 5 TT S transmits f 1 when there is no TT traffic 6 f 1 is sent on the dataflow link to NS 1 7 FU checks the validity of the frame 8 Traffic Policing (TP) checks that f2 arrives according to the BAG 9 Copy f 1 to outgoing queue Q Tx 1010 Send f 1 when there is no TT traffic 1 FU checks f Copy to receiving Q 2,Rx 1313 Task τ 3 reads f 1 from the queue A 1 : τ 1 m 1 τ 3, RC A 2 : τ 2 m 2 τ 4, TT
32 RC Transmission CPU P 1,1 τ1τ1 P 1,2 τ2τ2 Q 1,Tx Q 2,Tx B 2,Tx B 1,Tx TR 2 TR 1 RC S TT S P 1,3 P 2,1 τ4τ4 P 2,2 τ3τ3 P 2,3 CPU FU Q 1,Rx Q 2,Rx B 1,Rx B 2,Rx ES 1 ES 2 NS 2 NS 3 FU TP TT R B 1,Tx B 2,Tx TT S NS 1 S f2f2 f3f3 f4f4 f1f1 RC TT Q Tx SRSRS 1 Packing message m 1 into frame f 1 2 Insert it in queue Q 1,Tx 3 Traffic Regulator (TR) ensures bandwidth for each VL 4 RC scheduler RC multiplexes frames coming from TRs 5 TT S transmits f 1 when there is no TT traffic 6 f 1 is sent on the dataflow link to NS 1 7 FU checks the validity of the frame 8 Traffic Policing (TP) checks that f2 arrives according to the BAG 9 Copy f 1 to outgoing queue Q Tx 1010 Send f 1 when there is no TT traffic 1 FU checks f Copy to receiving Q 2,Rx 1313 Task τ 3 reads f 1 from the queue A 1 : τ 1 m 1 τ 3, RC A 2 : τ 2 m 2 τ 4, TT
33 RC Transmission CPU P 1,1 τ1τ1 P 1,2 τ2τ2 Q 1,Tx Q 2,Tx B 2,Tx B 1,Tx TR 2 TR 1 RC S TT S P 1,3 P 2,1 τ4τ4 P 2,2 τ3τ3 P 2,3 CPU FU Q 1,Rx Q 2,Rx B 1,Rx B 2,Rx ES 1 ES 2 NS 2 NS 3 FU TP TT R B 1,Tx B 2,Tx TT S NS 1 S f2f2 f3f3 f4f4 f1f1 RC TT Q Tx SRSRS 1 Packing message m 1 into frame f 1 2 Insert it in queue Q 1,Tx 3 Traffic Regulator (TR) ensures bandwidth for each VL 4 RC scheduler RC multiplexes frames coming from TRs 5 TT S transmits f 1 when there is no TT traffic 6 f 1 is sent on the dataflow link to NS 1 7 FU checks the validity of the frame 8 Traffic Policing (TP) checks that f2 arrives according to the BAG 9 Copy f 1 to outgoing queue Q Tx 1010 Send f 1 when there is no TT traffic 1 FU checks f Copy to receiving Q 2,Rx 1313 Task τ 3 reads f 1 from the queue A 1 : τ 1 m 1 τ 3, RC A 2 : τ 2 m 2 τ 4, TT
34 RC Transmission CPU P 1,1 τ1τ1 P 1,2 τ2τ2 Q 1,Tx Q 2,Tx B 2,Tx B 1,Tx TR 2 TR 1 RC S TT S P 1,3 P 2,1 τ4τ4 P 2,2 τ3τ3 P 2,3 CPU FU Q 1,Rx Q 2,Rx B 1,Rx B 2,Rx ES 1 ES 2 NS 2 NS 3 FU TP TT R B 1,Tx B 2,Tx TT S NS 1 S f2f2 f3f3 f4f4 f1f1 RC TT Q Tx SRSRS 1 Packing message m 1 into frame f 1 2 Insert it in queue Q 1,Tx 3 Traffic Regulator (TR) ensures bandwidth for each VL 4 RC scheduler RC multiplexes frames coming from TRs 5 TT S transmits f 1 when there is no TT traffic 6 f 1 is sent on the dataflow link to NS 1 7 FU checks the validity of the frame 8 Traffic Policing (TP) checks that f2 arrives according to the BAG 9 Copy f 1 to outgoing queue Q Tx 1010 Send f 1 when there is no TT traffic 1 FU checks f Copy to receiving Q 2,Rx 1313 Task τ 3 reads f 1 from the queue A 1 : τ 1 m 1 τ 3, RC A 2 : τ 2 m 2 τ 4, TT
35 RC Transmission CPU P 1,1 τ1τ1 P 1,2 τ2τ2 Q 1,Tx Q 2,Tx B 2,Tx B 1,Tx TR 2 TR 1 RC S TT S P 1,3 P 2,1 τ4τ4 P 2,2 τ3τ3 P 2,3 CPU FU Q 1,Rx Q 2,Rx B 1,Rx B 2,Rx ES 1 ES 2 NS 2 NS 3 FU TP TT R B 1,Tx B 2,Tx TT S NS 1 S f2f2 f3f3 f4f4 f1f1 RC TT Q Tx SRSRS 1 Packing message m 1 into frame f 1 2 Insert it in queue Q 1,Tx 3 Traffic Regulator (TR) ensures bandwidth for each VL 4 RC scheduler RC multiplexes frames coming from TRs 5 TT S transmits f 1 when there is no TT traffic 6 f 1 is sent on the dataflow link to NS 1 7 FU checks the validity of the frame 8 Traffic Policing (TP) checks that f2 arrives according to the BAG 9 Copy f 1 to outgoing queue Q Tx 1010 Send f 1 when there is no TT traffic 1 FU checks f Copy to receiving Q 2,Rx 1313 Task τ 3 reads f 1 from the queue A 1 : τ 1 m 1 τ 3, RC A 2 : τ 2 m 2 τ 4, TT
36 RC Transmission CPU P 1,1 τ1τ1 P 1,2 τ2τ2 Q 1,Tx Q 2,Tx B 2,Tx B 1,Tx TR 2 TR 1 RC S TT S P 1,3 P 2,1 τ4τ4 P 2,2 τ3τ3 P 2,3 CPU FU Q 1,Rx Q 2,Rx B 1,Rx B 2,Rx ES 1 ES 2 NS 2 NS 3 FU TP TT R B 1,Tx B 2,Tx TT S NS 1 S f2f2 f3f3 f4f4 f1f1 RC TT Q Tx SRSRS 1 Packing message m 1 into frame f 1 2 Insert it in queue Q 1,Tx 3 Traffic Regulator (TR) ensures bandwidth for each VL 4 RC scheduler RC multiplexes frames coming from TRs 5 TT S transmits f 1 when there is no TT traffic 6 f 1 is sent on the dataflow link to NS 1 7 FU checks the validity of the frame 8 Traffic Policing (TP) checks that f2 arrives according to the BAG 9 Copy f 1 to outgoing queue Q Tx 1010 Send f 1 when there is no TT traffic 1 FU checks f Copy to receiving Q 2,Rx 1313 Task τ 3 reads f 1 from the queue A 1 : τ 1 m 1 τ 3, RC A 2 : τ 2 m 2 τ 4, TT
37 RC Transmission CPU P 1,1 τ1τ1 P 1,2 τ2τ2 Q 1,Tx Q 2,Tx B 2,Tx B 1,Tx TR 2 TR 1 RC S TT S P 1,3 P 2,1 τ4τ4 P 2,2 τ3τ3 P 2,3 CPU FU Q 1,Rx Q 2,Rx B 1,Rx B 2,Rx ES 1 ES 2 NS 2 NS 3 FU TP TT R B 1,Tx B 2,Tx TT S NS 1 S f2f2 f3f3 f4f4 f1f1 RC TT Q Tx SRSRS 1 Packing message m 1 into frame f 1 2 Insert it in queue Q 1,Tx 3 Traffic Regulator (TR) ensures bandwidth for each VL 4 RC scheduler RC multiplexes frames coming from TRs 5 TT S transmits f 1 when there is no TT traffic 6 f 1 is sent on the dataflow link to NS 1 7 FU checks the validity of the frame 8 Traffic Policing (TP) checks that f2 arrives according to the BAG 9 Copy f 1 to outgoing queue Q Tx 1010 Send f 1 when there is no TT traffic 1 FU checks f Copy to receiving Q 2,Rx 1313 Task τ 3 reads f 1 from the queue A 1 : τ 1 m 1 τ 3, RC A 2 : τ 2 m 2 τ 4, TT
38 RC Transmission CPU P 1,1 τ1τ1 P 1,2 τ2τ2 Q 1,Tx Q 2,Tx B 2,Tx B 1,Tx TR 2 TR 1 RC S TT S P 1,3 P 2,1 τ4τ4 P 2,2 τ3τ3 P 2,3 CPU FU Q 1,Rx Q 2,Rx B 1,Rx B 2,Rx ES 1 ES 2 NS 2 NS 3 FU TP TT R B 1,Tx B 2,Tx TT S NS 1 S f2f2 f3f3 f4f4 f1f1 RC TT Q Tx SRSRS 1 Packing message m 1 into frame f 1 2 Insert it in queue Q 1,Tx 3 Traffic Regulator (TR) ensures bandwidth for each VL 4 RC scheduler RC multiplexes frames coming from TRs 5 TT S transmits f 1 when there is no TT traffic 6 f 1 is sent on the dataflow link to NS 1 7 FU checks the validity of the frame 8 Traffic Policing (TP) checks that f2 arrives according to the BAG 9 Copy f 1 to outgoing queue Q Tx 1010 Send f 1 when there is no TT traffic 1 FU checks f Copy to receiving Q 2,Rx 1313 Task τ 3 reads f 1 from the queue A 1 : τ 1 m 1 τ 3, RC A 2 : τ 2 m 2 τ 4, TT
39 Problem formulation Given The topology of the network G The set of TT and RC frames F TT and F RC The set of virtual links VL The assignment of frames to virtual links M For each frame the size, the deadline and the period
40 Problem formulation Given The topology of the network G The set of TT and RC frames F TT and F RC The set of virtual links VL The assignment of frames to virtual links M For each frame the size, the deadline and the period Determine The set of TT schedules
41 Problem formulation Given The topology of the network G The set of TT and RC frames F TT and F RC The set of virtual links VL The assignment of frames to virtual links M For each frame the size, the deadline and the period Determine The set of TT schedules Such that The deadlines for the TT and RC frames are satisfied The end-to-end delay of RC frames is minimized
42 Motivational Example ES 1 ES 2 NS 1 ES 3 vl 3 vl 1 vl 2 period (us)deadline (us)C i (us) M f1 ∈ F RC vl 1 f2 ∈ F TT vl 2 f3 ∈ F TT vl 3
43 Motivational Example ES 1 ES 2 NS 1 ES 3 vl 3 vl 1 vl 2 period (us) deadline (us) C i (us) M f1 ∈ F RC vl 1 f2 ∈ F TT vl 2 f3 ∈ F TT vl 3 Initial TT schedule
44 Motivational Example ES 1 ES 2 NS 1 ES 3 vl 3 vl 1 vl 2 period (us) deadline (us) C i (us) M f1 ∈ F RC vl 1 f2 ∈ F TT vl 2 f3 ∈ F TT vl 3 Optimized TT schedule
45 Optimization Strategy TTEthernet Schedule Optimization (TTESO) strategy: Tabu Search meta-heuristic The TT schedules S Such that: TT and RC frames are schedulable The end-to-end delay of the RC frames is minimized Tabu Search Minimizes the cost function Explores the solution space using design transformations
46 Optimization Strategy Degree of schedulability Captures the difference between the worst-case delay and deadline Cost Function
47 Optimization Strategy: Design Transformations TT frame moves advance frame transmission time advance frame predecessors transmission time postpone frame transmission time postpone frame successors transmission time RC frame moves reserve space for RC frame resize reserved space for RC frame remove reserved space for RC frame
48 Frame Representation for Moves ES 1 ES 2 NS 1 NS 2 ES 3 ES 4 vl 1 f 1,1 [ES 1, NS 1 ] f 1,1 [NS 1, NS 2 ] f 1,1 [NS 1, NS 2 ] f 1,1 [NS 1, NS 2 ]
49 Design transformations: Postpone move
50 Design transformations: Advance move
51 Design transformations: Reserve space for RC
52 Design transformations: Resize RC reserved space
53 RC Frame End-to-End Analysis On a dataflow link, a RC frame can be delayed by: scheduled TT frames queued RC frames technical latency policy specific: timely block pre-emption
54 RC Frame End-to-End Analysis ES 1 NS 2 NS 1 ES 4 vl 3 vl 2 vl 1 NS 3 NS 2 → NS 1 f 3,j f 4,1 NS 3 → NS 1 NS 1 → ES 4 f 2,1 ES 1 → NS 1 f 1,i f 2,1 f 4,1 f 1,i f 3,j C [NS 1, ES 4 ] f1f1 Q TT [NS 1, ES 4 ] Q RC [NS 1, ES 4 ] Q TL NS 1 R f1f1 vl 4
55 RC Frame End-to-End Analysis Approaches for analysis of ARINC 644p7 network traffic: Network Calculus, (Boyer, 2008) Finite State Machine, (Saha, 2007) Timed Automata, (Adnan, 2010) Trajectory Approach, (Bauer, 2009) We use the method proposed in (Steiner, 2011) it takes into account also the TT traffic it is pessimistic: does not ignore frames that already delayed a RC frame on a previous link assumes uniformly distributed intervals of equal length reserved for RC traffic
56 Experimental Results Benchmarks 17 synthetic 1 real life test cases based on the SAE Automotive benchmark TTESO compared to: Straightforward Solution (SS) Builds TT schedules with the goal of minimizing the end-to-end delay of TT frames, without considering the RC frames
57 Experimental Results
58 Experimental Results
59 Experimental Results
60 Experimental Results
61 Experimental Results
62 Conclusions TTEthernet is very well suited for mixed-criticality applications Predictability is achieved using three classes of traffic: TT, RC and BE Spatial separation is achieved trough virtual links Temporal separation is enforced by schedule tables for TT traffic and bandwidth allocation for RC traffic We have addressed the optimization of the TTEthernet protocol The TT schedules are determined such that TT and RC frames are schedulable, and the end-to-end delay of the RC frames is minimized Optimization tools are needed to support the designer in order to obtain schedulable solutions We have proposed a Tabu Search-based optimization solution
63