diff --git a/lectures/memory-hierarchies/slides.qmd b/lectures/memory-hierarchies/slides.qmd index 59e908a87b202ace3055e55df3207c737532ee7c..86a69902f4092834b3a03c846cd11db9bf668adb 100644 --- a/lectures/memory-hierarchies/slides.qmd +++ b/lectures/memory-hierarchies/slides.qmd @@ -173,18 +173,44 @@ Time in seconds using a 2 GB numpy array ($128 \times 128 \times 128 \times 128$ - Here just focus on latency -## Memory access time model (1/3) +## First model version + + +:::{.r-stack} + +{.fragment width=100% fragment-index=1} + +{.fragment width=100% fragment-index=2} + +{.fragment width=100% fragment-index=3} + +::: + + +## Memory access time for first version | Cache | Access Time | Hit Ratio | | ------ | ------------ | ---------- | -| $L_1$ | $T_1$ | $H_1$ | -| $L_2$ | $T_2$ | | +| Memory | $T_M$ | $H_M$ | +| Disk | $T_D$ | | - Parallel and serial requests possible +## Second model version + + +:::{.r-stack} -## Memory access time model (2/3) +{.fragment width=100% fragment-index=1} + +{.fragment width=100% fragment-index=2} + +::: + + + +## Memory access time for second version (1/2) | Cache | Access Time | Hit Ratio | | ------ | ------------ | ---------- | @@ -194,7 +220,7 @@ Time in seconds using a 2 GB numpy array ($128 \times 128 \times 128 \times 128$ -## Memory access time model (3/3) +## Memory access time for second version (2/2) - Average memory access time $T_{avg,p}$ for parallel access (processor connected to all caches) @@ -216,17 +242,25 @@ T_{avg,s} &= H_1 T_1 + ((1-H_1)\cdot H_2)\cdot(T_1+T_2)\\ -# Behind the scenes +# Processor techniques + -## Processor techniques +## Third model version - - Caching - - Prefetching - - Branch prediction +:::{.r-stack} + +{.fragment width=100% fragment-index=1} + +{.fragment width=100% fragment-index=2} + +{.fragment width=100% fragment-index=3} + +::: -## Unavailable data + +## Unavailable data (1/2) If data is not available in the current memory level @@ -234,9 +268,48 @@ If data is not available in the current memory level - cache missing (cache -> main memory) - page fault (main memory -> disk) -Miss description +## Unavailable data (2/2) + +:::{.r-stack} + +{.fragment width=100% fragment-index=1} + +{.fragment width=100% fragment-index=2} + +{.fragment width=100% fragment-index=3} + +{.fragment width=100% fragment-index=4} + +{.fragment width=100% fragment-index=5} + +::: + + + +## Available data (1/2) + +Techniques to provide data ahead of time + + - caching + - prefetching + - branch prediction + + + +## Available data (2/2) + +:::{.r-stack} + +{.fragment width=100% fragment-index=1} + +{.fragment width=100% fragment-index=2} + +{.fragment width=100% fragment-index=3} + +::: + # Visualization of memory hierarchies diff --git a/lectures/memory-hierarchies/static/concepts_model01.png b/lectures/memory-hierarchies/static/concepts_model01.png new file mode 100644 index 0000000000000000000000000000000000000000..1f1adfa89a1353dda0a0f3acc64677dbd6750318 Binary files /dev/null and b/lectures/memory-hierarchies/static/concepts_model01.png differ diff --git a/lectures/memory-hierarchies/static/concepts_model02.png b/lectures/memory-hierarchies/static/concepts_model02.png new file mode 100644 index 0000000000000000000000000000000000000000..577fa48cba1c87392bbf4e634c9cf7f54eb7fc87 Binary files /dev/null and b/lectures/memory-hierarchies/static/concepts_model02.png differ diff --git a/lectures/memory-hierarchies/static/concepts_model03.png b/lectures/memory-hierarchies/static/concepts_model03.png new file mode 100644 index 0000000000000000000000000000000000000000..9422569d12d5f3aafbeaea45a8af2715bcdfd8d1 Binary files /dev/null and b/lectures/memory-hierarchies/static/concepts_model03.png differ diff --git a/lectures/memory-hierarchies/static/concepts_model04.png b/lectures/memory-hierarchies/static/concepts_model04.png new file mode 100644 index 0000000000000000000000000000000000000000..e4fedd5f70c16e89c0c814599747340c394f7426 Binary files /dev/null and b/lectures/memory-hierarchies/static/concepts_model04.png differ diff --git a/lectures/memory-hierarchies/static/concepts_model05.png b/lectures/memory-hierarchies/static/concepts_model05.png new file mode 100644 index 0000000000000000000000000000000000000000..b7f907051530386d430f3ba1c254de9a28f00444 Binary files /dev/null and b/lectures/memory-hierarchies/static/concepts_model05.png differ diff --git a/lectures/memory-hierarchies/static/concepts_model06.png b/lectures/memory-hierarchies/static/concepts_model06.png new file mode 100644 index 0000000000000000000000000000000000000000..bce684a372a34f28733bb345485b08e28ba60c6f Binary files /dev/null and b/lectures/memory-hierarchies/static/concepts_model06.png differ diff --git a/lectures/memory-hierarchies/static/concepts_model07.png b/lectures/memory-hierarchies/static/concepts_model07.png new file mode 100644 index 0000000000000000000000000000000000000000..45568d35c632118a7aed775713d3544ec5e1251c Binary files /dev/null and b/lectures/memory-hierarchies/static/concepts_model07.png differ diff --git a/lectures/memory-hierarchies/static/concepts_model08.png b/lectures/memory-hierarchies/static/concepts_model08.png new file mode 100644 index 0000000000000000000000000000000000000000..2be4e16604f4543cd00f2c32a8295c758a709f10 Binary files /dev/null and b/lectures/memory-hierarchies/static/concepts_model08.png differ diff --git a/lectures/memory-hierarchies/static/concepts_model09.png b/lectures/memory-hierarchies/static/concepts_model09.png new file mode 100644 index 0000000000000000000000000000000000000000..fd3271d7ac11256a574b9ffa8e3e15d3b49e5e4e Binary files /dev/null and b/lectures/memory-hierarchies/static/concepts_model09.png differ diff --git a/lectures/memory-hierarchies/static/concepts_model10.png b/lectures/memory-hierarchies/static/concepts_model10.png new file mode 100644 index 0000000000000000000000000000000000000000..c5df10c96c145b2618d9d36f79f648fc719479f0 Binary files /dev/null and b/lectures/memory-hierarchies/static/concepts_model10.png differ diff --git a/lectures/memory-hierarchies/static/concepts_model11.png b/lectures/memory-hierarchies/static/concepts_model11.png new file mode 100644 index 0000000000000000000000000000000000000000..5f2e0de92a6ea1e716484fc48f55b47468f8ea37 Binary files /dev/null and b/lectures/memory-hierarchies/static/concepts_model11.png differ diff --git a/lectures/memory-hierarchies/static/concepts_model12.png b/lectures/memory-hierarchies/static/concepts_model12.png new file mode 100644 index 0000000000000000000000000000000000000000..e580a69b8e3cfec6bfcf76adebbd20bbc494789a Binary files /dev/null and b/lectures/memory-hierarchies/static/concepts_model12.png differ