{
  "slug": "cart-replacement",
  "term": "CART (CAR with Temporal Filtering)",
  "aliases": [
    "CART",
    "CAR with Temporal Filtering",
    "CLOCK with Adaptive Replacement and Temporal Filtering"
  ],
  "definition": "CART is a cache replacement policy that extends CAR with an adaptive filter for distinguishing short-term reuse from longer-term utility.",
  "note": "Repeated accesses in a short burst need not predict future reuse; CART addresses this distinction rather than merely counting hits. It is a separate algorithm, not an alias for CAR. [cart-slides]\n\nT1 and T2 hold payloads; B1 and B2 hold only identities. An additional S/L filter bit records utility class. A resident hit sets the reference bit, not the filter bit. The temporal window is represented by the adaptive T1 population, not a fixed duration in seconds. [cart-paper]\n\nA B1 history hit is not the only route to L. Figure 3 line 30 can reclassify a referenced S page while rotating it within T1 when |T1| >= min(p + 1, |B1|). This occurs during replacement scanning. The earlier prose's history-only explanation is therefore incomplete; this is a source-reading observation, not an author-confirmed erratum. [cart-paper]\n\nThe executable boundary check isolates that predicate. With |T1|=2, p=2 and |B1|=4 it is false; changing |B1| to 2 makes it true. For p=5/2, |T1|=3 and |B1|=4 it remains false even though |T1| > p. These are constructed inputs, not a cache workload, and no reachability or hit-ratio claim is made. [cart-example]",
  "status": "research",
  "advantages": [],
  "limitations": [
    {
      "text": "The study uses cold-start, read-only trace simulation after upstream cache filtering; it does not establish universal superiority or measured concurrent implementation speed.",
      "citationIds": [
        "cart-paper"
      ]
    },
    {
      "text": "The downloadable check covers one predicate, not full CART state transitions, history management, target rounding or a production implementation.",
      "citationIds": [
        "cart-code"
      ]
    }
  ],
  "supersedes": [],
  "supersededBy": [],
  "firstSeen": null,
  "lastSeen": null,
  "updated": "2026-11-07",
  "related": [
    "car-replacement",
    "clock-replacement",
    "adaptive-replacement-cache",
    "ghost-cache-entry",
    "cache-pollution"
  ],
  "provenance": [
    "Primary-source synthesis and constructed exact-arithmetic checks; no reproduction of the authors' traces or independent peer review."
  ],
  "citations": [
    {
      "id": "cart-paper",
      "title": "Bansal and Modha. CAR: Clock with Adaptive Replacement. FAST 2004, section IV, Figure 3 line 30 and section V.A.",
      "url": "https://www.usenix.org/events/fast04/tech/full_papers/bansal/bansal.pdf",
      "accessed": "2026-11-07"
    },
    {
      "id": "cart-slides",
      "title": "Bansal and Modha. FAST 2004 author presentation, slide 32: CART temporal filtering.",
      "url": "https://theory.stanford.edu/~sbansal/pubs/fast04ppt.pdf",
      "accessed": "2026-11-07"
    },
    {
      "id": "cart-example",
      "title": "Hesela: constructed CART filter-boundary inputs and exact results",
      "url": "https://hesela.dev/research/cart-filter/examples.json",
      "accessed": "2026-11-07"
    },
    {
      "id": "cart-code",
      "title": "Hesela: exact predicate check and its scope, not a complete CART implementation",
      "url": "https://hesela.dev/research/cart-filter/model.py",
      "accessed": "2026-11-07"
    }
  ]
}
