Когда кэш процессора сбрасывается обратно в основную память?

Feb 23, 2025
Оборудование

Если вы только начинаете понимать, как работают многоядерные процессоры, кеширование, согласованность кеш-памяти и память, поначалу это может показаться немного запутанным. Имея это в виду, в сегодняшнем посте SuperUser Q&A есть ответы на любопытный вопрос читателя.

Сегодняшняя сессия вопросов и ответов проходит благодаря SuperUser - подразделению Stack Exchange, группы веб-сайтов вопросов и ответов, управляемой сообществом.

Вопрос

Читатель SuperUser CarmeloS хочет знать, когда кэш процессора сбрасывается обратно в основную память:

Если у меня есть ЦП с двумя ядрами, и каждое ядро ​​имеет свой собственный кеш L1, возможно ли, что Core1 и Core2 кэшируют одну и ту же часть памяти одновременно? Если возможно, каким будет значение основной памяти, если и Core1, и Core2 отредактировали свои значения в кеше?

Когда кеш процессора сбрасывается обратно в основную память?

Ответ

У авторов SuperUser Дэвида Шварца, sleske и Kimberly W. есть ответ для нас. Сначала Дэвид Шварц:

Если у меня есть ЦП с двумя ядрами, и каждое ядро ​​имеет свой собственный кеш L1, возможно ли, что Core1 и Core2 кэшируют одну и ту же часть памяти одновременно?

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

Если возможно, каким будет значение основной памяти, если и Core1, и Core2 отредактировали свои значения в кеше?

Старое значение будет в основной памяти, что не имеет значения, поскольку ни одно ядро ​​не прочитает его. Перед извлечением измененного значения из кеша оно должно быть записано в память. Обычно какой-то вариант Протокол MESI используется. В традиционной реализации MESI, если значение изменяется в одном кэше, оно вообще не может присутствовать в любом другом кэше того же уровня.

Далее следует ответ от sleske:

Да, наличие двух кешей в одной и той же области памяти может произойти, и на самом деле это проблема, которая часто возникает на практике. Существуют разные решения, например:

  • Два кеша могут взаимодействовать, чтобы убедиться, что они не расходятся во мнениях.
  • У вас может быть своего рода супервизор, который контролирует все кеши и обновляет их соответственно
  • Каждый процессор контролирует кэшированные области памяти, и при обнаружении записи выбрасывает свой (теперь недействительный) кеш

Проблема называется когерентностью кеша, и Статья в Википедии по теме есть хороший обзор проблемы и возможных решений.

И наш окончательный ответ от Кимберли В:

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

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


Есть что добавить к объяснению? Отключить звук в комментариях. Хотите узнать больше ответов от других технически подкованных пользователей Stack Exchange? Ознакомьтесь с полной веткой обсуждения здесь .

Кредит изображения: Лемсипматт (Flickr)

When Is A CPU’s Cache Flushed Back To Main Memory?

What Is The Difference Between Memory And SSD Cache In A PC Or NAS?

5 Cache و Virtual Memory

How To Clear Cache On Mac OS - Clear Memory Cache On Mac In 1-Click

Buffer Cache

Caching In: Understand, Measure, And Use Your CPU Cache More Effectively

How To Clear RAM Cache Memory | Fix RAM Cached Memory Too High Windows 10

NetApp WAFL, NVRAM And The System Memory Cache (new Version)


Оборудование - Самые популярные статьи

Не торгуйте своим телефоном, продайте его за больше денег

Оборудование Mar 31, 2025

НЕКЕШЕРОВАННЫЙ КОНТЕНТ Большинство производителей и операторов связи предлагают своего рода пр�..


Как получить максимум от вашего Android TV

Оборудование May 14, 2025

НЕКЕШЕРОВАННЫЙ КОНТЕНТ Если вы пользователь Android, Android TV - отличный способ вывести вашу мобильную �..


Семь полезных приемов Chromebook, о которых вы должны знать

Оборудование Jul 11, 2025

Chromebook не похож на традиционные ноутбуки . Хотя они намного проще, в них есть различные полезн..


Что такое ESN и почему меня беспокоит чистота?

Оборудование Nov 3, 2024

НЕКЕШЕРОВАННЫЙ КОНТЕНТ Если вы ищете сотовый телефон, особенно подержанный, вы услышите много ра�..


Как воспроизводить локальные видео и музыкальные файлы на PlayStation 4

Оборудование Jun 20, 2025

Словно Год а также Chromecast , Sony PlayStation 4 может воспроизводить видео и музыкальные файл..


Google Cardboard позволяет просматривать виртуальную реальность, но не все так хорошо

Оборудование Nov 2, 2024

НЕКЕШЕРОВАННЫЙ КОНТЕНТ Google Cardboard - это круто. Это способ испытать виртуальную реальность с помощь�..


Как вернуть дефектный продукт

Оборудование Nov 21, 2024

Компьютерное оборудование и электронные устройства несовершенны. В какой-то момент они могут пере..


Почему работа микроволновой печи убивает мое подключение к Wi-Fi?

Оборудование Jan 9, 2025

НЕКЕШЕРОВАННЫЙ КОНТЕНТ Существует множество бытовых устройств и электроники, которые могут созд..


Категории