Все ли кэши процессора L1, L2 и L3 сделаны из SRAM? Если это правда, почему L1 быстрее, чем L2, а L2 быстрее, чем L3? Я не понял эту часть, когда я прочитал о них.
Все ли кэши процессора L1, L2 и L3 сделаны из SRAM? Если это правда, почему L1 быстрее, чем L2, а L2 быстрее, чем L3? Я не понял эту часть, когда я прочитал о них.
Ответы:
В общем , все они реализованы с помощью 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 должен быть размещен дальше.