Протокол MESI понимает переходы состояний

На диаграмме перехода состояний, показанной ниже для протокола MESI Иллинойса, почему существует сигнал сброса при переходе из состояния S в состояние I и сигнал сброса при переходе из состояния E в состояние I при наблюдении сигнала BusRdX. Разве содержимое кэша для процессоров в этих состояниях не будет таким же, как содержимое в основной памяти? Если да, то какой смысл этим кешам утверждать, что я сбрасываю их данные? Кроме того, в чем именно разница между Flush и Flush'. Просто во Flush 'данные передаются одним кешем?

Схема перехода:

введите описание изображения здесь

1 ответ

Разве содержимое кэша для процессоров в этих состояниях не будет таким же, как содержимое в основной памяти?

Это зависит от политики записи.

  • Если используется политика сквозной записи и все изменения записываются непосредственно в основную память, вы правы.

  • Но это не так для обратной записи. Возможен переход состояния из M в S посредством чтения с помощью snoop (или в связи с вашей диаграммой: BusRd, то есть запрос чтения из шины без намерения изменить), в этот момент кэш не соответствует основной памяти, поэтому содержимое должно быть записано обратно в основную память, если кеш недействителен.

Кроме того, в чем именно разница между Flush и Flush?

Я полагаю, у вас есть диаграмма из Википедии; есть обновленная версия, на которую я ссылался выше, которая не делает этого различия.

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