{
  "model": "Read-only lookup cache; 32-bit byte addresses; no timing or write model",
  "configurations": {
    "directLRU": {
      "sizeBytes": 128,
      "lineBytes": 16,
      "ways": 1,
      "policy": "LRU"
    },
    "twoWayLRU": {
      "sizeBytes": 128,
      "lineBytes": 16,
      "ways": 2,
      "policy": "LRU"
    },
    "twoWayFIFO": {
      "sizeBytes": 128,
      "lineBytes": 16,
      "ways": 2,
      "policy": "FIFO"
    }
  },
  "workloads": {
    "sequential": {
      "label": "Sequential 32-bit words",
      "description": "128 word accesses, 4-byte stride (spatial locality)",
      "accesses": 128,
      "results": {
        "directLRU": {
          "hits": 96,
          "misses": 32,
          "evictions": 24,
          "hitRatePercent": 75
        },
        "twoWayLRU": {
          "hits": 96,
          "misses": 32,
          "evictions": 24,
          "hitRatePercent": 75
        },
        "twoWayFIFO": {
          "hits": 96,
          "misses": 32,
          "evictions": 24,
          "hitRatePercent": 75
        }
      }
    },
    "conflict": {
      "label": "Two competing addresses",
      "description": "96 accesses alternating byte addresses 0 and 128 (mapping conflict)",
      "accesses": 96,
      "results": {
        "directLRU": {
          "hits": 0,
          "misses": 96,
          "evictions": 95,
          "hitRatePercent": 0
        },
        "twoWayLRU": {
          "hits": 94,
          "misses": 2,
          "evictions": 0,
          "hitRatePercent": 97.92
        },
        "twoWayFIFO": {
          "hits": 94,
          "misses": 2,
          "evictions": 0,
          "hitRatePercent": 97.92
        }
      }
    },
    "workingSet": {
      "label": "Repeated four-line working set",
      "description": "96 accesses to four 16-byte blocks (temporal locality)",
      "accesses": 96,
      "results": {
        "directLRU": {
          "hits": 92,
          "misses": 4,
          "evictions": 0,
          "hitRatePercent": 95.83
        },
        "twoWayLRU": {
          "hits": 92,
          "misses": 4,
          "evictions": 0,
          "hitRatePercent": 95.83
        },
        "twoWayFIFO": {
          "hits": 92,
          "misses": 4,
          "evictions": 0,
          "hitRatePercent": 95.83
        }
      }
    },
    "replacement": {
      "label": "Revisit before replacement",
      "description": "Five accesses that distinguish LRU from FIFO in one two-way set",
      "accesses": 5,
      "results": {
        "directLRU": {
          "hits": 1,
          "misses": 4,
          "evictions": 2,
          "hitRatePercent": 20
        },
        "twoWayLRU": {
          "hits": 2,
          "misses": 3,
          "evictions": 1,
          "hitRatePercent": 40
        },
        "twoWayFIFO": {
          "hits": 1,
          "misses": 4,
          "evictions": 2,
          "hitRatePercent": 20
        }
      }
    }
  }
}
