#память #кэширование
Возьмем пример: L1 - 128Kb L2 - 512Kb L3 - 2Mb Зачем нужно несколько уровней кэш памяти? Почему скорость L1 > L2 > L3 (разный SRAM дизайн?)? Зачем нужно L1i для инструкций и L1d для данных? Как рассчитывается оптимальный размер и количество кэш уровней?
Ответы
Ответ 1
Зачем нужно несколько уровней кэш памяти? Если бы могли, то весь кэш сделали бы L1. Да и вообще, все ОЗУ затащили бы в процессор в виде кэша. Но тогда процессор будет много потреблять и расплавится (при заданной технологии производства и допусках). Почему скорость L1 > L2 > L3 (разный SRAM дизайн?)? Опять же чтобы процессор не расплавился. Зачем нужно L1i для инструкций и L1d для данных? Теперь же две очереди, отдельно для инструкций, отдельно для данных. Вот и кэша два. Как рассчитывается оптимальный размер и количество кэш уровней? Там ничего особо не рассчитывается. Сколько места на кристалле остается после размещения ядер, все отдается под кэши разных уровней. UPD1: А вообще-то есть форумы разработчиков процессоров, даже русскоязычные (да-да не смейтесь). На крайний случай есть форумы разработчиков плат, раньше это было на каких-нибудь телесистемах а сейчас не знаю где, но можно найти. Спросите там, там Вам подробнее объяснят.Ответ 2
Основная проблема в обеспечении максимальной загрузки процессора и минимизации простоев из-за загрузки данных из памяти. Несколько уровней кэша различаются скоростью доступа в первую очередь. Уровневое кэширование позволяет оптимизировать загрузку данных из основной памяти и держать для процессора нужные страницы "под рукой". Тут хорошая аналогия склад - магазин - холодильник - тарелка (кэширование продуктов). Подробно кэши описаны у Танненбаума (Архитектура ЭВМ).
Комментариев нет:
Отправить комментарий