Maroun, E. J., Schoeberl, M., & Puschner, P. (2024). Predictable and optimized single-path code for predicated processors. Journal of Systems Architecture, 154, Article 103214. https://doi.org/10.1016/j.sysarc.2024.103214
Single-path code is a code generation technique for real-time systems that reduces execution time variability. However, doing so can incur significant execution-time overhead and does not guarantee constant execution times. In this paper, we address the performance challenges of single-path code and solve the variability issue. We present the repetition dominance relation to identify and optimize code blocks that are always executed a fixed number of times. We show that single-path code's instructions are uniquely easy to schedule, and we explore an extension to the Patmos architecture that allows additional instruction types in the second issue slot. Lastly, we present two techniques for ensuring that functions always perform the same number of accesses to memory, resulting in programs with constant execution time. We compare the performance of single-path code to that of statically analyzed traditional code. Our results show that single-path code's performance is mostly competitive while outright superior in several cases. However, pathological cases of poor performance are still observed.
en
Research Areas:
Computer Engineering and Software-Intensive Systems: 100%