Files
Kirill 3a96c27c48 Arch: new
Все теоритические билеты по Архитектуре ЭВМ в основном были написаны,
кроме: 8.4; 13.4; 14.4; 15.4. Задачи будут позже.
2025-01-14 19:40:01 +03:00

38 lines
4.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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