Title: The BIP framework
1The BIP framework
Ananda Basu, Joseph Sifakis, Marius Bozga VERIMAG
2Overview
- Create the system hierarchy (from Atoms to
Compounds) - Describe the atomic components behavior and the
architecture (connectors and priorities) in BIP - Generate from the BIP description platform
specific code (C code) - Run execution or state space exploration
- Results execution trace or state-space graph
3Modeling flow
BIP Model
BIP compiler
Execution Trace
BIP Platform specific code
State Space graph
Platform
4BIP Syntax Atomic Component
component name ( arg1, arg2) ports p1,p2, data
type1 x,y,z type2 u,v,w behavior state
s1 on p1 provided g1 when (t1, d) do f1 to
s1 on pn provided gn when
(tn, d) do fn to sn state s2 on ..
end end
5Problem 1 Pay Bursts Only Once
Bursty Event-Stream Period 10 Jitter 50 Min.
Interarrival Dist. 1
CPU2
CPU3
CPU1
T1
T2
T3
WCED 8
WCED 4
WCED 1
End-to-end Delay?
6Case study Problem 1Component Task
Task
get count
tick
get
finish
READY
finish, delaylt WCET d
start, (countgt0) count--, delay0
EXEC
get count
tick delay
tick
7Case study Problem 1 BIP code snippet for a
Task
component Task (int wcet) port get, start,
tick, finish data int count, delay
init count 0 WCET wcet
behavior state READY
on get do count to READY on start
provided count gt 0 do count-- delay
0 to EXEC on tick to READY state
EXEC on get do count to EXEC
on finish when ( delay lt WCET , delayable)
to READY on tick do delay to EXEC
end end
8Case study Problem 1Composition in BIP glue
T1
T2
T3
EvntT1
T1T2
T2T3
Tick
System
9Case study Problem 1 BIP code snippet for Task
Composition
component System contains Launcher
BurstStreamGen(10, 5, 1) contains Task T1(8),
T2(4), T3(1) connector Tick
BurstStreamGen.tick, T1.tick, T2.tick, T3.tick
behavior end connector EvntT1
BurstStreamGen.go, T1.get behavior end
priority // start lt get ( no event losses )
getStart1 T1.Start T1.start lt EvntT1 T1.get
priority // finish lt get ( no event losses
) getFin1 T1T2 T1.finish lt EvntT1 T1.get
priority // ( tick lt finish ) getTick2 if
(T1.delay T1.WCET) Tick T2.tick lt T1T2
T1.finish
10Case study Problem 2
Bursty Event-Stream Period 10 Jitter 50 Min.
Interarrival Dist. 1
Preemptive Fixed-Priority Scheduling. (T1 has
higher priority than T3)
CPU2
CPU1
T1
T2
End-to-end Delay?
WCED 4
WCED 8
T3
WCED 1
11Case study Problem 2Behavior Architecture
def
Task(preemptable)
get count
preempt
tick
get
READY
resume
start, (countgt0) count--, delay0
finish, delaylt WCET d
tick
preempt
finish
EXEC
SUSPEND
tick delay
resume
get count
get count
tick
12Case study Problem 2Composition in BIP glue
tick
tick
tick
get
go
finish
get
finish
Burst Stream Generator
T1
T2
resume
preempt
start
preempt
start
resume
finish
T3
get
tick
Priorities T3 lt T1
System
13Burst Event Stream Generator in BIP
x 0 y 0 k 0
tick, x y
RUN
period, x T ? x 0 k k1
go k ? 0 ? x k T ? J ? y ? d? y 0, k
k-1
tick
go
14State Space graph
15Results Max End-to-End Delays
P1 P3 P3 P2 P2
P1 Non-preemptive Preemptive Non-preemptive Preemptive
J30, P10, d1 35 48 40 149 148
J40, P10, d1 43 57 49 189 194
J50, P10, d1 51 66 58 234 m.o
(Measured using an Observer Component)
16Summary
- Strengths
- Modeling of heterogeneous systems Event and Data
driven, Untimed and Timed, Synchronous and
asynchronous - Reusability existing components can be combined
to generate complex components using platform
glue - Incremental modeling
- Flexibility due to the combination between
interactions and priorities - Limitations
- Restrictions of computational approaches, eg
state-space explosion, unable to compute average
values.