Что такое кэш память

Что такое кэш процессора, и как он работает

Сергей Пахомов

Назначение кэш памяти

Принцип работы кэша процессора

Политики замещения данных в кэш­памяти

Стратегии кэширования

Организация кэша

Понятие ассоциативности кэша

Полностью ассоциативная кэш­память

Кэш­память с прямым отображением

Наборно-ассоциативный кэш

Когерентность кэша

Многоуровневая организация кэша

Иерархия кэш­памяти в микроархитектуре Intel Core

О наличии у любого процессора кэш-памяти знают, наверное, все, кто вообще представляет, что такое процессор. Причем современные х86-совместимые процессоры для ноутбуков и настольных ПК имеют не просто кэш, а целую систему иерархии кэш-памяти, включающей кэш-память первого, второго и даже третьего уровней, которые расположены на кристалле процессора. Но вот зачем процессору нужен кэш и чем один кэш отличается от другого — на эти вопросы сможет ответить уже далеко не каждый пользователь ПК. А вопрос, почему делается несколько кэшей разных уровней и не проще ли создать один большой, может поставить в тупик даже многих опытных пользователей, разбирающихся в «железе». Итак, если вы не знаете, как ответить на перечисленные вопросы, то эта статья будет для вас небезынтересна..

Назначение кэш памяти

Каждый браузер на вашем компьютере использует уникальное расположение для сохранения своей кэш памяти, а также имеет свой собственный способ очистки кэш памяти. Если кэш память регулярно не очищать, она станет потреблять слишком большое количество памяти на вашем компьютере!

Кэш-память расположена непосредственно на кристалле процессора, поэтому она физически недоступна. Она не доступна для управления данными программным путем, так как в ней нельзя организовать адресацию данных. У данного вида памяти быстродействие значительно выше, чем у оперативной памяти, поэтому промежуточный буфер сглаживает задержки при обращении процессора к оперативной памяти.

При работе в интернете временные данные сохраняются на персональном компьютере. В качестве временных данных сохраняются просмотренные веб-страницы. Это кэш браузера или временные файлы интернета. Большое количество сохраненных временных файлов влечет снижение быстродействия оперативной памяти, поэтому такой кэш нужно периодически очищать.

  • Временна́я ло­каль­ность: ес­ли про­изо­шло об­ра­ще­ние к ячей­ке опе­ра­тив­ной па­мя­ти, то с боль­шой ве­ро­ят­но­стью эта ячей­ка па­мя­ти вско­ре по­на­до­бит­ся сно­ва.
  • Про­стран­ствен­ная ло­каль­ность: ес­ли про­изо­шло об­ра­ще­ние к ячей­ке опе­ра­тив­ной па­мя­ти, то с боль­шой ве­ро­ят­но­стью бу­дет про­из­ве­де­но об­ра­ще­ние к со­сед­ним ячей­кам па­мя­ти.

Ис­поль­зуя эти пред­по­ло­же­ния, кэш-кон­т­рол­лер про­гно­зи­ру­ет об­ра­ще­ния про­цес­со­ра к па­мя­ти, за­ра­нее за­гру­жая в кэш-па­мять не­об­хо­ди­мые дан­ные. Рас­смот­рим не­ко­то­рые ар­хи­тек­ту­ры кэ­шей и ал­го­рит­мы, ко­то­рые в них ис­поль­зу­ют­ся.

Пол­но­стью ас­со­ци­а­тив­ный кэш

Пусть ад­рес бай­та опе­ра­тив­ной па­мя­ти со­сто­ит из 32-х бит (4-х байт). Со­ста­вим кэш из строк: пусть каж­дая стро­ка со­дер­жит (хра­нит) ад­рес и байт, ко­то­рый со­от­вет­ству­ет это­му ад­ре­су в опе­ра­тив­ной па­мя­ти. Хра­ни­мый ад­рес при­ня­то на­зы­вать те­гом (tag), что­бы не пу­тать его с ад­ре­сом (но­ме­ром) строки́ кэ­ша.

некоторые блоки памяти внешних накопителей используются несколькими процессами одновременно и имеет смысл прочитать блок один раз, затем хранить одну копию блока в оперативной памяти для всех процессов;

доступ к некоторым блокам оперативной памяти происходит гораздо чаще, чем к другим, поэтому использование кэширования для таких блоков в целом увеличивает производительность системы;

для некоторых блоков памяти внешних накопителей не требуется непосредственной записи после модификации, и использование кэша для таких блоков оптимизирует использование ввода-вывода.

