BCM2835 - когерентность L2-кеша, как она работает? - PullRequest
0 голосов
/ 27 июня 2019

С BCM2835 VideoCore у нас есть кэш L2 для GPU, который также может использоваться ядром ARM.Режим работы для кэша выбирается через верхние два бита из адреса памяти (в контексте BCM2835, это адрес шины), используя следующую схему:

0x0 L1 and L2 cache allocating and coherent
0x4 L1 non-allocating, but coherent. L2 allocating and coherent
0x8 L1 non-allocating, but coherent. L2 non-allocating, but coherent
0xc SDRAM alias. Cache is bypassed. Not L1 or L2 allocating or coherent

enter image description here

У меня проблемы с пониманием псевдонима номер 4 - когерентная опция L2-кэша.В этом случае кэш-память второго уровня когерентна относительно чего?СДРАМ?Если это так, значит ли это, что каждая запись в кэше L2 будет признана недействительной, когда эта область памяти в SDRAM станет предметом изменения?

Если это так, давайте рассмотрим псевдоним № 8, гдемы используем кэш L2 нераспределенным, но согласованным образом.Что это значит?Как мы можем иметь согласованность между SDRAM и кэшем L2, если мы не выделяем запись кэша L2 в первую очередь?

...