390 likes | 539 Views
Inbyggda realtidssystem: En flerkärning frälsning Embedded real-time systems: A multi-core salvation. Thomas Nolte, 2013-04-25. 1997 – 2000 – 2006 – 2009 – 2012. Undergrad. Student. Grad./PHD Student. Assistant Professor. Associate Professor. Professor ABB CRC. 2002. 2005, 2006.
E N D
Inbyggda realtidssystem: En flerkärning frälsningEmbedded real-time systems: A multi-core salvation Thomas Nolte, 2013-04-25
1997 – 2000 – 2006 – 2009 – 2012 Undergrad.Student Grad./PHDStudent Assistant Professor Associate Professor Professor ABB CRC 2002 2005, 2006
Embedded systems Control program sensors Task Task Task Task actuators Environment CPU Key properties of interest = performance & predictability
Too EARLY inflation Too LATE inflation Perfect TIMING
sensors When software is executing, it is executing as tasks Task Task Task Task actuators Task • voidfoo() • { • … • while(status) • { • in = read_sensor(); • action = take_action(in); • … • status = perform_action(action); • sleep(1000); • } • } Environment Control program
Instruction and data memory (2) Task DATA • voidfoo() • { • … • while(status) • { • in = read_sensor(); • action = take_action(in); • … • status = perform_action(action); • sleep(1000); • } • } INSTRUCTION
Instruction and data memory (3) cache memory
Instruction and data memory (4) cache memory Key properties of interest = performance & predictability
sensors A simple model Task Task Task Task actuators worst-caseexecution time Environment Control program task task task time period
sensors What to run and when Task Task Task Task actuators priolow task1 task1 task1 Environment Control program time The scheduler decides which task to execute prio high task2 task2 task2 task2 time task2 task1 task2 task1 task2 task1 task2 time
sensors Determining the response time Task Task Task Task response time of task2 actuators Environment Control program task2 task1 task2 task2 task2 time preempted preempted finished response time oftask1 resumed resumed
Predictability wrt embedded control systems • Program, or task • Instruction for how the computer should work, i.e., what the computer shall do • Execution time • How long time it takes for the program/task to execute • Response time • How long time it takes for the program/task to execute to completion, also when running together with other programs/tasks • Research conducted the past 30 years • Pretty good understanding how predictable embedded systems should be constructed
Isn’t more better? The multi-core arrived!
The multi-core revolution single core dual core quad core multi core parallel computer = many cores
Challenges with many cores Core pgm2 pgm1 pgm2 pgm2 pgm2 time Core 1 pgm1 time Core 2 pgm2 pgm2 pgm2 pgm2 • Sequential guarantee is not valid anymore • Programs could previously execute in parallel, but at any given time only one program is executing • Now at any given point in time as many programs as there are cores can be executing time
Performance on a parallel machine (1) 100 chefs do not bake 1 cake 100x faster than 1 chef The way we construct programs become different
Performance on a parallel machine (2) 100 Core pgm1 pgm1 pgm1 time 49 51 pgm2 51 The way we execute programs become different
Performance on a parallel machine (3) 50% Core 1 pgm1 pgm1 pgm1 time Core 2 pgm2 pgm2 pgm2 time 100 51 The way we execute programs become different
Performance on a parallel machine (4) Core 1 pgmj pgm1 pgmj pgm1 pgmj pgm1 time Core 2 pgm2 pgm2 pgm2 time The way we execute programs become different
Predictability under parallelism (1) Core 1 pgm1 time Core 2 pgm2 pgm2 pgm2 pgm2 time New techniques are required to resolve conflicts
Predictability under parallelism (2) Core 1 pgm1 time Core 2 pgm2 pgm2 pgm2 pgm2 time shared memory New techniques are required to resolve conflicts
Predictability under parallelism (3) Core 1 pgm1 time Core 2 pgm2 pgm2 pgm2 pgm2 time shared memory New techniques are required to resolve conflicts
More is better? …and the many-core is here!
New challenges 1 2 assume 7 tasks: 1 2 3 4 5 6 7 3 1 4 2 5 4 6 6 3 7 7 5 1 2 3 4 5 6 7 single core dual core many core empty core • task scheduling • task partitioning • task scheduling • local • global • task partitioning • task scheduling • idle?
task0 task2 task4 task6 task8 task1 task3 task5 task7 task9 • Less shared state and data among cores • Locality important when sharing data • More message passing (via powerful interconnects) • Sleep cores when idle to save power
Our efforts wrt. multi/many-core • New ways to program and analyze • Meng Liu (PhD Student) • Hamid Reza Faragardi (PhD Student) • New ways to partition and design • Moris Behnam (Senior Lecturer) • Daniel Hallmans (PhD Student) • New ways to execute • Mikael Åsberg (PhD Student) • Nima M. Khalilzad (PhD Student) • New ways to communicate and synchronize • Mohammad Ashjaei (PhD Student) • Sara Afshar (PhD Student)
The Complex Real-Time Embedded (CORE) research group: Nima M. Khalilzad Daniel Hallmans Mohammad Ashjaei Sara Afshar Meng Liu Mikael Åsberg PhD student Post-doc Kristian Sandström Hamid R. Faragardi Moris Behnam Thomas Nolte TBD TBD Key CORE main research areas (2013): • Multi-core and many-core real-time systems • Real-time systems scheduling and synchronization • Predictable execution of real-time systems • Compositional execution and analysis of real-time systems • Simulation-based analysis of embedded systems • Stochastic and statistical analysis of real-time systems • Real-time communications • Adaptive and reconfigurable real-time systems CORE alumni: Insik Shin Holger Kienle Johan Kraft Farhang Nemati Yue Lu Anders Wall
Embedded real-time systems: A multi-core salvation Thomas Nolte, 2013-04-25