Что такое попадание в кэш и промах кэша? Почему переключение контекста приведет к пропуску кэша?
из 11-й главы(производительность и масштабируемость) и в раздел Переключение Контекста на JCIP book:
когда новый поток включен, данные, которые ему нужны, вряд ли будут в локальном кэше процессора, поэтому контекстный переключатель вызывает шквал кэш пропускает, и таким образом потоки работают немного медленнее, когда они есть сначала по расписанию.
- может кто-нибудь объяснить в простой чтобы понять, как понятие cache miss и его возможных противоположных (кэш)?
- почему переключение контекста вызовет много пропусков кэша?
5 ответов:
может ли кто-нибудь объяснить легко понять концепцию Cache miss и ее вероятную противоположность (Cache hit)?
кэш пропустить, как правило, это когда что – то ищется в кэше и не найдено-кэш не содержит элемент, который ищут. Кэш нажмите это когда вы ищете что-то в кэше и это был хранение элемента и способен удовлетворить запрос.
почему переключение контекста вызовет много пропусков кэша?
С точки зрения памяти, каждый процессор имеет кэш-памяти - высокоскоростная копия небольших участков основной памяти. Когда новый поток контекстно переключается в процессор, локальная кэш-память пуста или не соответствует данным, необходимым для потока. Это означает, что все (или большинство) поисков памяти, выполненных этим новым потоком, приводят к пропускам кэша, потому что данные, которые ему нужны,не хранится в локальном кэше памяти. Затем аппаратное обеспечение должно сделать несколько запросов к главная память, чтобы заполнить локальный кэш памяти, который заставляет поток первоначально работать медленнее.
вы также должны заметить, что если переключатель контекста вызывает возврат ранее запущенного потока в активное состояние на процессоре с доступом к кэшированным данным, есть вероятность, что требуемый "рабочий набор" все еще находится в кэше. Вероятность того, что это правда, зависит от размера кэша (и структуры). Это также зависит от рабочей нагрузки: сколько спроса на кэш было во время простоя потоков или периода ожидания, и как долго длится период простоя или ожидания.
всякий раз, когда процессор хочет получить данные из основной памяти, сначала он будет смотреть на буфер кэша, чтобы увидеть, присутствует ли соответствующий адрес в буфере. Если он есть, он будет выполнять операцию с помощью кэша; нет необходимости извлекать из основной памяти. Это называется "попадание в кэш".
Если адрес отсутствует в кэше, он называется "Cache miss". Если произошел промах кэша, это означает, что процессор должен перейти в основную память для извлечения адрес и это занимает еще некоторое время.