Кэш процессоров L1, L2 и L3 все сделаны из SRAM?

10951
Acaz Souza

Все ли кэши процессора L1, L2 и L3 сделаны из SRAM? Если это правда, почему L1 быстрее, чем L2, а L2 быстрее, чем L3? Я не понял эту часть, когда я прочитал о них.

9
Смежный вопрос: [Зачем нам нужно несколько уровней кеш-памяти?] (Http://superuser.com/questions/695632/why-do-we-need-multiple-levels-of-cache-memory). Также несколько связано: [Что такое на самом деле многоуровневый кеш в процессорах?] (Http://superuser.com/questions/269080/what-is-actually-multilevel-cache-in-processors). Из вашего комментария, я вижу, вы уже нашли последний вопрос. Paul A. Clayton 10 лет назад 0

1 ответ на вопрос

12
Paul A. Clayton

В общем, все они реализованы с помощью SRAM.

(Микросхемы IBM POWER и zArchitecture используют память DRAM для L3. Это называется встроенной DRAM, поскольку она реализована в том же типе технологии процесса, что и логика, что позволяет интегрировать быструю логику в тот же чип, что и DRAM. Для POWER4 отключение чип L3 используется eDRAM; POWER7 имеет L3 на том же чипе, что и ядра обработки.)

Хотя они используют SRAM, они не все используют один и тот же дизайн SRAM. SRAM для L2 и L3 оптимизированы по размеру (для увеличения емкости с учетом ограниченного размера производимого чипа или для снижения стоимости заданной емкости), в то время как SRAM для L1 с большей вероятностью будет оптимизирован для скорости.

Что еще более важно, время доступа связано с физическим размером хранилища. При двухмерной компоновке можно ожидать, что задержка физического доступа будет приблизительно пропорциональна квадратному корню из емкости. (Неоднородная архитектура кэша использует это для обеспечения подмножества кэша с более низкой задержкой. Срезы L3 последних процессоров Intel имеют аналогичный эффект; попадание в локальную секцию имеет значительно меньшую задержку.) Этот эффект может сделать кэш DRAM быстрее чем кэш-память SRAM на больших мощностях, потому что физически DRAM меньше.

Другой фактор заключается в том, что большинство кэшей L2 и L3 используют последовательный доступ к тегам и данным, тогда как большинство кэшей L1 осуществляют параллельный доступ к тегам и данным. Это оптимизация энергопотребления (частота пропусков L2 выше, чем пропуски L1, поэтому доступ к данным с большей вероятностью будет потрачен впустую; доступ к данным L2 обычно требует больше энергии, связанной с пропускной способностью; а кэши L2 обычно имеют более высокую ассоциативность что означает, что больше записей данных должно быть прочитано спекулятивно). Очевидно, что необходимость ждать совпадения тега перед доступом к данным увеличит время, необходимое для извлечения данных. (Доступ к L2 также обычно начинается только после подтверждения пропуска L1, поэтому задержка обнаружения пропуска L1 добавляется к общей задержке доступа L2.)

Кроме того, кэш L2 физически более удален от механизма исполнения. Размещение кэша данных L1 рядом с механизмом исполнения (чтобы общий случай попадания L1 был быстрым) обычно означает, что L2 должен быть размещен дальше.

Отличный ответ. Но я не согласен с вашим утверждением, что количество промахов L2 выше, чем промахов L1. По мере того как мы перемещаемся ниже в иерархии памяти, мы имеем большие структуры, обеспечивающие меньшие промахи, но с увеличенной задержкой. Harshavardhan Ramanna 6 лет назад 0
@HarshavardhanRamanna Да, увеличение емкости и ассоциативность помогают пропускать пропуски, но доступ к фильтру нижних уровней (традиционная передача целого блока из L2 отфильтровывает кратковременную пространственную локальность внутри блока; попадание учитывается только для одного доступа в L2, в то время как сам блок, вероятно, обеспечит попадания в L1 для дополнительного доступа). * Общее * количество промахов снижается (например, L2 с приличным 80% -ым ударом и L1 с 95% -ым ударом получают общий 99% -ый коэффициент попадания). Paul A. Clayton 6 лет назад 0

Похожие вопросы