Files
exam/Билеты/09 - Принципы организации КЭШ-памяти. Виды КЭШ-памяти (схемы). Алгоритмы обмена между основной и КЭШ памятью. Иерархия КЭШ-памяти..md

47 lines
4.7 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.

---
tags:
- служебное/в_процессе
pun: Я отказался от хлеба, и теперь все мои проблемы... Крошечные!
author: mrqiz
revised:
---
# Кэш-память
> **Кэш-память** - промежуточный буфер, предназначенный для хранения информации, которая будет запрошена с наибольшей вероятностью.
## Основные принципы организации кэша
- **Принцип временной локальности** - имеется высокая вероятность многократного обращения к конкретным данным в памяти в рамках короткого промежутка времени.
- **Принцип пространственной локальности** - имеется высокая вероятность обращения к нескольким рядом стоящим ячейкам памяти.
## Виды кэш-памяти и их принцип работы
### Полностью ассоциативная кэш-память (ПАКП)
Чтобы процессор мог прочитать данные из памяти - ему необходимо указать адрес из нескольких битов, в котором лежат эти данные. Для идентификации данных в ПАКП требуется взять 20 старших битов адреса.
У каждой ячейки памяти есть свой "тег" - часть адреса, которая говорит о том, какие данные лежат в строке. При запросе данных из памяти происходит сравнение 20 старших битов данных с тегами всех строк в кеше.
Собственно, есть понятия кэш-попадания и кэш-промаха. Первое говорит о том, что тег из адреса имеет совпадение с каким-то тегом из кэша, соответственно есть возможность получить данные из кэша (что будет быстрее, чем идти за ними в основную память). Кэш-промах же говорит о том, что таких данных в кэше нет и придется обратиться в память.
Минус ПАКП - необходимость использования большого количества тразнзисторов для сравнения адреса с тегами всех строк кэша.
### Ассоциативная по множеству кэш-память (АпМКП)
В АпМКП адрес делится на тег, индекс и смещение. Индекс указывает, на какой кэш-строке находятся данные. А смещение определяет, какой именно байт или элемент данных нужно извлечь из строки кэша.
> [!comment]- От билетера: схема АпМКП
> ![[Screenshot 2025-01-08 at 1.24.35 PM.png]]
### Кэш-память с прямым отображением
Также как и в АпМКП - адрес в памяти делится на тег, индекс и смещение.
Индекс указывает на конкретную строку кэша, где могут находиться данные. Процессор использует индекс, чтобы обратиться к определенной строке кэша и извлечь данные из нее. Затем из этой строки берется тег, который соответствует старшим разрядам адреса, и происходит сравнение с тегом входного адреса.
Если тег из адреса совпадает с тегом в строке кэша - мои поздравления, у вас кэш-попадание.
Недостаток прямого отображения - каждый блок данных может храниться только в одной определенной строке кэша, что увеличивает вероятность кэш-промахов, особенно если несколько блоков данных имеют одинаковый индекс.
> [!comment]- От билетера: схема прямого отображения
> ![[Screenshot 2025-01-08 at 1.23.40 PM.png]]