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

4.0 KiB
Raw Permalink Blame History

Определение кэша и кэширования. Уровни иерархии памяти.

Кэш - быстродействующая буферная память между CPU и основной памятью, в которую помещаются фрагменты кода и данные, активно используемые программой в текущий момент времени. Кэширование памяти - временное хранение в более быстрой памяти данных из более медленной памяти. Эффективность кэширования основывается на локальности доступа к памяти. Дополнительно может решаться задача снижения требований к пропускной способности основной памяти. Размер кэша меньше, чем размер основной памяти. Кэширование используется на нескольких разных уровнях. С точки зрения процессора, кэш - это механизм устранения задержек. К памяти обращаться долго, но если использовать кэш, то время обращения будет намного меньше. Часто данные одного уровня иерархии являются подмножеством данных нижележащего уровня: данные дублируются в более медленном нижележащем уровне - инклюзивное кэширование. Иерархия памяти состоит из нескольких уровней. Меньший по объему, более скоростной уровень памяти расположен ближе к ЦП:

  • регистры
  • основной кэш (L_1)
  • дополнительные вторичные кэши (L_2,L_3,...)
  • основная память
  • устройства массового хранения (виртуальная память)

Или

  • регистры
  • кэш-память
  • оперативная память
  • долговременная память
  • сторонние устройства

Каждый уровень проецирует адреса более емкой памяти на менее емкий уровень, ближе к ЦП. Когда для CPU требуется инструкция или операнд, производится поиск по всем уровням иерархии памяти, начиная с ближайшего с CPU (кэш 1^{го} уровня):

  • Если элемент найден, он доставляется в ЦП без поиска по нижележащим уровням. Происходит попадание в кэш (частота попаданий =H_1).
  • Если элемент отсутствует в верхнем уровне, происходит кэш-промах, и поиск продолжается на нижестоящем уровне (частота промахов =1-H_1).
  • Для систем с несколькими уровнями кэша, поиск последовательно продолжается на уровнях 2,3, и тд
  • Если поиск в кэшах завершился промахами, запрашиваются данные из основной памяти.

Взаимодействие «ЦП» \Rightarrow «КЭШ» \Rightarrow «Память» реализовано аппаратно.

  • Если элемент не найден в основной памяти, происходит обращение к диску (вирт. память). Это называется page fault. Взаимодействие «Память» \Rightarrow «Диск» реализовано в ОС при аппаратной поддержке.