Presentation is loading. Please wait.

Presentation is loading. Please wait.

Giotto A Time-Triggered Language for Embedded Programming Thomas A. Henzinger, Benjamin Horowitz Christoph M. Kirsch, Rupak Majumdar UC Berkeley.

Similar presentations


Presentation on theme: "Giotto A Time-Triggered Language for Embedded Programming Thomas A. Henzinger, Benjamin Horowitz Christoph M. Kirsch, Rupak Majumdar UC Berkeley."— Presentation transcript:

1 Giotto A Time-Triggered Language for Embedded Programming Thomas A. Henzinger, Benjamin Horowitz Christoph M. Kirsch, Rupak Majumdar UC Berkeley

2 Embedded Programming Giotto aims at hard real-time applications Giotto is time-triggered Giotto is platform independent Giotto consists of ports, tasks, modes Giotto works, with VxWorks, Ptolemy

3 Functionality & Timing Control Engineer Control Design Application designs validates simulates Software Engineer Platform Implementation decomposes implements tests First Challenge

4 Compilation Platform Implementation Second Challenge Software Engineer decomposes implements tests

5 A Task

6 Abstract Syntax of a Task f

7 f State

8 Abstract Syntax of a Task fInput ports State

9 Abstract Syntax of a Task fInput ports State Output ports

10 Abstract Syntax of a Task fInput ports State Output ports Frequency

11 Semantics of a Task fInput ports State Output ports Frequency 10ms

12 Semantics of a Task fInput ports State Output ports Time Task Frequency 10ms

13 Semantics of a Task fInput ports State Output ports Time Task Frequency 10ms

14 Semantics of a Task fInput ports State Output ports Time Task Read @ time t Frequency 10ms

15 Semantics of a Task fInput ports State Output ports Time Task Read @ time t Frequency 10ms Write @ time t+10ms

16 Semantics of a Task fInput ports State Output ports Time Task Read @ time t Frequency 10ms Write @ time t+10ms Don’t care

17 A Connection Input portsOutput portsf State

18 Abstract Syntax of a Connection f State Constant

19 Abstract Syntax of a Connection f State Input portOutput port

20 Semantics of a Connection f State f

21 Semantics of a Connection f State f Time Task

22 Semantics of a Connection f State f Time Task Write @ time t

23 Semantics of a Connection f State f Time Task Write @ time tRead @ time t

24 Semantics of a Connection f State f Time Task Write @ time tRead @ time t 0 time

25 Two Tasks PInput portsOutput ports

26 Two Tasks PInput portsOutput ports QInput portsOutput ports

27 Connections P Q

28 P Q

29 P Q

30 Different Periodicity P Q

31 Time Task P QQ

32 Semantics Time Task P QQ

33 Semantics Time Task P QQ tt+10ms

34 Semantics Time Task P QQ tt+10mst

35 Semantics Time Task P QQ tt+10mstt+5ms

36 Semantics Time Task P QQ tt

37 Connections P Q

38 Semantics Time Task P QQ tt

39 Connections P Q

40 Semantics Time Task P QQ tt

41 Semantics Time Task P QQ t+5mst Don’t care

42 Semantics Time Task P QQ t+5ms

43 Semantics Time Task P QQ t+5ms

44 Semantics Time Task P QQ t+5ms

45 Semantics Task P QQ t+10ms

46 Semantics Task P QQ t+10ms

47 Semantics Task P QQ t+10ms

48 Theory ! A Giotto program is a single set of tasks, so far Is this enough?

49 Theory = Practice ? Yes, we have sufficient computation and communication resources! => A single set of tasks is enough

50 Theory = Practice ? Yes, we have sufficient computation and communication resources! => A single set of tasks is enough Fin

51 Theory = Practice ? Yes, we have sufficient computation and communication resources! => A single set of tasks is enough Fin No, we have to share resources! => with modes

52 Practice ! A mode is a set of tasks. A Giotto program is a set of modes. A Giotto program is a partitioning of the set of all required tasks.

53 FAQ: Time vs. Events Q: How about events? A: Use modes!

54 A Mode

55 Abstract Syntax of a Mode P Q

56 P Q

57 P Q

58 P Q Entry Port

59 Abstract Syntax of a Mode P Q Entry Port Period

60 Semantics of a Mode P Q Entry Port Period 10ms 1 2

61 Concrete Syntax mode m ( ) period 10 ms { taskfreq 1 do int x = P ( ) ; taskfreq 2 do int y = Q ( x, y ) ; }

62 A Mode Switch MM’

63 M Predicate Abstract Syntax of a Mode Switch

64 MM’ Predicate Abstract Syntax of a Mode Switch Frequency

65 MM’ Predicate Abstract Syntax of a Mode Switch Frequency Connection

