Могут ли процессорные ядра перегружать кеши друг друга? - PullRequest
2 голосов
/ 24 мая 2010

Если более одного ядра на процессоре обращаются к одному и тому же адресу памяти, они будут перебивать кеши друг друга или какой-нибудь протокол отслеживания позволит каждому сохранять данные в L1-кэше?

Меня интересует общий ответ, а также ответы для конкретных процессоров. Сколько слоев кэша признано недействительным? Будет ли доступ к другому адресу в той же строке кэша аннулировать всю строку? Что вы можете сделать, чтобы облегчить эти проблемы?

1 Ответ

2 голосов
/ 24 мая 2010

http://en.wikipedia.org/wiki/File:Dual_Core_Generic.svg означает, что каждое ядро ​​имеет свой собственный (частный / независимый) кэш L1.

Но это не означает, что строка кэша не может быть дублирована, взатраты на вдвое больше места.

Я думаю, вы спрашиваете: «Если одно ядро ​​записывает в адрес памяти, который кэшировано другим ядром, делает ли это недействительным / сбрасывать / уничтожатькеш другого ядра? "

В этой статье говорится, что существуют различные / несколько типов протокола отслеживания (что подразумевает, что ответ на ваш вопрос зависит от процессора).Вы также можете Google для multicore cache coherence.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...