{
  "tag": "K1SRPF",
  "kind": "concept",
  "slug": "memory-hierarchy",
  "name": "Memory hierarchy",
  "aliases": [
    "memory hierarchy model"
  ],
  "area": "foundations/models-of-computation",
  "level": "intro",
  "summary": "Layered storage from registers and caches to disk, with capacity and speed trade-offs that shape algorithm design.",
  "prereqs": [
    "random-access-machine"
  ],
  "sources": [
    {
      "book": "isbn:9780128119051",
      "title": "John L. Hennessy and David A. Patterson, Computer Architecture: A Quantitative Approach, sixth edition",
      "locator": "Chapter 2 (memory hierarchy design) and Appendix B (review of memory hierarchy, average memory access time, the three kinds of miss)"
    },
    {
      "book": "isbn:9781601981066",
      "title": "Jeffrey Scott Vitter, Algorithms and Data Structures for External Memory, Foundations and Trends in Theoretical Computer Science 2(4) (2008)",
      "locator": "Chapter 1 (Figure 1.1, the memory hierarchy of a typical system) and Section 2.3 (hierarchical memory models)"
    },
    {
      "paper": "doi:10.1147/sj.52.0078",
      "title": "Laszlo A. Belady, A study of replacement algorithms for a virtual-storage computer, IBM Systems Journal 5(2) (1966)",
      "locator": "pp. 78 to 101"
    },
    {
      "paper": "doi:10.1145/363011.363155",
      "title": "Laszlo A. Belady, Robert A. Nelson and Gerald S. Shedler, An anomaly in space-time characteristics of certain programs running in a paging machine, Communications of the ACM 12(6) (1969)",
      "locator": "pp. 349 to 353"
    },
    {
      "paper": "doi:10.1147/sj.92.0078",
      "title": "Richard L. Mattson, Jan Gecsei, Donald R. Slutz and Irving L. Traiger, Evaluation techniques for storage hierarchies, IBM Systems Journal 9(2) (1970)",
      "locator": "pp. 78 to 117 (stack algorithms and the inclusion property)"
    },
    {
      "paper": "Daniel D. Sleator and Robert E. Tarjan, Amortized efficiency of list update and paging rules, Communications of the ACM 28(2) (1985)",
      "locator": "pp. 202 to 208 (the bound for LRU and FIFO against the optimal rule)"
    },
    {
      "paper": "doi:10.1145/28395.28428",
      "title": "Alok Aggarwal, Bowen Alpern, Ashok K. Chandra and Marc Snir, A model for hierarchical memory, Proceedings of the 19th ACM Symposium on Theory of Computing (1987)",
      "locator": "pp. 305 to 314"
    },
    {
      "paper": "doi:10.1145/216585.216588",
      "title": "Wm. A. Wulf and Sally A. McKee, Hitting the memory wall, implications of the obvious, ACM SIGARCH Computer Architecture News 23(1) (1995)",
      "locator": "pp. 20 to 24"
    },
    {
      "paper": "Jia-Wei Hong and H. T. Kung, I/O complexity: the red-blue pebble game, Proceedings of the 13th ACM Symposium on Theory of Computing (1981)",
      "locator": "pp. 326 to 333 (the lower bound for matrix multiplication)"
    },
    {
      "paper": "doi:10.1145/48529.48535",
      "title": "Alok Aggarwal and Jeffrey Scott Vitter, The input/output complexity of sorting and related problems, Communications of the ACM 31(9) (1988)",
      "locator": "pp. 1116 to 1127"
    }
  ],
  "see_also": [
    "locality-of-reference",
    "external-memory-model",
    "cache-oblivious-model",
    "cache-replacement-policy",
    "unit-cost-model",
    "belady-algorithm",
    "belady-anomaly",
    "red-blue-pebble-game"
  ],
  "url": "https://algorithm.tamnd.com/memory-hierarchy/",
  "path": "nodes/foundations/models-of-computation/memory-hierarchy",
  "status": {
    "slug": "memory-hierarchy",
    "h": {
      "level": 0,
      "max": 3,
      "label": "H0",
      "name": "no proof",
      "next": [
        "add a proof in proofs/ (06.5)"
      ]
    },
    "l": {
      "level": 0,
      "max": 4,
      "label": "L0",
      "name": "no Lean part",
      "next": [
        "name a Lean module in the lean field (07)"
      ]
    },
    "i": {},
    "v": {
      "level": 0,
      "max": 3,
      "label": "V0",
      "name": "none",
      "next": [
        "add viz/scene.ts or a figure (10)"
      ]
    },
    "w": {
      "level": 4,
      "max": 5,
      "label": "W4",
      "name": "complete",
      "next": [
        "a review of the text: no review record reviews/K1SRPF/text.yaml"
      ]
    }
  },
  "scene": false
}
