Abstract
AbstractIn today’s multiprocessor systems-on-a-chip, the shared memory subsystem is a known source of temporal interference. The problem causes logically independent cores to affect each other’s performance, leading to pessimistic worst-case execution time analysis. Memory regulation via throttling is one of the most practical techniques to mitigate interference. Traditional regulation schemes rely on a combination of timer and performance counter interrupts to be delivered and processed on the same cores running real-time workload. Unfortunately, to prevent excessive overhead, regulation can only be enforced at a millisecond-scale granularity. In this work, we present a novel regulation mechanism from outside the cores that monitors performance counters for the application core’s activity in main memory at a microsecond scale. The approach is fully transparent to the applications on the cores, and can be implemented using widely available on-chip debug facilities. The presented mechanism also allows more complex composition of metrics to enact load-aware regulation. For instance, it allows redistributing unused bandwidth between cores while keeping the overall memory bandwidth of all cores below a given threshold. We implement our approach on a host of embedded platforms and conduct an in-depth evaluation on the Xilinx Zynq UltraScale+ ZCU102, NXP i.MX8M and NXP S32G2 platforms using the San Diego Vision Benchmark Suite.
Funder
National Science Foundation
Bundesministerium für Bildung und Forschung
Technische Universität München
Publisher
Springer Science and Business Media LLC
Reference74 articles.
1. Agrawal A, Fohler G, Freitag J, Nowotsch J, Uhrig S, Paulitsch M (2017) Contention-aware dynamic memory bandwidth isolation with predictability in COTS multicores: an avionics case study. In: Bertogna M (ed) 29th Euromicro Conference on Real-Time Systems (ECRTS 2017). Leibniz International Proceedings in Informatics (LIPIcs), vol 76, pp 2–1222. Schloss Dagstuhl–Leibniz-Zentrum fuer Informatik, Dagstuhl, Germany. https://doi.org/10.4230/LIPIcs.ECRTS.2017.2
2. Akesson B, Goossens K, Ringhofer M (2007) Predator: a predictable SDRAM memory controller. In: 2007 5th IEEE/ACM/IFIP international conference on hardware/software codesign and system synthesis (CODES+ISSS), pp 251–256. https://doi.org/10.1145/1289816.1289877
3. ARM (2011) Cortex-R5 technical reference manual r1p2. https://developer.arm.com/docs/ddi0460/d/. Accessed 01 Jan 2024
4. ARM (2014) Quality of service in ARM systems: an overview. https://community.arm.com/arm-community-blogs/b/soc-design-and-simulation-blog/posts/quality-of-service-in-arm-systems-an-overview. Accessed 01 Jan 2024
5. ARM (2016a) Arm architecture reference manual for a-profile architecture. https://developer.arm.com/docs/ddi0487/ak/. Accessed 01 Jan 2024