Time-Memory Scheduling and Code Generation of Real-Time Embedded Software
description
Transcript of Time-Memory Scheduling and Code Generation of Real-Time Embedded Software
![Page 1: Time-Memory Scheduling and Code Generation of Real-Time Embedded Software](https://reader036.fdocuments.in/reader036/viewer/2022062519/56814ef8550346895dbc89ff/html5/thumbnails/1.jpg)
Time-Memory Scheduling and Code Generation ofReal-Time Embedded Software
Chuen-Hau Gau and Pao-Ann Hsiung
National Chung Cheng University
Chiayi, Taiwan, R.O.C.
8th International Conference on Real-Time Computing Systems and Applications, March 18-20, 2002, Tokyo, Japan
![Page 2: Time-Memory Scheduling and Code Generation of Real-Time Embedded Software](https://reader036.fdocuments.in/reader036/viewer/2022062519/56814ef8550346895dbc89ff/html5/thumbnails/2.jpg)
National Chung Cheng University, Taiwan
2
Outline
Introduction
Previous Work
Real-Time Embedded Software Synthesis
ATM VPN Server Example
Conclusions
![Page 3: Time-Memory Scheduling and Code Generation of Real-Time Embedded Software](https://reader036.fdocuments.in/reader036/viewer/2022062519/56814ef8550346895dbc89ff/html5/thumbnails/3.jpg)
National Chung Cheng University, Taiwan
3
Introduction
Embedded systems abound in human daily life We interact with embedded systems in
our homes, at offices, at labs, on transportations, in communications, …
Due to this interaction with humans, most embedded systems are also REAL-TIME systems
And, software accounts for more than 70% functionalities in a real-time embedded system
![Page 4: Time-Memory Scheduling and Code Generation of Real-Time Embedded Software](https://reader036.fdocuments.in/reader036/viewer/2022062519/56814ef8550346895dbc89ff/html5/thumbnails/4.jpg)
National Chung Cheng University, Taiwan
4
What is an embedded system?
Installed in a larger system
Dedicated task
Small Memory Space (200~400 KB)
Low Processing Power (100~200 MHz)
Unstable Environment (mobile, …)
Reactive
Real-Time
![Page 5: Time-Memory Scheduling and Code Generation of Real-Time Embedded Software](https://reader036.fdocuments.in/reader036/viewer/2022062519/56814ef8550346895dbc89ff/html5/thumbnails/5.jpg)
National Chung Cheng University, Taiwan
5
Embedded System Examples
medical instrumentshome appliancesoffice equipments
space crafts research lab equipments
factory automation
![Page 6: Time-Memory Scheduling and Code Generation of Real-Time Embedded Software](https://reader036.fdocuments.in/reader036/viewer/2022062519/56814ef8550346895dbc89ff/html5/thumbnails/6.jpg)
National Chung Cheng University, Taiwan
6
Embedded System Architecture
![Page 7: Time-Memory Scheduling and Code Generation of Real-Time Embedded Software](https://reader036.fdocuments.in/reader036/viewer/2022062519/56814ef8550346895dbc89ff/html5/thumbnails/7.jpg)
National Chung Cheng University, Taiwan
7
Design Issues and Solution
2. Real-Time Constraints
1. Bounded Memory Execution
Proposed Solution
Time Memory Scheduling (TMS)
Code Generation
![Page 8: Time-Memory Scheduling and Code Generation of Real-Time Embedded Software](https://reader036.fdocuments.in/reader036/viewer/2022062519/56814ef8550346895dbc89ff/html5/thumbnails/8.jpg)
National Chung Cheng University, Taiwan
8
Previous Work
Formal Software Synthesis
Safe Petri-Nets (PN) Quasi-Static Scheduling (QSS) [Lin: DATE’98, DAC’98]
Free-Choice PN Net Decomposition + QSS [Sgroi: DAC’99]
Codesign FSM POLIS [Balarin: ICCD’99]
Non-timed multi-rate PN Reachability graph[Cortadella et al: DAC’00]
Time Free-Choice PN QSS + RTS or FIBS [Hsiung: CODES’01, FORTE’01]
![Page 9: Time-Memory Scheduling and Code Generation of Real-Time Embedded Software](https://reader036.fdocuments.in/reader036/viewer/2022062519/56814ef8550346895dbc89ff/html5/thumbnails/9.jpg)
National Chung Cheng University, Taiwan
9
Real-Time Embedded Software (RTES) Model Real-Time Embedded Software is specified
as a set of Colored Time Petri Nets (CTPN)
Allows explicit modeling of Timing Constraints
Memory Usages
No free-choice restriction!
Larger domain of real-time embedded applications!
![Page 10: Time-Memory Scheduling and Code Generation of Real-Time Embedded Software](https://reader036.fdocuments.in/reader036/viewer/2022062519/56814ef8550346895dbc89ff/html5/thumbnails/10.jpg)
National Chung Cheng University, Taiwan
10
Colored Time Petri Nets
t2
t0
t3
t5
t1
t4
p0
p1
p2
p4
p3
[2, 5]
[1, ]
[1, 5]
[3, 6]
[7, 7]
[1, 2]
{(1, red), (1,green), (1,blue)}
{(2, black), (1, red)}
![Page 11: Time-Memory Scheduling and Code Generation of Real-Time Embedded Software](https://reader036.fdocuments.in/reader036/viewer/2022062519/56814ef8550346895dbc89ff/html5/thumbnails/11.jpg)
National Chung Cheng University, Taiwan
11
Colored Time Petri Nets
A CTPN is a 6-tuple (P,T, C, ,M0,) such that: P is a finite set of places, T is a finite set of transitions, P T , P T
= , C is a set of colors associated with each token : (P T ) (T P ) 2NC, a set of weighted
arcs such that each arc is associated with a set of integer-color pairs,
M0: P 2NC, the initial marking, (t ) = (, ), t T, : Earliest Firing Time,
: Latest Firing Time.
![Page 12: Time-Memory Scheduling and Code Generation of Real-Time Embedded Software](https://reader036.fdocuments.in/reader036/viewer/2022062519/56814ef8550346895dbc89ff/html5/thumbnails/12.jpg)
National Chung Cheng University, Taiwan
12
CTPN Marking
A marking is a vector
M = <NC1, NC2, …, NC|P|>
where NCi is a set of integer-color pairs representing the non-negative number of colored tokens in place pi.
2 attributes are associated with each M: (1) a time-stamp (M) (2) a memory-usage (M)
![Page 13: Time-Memory Scheduling and Code Generation of Real-Time Embedded Software](https://reader036.fdocuments.in/reader036/viewer/2022062519/56814ef8550346895dbc89ff/html5/thumbnails/13.jpg)
National Chung Cheng University, Taiwan
13
Valid Firing (System Execution) A transition t is said to be enabled at time in a markin
g M with time-stamp (M) if: (1) (pk, t) NCk, (pk, t) , k {1, …,|P|},
(2) (M) (t)
The firing of a transition t at time in a marking M with time-stamp (M) is called a valid firing if: Transition Deadline:
(t) (M) (t)
Memory Constraint: (M') max
where M' is the marking obtained by firing t in M and max is the maximum amount of memory available.
![Page 14: Time-Memory Scheduling and Code Generation of Real-Time Embedded Software](https://reader036.fdocuments.in/reader036/viewer/2022062519/56814ef8550346895dbc89ff/html5/thumbnails/14.jpg)
National Chung Cheng University, Taiwan
14
RTES Synthesis Problem
Target Problem
Real-Time Embedded Software Synthesis
Given: a set of CTPN S = {Ai | i = 1,2,…,n}, an upper-bound max on memory space, and a set of real-time constraints: CTPN periods, deadlines
software code is to be generated such that
1. it can be executed on a single processor,
2. it uses memory less than or equal to max, and
3. it satisfies all EFT, LFT, and real-time constraints.
![Page 15: Time-Memory Scheduling and Code Generation of Real-Time Embedded Software](https://reader036.fdocuments.in/reader036/viewer/2022062519/56814ef8550346895dbc89ff/html5/thumbnails/15.jpg)
National Chung Cheng University, Taiwan
15
RTES Synthesis Algorithm
Choice Set:
H = {t2, t3, t4}
t2
t3
t4
p1
[2, 5]
[7, 7]
[1, 2]
![Page 16: Time-Memory Scheduling and Code Generation of Real-Time Embedded Software](https://reader036.fdocuments.in/reader036/viewer/2022062519/56814ef8550346895dbc89ff/html5/thumbnails/16.jpg)
National Chung Cheng University, Taiwan
16
RTES Synthesis Algorithm
Exclusion Set
H = {t2, t3, t4}
Merging of all
non-disjoint
choice sets
t2
t3
t4
p0
p1
p2
[2, 5]
[7, 7]
[1, 2]
![Page 17: Time-Memory Scheduling and Code Generation of Real-Time Embedded Software](https://reader036.fdocuments.in/reader036/viewer/2022062519/56814ef8550346895dbc89ff/html5/thumbnails/17.jpg)
National Chung Cheng University, Taiwan
17
RTES Synthesis Algorithm
Time-Memory Scheduling
A schedule (sequence of firing transitions) is valid if the following are satisfied: Transition deadline
CTPN deadline
Memory bound
Incomplete exclusion sets are deleted (because corresponding code will be illegal)
![Page 18: Time-Memory Scheduling and Code Generation of Real-Time Embedded Software](https://reader036.fdocuments.in/reader036/viewer/2022062519/56814ef8550346895dbc89ff/html5/thumbnails/18.jpg)
National Chung Cheng University, Taiwan
18
RTES Synthesis Algorithm
Transition Deadline Satisfaction
Assume transition t:
enabled at marking M with time-stamp (M)
fired at marking M with time-stamp (M),
then it must satisfy
(M) - (M) + (t) (t)transition deadline
transition execution time
token age
![Page 19: Time-Memory Scheduling and Code Generation of Real-Time Embedded Software](https://reader036.fdocuments.in/reader036/viewer/2022062519/56814ef8550346895dbc89ff/html5/thumbnails/19.jpg)
National Chung Cheng University, Taiwan
19
RTES Synthesis Algorithm
CTPN Deadline Satisfaction
Assume transition t:
fired at marking M
(M) + (t) d
CTPN deadline for current task
transition execution time
![Page 20: Time-Memory Scheduling and Code Generation of Real-Time Embedded Software](https://reader036.fdocuments.in/reader036/viewer/2022062519/56814ef8550346895dbc89ff/html5/thumbnails/20.jpg)
National Chung Cheng University, Taiwan
20
RTES Synthesis Algorithm
Memory Bound Satisfaction
Assume transition t:
fires and CTPN reaches marking M
(M) max
memory bound
memory usage
![Page 21: Time-Memory Scheduling and Code Generation of Real-Time Embedded Software](https://reader036.fdocuments.in/reader036/viewer/2022062519/56814ef8550346895dbc89ff/html5/thumbnails/21.jpg)
National Chung Cheng University, Taiwan
21
RTES Synthesis Algorithmwhile( |Tree| != 0 ){ if( Entire Tree Marked ) CodeGen();
if( Current Node Is Spawned ){ Current Node :: Delete Incomplete Exsets
if Current Node :: Has Marked Child Current Node :: Delete Other Child, Mark, Go Parentif(Child := SELECT() == null) Current Node :: Delete Current and Go Parentelse Current Node :: Go Child }
else{ if(Current Node Is A CompleteSchedule)
Current Node :: Mark and Go Parentelse Current Node :: Spawn }
}
![Page 22: Time-Memory Scheduling and Code Generation of Real-Time Embedded Software](https://reader036.fdocuments.in/reader036/viewer/2022062519/56814ef8550346895dbc89ff/html5/thumbnails/22.jpg)
National Chung Cheng University, Taiwan
22
RTES Synthesis Algorithm
Memory Estimation
Global Memory: G(R), R: tree
Local Memory: maxtM (L(t)), t: transition,
M: marking Buffer Memory:
Total Memory: )()(maxmaxmax MtRS BLMtRM
GSR
Pi NCcnCB
i
cnM1 ),(
)(
![Page 23: Time-Memory Scheduling and Code Generation of Real-Time Embedded Software](https://reader036.fdocuments.in/reader036/viewer/2022062519/56814ef8550346895dbc89ff/html5/thumbnails/23.jpg)
National Chung Cheng University, Taiwan
23
Code Generation
A real-time process for each independent task, i.e., each reachability tree
# tasks is minimal (= # independent tasks)
Main Program
Processi
Task 1 Task 2 Task k…
Source Transitions in TFCPN
![Page 24: Time-Memory Scheduling and Code Generation of Real-Time Embedded Software](https://reader036.fdocuments.in/reader036/viewer/2022062519/56814ef8550346895dbc89ff/html5/thumbnails/24.jpg)
National Chung Cheng University, Taiwan
24
Code Generation Algorithm
Extract( CNode ) {if( CNode is leaf ) // no child{ Code += getCode(CNode);
Code += “return;”;}else if( CNode is branching ) // multi-child{ Code += getBranchCode(CNode);
for each child node CNode.ciExtract(CNode.ci);
}else // one child{ Code += getCode(CNode);
Extract(CNode.child) }return(Code);
}
![Page 25: Time-Memory Scheduling and Code Generation of Real-Time Embedded Software](https://reader036.fdocuments.in/reader036/viewer/2022062519/56814ef8550346895dbc89ff/html5/thumbnails/25.jpg)
National Chung Cheng University, Taiwan
25
ATM VPN Server
ATM switching nodes interconnect LANs via an ATM backbone.
An ATM server:
temporarily stores input cells from VCCs (Virtual Channel Connections), and
forward VCC cells to the VPCs (Virtual Path Connections) by identifying cell headers.
![Page 26: Time-Memory Scheduling and Code Generation of Real-Time Embedded Software](https://reader036.fdocuments.in/reader036/viewer/2022062519/56814ef8550346895dbc89ff/html5/thumbnails/26.jpg)
National Chung Cheng University, Taiwan
26
CASE STUDY: AN ATM VIRTUAL CASE STUDY: AN ATM VIRTUAL PRIVATE NETWORK SERVERPRIVATE NETWORK SERVER
CLASSIFIERCLASSIFIERCONGESTION CONGESTION
CONTROL CONTROL (MSD)(MSD)
SUPERVISORSUPERVISOR
WFQ WFQ SCHEDULERSCHEDULER
ATM INATM IN
(155 (155 Mbit/sMbit/s))
ATM OUTATM OUT
(155 (155 Mbit/sMbit/s))
DISCARDED DISCARDED CELLSCELLS
![Page 27: Time-Memory Scheduling and Code Generation of Real-Time Embedded Software](https://reader036.fdocuments.in/reader036/viewer/2022062519/56814ef8550346895dbc89ff/html5/thumbnails/27.jpg)
National Chung Cheng University, Taiwan
27
Functionalities of ATM VPN
1. Message Selective Discarding (MSD):A message discarding technique that avoids buffer overflow by discarding selected incoming cells
2. Weighted Fair Queuing (WFQ):A bandwidth control policy for outgoing flows
Thus, there are TWO independent tasks!
![Page 28: Time-Memory Scheduling and Code Generation of Real-Time Embedded Software](https://reader036.fdocuments.in/reader036/viewer/2022062519/56814ef8550346895dbc89ff/html5/thumbnails/28.jpg)
National Chung Cheng University, Taiwan
28
ATM VPN Server
Message SelectiveDiscarding
Cell ExtractCounter
WFQ scheduling
VCC cell
TICK
PUSH
INSERT
POP
![Page 29: Time-Memory Scheduling and Code Generation of Real-Time Embedded Software](https://reader036.fdocuments.in/reader036/viewer/2022062519/56814ef8550346895dbc89ff/html5/thumbnails/29.jpg)
National Chung Cheng University, Taiwan
29
CTPN model of MSD in ATM
CID READ_STATE_VCC UPDATE_STATE_INIT
p1
p2
p3
p4
p5
p6
p7
p8
p10
MSD
PTI
TI
t1
READ_OUT_QUID
t2
t6
t9
p9
p11
p12
p15
p16
p19
p13
p14
p17
p18
p20
p22
p23
t3
t4
t5
READ_MAX_QLENGTH
CHECK_QLENGTH
t8
READ_THRESHOLD
CHECK_QLENGTH
t7
t11
UPDATE_STATE_REJ
t10
t12
PUSH
Qlength < thres ?
UPDATE_STATE_ACC
N
Y
Qlength <max ?
Y
N
p21
Qlength = 0 ?
*SCHEDULE_WFQ
COMPUTE_OUT_TIME
Y
N
p24 st=2
st=0
st=1
PTI = 1/3 ?
Y
N
[1, 16]
[10, 25]
[9, 9]
[6, 15]
[12, 37]
![Page 30: Time-Memory Scheduling and Code Generation of Real-Time Embedded Software](https://reader036.fdocuments.in/reader036/viewer/2022062519/56814ef8550346895dbc89ff/html5/thumbnails/30.jpg)
National Chung Cheng University, Taiwan
30
CTPN models of WFQ, Extract
*SCHEDULE_WFQ READ_BW
READ_LAST
t13
t14
t15
LAST + BW>
GLOBAL_TIME ?
N
Yp25
p26
p27
p28p29 P30
INSERT_CELL
p34 p35
p33p32p31
p37
p36
p38 p39
POP
CHECK_QLENGTH
t19
COMPUTE_OUT_TIME
*SCHEDULE_WFQ
t17
t18
TICK
I=I+1
I=0
t16
READ_SORTERQlength=0?
Y
N
CELL_OUT_TIME<=GLOBAL_TIME?
Y
NI=N? N
Y
![Page 31: Time-Memory Scheduling and Code Generation of Real-Time Embedded Software](https://reader036.fdocuments.in/reader036/viewer/2022062519/56814ef8550346895dbc89ff/html5/thumbnails/31.jpg)
National Chung Cheng University, Taiwan
31
Reachability Treefor MSD
Schedule Results: 49 markings 14 schedules 66 instructions 12 Kbytes
Memory
![Page 32: Time-Memory Scheduling and Code Generation of Real-Time Embedded Software](https://reader036.fdocuments.in/reader036/viewer/2022062519/56814ef8550346895dbc89ff/html5/thumbnails/32.jpg)
National Chung Cheng University, Taiwan
32
Reachability Trees for WFQ and Extract
Schedule Results:
WFQ 9 markings 2 schedules
Extract 13 markings 4 schedules
![Page 33: Time-Memory Scheduling and Code Generation of Real-Time Embedded Software](https://reader036.fdocuments.in/reader036/viewer/2022062519/56814ef8550346895dbc89ff/html5/thumbnails/33.jpg)
National Chung Cheng University, Taiwan
33
Scheduling Results
Both MSD and Extract call WFQ (2 schedules)
MSD Task
# schedules = 14 2 = 28
Extract Task
# schedules = 4 x 2 = 8
![Page 34: Time-Memory Scheduling and Code Generation of Real-Time Embedded Software](https://reader036.fdocuments.in/reader036/viewer/2022062519/56814ef8550346895dbc89ff/html5/thumbnails/34.jpg)
National Chung Cheng University, Taiwan
34
Conclusions
A synthesis method for real-time embedded software was presented
No free-choice restriction on model
Explicit time and data modeling
Both real-time constraints and memory constraints are considered for scheduling
Minimal number of tasks in generated code
Can be used for prototyping platforms