PRET-OS for Biomedical Devices A Part IV Project
The Next Generation of Real-Time Embedded Systems from the biomedical domain: Bionic eyesMind-controlled limbs Robotic surgeryHealthcare robots
The Next Generation of Real-Time Embedded Systems from the biomedical domain: More sensitive More accurate and precise More responsive More emotional Bionic eyesMind-controlled limbs Robotic surgeryHealthcare robots In the future
To Fulfil this Cyborg Dream biomedical devices will be designed with: More complex algorithms. Greater processing power. That demandTo meet Real-time requirements.
To Fulfil this Cyborg Dream biomedical devices will be designed with: More complex algorithms. Greater processing power. That demandTo meet Real-time requirements. ForeC Language Multicore MicroBlaze Static timing analysis Managing the use of multicores in time- and safety- critical applications is an open research problem! Our tools
Project Aims Design a time-predictable operating system for executing parallel programs. PRET-OS: Precision Timed Operating System. – Light-weight OS. – Allows realtime and non-realtime programs to execute on the same multicore system. – Preserve the timing properties of realtime programs. – Provide good worst-case and average-case execution performance for all programs.
End
Extra Details
The ForeC Language ForeC is a language for writing deterministic parallel programs for safety-critical embedded systems with multicore processors. – The worst-case performance must be guaranteed. “My program should always finish in 1 sec.” – We have focused on compiling ForeC to execute directly on embedded multicores (i.e., without an OS). – We have a naïve approach for executing ForeC on an OS.
Reasons for using an OS Write platform-independent programs that use a common API (code reuse). Automatically manage the system resources. Allow different programs to run in harmony on the same system.
Current Implementation for Embedded Multicores ForeC Program (multithreaded) Static thread distribution Target Multicore Threads on the same core are statically scheduled.
Current Implementation for OS Execution (naïve) ForeC Program (multithreaded) Static thread distribution Target Multicore Each program is wrapped by a Pthread and scheduled by the OS. Operating System ForeC threads are still statically scheduled! Threads on the same core are statically scheduled.
Related Project Aims Investigate the use of ForeC to write general purpose parallel programs. – Only average-case performance is important. “My program should run as fast as possible.” – Desktop systems use an OS on top of a complex, speculative multicore processor to achieve good average-case performance.
Related Project Aims 1.Improve on the naïve approach by mapping ForeC threads to Pthreads. – The OS will dynamically schedule the threads. – Outcome: Simple dynamic execution of ForeC. 2.Change the OS thread scheduling policy. – Only allow preemptive scheduling at local tick boundaries. – Outcome: Custom scheduler for running synchronous programs.
Related Project Aims 3.Reduce the overheads. – Map ForeC threads to kernel threads to minimise the runtime layers between the ForeC threads and the cores. – Outcome: More efficient implementation. 4.Group small ForeC threads into the same kernel thread. – Minimise the overhead in creating/destroying kernel threads. – Outcome: Clustering algorithm.
Test Programs Mandelbrot Life
End