Страницы

Поиск по вопросам

среда, 26 февраля 2020 г.

Уровни кэша процессора

#память #кэширование


Возьмем пример:

L1 - 128Kb
L2 - 512Kb
L3 - 2Mb


Зачем нужно несколько уровней кэш памяти?

Почему скорость L1 > L2 > L3 (разный SRAM дизайн?)?

Зачем нужно L1i для инструкций и L1d для данных?

Как рассчитывается оптимальный размер и количество кэш уровней?
    


Ответы

Ответ 1



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

Ответ 2



Основная проблема в обеспечении максимальной загрузки процессора и минимизации простоев из-за загрузки данных из памяти. Несколько уровней кэша различаются скоростью доступа в первую очередь. Уровневое кэширование позволяет оптимизировать загрузку данных из основной памяти и держать для процессора нужные страницы "под рукой". Тут хорошая аналогия склад - магазин - холодильник - тарелка (кэширование продуктов). Подробно кэши описаны у Танненбаума (Архитектура ЭВМ).

Комментариев нет:

Отправить комментарий