diff --git a/Билеты/09 - Принципы организации КЭШ-памяти. Виды КЭШ-памяти (схемы). Алгоритмы обмена между основной и КЭШ памятью. Иерархия КЭШ-памяти..md b/Билеты/09 - Принципы организации КЭШ-памяти. Виды КЭШ-памяти (схемы). Алгоритмы обмена между основной и КЭШ памятью. Иерархия КЭШ-памяти..md new file mode 100644 index 0000000..798ee2e --- /dev/null +++ b/Билеты/09 - Принципы организации КЭШ-памяти. Виды КЭШ-памяти (схемы). Алгоритмы обмена между основной и КЭШ памятью. Иерархия КЭШ-памяти..md @@ -0,0 +1,47 @@ +--- +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]] \ No newline at end of file diff --git a/Приложения/Screenshot 2025-01-08 at 1.23.40 PM.png b/Приложения/Screenshot 2025-01-08 at 1.23.40 PM.png new file mode 100644 index 0000000..2e9ca08 Binary files /dev/null and b/Приложения/Screenshot 2025-01-08 at 1.23.40 PM.png differ diff --git a/Приложения/Screenshot 2025-01-08 at 1.24.35 PM.png b/Приложения/Screenshot 2025-01-08 at 1.24.35 PM.png new file mode 100644 index 0000000..abb5c53 Binary files /dev/null and b/Приложения/Screenshot 2025-01-08 at 1.24.35 PM.png differ