Как поддерживается согласованность кеша в системе ARMv8 big.LITTLE?

Насколько мне известно, большие и маленькие ядра находятся в отдельных кластерах в системе big.LITTLE. А для согласованности кеш-памяти между кластерами требуется, чтобы регионы были помечены как внешние совместно используемые, и это очень дорого. Я проверил код ядра Linux и, кажется, требует согласованности только во внутреннем разделяемом домене. Итак, мой вопрос: как Linux может гарантировать согласованность кеша в моделях "миграция ЦП" или "глобальное планирование задач", когда оба кластера активны одновременно?

1 ответ

Решение

Я получил ответ от оружейного сообщества. Вот ответ дорогого Марка Ратленда.

https://lkml.org/lkml/2020/3/23/598

Несколько кластеров могут находиться в одном внутреннем разделяемом домене, и Linux полагается на это в случае систем, которые он поддерживает. Можно построить систему, в которой кластеры находятся в отдельных доменах с внутренним общим доступом, но Linux не поддерживает использование всех ядер в такой системе.

Даже с CCI, CCN, CMN и т. Д. Linux требует, чтобы все ядра (о которых говорится) находились в одном внутреннем разделяемом домене. Это то, что обычно строится.

Другие вопросы по тегам