Arch: chore

This commit is contained in:
2025-06-20 12:48:16 +03:00
parent 537c87bc48
commit 970aa9b9e2
27 changed files with 735 additions and 55252 deletions

View File

@ -1,13 +1,17 @@
#### Определение кэша и кэширования. Уровни иерархии памяти.
**Кэш** - быстродействующая буферная память между CPU и основной памятью, в которую помещаются фрагменты кода и данные, активно используемые программой в текущий момент времени.
**Кэширование памяти** - временное хранение в более быстрой памяти данных из более медленной памяти.
Эффективность кэширования основывается на локальности доступа к памяти. Дополнительно может решаться задача снижения требований к пропускной способности основной памяти.
Размер кэша меньше, чем размер основной памяти.
Кэширование используется на нескольких разных уровнях. С точки зрения процессора, кэш - это механизм устранения задержек. К памяти обращаться долго, но если использовать кэш, то время обращения будет намного меньше.
Часто данные одного уровня иерархии являются подмножеством данных нижележащего уровня: данные дублируются в более медленном нижележащем уровне - инклюзивное кэширование.
**Иерархия памяти** состоит из нескольких уровней. Меньший по объему, более скоростной уровень памяти расположен ближе к ЦП:
Кэширование используется на нескольких разных уровнях. С точки зрения процессора, кэш - это механизм устранения задержек. К памяти обращаться долго, но если использовать кэш, то время обращения будет намного меньше.
Часто данные одного уровня иерархии являются подмножеством данных нижележащего уровня: данные дублируются в более медленном нижележащем уровне - инклюзивное кэширование.
**Иерархия памяти** состоит из нескольких уровней. Меньший по объему, более скоростной уровень памяти расположен ближе к ЦП:
- регистры
- основной кэш $(L_1)$
- дополнительные вторичные кэши $(L_2,L_3,...)$
@ -15,7 +19,6 @@
- устройства массового хранения (виртуальная память)
Или
- регистры
- кэш-память
- оперативная память
@ -24,7 +27,6 @@
Каждый уровень проецирует адреса более емкой памяти на менее емкий уровень, ближе к ЦП.
Когда для CPU требуется инструкция или операнд, производится поиск по всем уровням иерархии памяти, начиная с ближайшего с CPU (кэш $1^{го}$ уровня):
- Если элемент найден, он доставляется в ЦП без поиска по нижележащим уровням. Происходит попадание в кэш (частота попаданий $=H_1$).
- Если элемент отсутствует в верхнем уровне, происходит кэш-промах, и поиск продолжается на нижестоящем уровне (частота промахов $=1-H_1$).
- Для систем с несколькими уровнями кэша, поиск последовательно продолжается на уровнях 2,3, и тд
@ -32,6 +34,7 @@
Взаимодействие «ЦП» $\Rightarrow$ «КЭШ» $\Rightarrow$ «Память» реализовано аппаратно.
- Если элемент не найден в основной памяти, происходит обращение к диску (вирт. память). Это называется page fault.
Взаимодействие «Память» $\Rightarrow$ «Диск» реализовано в ОС при аппаратной поддержке.
> [!Note]
> Если элемент не найден в основной памяти, происходит обращение к диску (вирт. память)
Взаимодействие "Память $\Rightarrow$ Диск" реализовано в ОС при аппаратной поддержке.