Abstract
Off-the-shelf multi-core processors provide a cost-efficient alternative to expensive special purpose processors at the cost of complex time predictability due to shared resources like buses, caches and the memory itself. This paper presents an operating system concept that takes control over the shared cache to minimize contention, by creating a component-based operating system, that is structured in small data chunks to allow better control over data and code movement in and out of the cache. An evaluation of the operating system shows that the system is able to reduce the difference between the ACET and observed WCET of a synthetic memory load test by 93% for ARM and 98% for Intel systems. Some noteworthy improvements were also achieved for the TACLe benchmarks.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Notes
- 1.
Evaluated on an Intel Xeon E5-1620 v4 processor with 20 cache ways.
- 2.
Verified on NXP i.MX6 and Samsung Exynos 4412.
- 3.
The source code of the prototype implementation is available under: https://github.com/ESS-Group/CyPhOS.
- 4.
References
Accetta, M., et al.: Mach: a new kernel foundation for UNIX development (1986)
Advanced Micro Devices: AMD64 architecture programmer’s manual volume 3: General-purpose and system instructions, December 2017. http://support.amd.com/TechDocs/24594.pdf
Borghorst, H., Spinczyk, O.: Increasing the predictability of modern COTS hardware through cache-aware OS-design. In: Proceedings of the 11th Workshop on Operating Systems Platforms for Embedded Real-Time Applications (OSPERT 2015), July 2015
Falk, H., et al.: TACLeBench: a benchmark collection to support worst-case execution time research. In: Schoeberl, M. (ed.) 16th International Workshop on Worst-Case Execution Time Analysis (WCET 2016). OpenAccess Series in Informatics (OASIcs), vol. 55, pp. 2:1–2:10. Schloss Dagstuhl-Leibniz-Zentrum für Informatik, Dagstuhl (2016)
Intel Corporation: Improving real-time performance by utilizing cache allocation technology, April 2015. https://www.intel.com/content/dam/www/public/us/en/documents/white-papers/cache-allocation-technology-white-paper.pdf
Levis, P., et al.: TinyOS: an operating system for sensor networks. In: Weber, W., Rabaey, J.M., Aarts, E. (eds.) Ambient Intelligence, pp. 115–148. Springer, Heidelberg (2005). https://doi.org/10.1007/3-540-27139-2_7
Liedtke, J., Härtig, H., Hohmuth, M.: OS-controlled cache predictability for real-time systems. In: Proceedings Third IEEE Real-Time Technology and Applications Symposium, pp. 213–224, June 1997. https://doi.org/10.1109/RTTAS.1997.601360
Mancuso, R., Dudko, R., Betti, E., Cesati, M., Caccamo, M., Pellizzoni, R.: Real-time cache management framework for multi-core architectures. In: 2013 IEEE 19th Real-Time and Embedded Technology and Applications Symposium (RTAS), pp. 45–54, April 2013. https://doi.org/10.1109/RTAS.2013.6531078
Mendlson, A., Pinter, S.S., Shtokhamer, R.: Compile time instruction cache optimizations. In: Fritzson, P.A. (ed.) CC 1994. LNCS, vol. 786, pp. 404–418. Springer, Heidelberg (1994). https://doi.org/10.1007/3-540-57877-3_27
Mueller, F.: Compiler support for software-based cache partitioning. In: Proceedings of the ACM SIGPLAN 1995 Workshop on Languages, Compilers & Tools for Real-time Systems, LCTES 1995, pp. 125–133. ACM, New York (1995). https://doi.org/10.1145/216636.216677
Tullsen, D.M., Eggers, S.J.: Effective cache prefetching on bus-based multiprocessors. ACM Trans. Comput. Syst. 13(1), 57–88 (1995). https://doi.org/10.1145/200912.201006
Ward, B.C., Herman, J.L., Kenna, C.J., Anderson, J.H.: Making shared caches more predictable on multicore platforms. In: 2013 25th Euromicro Conference on Real-Time Systems, pp. 157–167, July 2013. https://doi.org/10.1109/ECRTS.2013.26
Zhang, X., Dwarkadas, S., Shen, K.: Towards practical page coloring-based multicore cache management. In: Proceedings of the 4th ACM European Conference on Computer Systems, EuroSys 2009, pp. 89–102. ACM, New York (2009). https://doi.org/10.1145/1519065.1519076
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2019 Springer Nature Switzerland AG
About this paper
Cite this paper
Borghorst, H., Spinczyk, O. (2019). CyPhOS – A Component-Based Cache-Aware Multi-core Operating System. In: Schoeberl, M., Hochberger, C., Uhrig, S., Brehm, J., Pionteck, T. (eds) Architecture of Computing Systems – ARCS 2019. ARCS 2019. Lecture Notes in Computer Science(), vol 11479. Springer, Cham. https://doi.org/10.1007/978-3-030-18656-2_13
Download citation
DOI: https://doi.org/10.1007/978-3-030-18656-2_13
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-030-18655-5
Online ISBN: 978-3-030-18656-2
eBook Packages: Computer ScienceComputer Science (R0)