Подтвердить что ты не робот

Что такое кэш и промах кэша? Почему сбой при переходе в контекст?

Из 11-й главы (Производительность и масштабируемость) и раздела "Контекстное переключение" JCIP book:

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

  • Может ли кто-нибудь объяснить в понятном виде концепцию промаха в кеше и его вероятную противоположность (кэш-кеш)?
  • Почему переключение контекста вызовет много промахов в кеше?
4b9b3361

Ответ 1

Может ли кто-нибудь объяснить в понятном виде концепцию промаха в кеше и его вероятную противоположность (кэш попал)?

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

Почему переключение контекста вызовет много промахов в кеше?

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

Ответ 2

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

Ответ 3

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

Если адрес отсутствует в кеше, он называется "Ошибка кэширования". Если произошел промах кеша, это означает, что процессор перешел в основную память, чтобы извлечь адрес, и требуется еще некоторое время.

Ответ 4

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

Ответ 5

Если желаемые данные находятся в L1, тогда он попадает в кеш. И если желаемые данные находятся на другом уровне кэш-памяти, тогда он пропускает кеш.