ASK EEWORLD'S AI ANYTHING: POWERED BY ENGINEERS FOR ENGINEERS

Worst-Case Execution Time (WCET) analysis for multicore systems

//

Share

Bookmark

Part 4: Mitigating timing coupling interference

by Jay Thomas, Senior Director of Field Engineering, TASKING, and Gerard Vink, Industry Specialist, TASKING

In parts 1 to 3 of this article series, we established that WCET in a multicore system cannot be determined by analyzing a task in isolation. Data coupling, control coupling, and — most significantly — timing coupling all introduce execution time variability that depends on the behavior of concurrently running tasks and the state of shared hardware resources. We also outlined a practical three-stage methodology for measuring worst-case execution time (WCET) in multicore-based systems with a focus on requirements, design, and verification. Here, in the 4th and final part of this article series, we’ll explore ways to mitigate timing coupling interference.

Mitigating timing coupling interference

Where the measured WCET exceeds the timing budget, or where the variability of execution times is unacceptably large, mitigation strategies can reduce the impact of timing coupling interference. The most effective strategies address the root cause: reducing contention for shared hardware resources. Four key strategies to mitigate timing coupling interference include minimizing data size, cache partitioning, temporal partitioning, and hardware-level mitigation.

Minimize data size

The most reliable and immediately effective mitigation strategy is to reduce the working data set of tasks so that they fits within the private L1 cache. When a task’s data fits entirely in L1, it does not access the shared L2 cache and is immune to cache-level timing coupling. This was demonstrated clearly in the DEVCOM study in part 3 when tasks with 24 KB data sets showed negligible interference regardless of what the competing task was doing.

Data size reduction may involve algorithmic changes (i.e., processing data in smaller chunks), data structure optimization (i.e., reducing padding and alignment waste), or architectural changes (i.e., breaking large tasks into smaller sub-tasks with smaller working sets).

Cache partitioning

Where data size reduction is not feasible, the cache can be partitioned so that each core or each task has exclusive use of a portion of the shared cache. This eliminates cache interference at the tradeoff cost of reducing total cache capacity per task. Several techniques exist:

  • Cache coloring: Allocating physical memory pages such that each core’s data maps to a disjoint portion of the cache.
  • MPU/MMU-based partitioning: Using the memory protection unit (MPU) or memory management unit (MMU) to enforce exclusive cache region assignments.
  • RTOS-level partitioning: Relying on the real-time operating system (RTOS) to effectively manage cache allocation as part of its scheduling and resource management.

An alternative option is to disable the L2 cache. This provides the benefit of eliminating cache-level timing coupling, making execution times more deterministic. However, this comes at the cost of a significant performance penalty. This trade-off is sometimes acceptable in applications where determinism is more important than raw throughput.

Temporal partitioning

In some cases, tasks that interfere with each other can be scheduled so that they do not execute concurrently using time-division multiplexing (TDM) of shared resources or careful core affinity assignment. While this approach can reduce or even eliminate timing coupling interference by providing strong timing isolation guarantees, it requires careful scheduler design that may reduce overall processor utilization and efficiency.

Hardware-level mitigations

Some modern processors provide hardware mechanisms specifically designed to address multicore timing interference. For example, certain RISC-V processors allow developers to allocate low-latency memory exclusively to each core. This provides hardware-enforced separation of memory access paths and eliminating shared-bus contention for applications that can use this feature. Other architectures have similar features, such as TCM on ARM, that allow a reduction in shared resources to limit or eliminate interference in some cases.

WCET analysis checklist for multicore systems

The following checklist summarizes the key steps for assuring sound multicore WCET analysis:

  • Identify timing requirements: such as hard real-time tasks. Not all timing deadlines are safety-critical. Focus WCET analysis effort on tasks whose deadline violations could cause safety hazards.
  • Analyze data and control coupling: Use static analysis tools to identify all data and control coupling between tasks. These coupling points define the interference pathways that must be addressed.
  • Select and maintain consistent processor configurations: Determine cache settings, core affinity assignments, and other relevant configuration options. Keep them consistent between WCET analysis and production deployment.
  • Identify shared multicore resources: List all hardware resources shared between cores, including caches, memory buses, memory controllers, DMA controllers, and peripherals.
  • Measure under full multicore load. Always measure execution times with all cores active and under realistic or maximum load. This is critical to assessing the maximum timing coupling interference.
  • Iterate across task overlap combinations: Vary the relative timing and data sizes of concurrently executing tasks to explore the interference landscape.
  • Verify coupling coverage: Confirm that all identified data and control coupling points have been exercised by the test suite to avoid missing a critical worst-case interference condition.
  • Apply mitigation where needed: When the WCET exceeds the timing budget or the range of variability is unacceptable, apply data size reduction, cache partitioning, or scheduling strategies.
  • Produce auditable evidence: Ensure that coupling coverage reports, timing histograms, and WCET bounds are captured in a form suitable for inclusion in the safety case.

Conclusion

WCET analysis for multicore systems is fundamentally more complex than for single-core systems. While data coupling and control coupling are familiar challenges in single-core analysis, hidden multicore timing coupling from hardware-level interference mechanisms is invisible to software design tools and can inflate execution times by tens of percent, as demonstrated by the DEVCOM study results (see part 2).

Addressing this challenge requires a three-stage methodology: early static analysis to identify high-risk code and coupling structure, mid-development empirical measurement on real target hardware under realistic load conditions, and late-stage coupling coverage verification to confirm that all interference pathways have been tested and iteratively measured.

By selecting a development platform that integrates compilation, hardware debug trace, test tools, and process management, developers can leverage an automated agentic AI workflow that supports and accelerates all three stages of the methodology. By making coupling analysis, on-target timing measurement, and certification evidence generation part of a single coherent toolchain, development teams can address the multicore WCET challenge efficiently and with the rigor demanded by safety standards such as DO-178C, ISO 26262, and IEC 61508.

Assessing hidden timing couplings in multicore architectures is challenging, but with the right methodology and toolchain support, it can become an essential step in building real-time embedded systems that are genuinely safe and reliable under all operating conditions.


About the authors

Jay Thomas is Senior Director of Field Engineering at TASKING, with extensive experience in safety-critical embedded software development tools and methodologies.

Gerard Vink is an Industry Specialist at TASKING, specializing in multicore timing analysis and functional safety compliance for automotive and aerospace applications.

Leave a Reply