66 MM’ Predicate Abstract Syntax of a Mode Switch Frequency 5ms Connection

67 Mode M P Q Period 10ms 1 2

68 Mode M P Q Period 10ms 1 2 Connection

69 Mode M’ Connection

70 Mode M’ P 1 Connection

71 Mode M’ P R 1 4 Connection

72 Mode M’ P R 1 4 Connection

73 Mode M’ P R 1 4 Connection

74 Mode M’ P R 1 4 Connection

75 Mode M’ P R 1 4 Connection Period 10ms

76 Concrete Syntax start m ( ) { mode m ( ) period 10 ms entryfreq 1 { taskfreq 1 do int x = P ( ) ; taskfreq 2 do int y = Q ( x, y ) ; exitfreq 2 if y = 5 then m’ ( y ) ; } mode m’ ( int z ) period 10 ms entryfreq 2 { taskfreq 1 do int x = P ( ) ; taskfreq 4 do int u = R ( x, z ) ; }

77 Semantics of a Mode Switch Task P QQ Time

78 Semantics of a Mode Switch Task P QQ Mode Switch @ t+10mst+10ms

79 Semantics of a Mode Switch Task P QQ Mode Switch @ t+5mst+5ms Time

80 Semantics of a Mode Switch Task P Q Time Mode Switch @ t+5ms

81 Mode M’ P R 1 4

82 Semantics of a Mode Switch Task P Q t+5ms Time R t+5ms

83 Semantics of a Mode Switch Task P Q t+5ms Time RR t+5mst+7.5ms

84 Semantics of a Mode Switch Task P Q t+5ms RR t+7.5mst+10ms

85 Semantics of a Mode Switch Task P Q t+5ms RR Time

86 Mode M P Q 1 2 Connection

87 Semantics of a Mode Switch Task P Q t+5ms RR Time

88 Semantics of a Mode Switch Task P QRR Mode Switch finished @ t+5ms Time

89 Mode M’ P R 1 4 Connection

90 Semantics of a Mode Switch Task P Q t+5ms RR Time

91 Mode M’ P R 1 4 Connection

92 Semantics of a Mode Switch Task P Q t+5ms RR Time

93 Mode M’ P R 1 4 Connection

94 Semantics of a Mode Switch Task P Q t+5ms RR Time

95 Semantics of a Mode Switch Task P QRR Time t+7.5ms

96 Semantics of a Mode Switch Task P QRR Time t+7.5ms

97 Semantics of a Mode Switch Task P QRR Time t+7.5ms

98 Semantics of a Mode Switch Task P QRR Time t+7.5ms

99 Semantics of a Mode Switch Task P QRR t+10ms

100 Semantics of a Mode Switch Task P QRR t+10ms

101 Semantics of a Mode Switch Task P QRR t+10ms

102 Semantics of a Mode Switch Task P QRR t+10ms

103 Functionality & Timing Control Engineer Control Design Application designs validates simulates Software Engineer Platform Implementation decomposes implements tests First Challenge

104 Compilation Platform Implementation Second Challenge Software Engineer decomposes implements tests

105 Annotated Giotto Giotto Compiler Giotto Program Platform

106 Giotto-Architecture Giotto Compiler Hosts, Nets, Performance Giotto Program Giotto-A Program Platform

107 Giotto-Scheduler Giotto Compiler Task to Host, Priority Hosts, Nets, Performance Giotto Program Giotto-A Program Giotto-AS Program Platform

108 Giotto-Communication Giotto Program Giotto Compiler Giotto-A Program Platform Giotto-AS Program Giotto-ASC Program Task to Host, Priority Hosts, Nets, Performance Connection to Net, TDMA

109 Platform Dependency Task P QQ Time

110 Platform Dependency Task P QQ Time Computation

111 Giotto-AS Task P QQ Time Host A

112 Giotto-AS Task P QQ Time Host A 2. 1.

113 Platform Dependency Task P QRR Time

114 Platform Dependency Task P QRR Time Communication

115 Platform Dependency Task P QRR Time Communication

116 Giotto-ASC Task P QRR Time Host A Host BCC

117 Giotto-ASC Task P QRR Time Host A Host BCC Network C

118 Giotto-ASC Task P QRR Time Host A Host BCC Network C t+10mst

119 Giotto-ASC Task P QRR Time Host A Host BCC Network C t+10mst

120 Giotto-ASC Task P QRR Time Host A Host BCC Network C t+10mst

121 Summary Control Design Application Platform Implementation Functionality & Timing Control Engineer Software Engineer Compilation

122 Demo


Download ppt "Giotto A Time-Triggered Language for Embedded Programming Thomas A. Henzinger, Benjamin Horowitz Christoph M. Kirsch, Rupak Majumdar UC Berkeley."

Similar presentations


Ads by Google