TY - GEN
T1 - Segment streaming for the three-phase execution model
T2 - 40th IEEE Real-Time Systems Symposium, RTSS 2019
AU - Soliman, Muhammad R.
AU - Gracioli, Giovani
AU - Tabish, Rohan
AU - Pellizzoni, Rodolfo
AU - Caccamo, Marco
N1 - Funding Information:
This work has been supported in part by ONR N00014-17-1-2783, by NSF grant number CNS 18-15891, by the NSERC and by CMC Microsystems. Marco Caccamo was supported by an Alexander von Humboldt Professorship endowed by the German Federal Ministry of Education and Research. Any opinions, findings, and conclusions or recommendations expressed in this publication are those of the authors and do not necessarily reflect the views of the sponsors.
Publisher Copyright:
© 2019 IEEE.
PY - 2019/12
Y1 - 2019/12
N2 - Scheduling tasks using the three-phase execution model (load-execute-unload) can effectively reduce the contention on shared resources in real-time systems. Due to system and program constraints, a task is generally segmented and executed over multiple intervals. Several works showed that co-scheduling memory (unload-load) and computation phases can improve the system schedulability by hiding the memory transfer time. However, this is limited to segments of different tasks and hence executing segments of the same task back-to-back is not allowed. In this paper, we propose a new streaming model to allow overlapping the memory and execution phases of segments of the same task. This is accomplished by a segmentation framework implemented within an LLVM-based compiler-level tool along with a Real-Time Operating System (RTOS) API to handle load/unload requests. Memory phases are processed by a DMA engine that loads/unloads the task content into ScratchPad Memory (SPM). We provide a schedulability analysis of the proposed model under fixed priority partitioned scheme and an RTOS implementation of the API on a latest-generation Multiprocessor System-on-Chip (MPSoC).
AB - Scheduling tasks using the three-phase execution model (load-execute-unload) can effectively reduce the contention on shared resources in real-time systems. Due to system and program constraints, a task is generally segmented and executed over multiple intervals. Several works showed that co-scheduling memory (unload-load) and computation phases can improve the system schedulability by hiding the memory transfer time. However, this is limited to segments of different tasks and hence executing segments of the same task back-to-back is not allowed. In this paper, we propose a new streaming model to allow overlapping the memory and execution phases of segments of the same task. This is accomplished by a segmentation framework implemented within an LLVM-based compiler-level tool along with a Real-Time Operating System (RTOS) API to handle load/unload requests. Memory phases are processed by a DMA engine that loads/unloads the task content into ScratchPad Memory (SPM). We provide a schedulability analysis of the proposed model under fixed priority partitioned scheme and an RTOS implementation of the API on a latest-generation Multiprocessor System-on-Chip (MPSoC).
KW - Compiler segmentation
KW - MPSoC
KW - Real time operating system
KW - Real-time systems
UR - http://www.scopus.com/inward/record.url?scp=85083203462&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=85083203462&partnerID=8YFLogxK
U2 - 10.1109/RTSS46320.2019.00032
DO - 10.1109/RTSS46320.2019.00032
M3 - Conference contribution
AN - SCOPUS:85083203462
T3 - Proceedings - Real-Time Systems Symposium
SP - 260
EP - 273
BT - Proceedings - 2019 IEEE 40th Real-Time Systems Symposium, RTSS 2019
PB - Institute of Electrical and Electronics Engineers Inc.
Y2 - 3 December 2019 through 6 December 2019
ER -