Кэширование, выполняемое операционной системой

Кэш оперативной памяти состоит из следующих элементов:

набор страниц оперативной памяти, разделённых на буферы, равные по длине блоку данных соответствующего устройства внешней памяти;

набор заголовков буферов, описывающих состояние соответствующего буфера;

хеш-таблицы, содержащей соответствие номера блока заголовку;

Также и с кэш-памятью, если есть какие-то данные, к которым вероятнее всего будет повторное обращение, то эти данные из оперативной памяти, подгружаются в кэш-память. Очень часто, это происходит с совместной загрузкой тех данных, которые вероятнее всего, будут использоваться после текущих данных. То есть, здесь присутствует наличие предположений о том, что же будет использовано «после». Вот такие непростые принципы функционирования.

Уровни кэш-памяти процессора

Канал 4

Диспетчер

Рис 1. Структура
первичного кэша процессора 486


В случае промаха (Cache
Miss) запрос
на запись направляется только на внешнюю
шину, а запрос на чтение обслуживается
сложнее. Если этот зарос относится к
кэшируемой области памяти, выполняется
цикл заполнения целой строки кэша –
все 16 байт (32 для Pentium)
читаются из оперативной памяти и
помещаются в одну из строк кэша,
обслуживающего данный адрес. Если
затребованные данные не укладываются
в одной строке, заполняется и соседняя.
Заполнение строки процессор старается
выполнить самым быстрым способом –
пакетным циклом с 32-битными передачами
(64-битными для Pentium
и старше).


Внутренний запрос процессора на данные
удовлетворяется сразу, как только
затребованные данные считываются из
ОЗУ – заполнение строки до конца может
происходить параллельно с обработкой
полученных данных. Если в наборе, который
обслуживает данный адрес памяти, имеется
свободная строка (с нулевым битом
достоверности), заполнена будет она и
для нее установится бит достоверности.
Если свободных строк в наборе нет, будет
замещена строка, к которой дольше всех
не было обращений. Выбор строки для
замещения выполняется на основе анализа
бит LRU (Least
Recently Used)
по алгоритму “псевдо-LRU”.
Эти биты (по три на каждый из наборов)
модифицируются при каждом обращении к
строке данного набора (кэш-попадании
или замещении).

Далее запускается программа дефрагментации и выводится отчет о ее работе.

Рис. 1.3. Панель дефрагментации с отчетом

Далее следуют отчеты результатов анализа и дефрагментации диска Е:

Том (E:) до дефрагментации:

Размер тома = 30,58 ГБ

Размер кластера = 4 КБ

Занято = 21,23 ГБ

Свободно = 9,35 ГБ

Процент свободного места = 30 %

Фрагментация тома

Всего фрагментировано = 1 %

Фрагментация файлов = 3 %

Фрагментация свободного места = 0 %

Фрагментация файлов

Всего файлов = 6 720

Средний размер файла = 4 МБ

Всего фрагментировано файлов = 23

Всего лишних фрагментов = 105

В среднем фрагментов на файл = 1,01

Фрагментация файла подкачки

Размер файла подкачки = 0 байт

Всего фрагментов = 0

Фрагментация папок

Всего папок = 307

Фрагментировано папок = 39

Лишних фрагментов папок = 317

Фрагментация MFT (Master File Table)

Общий размер MFT = 26 МБ

Счетчик записей MFT = 7 049

Процент использования MFT = 26 %

Всего фрагментов MFT = 2

--------------------------------------------------------------------------------

Фрагментов Размер файла Наиболее фрагментированные файлы


Эксклюзивная кэш-память предполагает уникальность информации, находящейся в различных уровнях кэша (предпочитает фирма AMD).

  1. Нажмите значок Настройки.
  2. В блоке Очистить данные браузера нажмите кнопку Выберите, что нужно очистить.
  3. Включите опцию Кэшированные данные и файлы.
  4. Нажмите кнопку Очистить.

Safari

Выберите операционную систему вашего компьютера:

  1. В меню браузера выберите пункт Safari → Очистить историю и данные сайтов.
  2. Определите период, которым браузер должен ограничиться при удалении данных.
  3. Нажмите кнопку Очистить историю.
  1. Нажмите кнопку → Сбросить Safari.
  2. В открывшемся меню включите только опцию Удалить все данные веб-сайтов, затем нажмите кнопку Сбросить.

Наверх