Title: Performance Estimation for Real-Time Distributed Embedded Systems
1Performance Estimation for Real-Time Distributed
Embedded Systems
- Presented by Li Xianfeng
- lixianfe_at_comp.nus.edu.sg
- Aug/27/2002
2A Co-design framework
System description
Compiler
System behavior
Validation
Partitioning Mapping
Partitioned specification
Performance Esitmation
SW synthesis
Interface synthesis
HW synthesis
Evaluation
Prototype
3Partionning Mapping
- Period / Deadline of each task
P1
P2
- Process dependencies in tasks
P3
P5
P4
Task 1
Task 2
P1
P5
P2
P3
- Allocation Processes gt PEs
PE1
PE2
- Scheduling Priorities gt Processes
P4
PE3
4Survey of Performance Analysis (1)
- Model
- Single process on a uniprocessor
- Goal
- Execution time in worst case (WCET)?
- Solutions
- A find the longest path and sum up each
instructions time. - B cache miss, pipeline stall, etc, make an
instruction time vary. Take them into account and
sum up the modified instructions time.
5Survey of Performance Analysis (2)
- Model
- Multiple independent, periodic tasks on a
processor - Tasks computation time (ci) and period (pi) are
known - Priority-based scheduling ( preemptions
introduced!) - Goal
- Given a schedule of priorities, can all finish
before their deadlines? - Solutions
- Rate Monotonic Scheduling (RMS)
6Example
c1
c2
20
30
T1 50
T2 40
Response Time preemptions from higher-priority
process makes lower-priority processs response
time longer than its computation time (c).
P2
P2
P1
P1
10
30
50
0
60
20
40
P2
P2
P1
10
30
50
0
60
20
40
7Survey of Performance Analysis (2.1)
- RMS (Rate Monotonic Scheduling)
- processes with higher request rate (shorter
period) have higher priorities - Optimum among all fixed-priority scheduling
algorithms - Schedulability
- processor utilization factor
- another utilization value
8Survey of Performance Analysis (2.2)
- Lehoczkys algorithm for computing worst-case
response time ? Fixed-Point Iteration - Equation
- Iteration process while (x lt g(x)) x g(x)
- Initial Value
- Upper bound of finding an x lt pi U lt 1
9Survey of Performance Analysis (3)
- Model
- Multiple periodic tasks, each task with multiple
processes ( represented by a task graph ) - processes in the same task have data dependencies
- Priority-based scheduling ( preemptions
introduced!) - Goal
- Given a schedule of priorities, can all tasks
finish before their deadlines? - Solution
- comes with the paper being presented ?
10Why previous solutions dont work (1)
Comparison of Goals
Previous models Does any tasks response time exceeds its period (deadline)? Does any processs (of any task) response time exceed its period (deadline)?
Current model Does any longest path (of any task) exceed its period (deadline)?
- Problems ?
- Knowing Single Worst-Case Response Time is no
longer sufficient! - How to compute the longest path?
11Why previous solutions dont work (2)
- Priority P1 gt P2 gt P3
- w2 35 ( preempted by P1)
- w3 45 (preempted by P1 P2)
- Longest delay of path P2 gt P3 ?w w2 w3
80 ?
- Problem 2
- P2 cannot preempt P3
- Problem 1
- P1 cannot preempt both P2 P3
12Why previous solutions dont work (3)
Periods Computation Time
Previous Model Constants Constants
Current Model Bounds Bounds
13(No Transcript)
14Achievements of This Paper
- Take into account data dependencies between
processes - Modeling bounds rather than constants on
computation time, task period etc. - Tight result
15Input to Performance Estimation
- Task graphs
- Periods / deadlines for each task (Ti)
- Processes their priorities in each PE
- Computation time (ci) for each Pi.
Objective Does the tasks can meet their
deadlines in worst case?
16Intuition underlying this algorithm (1)
- Identifying infeasible preemptions/overlaps!
- phase constraints reduce preemptions
- some pairs of processes cannot overlap
P1
P1
P1
0
100
40
80
P2
P1
P1
P1
0
100
70
30
P2
17Intuition underlying this algorithm (2)
- Identifying infeasible preemptions/overlaps!
- phase constraints reduce preemptions
- some pairs of processes cannot overlap
Obvious Case ltP2, P5gt, ltP3, P6gt ...
Indirect Case ltP5, P6gt ???
18Algorithm Framework
- latestPi.request
- latestPi.finish
- earliestPi.request
- earlistPi.finish
Phase Adjustment EarliestTimes( ) LatestTimes( )
Separation Analysis MaxSeparations( )
- maxsepPi.request, Pj.finish
19Phase Adjustment (1)
- Objectives by looking at data dependencies in
task graphs - Internal Find phase constraints use them to
bound response times ( ltrequest(i), requestltjgt or
ltrequest(i), finish(j)gt ).
20Phase Adjustment (2)
- Objectives by looking at data dependencies in
task graphs - External Feed stage 2 with latest/earliest
request/finish information for pairs ltPi, Pjgt of
each process.
upperP1, P3, lowerP1, P3 upperP2, P5,
lowerP2, P5 But no upperP2, P6 ...
21Phase Adjustment (3)
- Main function modules workflow
- LatestTimes(Gi) a modified longest-path
algorithm by taken into account of preemption
information - EarliestTimes(Gi) get shortest-path information
- LatestTimes, EarliestTimes are combined to give
bounds on request/finish times of processes. - For each sub-graph G(i) rooted at i, invoke
Latest... Earliest... - In Latest.../Earliest..., analyze each process in
topologically sorted order
22Phase Adjustment (in detail)
Data Structures Definition Usage Genaration/Update
request phase min(Pj.req Pi.req) update response time of Pi by i-predecessors finish phases slack
finishing phase min(Pj.fin Pi.req) update request phases of i-successors to all j by my request phase and response time
latestPi.req earliestPi.req relative value to current Graph root update my finish times used by stage 2 MaxSep by i-predecessors finish times
latestPi.fin earliestPi.fin relative value to current Graph root update i-successors reqeust times used by stage 2 MaxSep by my request times and response time
wi worst-case response time update finish phase finish times request phase i-gtj MaxSepi,j from stage 2
23Example
visit each node in the task graph in
topologically sorted order
24Output of Stage1 ? Input of Stage 2
- Output of stage 1 latestPj.request,
...earliestPj.finish - Input of stage 2 upperPi.request, Pj.reqest,
..., upperPi.request, Pj.finish - Observations
- Output of Stage 1 ? Input of Stage 2 happens
after each calling of LatestTimes(Gi)
EarliestTimes(Gi) - Each latestPj.reqest, ..., earliestPj.finish
is a relative value to root node i of current
sub-graph Gi. - No Input (bound) information for pairs of
processes without predecessor/successor relation.
25Motivation for Stage 2 Max Separations Analysis
(1)
Why do we need the second stage?
-- overestimations still exist infeasible
preemptions!
Why using a sophiscated Max Constraint algorithm?
-- find indirect separate pairs , which cannot
preempt with each other
No Input (bound) information for pairs of
processes without predecessor/successor relation.
26Motivation for Stage 2 Max Separations Analysis
(2)
- Identifying infeasible preemptions/overlaps!
- Simpler Cases no preemptions between
ltpredecessor, successorgt - Indirect Cases give a pair which have no
predecessor/successor relation. can one preempt
the other?
lt P1, P3 gt, lt P1, P5 gt, lt P3, P6 gt lt P2, P6 gt,
lt P5, P6 gt, lt P3, P4 gt ???
27Data Structures of MaxSeparation Analysis (1)
- Output
- maxsepPi.request, Pj.finish
- maxsepPi.request, Pj.request
- i.e.
- maxsepP5.request, P3.finish lt 0
- P3 finish execution before P5 request!
- No preemption between lt P5 , P3 gt
28Data Structures of MaxSeparation Analysis (2)
- Output
- maxsepPi.request, Pj.finish
- maxsepPi.request, Pj.request
May increase phase distance ?tighten response
time in stage 1 in next iteration
29Data Structures of MaxSeparation Analysis (2)
- Inputs
- upper bounds between lt predecessor, successor gt
- lower bounds between lt predecessor, successor gt
i.e. upper P1.request, P2.request lower
P1.request, P6.finish No upper P5.request,
P6.request Need to derive from known ones!
30Max constraints -- McMillan Dills Algorithm.
- Problem Model
- A connected, acyclic graph with a single source
- each node an event, its happening time is
determined by the path it taken from the source - a bound on the delay of each edge ( li, j, ui,
j ) - Objective
- Given a pair of node lt i, j gt, check whether
t(j) t(i) lt c(i, j)
31Max constraints -- McMillan Dills Algorithm
(Cont.)
Solution maxsepi, j Min ( Max (maxsepi, k
uk, j ), -loweri, j)
i.e. (1) maxsepP6, P2 ? Min Interval
(want) (2) maxsepP6, P1 ? Min Interval
(known) (3) u1, 2 ? Max Interval
(known) Conclusion (1) (2) (3) must be the
Minimal!
32Impact of Separations Analysis on Phase Adjustment
- Improving stage 1 in two aspects
- increase request phases ? tighten response
times - maxsepPi.request, Pj.finish lt 0No preemption
between lt Pi , Pj gt? tighten response times also
33Termination of the program
- When no change of all the maxsepi, j. The
program will terminate.
34Experiments Results (1)
35(No Transcript)
36(No Transcript)
37Summary
- Big picture on performance analysis
- RMS Lehoczkys fixed-point iteration technique
- Impact of data dependencies on scheduling
- Two-stage solution a fixed-point iteration
- Phase adjustment
- MaxSeparation analysis
- McMillan Dills algorithm on Max Constraints