Как можно победить тайники?
У меня есть этот вопрос по моему заданию на этой неделе, и я не понимаю, как могут быть разбиты кэши, или как я могу показать его с помощью программы сборки. Может ли кто-нибудь указать мне в правильном направлении?
Покажите, с примерами программы сборки, как можно разбить два разных кэша (ассоциативное и прямое сопоставление). Объясните, почему это происходит и как оно может быть исправлено. Используются ли одни и те же программы для того, чтобы победить тайники?
Примечание: Это домашнее задание. Не просто ответьте на вопрос для меня, это не поможет мне понять материал.
Ответы
Ответ 1
Кэш для повышения производительности. Таким образом, победа в кеше означает поиск шаблона доступа к памяти, который снижает производительность (в присутствии кеша), а не увеличивает его.
Имейте в виду, что кеш ограничен по размеру (например, меньше основной памяти), поэтому типичная победа в кеше включает его заполнение, чтобы он удалял данные, к которым вы только что обращались, непосредственно перед тем, как вы он.
Ответ 2
Если вы ищете подсказку, подумайте о разделении слова данных через 2 строки кэша.
(Если вы также ищете ответ, аналогичная проблема возникла разработчиками x264 - более подробная информация доступна здесь и здесь. Ссылки очень информативны, и я действительно предлагаю вам прочитать их, даже после того, как вы нашли свой ответ.)
Ответ 3
Еще одна вещь, о которой нужно помнить, - это то, с чем связаны тайники, которые фактически или физически индексируются/помечены. В некоторых вариантах сглаживание кэша принудительно заменяет строки, даже если кеш как таковой не заполнен полностью. В других вариантах конфликты с раскраской кеша/страницы могут вызывать выселения. Наконец, в многопроцессорных системах при определенных рабочих нагрузках миграции кешлин (между кэшами разных ЦП) могут ограничить полезность кэшей CPU.