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


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

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

  1. может кто-нибудь объяснить в простой чтобы понять, как понятие cache miss и его возможных противоположных (кэш)?
  2. почему переключение контекста вызовет много пропусков кэша?
5 53

5 ответов:

может ли кто-нибудь объяснить легко понять концепцию Cache miss и ее вероятную противоположность (Cache hit)?

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

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

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

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

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

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

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

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