Я пытаюсь понять, почему некоторые кэш-памяти процессора быстрее, чем другие. При сравнении кэш-памяти с чем-то вроде основной памяти, существуют различия в типе памяти (SRAM и DRAM) и проблемах локальности (на кристалле и необходимости обхода шины памяти), которые могут влиять на скорость доступа. Но L1 и L2 обычно находятся на одном чипе или, по крайней мере, на одном кристалле, и я думаю, что это один и тот же тип памяти. Так почему же L1 быстрее?
14
Ответы:
Нет, это не тот же тип ОЗУ, хотя они и на одном чипе, который использует тот же производственный процесс.
Из всех кэшей кэш L1 должен иметь максимально возможное время доступа (минимальная задержка) по сравнению с тем, сколько он должен иметь, чтобы обеспечить адекватную частоту «попаданий». Поэтому он построен с использованием больших транзисторов и более широких металлических дорожек, компенсируя пространство и мощность для скорости. Кэширование более высокого уровня должно иметь более высокую емкость, но может быть медленнее, поэтому они используют меньшие транзисторы, которые упакованы более плотно.
источник
L1 обычно используется в качестве хранилища для декодированных инструкций, тогда как L2 - это общий кэш для одного ядра. Чем меньше кэш, тем меньше его размер и тем быстрее он обычно. Как грубое правило для процессоров ПК:
Кэш-память L1: доступ к циклу 2-3 такта
Кэш-память второго уровня: ~ 10 циклов доступа
Кэш-память L3: ~ 20-30 циклов доступа
Цитата получена здесь из ответа "Pinhedd's".
источник
Есть несколько причин, по которым скорость обратно пропорциональна размеру. Первое, что приходит на ум, - это физическое доминирование проводников, где распространение сигнала ограничено некоторым фактором скорости света. Операция может занять столько времени, сколько потребуется электрический сигнал, чтобы пройти самое длинное расстояние внутри ячейки памяти и обратно. Другая связанная с этим причина - разделение часовых доменов. Каждый процессор работает от своего собственного тактового генератора, который позволяет процессору работать на тактовых частотах с частотой несколько ГГц. Кэш первого уровня работает и синхронизируется с тактовой частотой процессора, которая является самой быстрой в системе. Кеш уровня 2, с другой стороны, должен обслуживать многие процессоры и работает в другом (более медленном) тактовом домене. Не только тактовая частота L2 медленнее (большая ячейка), но и пересечение границы области часов добавляет еще одну задержку. Тогда, конечно, есть проблемы с разветвлением (уже упоминалось).
источник
Помимо присущих характеристик производительности, также играет роль локальность (L1 ближе к процессору). Согласно тому, что каждый программист должен знать о памяти :
источник