Skip to content
STIMSMITH

Cache Coherence Conflicts

Concept WIKI v1 · 5/26/2026

Cache coherence conflicts are multi-core cache issues in which multiple accesses to the same cache line can lead to stale data, corruption, or stalls when coherence is not enforced correctly. In the provided RISC-V verification context, they are identified as bugs that constrained-random stimulus, such as STING-generated tests, has exposed.

Definition

Cache coherence conflicts are issues in multi-core caches where multiple accesses to the same cache line cause stale data, corruption, or stalls if coherence is not enforced correctly. [C1]

Technical context

In a multi-core cache environment, the conflict arises around shared cache-line access. The provided evidence identifies three possible outcomes when coherence is not correctly enforced:

  • Stale data: a core may observe an outdated value for a cache line. [C1]
  • Corruption: conflicting accesses may lead to incorrect data state. [C1]
  • Stalls: the system may fail to make expected progress while resolving, or failing to resolve, the conflicting accesses. [C1]

Verification relevance

Cache coherence conflicts appear in the evidence as a class of bug relevant to RISC-V processor verification. The evidence states that RISC-V processor verification is complex because the ISA is modular and has many optional extensions, and that comprehensive coverage typically requires more than one verification or comparison methodology and more than one stimulus technique. [C2]

The evidence specifically reports that STING-generated constrained-random stimulus has exposed cache coherence conflicts in practice, alongside other issues such as page-table-walk deadlocks, mishandling of fence.i, and floating-point NaN quirks. [C3]

Testing approach indicated by the evidence

The evidence positions constrained-random testing as important for finding unexpected behaviours. It states that random stimuli are effective at uncovering unanticipated behaviours, but that random testing alone can leave verification gaps. Directed tests can validate specific features systematically, but may miss subtle corner cases. The recommended approach in the evidence is therefore a combination of constrained-random stimulus for breadth and directed suites for precision. [C4]

For cache coherence conflicts specifically, the evidence supports treating them as a target for stress-oriented verification in multi-core cache scenarios, especially where shared-line interactions may expose stale data, corruption, or stalls. [C1][C3]

Related verification tooling

The evidence names STING as a bare-metal functional verification tool for RISC-V that generates constrained-random and directed tests. It also states that STING-generated programs are portable across simulation, emulation, FPGA prototypes, and silicon, and that they are architecturally self-checking. [C5]

Because cache coherence conflicts are listed among issues that STING has exposed in practice, STING is directly relevant to verification flows that need to uncover such multi-core cache behaviours. [C3]

CITATIONS

5 sources
5 citations
[1] Cache coherence conflicts are multi-core cache issues where multiple accesses to the same line can cause stale data, corruption, or stalls if coherence is not enforced correctly. source
[2] RISC-V processor verification is complex because of the ISA's modular design and optional extensions, and comprehensive coverage requires multiple verification/comparison methodologies and stimulus techniques. source
[3] STING has exposed cache coherence conflicts in practice, along with issues such as page-table-walk deadlocks, mishandling of fence.i, and floating-point NaN quirks. source
[4] Random testing can uncover unanticipated behaviours but may leave gaps; directed tests provide structure but may miss subtle corner cases, so the evidence recommends combining constrained-random stimulus with directed suites. source
[5] STING is a bare-metal RISC-V verification tool that generates constrained-random and directed tests, with portable, architecturally self-checking programs across simulation, emulation, FPGA prototypes, and silicon. source