Каковы правила записи L1 и L2 кеша в Cortex-A53? - PullRequest
0 голосов
/ 05 мая 2019

Процессор Cortex-A53 имеет от одного до четырех ядер, каждое с системой памяти L1 и одним общим кешем L2.

1 Ответ

3 голосов
/ 05 мая 2019
  • L1i: только для чтения, поэтому нет политики записи.
  • L1d: обратная запись, выделение при записи (обычно)
  • (необязательно) L2: обратная запись (Iпредположим), кэш-память жертвы для L1d или нормальное выделение при чтении для выборки команд.

Как и ожидалось, ARM использует кэши обратной записи с write-allocate.Это стандартный дизайн почти для всего, потому что он работает очень хорошо для большинства случаев использования процессора.

Я не нашел явного подтверждения этого для L2, только для L1d, но было бы очень странно, если быкэш последнего уровня был сквозным.Существуют проекты с внутренним кэшем сквозной записи (например, семейство AMD Bulldozer с небольшим буфером объединения записи).Но иметь сквозную запись L2 было бы бессмысленно.


Быстрый Google для cortex-a53 cache policy нашел это как лучший хит

Техническое руководство по процессору ARM Cortex-A53 MPCore
Домой> Уровень 1 Система памяти> Поведение кэша> Когерентность кэша данных

L1d использует MOESI для когерентности кеша, обеспечивая прямую передачу "грязных" строк между кешами L1d.

Режим выделения чтения

Кэш данных L1 поддерживает только политику обратной записи. Обычно он выделяет строку кэша либо при пропадании чтения, либо при пропадании записи, хотя выможно изменить это, изменив подсказки выделения внутреннего кэша в таблицах страниц.

Однако в некоторых ситуациях выделение при записи нежелательно, например выполнение функции memset () стандартной библиотеки C для очистки большогоблок памяти с известным значением.

, поэтому, по-видимому, он поддерживает записи без выделения ресурсов для целых строк кэша, в основном для обхода кэша memset,может быть, похоже на магазины NT на x86.(За исключением того, что ARM всегда слабо упорядочен, в то время как x86 нуждается в специальных инструкциях, чтобы сделать хранилища слабо упорядоченными, а также в обход кэша.)


Кэш L2:

Система памяти уровня 2> Дополнительный встроенный кэш L2

дополнительный встроенный настраиваемый L2 настраиваемый размер кэшей: 128 КБ, 256 КБ, 512 КБ, 1 МБ и 2 МБ.

Данные распределяются в кэш L2 только при извлечении из системы памяти L1, а не при первом извлечении из системы .Единственное исключение из этого правила - для памяти, отмеченной внутренним переходным сигналом, или для невременных нагрузок , см. Временные нагрузки, которые когда-либо только выделяются кэш-памяти L2.Кэш L1 может выполнять предварительную выборку данных из системы без извлечения данных из кэша L2.

Инструкции выделяются кэшу L2 при получении из системы и могут быть недействительными во время операций обслуживания.

Кэш-память L2 имеет 16-позиционный ассоциативный набор .Теги кэша L2 ищутся параллельно с дублирующими тегами SCU.Если и тег L2, и тег SCU дублируют попадание, чтение обращается к кэшу L2 в предпочтении отслеживания одного из других ядер.

...