Abstract RTOS Modelling for Multi-Processor SoC using SystemC
description
Transcript of Abstract RTOS Modelling for Multi-Processor SoC using SystemC
![Page 1: Abstract RTOS Modelling for Multi-Processor SoC using SystemC](https://reader036.fdocuments.us/reader036/viewer/2022062501/56815c27550346895dc9fb97/html5/thumbnails/1.jpg)
courseware
Abstract RTOS Modelling for Multi-Processor SoC using
SystemCProf. Jan Madsen
Informatics and Mathematical ModellingTechnical University of Denmark
Richard Petersens Plads, Building 321DK2800 Lyngby, Denmark
![Page 2: Abstract RTOS Modelling for Multi-Processor SoC using SystemC](https://reader036.fdocuments.us/reader036/viewer/2022062501/56815c27550346895dc9fb97/html5/thumbnails/2.jpg)
Jan Madsen 2SoC-MOBINET courseware
Motivation
1
34
2
a b c
1 2 os
3
4
mappinga b c
![Page 3: Abstract RTOS Modelling for Multi-Processor SoC using SystemC](https://reader036.fdocuments.us/reader036/viewer/2022062501/56815c27550346895dc9fb97/html5/thumbnails/3.jpg)
Jan Madsen 3SoC-MOBINET courseware
Principles of mapping
12
3
Partitioning/clusteringBreak processes toincrease parallelism
Cluster processes toreduce communication
Allocation
a b
MappingSchedulingCommunication
1
3 2
a
b 1 2 & 3
deadline
![Page 4: Abstract RTOS Modelling for Multi-Processor SoC using SystemC](https://reader036.fdocuments.us/reader036/viewer/2022062501/56815c27550346895dc9fb97/html5/thumbnails/4.jpg)
Jan Madsen 4SoC-MOBINET courseware
Motivation
rtosa
rtosb
rtosc
rtosd
network
![Page 5: Abstract RTOS Modelling for Multi-Processor SoC using SystemC](https://reader036.fdocuments.us/reader036/viewer/2022062501/56815c27550346895dc9fb97/html5/thumbnails/5.jpg)
Jan Madsen 5SoC-MOBINET courseware
Uni-processor ...
rtosa
rtosb
rtosc
rtosd
network
![Page 6: Abstract RTOS Modelling for Multi-Processor SoC using SystemC](https://reader036.fdocuments.us/reader036/viewer/2022062501/56815c27550346895dc9fb97/html5/thumbnails/6.jpg)
Jan Madsen 6SoC-MOBINET courseware
Uni-processor ...
rtosa
Framework to experiment with different RTOS strategiesFocus on analysis of timing and resource sharing
Abstract software model, i.e. no behavior/functionality
Easy to create tasks and implement RTOS models
Based on SystemC
![Page 7: Abstract RTOS Modelling for Multi-Processor SoC using SystemC](https://reader036.fdocuments.us/reader036/viewer/2022062501/56815c27550346895dc9fb97/html5/thumbnails/7.jpg)
Jan Madsen 7SoC-MOBINET courseware
System model
rtosa
![Page 8: Abstract RTOS Modelling for Multi-Processor SoC using SystemC](https://reader036.fdocuments.us/reader036/viewer/2022062501/56815c27550346895dc9fb97/html5/thumbnails/8.jpg)
Jan Madsen 8SoC-MOBINET courseware
System model
rtos
![Page 9: Abstract RTOS Modelling for Multi-Processor SoC using SystemC](https://reader036.fdocuments.us/reader036/viewer/2022062501/56815c27550346895dc9fb97/html5/thumbnails/9.jpg)
Jan Madsen 9SoC-MOBINET courseware
System model
rtos
![Page 10: Abstract RTOS Modelling for Multi-Processor SoC using SystemC](https://reader036.fdocuments.us/reader036/viewer/2022062501/56815c27550346895dc9fb97/html5/thumbnails/10.jpg)
Jan Madsen 10SoC-MOBINET courseware
System model
Task messages: ready finished
RTOS commands: run preemept Resume
rtos
task
schedulerlinks
![Page 11: Abstract RTOS Modelling for Multi-Processor SoC using SystemC](https://reader036.fdocuments.us/reader036/viewer/2022062501/56815c27550346895dc9fb97/html5/thumbnails/11.jpg)
Jan Madsen 11SoC-MOBINET courseware
System model - SystemC
pa = new task("task_a",1,50,3,12,0,ready);
registerTask(pa); pb = new
task("task_b",2,40,2,10,0,ready); registerTask(pb);
pc = new task("task_c",3,30,1,10,0,ready);
registerTask(pc);rtos
identifierperiod
priority
offsetWCET
![Page 12: Abstract RTOS Modelling for Multi-Processor SoC using SystemC](https://reader036.fdocuments.us/reader036/viewer/2022062501/56815c27550346895dc9fb97/html5/thumbnails/12.jpg)
Jan Madsen 12SoC-MOBINET courseware
Link model
Aim: Adding tasks without having to create seperate communication links
Uses the SystemC master-slave library
If two tasks send a message at the same time – they are executed in sequence, but in undefined order
Global ”clock” is used to keep track of time
rtos
clock
![Page 13: Abstract RTOS Modelling for Multi-Processor SoC using SystemC](https://reader036.fdocuments.us/reader036/viewer/2022062501/56815c27550346895dc9fb97/html5/thumbnails/13.jpg)
Jan Madsen 13SoC-MOBINET courseware
Task model
r1
r1 = time at which task becomes released (or active)
e1
e1 = worst case execution time (WCET)
d1 = deadline, task should complete before this!
d1s1
s1 = time at which task starts its execution
T1
T1 = period, minimum time between task releases
1
o1 = offset (or phase) for first released
o1
![Page 14: Abstract RTOS Modelling for Multi-Processor SoC using SystemC](https://reader036.fdocuments.us/reader036/viewer/2022062501/56815c27550346895dc9fb97/html5/thumbnails/14.jpg)
Jan Madsen 14SoC-MOBINET courseware
Task model
idle
running preempt
readyCp>0 !run
!resumerun
Cp==0 ready
preempt
resume
Cr==0finish
& Cr>0!preempt
![Page 15: Abstract RTOS Modelling for Multi-Processor SoC using SystemC](https://reader036.fdocuments.us/reader036/viewer/2022062501/56815c27550346895dc9fb97/html5/thumbnails/15.jpg)
Jan Madsen 15SoC-MOBINET courseware
SC_MODULE(perTask){ sc_outmaster<message_type> out_message; sc_inslave<message_type> in_command; sc_in_clk clock;
sc_event newStateEvent; void next_state(); void update_state(); void get_comm_from_scheduler(); SC_HAS_PROCESS(perTask); perTask(sc_module_name name_, int id_, ...) : sc_module(name_),id(id_), ...) { SC_METHOD(next_state); sensitive << newStateEvent; SC_METHOD(update_state); sensitive << clock; SC_SLAVE(get_comm_from_scheduler,in_command); } private: t_state state, new_state;
Task model - SystemC
new_state
state
![Page 16: Abstract RTOS Modelling for Multi-Processor SoC using SystemC](https://reader036.fdocuments.us/reader036/viewer/2022062501/56815c27550346895dc9fb97/html5/thumbnails/16.jpg)
Jan Madsen 16SoC-MOBINET courseware
Scheduling model
Aim: Simple way to describe the scheduling algorithm
Scheduler should only handle one message at a time
Rate-monotonic scheduling preemptive WCET d=T Fixed priority
rtosscheduler
![Page 17: Abstract RTOS Modelling for Multi-Processor SoC using SystemC](https://reader036.fdocuments.us/reader036/viewer/2022062501/56815c27550346895dc9fb97/html5/thumbnails/17.jpg)
Jan Madsen 17SoC-MOBINET courseware
void RM_scheduler::doSchedule() { ti = in_message; if (ti.comm==ready) { Q.push(ti); } else { tk.id = 0; } tj = Q.top(); if (tj.id != 0) { if (tk.id != 0) { if (tk < tj) { out_command = *(preemptTask(&tk, &Q)); tk = tj; out_command = *(runTask(&tj, &Q)); } else { } } else { tk = tj; out_command = *(runTask(&tj, &Q)); } } else { }}
Scheduling model - SystemC
ti: message received from from task i
tj: message from task j with highest priority from ready list
tk: message of the currently running task
Rate monotonic scheduling
![Page 18: Abstract RTOS Modelling for Multi-Processor SoC using SystemC](https://reader036.fdocuments.us/reader036/viewer/2022062501/56815c27550346895dc9fb97/html5/thumbnails/18.jpg)
Jan Madsen 18SoC-MOBINET courseware
An example
p3
p2
p1
50
40
30
0 20 30 40 50 6010
1
3
2
1
2
3
priorityeiTi
1030
1040
1250
2
3
1
![Page 19: Abstract RTOS Modelling for Multi-Processor SoC using SystemC](https://reader036.fdocuments.us/reader036/viewer/2022062501/56815c27550346895dc9fb97/html5/thumbnails/19.jpg)
Jan Madsen 19SoC-MOBINET courseware
An example
p3
p2
p1
50
40
30
0 20 30 40 50 6010
1
3
2
![Page 20: Abstract RTOS Modelling for Multi-Processor SoC using SystemC](https://reader036.fdocuments.us/reader036/viewer/2022062501/56815c27550346895dc9fb97/html5/thumbnails/20.jpg)
Jan Madsen 20SoC-MOBINET courseware
Extending the task model
Varying execution times [emin:emax]
r1 emin d1s1 T1
1
emax
![Page 21: Abstract RTOS Modelling for Multi-Processor SoC using SystemC](https://reader036.fdocuments.us/reader036/viewer/2022062501/56815c27550346895dc9fb97/html5/thumbnails/21.jpg)
Jan Madsen 21SoC-MOBINET courseware
Extending the task model
Varying execution times [emin:emax] Context switching Data dependencies
r1 d1s1 T1
1
![Page 22: Abstract RTOS Modelling for Multi-Processor SoC using SystemC](https://reader036.fdocuments.us/reader036/viewer/2022062501/56815c27550346895dc9fb97/html5/thumbnails/22.jpg)
Jan Madsen 22SoC-MOBINET courseware
Data dependencies
synchronizer
scheduler
![Page 23: Abstract RTOS Modelling for Multi-Processor SoC using SystemC](https://reader036.fdocuments.us/reader036/viewer/2022062501/56815c27550346895dc9fb97/html5/thumbnails/23.jpg)
Jan Madsen 23SoC-MOBINET courseware
Resource sharing
synchronizer
scheduler
allocator
![Page 24: Abstract RTOS Modelling for Multi-Processor SoC using SystemC](https://reader036.fdocuments.us/reader036/viewer/2022062501/56815c27550346895dc9fb97/html5/thumbnails/24.jpg)
Jan Madsen 24SoC-MOBINET courseware
Multi-processors
rtosa
rtosb
rtosc
rtosd
network
![Page 25: Abstract RTOS Modelling for Multi-Processor SoC using SystemC](https://reader036.fdocuments.us/reader036/viewer/2022062501/56815c27550346895dc9fb97/html5/thumbnails/25.jpg)
Jan Madsen 25SoC-MOBINET courseware
Multi-processors
rtosb
rtosc
rtosa
rtosd
network
![Page 26: Abstract RTOS Modelling for Multi-Processor SoC using SystemC](https://reader036.fdocuments.us/reader036/viewer/2022062501/56815c27550346895dc9fb97/html5/thumbnails/26.jpg)
Jan Madsen 26SoC-MOBINET courseware
Multi-processors
rtos rtos
rtosb
rtosc
![Page 27: Abstract RTOS Modelling for Multi-Processor SoC using SystemC](https://reader036.fdocuments.us/reader036/viewer/2022062501/56815c27550346895dc9fb97/html5/thumbnails/27.jpg)
Jan Madsen 27SoC-MOBINET courseware
Multi-processors
synchronizer
schedulerscheduler
![Page 28: Abstract RTOS Modelling for Multi-Processor SoC using SystemC](https://reader036.fdocuments.us/reader036/viewer/2022062501/56815c27550346895dc9fb97/html5/thumbnails/28.jpg)
Jan Madsen 28SoC-MOBINET courseware
Example
1
34
2
oi Ti ei
0 4 2
0 6 2+2
4 6 3
1
2
4
3
bos
4
aos
1
2
3
![Page 29: Abstract RTOS Modelling for Multi-Processor SoC using SystemC](https://reader036.fdocuments.us/reader036/viewer/2022062501/56815c27550346895dc9fb97/html5/thumbnails/29.jpg)
Jan Madsen 29SoC-MOBINET courseware
Dynamic scheduling
bos
4
aos
1
2
3
0 4 6 8 102 14 1612
1
2a
0 4 6 8 102 14 1612
3
4b
RM RM
![Page 30: Abstract RTOS Modelling for Multi-Processor SoC using SystemC](https://reader036.fdocuments.us/reader036/viewer/2022062501/56815c27550346895dc9fb97/html5/thumbnails/30.jpg)
Jan Madsen 30SoC-MOBINET courseware
Changing synchronization protocol
0 4 6 8 102
0 4 6 8 102
14 1612
14 1612
bos
4
aos
1
2
31
3
2
4
a
b
RM EDF
![Page 31: Abstract RTOS Modelling for Multi-Processor SoC using SystemC](https://reader036.fdocuments.us/reader036/viewer/2022062501/56815c27550346895dc9fb97/html5/thumbnails/31.jpg)
Jan Madsen 31SoC-MOBINET courseware
Multi-processing anomalies
Assume a set of tasks optimally scheduled on a multiprocessor system with: fixed number of processors fixed execution times (ei) precedence constraints
Then changing the priority list increasing the number of processor reducing execution times weakening the precedence constraints
May increase the scheduling length!
![Page 32: Abstract RTOS Modelling for Multi-Processor SoC using SystemC](https://reader036.fdocuments.us/reader036/viewer/2022062501/56815c27550346895dc9fb97/html5/thumbnails/32.jpg)
Jan Madsen 32SoC-MOBINET courseware
Example of anomalies
1
3
2
4 5
1
3
2
4 5Reduce e1 of task 1
a
b
a
b
Task 2 and 4 are sharing a resource, i.e. mutually exclusion
1 3
42
5
![Page 33: Abstract RTOS Modelling for Multi-Processor SoC using SystemC](https://reader036.fdocuments.us/reader036/viewer/2022062501/56815c27550346895dc9fb97/html5/thumbnails/33.jpg)
Jan Madsen 33SoC-MOBINET courseware
Consequences of anomalies
Tasks may complete before their WCETs So most on-line scheduling algorithms are
subject to experience anomalies Simple but inefficient solution:
Have tasks completing early idle
![Page 34: Abstract RTOS Modelling for Multi-Processor SoC using SystemC](https://reader036.fdocuments.us/reader036/viewer/2022062501/56815c27550346895dc9fb97/html5/thumbnails/34.jpg)
Jan Madsen 34SoC-MOBINET courseware
Network-on-Chip extension
bos
aos
cos
L1 L2
L3
S1 S2 S3
1
3
4
23
2 5
415mx
mz
my
mx: S1,L3,S3,L2,S2
![Page 35: Abstract RTOS Modelling for Multi-Processor SoC using SystemC](https://reader036.fdocuments.us/reader036/viewer/2022062501/56815c27550346895dc9fb97/html5/thumbnails/35.jpg)
Jan Madsen 35SoC-MOBINET courseware
Network-on-Chip model
![Page 36: Abstract RTOS Modelling for Multi-Processor SoC using SystemC](https://reader036.fdocuments.us/reader036/viewer/2022062501/56815c27550346895dc9fb97/html5/thumbnails/36.jpg)
Jan Madsen 36SoC-MOBINET courseware
Design space exploration
bus
4,5c
3b
1,2a
b
a
c
bus
1
4
3
2
5
xy z
b
a
c
bus
1
4
3
2
5
xyz
L1
L2
b
a
c
L3
2
4
3
1
5
x
y
z
zL1
L2 b
a
c
L3
1
4 5
3
2
x
x
z
y
QoS AwareAny traffic from a has higher priority
1,2a
3b
4,5c
L1 L2
L3
L1
L2
b
a
c
L3
2
4 5
3
1
x
x
z
yTiming Aware
L3 L4 y xz
b
a
c
bus
1
4
32
5
zyx
L1
L2
b
a
c 1
4
32
5
z
L1
L3
b
a
c 1
4
32
5
z
xx
xyAllocation AwareSwap task on PEs to: 2,3 | 4,5 | 1
3b
4,5cL1 L2
L3L4
L1
L2
b
a
c
L3
2
4
3
1
5
x
y
z
z
1,2a
![Page 37: Abstract RTOS Modelling for Multi-Processor SoC using SystemC](https://reader036.fdocuments.us/reader036/viewer/2022062501/56815c27550346895dc9fb97/html5/thumbnails/37.jpg)
Jan Madsen 37SoC-MOBINET courseware
Summary
Simple SystemC based framework to study the dynamic behavior of a task set running under the supervision of an abstract RTOS
Synchronizer to handle data dependencies Extension to multi-processor/RTOS systems Network-on-Chip extension (new) Not covered,
Allocator to handle resource sharing Power estimation/profile Multi-processing anomalies (in your slides)
![Page 38: Abstract RTOS Modelling for Multi-Processor SoC using SystemC](https://reader036.fdocuments.us/reader036/viewer/2022062501/56815c27550346895dc9fb97/html5/thumbnails/38.jpg)
Jan Madsen 38SoC-MOBINET courseware
References
Scheduling in Real-Time SystemsF. Cottet, J. Delacriox, C. Kaiser, Z. MammeriJohn Wiley & Sons, 2002
Real-Time SystemsJ. W. S. LiuPrintice Hall, 2000
Real-Time Systems and Programming LanguagesA. Burns, A. WellingsAddison-Wesley, 2001 (third edition)
System Design with SystemCT. Grotker, S. Liao, G. Martin, S. SwanKluwer, 2002